postgres.git / summary / log / commit / refs
commit 46c54d3d2f3ec0aaf04eaf5ea5eade08d4796b87
Author: Álvaro Herrera <alvherre@kurilemu.de>
Date: Wed Mar 04 14:04:53 2026 +0000
First released in: 14.23, 15.18, 16.14, 17.10, 18.4
Don't malloc(0) in EventTriggerCollectAlterTSConfig
Author: Florin Irion <florin.irion@enterprisedb.com>
Discussion: https://postgr.es/m/c6fff161-9aee-4290-9ada-71e21e4d84de@gmail.com
src/backend/commands/event_trigger.c | 7 +++++--
src/test/modules/test_ddl_deparse/Makefile | 1 +
src/test/modules/test_ddl_deparse/expected/textsearch.out | 5 +++++
src/test/modules/test_ddl_deparse/meson.build | 1 +
src/test/modules/test_ddl_deparse/sql/textsearch.sql | 3 +++
5 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index abfa830042b..6ebecbbf6eb 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -1905,8 +1905,11 @@ EventTriggerCollectAlterTSConfig(AlterTSConfigurationStmt *stmt, Oid cfgId,
command->in_extension = creating_extension;
ObjectAddressSet(command->d.atscfg.address,
TSConfigRelationId, cfgId);
- command->d.atscfg.dictIds = palloc(sizeof(Oid) * ndicts);
- memcpy(command->d.atscfg.dictIds, dictIds, sizeof(Oid) * ndicts);
+ if (ndicts > 0)
+ {
+ command->d.atscfg.dictIds = palloc_array(Oid, ndicts);
+ memcpy(command->d.atscfg.dictIds, dictIds, sizeof(Oid) * ndicts);
+ }
command->d.atscfg.ndicts = ndicts;
command->parsetree = (Node *) copyObject(stmt);
diff --git a/src/test/modules/test_ddl_deparse/Makefile b/src/test/modules/test_ddl_deparse/Makefile
index 3a57a95c849..4576ed31e20 100644
--- a/src/test/modules/test_ddl_deparse/Makefile
+++ b/src/test/modules/test_ddl_deparse/Makefile
@@ -27,6 +27,7 @@ REGRESS = test_ddl_deparse \
alter_type_enum \
opfamily \
defprivs \
+ textsearch \
matviews
EXTRA_INSTALL = contrib/pg_stat_statements
diff --git a/src/test/modules/test_ddl_deparse/expected/textsearch.out b/src/test/modules/test_ddl_deparse/expected/textsearch.out
new file mode 100644
index 00000000000..da0d89e9704
--- /dev/null
+++ b/src/test/modules/test_ddl_deparse/expected/textsearch.out
@@ -0,0 +1,5 @@
+CREATE TEXT SEARCH CONFIGURATION evttrig_tscfg (COPY = pg_catalog.simple);
+NOTICE: DDL test: type simple, tag CREATE TEXT SEARCH CONFIGURATION
+ALTER TEXT SEARCH CONFIGURATION evttrig_tscfg
+ DROP MAPPING FOR word;
+NOTICE: DDL test: type alter text search configuration, tag ALTER TEXT SEARCH CONFIGURATION
diff --git a/src/test/modules/test_ddl_deparse/meson.build b/src/test/modules/test_ddl_deparse/meson.build
index dfd31df1243..0223d99d382 100644
--- a/src/test/modules/test_ddl_deparse/meson.build
+++ b/src/test/modules/test_ddl_deparse/meson.build
@@ -47,6 +47,7 @@ tests += {
'alter_type_enum',
'opfamily',
'defprivs',
+ 'textsearch',
'matviews',
],
},
diff --git a/src/test/modules/test_ddl_deparse/sql/textsearch.sql b/src/test/modules/test_ddl_deparse/sql/textsearch.sql
new file mode 100644
index 00000000000..633899a31cb
--- /dev/null
+++ b/src/test/modules/test_ddl_deparse/sql/textsearch.sql
@@ -0,0 +1,3 @@
+CREATE TEXT SEARCH CONFIGURATION evttrig_tscfg (COPY = pg_catalog.simple);
+ALTER TEXT SEARCH CONFIGURATION evttrig_tscfg
+ DROP MAPPING FOR word;
[parent: 65f5c451a3e1]