Use TSConfigRelationId in AlterTSConfiguration()
authorStephen Frost <sfrost@snowman.net>
Thu, 22 Dec 2016 22:09:00 +0000 (17:09 -0500)
committerStephen Frost <sfrost@snowman.net>
Thu, 22 Dec 2016 22:09:00 +0000 (17:09 -0500)
When we are altering a text search configuration, we are getting the
tuple from pg_ts_config and using its OID, so use TSConfigRelationId
when invoking any post-alter hooks and setting the object address.

Further, in the functions called from AlterTSConfiguration(), we're
saving information about the command via
EventTriggerCollectAlterTSConfig(), so we should be setting
commandCollected to true.  Also add a regression test to
test_ddl_deparse for ALTER TEXT SEARCH CONFIGURATION.

Author: Artur Zakirov, a few additional comments by me
Discussion: https://www.postgresql.org/message-id/57a71eba-f2c7-e7fd-6fc0-2126ec0b39bd%40postgrespro.ru

Back-patch the fix for the InvokeObjectPostAlterHook() call to 9.3 where
it was introduced, and the fix for the ObjectAddressSet() call and
setting commandCollected to true to 9.5 where those changes to
ProcessUtilitySlow() were introduced.

src/backend/commands/tsearchcmds.c

index 57b69f88ab09dcd499627d040df4258183edf40b..51f8336a632636b708fc7f624fbec7b51e0cc31c 100644 (file)
@@ -1186,7 +1186,7 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
    /* Update dependencies */
    makeConfigurationDependencies(tup, true, relMap);
 
-   InvokeObjectPostAlterHook(TSConfigMapRelationId,
+   InvokeObjectPostAlterHook(TSConfigRelationId,
                              HeapTupleGetOid(tup), 0);
 
    heap_close(relMap, RowExclusiveLock);