From fd33d90a23150dec944cdfdf4587f7770543acd1 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
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 7092da132d8..af34c58c7c2 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);
-- 
GitLab