Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit616110e

Browse files
committed
Collect attribute data on extension owned tables being dumped
If this data is not collected, pg_dump segfaults if asked for columninserts.Fix by Fabrízio de Royes MelloBackpatch to release 12 where the bug was introduced.
1 parent56f42cf commit616110e

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

‎src/bin/pg_dump/pg_dump.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2036,6 +2036,8 @@ dumpTableData_insert(Archive *fout, void *dcontext)
20362036
if (nfields == 0)
20372037
continue;
20382038

2039+
Assert(tbinfo->attgenerated);
2040+
20392041
/* Emit a row heading */
20402042
if (rows_per_statement == 1)
20412043
archputs(" (", fout);
@@ -18010,6 +18012,8 @@ processExtensionTables(Archive *fout, ExtensionInfo extinfo[],
1801018012
configtbl->dataObj->filtercond = pg_strdup(extconditionarray[j]);
1801118013
}
1801218014
}
18015+
18016+
configtbl->interesting = dumpobj;
1801318017
}
1801418018
}
1801518019
if (extconfigarray)

‎src/test/modules/test_pg_dump/t/001_base.pl

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@
135135
"$tempdir/defaults_tar_format.tar",
136136
],
137137
},
138+
extension_schema=> {
139+
dump_cmd=> [
140+
'pg_dump','--schema=public','--inserts',
141+
"--file=$tempdir/extension_schema.sql",'postgres',
142+
],
143+
},
138144
pg_dumpall_globals=> {
139145
dump_cmd=> [
140146
'pg_dumpall','--no-sync',
@@ -301,8 +307,9 @@
301307
\n/xm,
302308
like => {
303309
%full_runs,
304-
data_only => 1,
305-
section_data => 1,
310+
data_only => 1,
311+
section_data => 1,
312+
extension_schema => 1,
306313
},
307314
},
308315
@@ -536,6 +543,7 @@
536543
like => {%pgdump_runs},
537544
unlike => {
538545
data_only => 1,
546+
extension_schema => 1,
539547
pg_dumpall_globals => 1,
540548
section_data => 1,
541549
section_pre_data => 1,
@@ -549,6 +557,7 @@
549557
like => {%pgdump_runs},
550558
unlike => {
551559
data_only => 1,
560+
extension_schema => 1,
552561
pg_dumpall_globals => 1,
553562
section_data => 1,
554563
section_pre_data => 1,
@@ -569,6 +578,17 @@
569578
schema_only => 1,
570579
section_pre_data => 1,
571580
},
581+
},
582+
583+
# Dumpable object inside specific schema
584+
'INSERT INTO public.regress_table_dumpable VALUES (1);' => {
585+
create_sql => 'INSERT INTO public.regress_table_dumpable VALUES (1);',
586+
regexp => qr/^
587+
\QINSERT INTO public.regress_table_dumpable VALUES (1);\E
588+
\n/xm,
589+
like => {
590+
extension_schema => 1,
591+
},
572592
},);
573593
574594
#########################################

‎src/test/modules/test_pg_dump/test_pg_dump--1.0.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ CREATE SEQUENCE regress_pg_dump_seq;
1313
CREATESEQUENCEregress_seq_dumpable;
1414
SELECTpg_catalog.pg_extension_config_dump('regress_seq_dumpable','');
1515

16+
CREATETABLEregress_table_dumpable (
17+
col1int
18+
);
19+
SELECTpg_catalog.pg_extension_config_dump('regress_table_dumpable','');
20+
1621
CREATESCHEMAregress_pg_dump_schema;
1722

1823
GRANT USAGEON regress_pg_dump_seq TO regress_dump_test_role;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp