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

+9-1
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

+2-1
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

+2-1
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)