summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c6
-rw-r--r--src/bin/pg_dump/pg_dump.c14
-rw-r--r--src/bin/pg_dump/t/002_pg_dump.pl40
3 files changed, 36 insertions, 24 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index b9d063aa22..f461692d45 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -3313,6 +3313,7 @@ _getObjectDescription(PQExpBuffer buf, TocEntry *te, ArchiveHandle *AH)
strcmp(type, "DATABASE") == 0 ||
strcmp(type, "PROCEDURAL LANGUAGE") == 0 ||
strcmp(type, "SCHEMA") == 0 ||
+ strcmp(type, "EVENT TRIGGER") == 0 ||
strcmp(type, "FOREIGN DATA WRAPPER") == 0 ||
strcmp(type, "SERVER") == 0 ||
strcmp(type, "PUBLICATION") == 0 ||
@@ -3359,7 +3360,7 @@ _getObjectDescription(PQExpBuffer buf, TocEntry *te, ArchiveHandle *AH)
return;
}
- write_msg(modulename, "WARNING: don't know how to set owner for object type %s\n",
+ write_msg(modulename, "WARNING: don't know how to set owner for object type \"%s\"\n",
type);
}
@@ -3518,6 +3519,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, bool isData, bool acl_pass)
strcmp(te->desc, "OPERATOR FAMILY") == 0 ||
strcmp(te->desc, "PROCEDURAL LANGUAGE") == 0 ||
strcmp(te->desc, "SCHEMA") == 0 ||
+ strcmp(te->desc, "EVENT TRIGGER") == 0 ||
strcmp(te->desc, "TABLE") == 0 ||
strcmp(te->desc, "TYPE") == 0 ||
strcmp(te->desc, "VIEW") == 0 ||
@@ -3556,7 +3558,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, bool isData, bool acl_pass)
}
else
{
- write_msg(modulename, "WARNING: don't know how to set owner for object type %s\n",
+ write_msg(modulename, "WARNING: don't know how to set owner for object type \"%s\"\n",
te->desc);
}
}
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 502d5eb7af..8e9454885a 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -16844,6 +16844,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
{
DumpOptions *dopt = fout->dopt;
PQExpBuffer query;
+ PQExpBuffer delqry;
PQExpBuffer labelq;
/* Skip if not to be dumped */
@@ -16851,6 +16852,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
return;
query = createPQExpBuffer();
+ delqry = createPQExpBuffer();
labelq = createPQExpBuffer();
appendPQExpBufferStr(query, "CREATE EVENT TRIGGER ");
@@ -16890,14 +16892,21 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
}
appendPQExpBufferStr(query, ";\n");
}
+
+ appendPQExpBuffer(delqry, "DROP EVENT TRIGGER %s;\n",
+ fmtId(evtinfo->dobj.name));
+
appendPQExpBuffer(labelq, "EVENT TRIGGER %s",
fmtId(evtinfo->dobj.name));
if (evtinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)
ArchiveEntry(fout, evtinfo->dobj.catId, evtinfo->dobj.dumpId,
- evtinfo->dobj.name, NULL, NULL, evtinfo->evtowner, false,
+ evtinfo->dobj.name, NULL, NULL,
+ evtinfo->evtowner, false,
"EVENT TRIGGER", SECTION_POST_DATA,
- query->data, "", NULL, NULL, 0, NULL, NULL);
+ query->data, delqry->data, NULL,
+ NULL, 0,
+ NULL, NULL);
if (evtinfo->dobj.dump & DUMP_COMPONENT_COMMENT)
dumpComment(fout, labelq->data,
@@ -16905,6 +16914,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
evtinfo->dobj.catId, 0, evtinfo->dobj.dumpId);
destroyPQExpBuffer(query);
+ destroyPQExpBuffer(delqry);
destroyPQExpBuffer(labelq);
}
diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index a8000db336..4c6201be61 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -466,7 +466,7 @@ my %tests = (
'ALTER COLLATION test0 OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER COLLATION test0 OWNER TO .*;/m,
collation => 1,
like => {
@@ -493,7 +493,7 @@ my %tests = (
'ALTER FOREIGN DATA WRAPPER dummy OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER FOREIGN DATA WRAPPER dummy OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -520,7 +520,7 @@ my %tests = (
'ALTER SERVER s1 OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER SERVER s1 OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -547,7 +547,7 @@ my %tests = (
'ALTER FUNCTION dump_test.pltestlang_call_handler() OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^
\QALTER FUNCTION dump_test.pltestlang_call_handler() \E
\QOWNER TO \E
@@ -576,7 +576,7 @@ my %tests = (
'ALTER OPERATOR FAMILY dump_test.op_family OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^
\QALTER OPERATOR FAMILY dump_test.op_family USING btree \E
\QOWNER TO \E
@@ -655,7 +655,7 @@ my %tests = (
'ALTER OPERATOR CLASS dump_test.op_class OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^
\QALTER OPERATOR CLASS dump_test.op_class USING btree \E
\QOWNER TO \E
@@ -746,7 +746,7 @@ my %tests = (
'ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -772,7 +772,7 @@ my %tests = (
'ALTER SCHEMA dump_test OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER SCHEMA dump_test OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -798,7 +798,7 @@ my %tests = (
'ALTER SCHEMA dump_test_second_schema OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER SCHEMA dump_test_second_schema OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1193,7 +1193,7 @@ my %tests = (
'ALTER TABLE test_table OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER TABLE test_table OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1251,7 +1251,7 @@ my %tests = (
'ALTER TABLE test_second_table OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER TABLE test_second_table OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1278,7 +1278,7 @@ my %tests = (
'ALTER TABLE test_third_table OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER TABLE test_third_table OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1305,7 +1305,7 @@ my %tests = (
'ALTER TABLE measurement OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER TABLE measurement OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1332,7 +1332,7 @@ my %tests = (
'ALTER TABLE measurement_y2006m2 OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER TABLE measurement_y2006m2 OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1359,7 +1359,7 @@ my %tests = (
'ALTER FOREIGN TABLE foreign_table OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp => qr/^ALTER FOREIGN TABLE foreign_table OWNER TO .*;/m,
like => {
binary_upgrade => 1,
@@ -1386,7 +1386,7 @@ my %tests = (
'ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp =>
qr/^ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 OWNER TO .*;/m,
like => {
@@ -1414,7 +1414,7 @@ my %tests = (
'ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 OWNER TO' => {
all_runs => 1,
catch_all =>
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)',
+ 'ALTER ... OWNER commands (except post-data objects)',
regexp =>
qr/^ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 OWNER TO .*;/m,
like => {
@@ -1439,11 +1439,11 @@ my %tests = (
only_dump_test_table => 1,
role => 1, }, },
- # catch-all for ALTER ... OWNER (except LARGE OBJECTs and PUBLICATIONs)
- 'ALTER ... OWNER commands (except LARGE OBJECTs and PUBLICATIONs)' => {
+ # catch-all for ALTER ... OWNER (except post-data objects)
+ 'ALTER ... OWNER commands (except post-data objects)' => {
all_runs => 0, # catch-all
regexp =>
-qr/^ALTER (?!LARGE OBJECT|PUBLICATION|SUBSCRIPTION)(.*) OWNER TO .*;/m,
+qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|PUBLICATION|SUBSCRIPTION)(.*) OWNER TO .*;/m,
like => {}, # use more-specific options above
unlike => {
column_inserts => 1,