postgres.git / summary / log / commit / refs
commit e0a9c6463509babfa4dc65aab8aef560e73d85ed
Author: Álvaro Herrera <alvherre@kurilemu.de>
Date: Wed Mar 04 14:04:53 2026 +0000
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/sql/textsearch.sql | 3 +++
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 9c31c9e7637..7846e1e0c64 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -1799,8 +1799,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/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: ffe53037dff7]