Skip to content

Commit 8217fb1

Browse files
committed
Add OID output argument to DefineTSConfiguration
... which is set to the OID of a copied text search config, whenever the COPY clause is used. This is in the spirit of commit a2e35b5.
1 parent b3196e6 commit 8217fb1

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/backend/commands/tsearchcmds.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@ makeConfigurationDependencies(HeapTuple tuple, bool removeOld,
964964
* CREATE TEXT SEARCH CONFIGURATION
965965
*/
966966
ObjectAddress
967-
DefineTSConfiguration(List *names, List *parameters)
967+
DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
968968
{
969969
Relation cfgRel;
970970
Relation mapRel = NULL;
@@ -1013,6 +1013,14 @@ DefineTSConfiguration(List *names, List *parameters)
10131013
(errcode(ERRCODE_SYNTAX_ERROR),
10141014
errmsg("cannot specify both PARSER and COPY options")));
10151015

1016+
/* make copied tsconfig available to callers */
1017+
if (copied && OidIsValid(sourceOid))
1018+
{
1019+
ObjectAddressSet(*copied,
1020+
TSConfigRelationId,
1021+
sourceOid);
1022+
}
1023+
10161024
/*
10171025
* Look up source config if given.
10181026
*/

src/backend/tcop/utility.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1129,7 +1129,8 @@ ProcessUtilitySlow(Node *parsetree,
11291129
case OBJECT_TSCONFIGURATION:
11301130
Assert(stmt->args == NIL);
11311131
DefineTSConfiguration(stmt->defnames,
1132-
stmt->definition);
1132+
stmt->definition,
1133+
NULL);
11331134
break;
11341135
case OBJECT_COLLATION:
11351136
Assert(stmt->args == NIL);

src/include/commands/defrem.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ extern ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt);
101101
extern ObjectAddress DefineTSTemplate(List *names, List *parameters);
102102
extern void RemoveTSTemplateById(Oid tmplId);
103103

104-
extern ObjectAddress DefineTSConfiguration(List *names, List *parameters);
104+
extern ObjectAddress DefineTSConfiguration(List *names, List *parameters,
105+
ObjectAddress *copied);
105106
extern void RemoveTSConfigurationById(Oid cfgId);
106107
extern ObjectAddress AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
107108

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy