From fd33d90a23150dec944cdfdf4587f7770543acd1 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 21 Aug 2007 21:24:00 +0000 Subject: [PATCH] Simplify CREATE TEXT SEARCH CONFIGURATION by eliminating the separate 'with map' parameter; as things now stand there's really not much point in specifying a config-to-copy if you don't copy its map. Also, use COPY instead of TEMPLATE as the key word for a config-to-copy, so as to avoid confusion with text search templates. Per discussion; the just-committed reference page for the command already describes it this way. --- src/backend/commands/tsearchcmds.c | 33 +++++++++++++----------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c index 7092da132d..af34c58c7c 100644 --- a/src/backend/commands/tsearchcmds.c +++ b/src/backend/commands/tsearchcmds.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tsearchcmds.c,v 1.1 2007/08/21 01:11:15 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tsearchcmds.c,v 1.2 2007/08/21 21:24:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1192,10 +1192,9 @@ DefineTSConfiguration(List *names, List *parameters) Oid namespaceoid; char *cfgname; NameData cname; - List *templateName = NIL; - Oid templateOid = InvalidOid; + List *sourceName = NIL; + Oid sourceOid = InvalidOid; Oid prsOid = InvalidOid; - bool with_map = false; Oid cfgOid; ListCell *pl; @@ -1217,10 +1216,8 @@ DefineTSConfiguration(List *names, List *parameters) if (pg_strcasecmp(defel->defname, "parser") == 0) prsOid = TSParserGetPrsid(defGetQualifiedName(defel), false); - else if (pg_strcasecmp(defel->defname, "template") == 0) - templateName = defGetQualifiedName(defel); - else if (pg_strcasecmp(defel->defname, "map") == 0) - with_map = defGetBoolean(defel); + else if (pg_strcasecmp(defel->defname, "copy") == 0) + sourceName = defGetQualifiedName(defel); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -1229,26 +1226,24 @@ DefineTSConfiguration(List *names, List *parameters) } /* - * Look up template if given. XXX the "template" is an existing config - * that we copy, not a pg_ts_template entry. This seems confusing. - * Maybe should use "source" or some other word? + * Look up source config if given. */ - if (templateName) + if (sourceName) { Form_pg_ts_config cfg; - templateOid = TSConfigGetCfgid(templateName, false); + sourceOid = TSConfigGetCfgid(sourceName, false); tup = SearchSysCache(TSCONFIGOID, - ObjectIdGetDatum(templateOid), + ObjectIdGetDatum(sourceOid), 0, 0, 0); if (!HeapTupleIsValid(tup)) elog(ERROR, "cache lookup failed for text search configuration %u", - templateOid); + sourceOid); cfg = (Form_pg_ts_config) GETSTRUCT(tup); - /* Use template's parser if no other was specified */ + /* Use source's parser if no other was specified */ if (!OidIsValid(prsOid)) prsOid = cfg->cfgparser; @@ -1283,10 +1278,10 @@ DefineTSConfiguration(List *names, List *parameters) CatalogUpdateIndexes(cfgRel, tup); - if (OidIsValid(templateOid) && with_map) + if (OidIsValid(sourceOid)) { /* - * Copy token-dicts map from template + * Copy token-dicts map from source config */ ScanKeyData skey; SysScanDesc scan; @@ -1297,7 +1292,7 @@ DefineTSConfiguration(List *names, List *parameters) ScanKeyInit(&skey, Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, - ObjectIdGetDatum(templateOid)); + ObjectIdGetDatum(sourceOid)); scan = systable_beginscan(mapRel, TSConfigMapIndexId, true, SnapshotNow, 1, &skey); -- 2.40.0