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

Commit4694aed

Browse files
committed
Add relallfrozen to pg_dump statistics.
Author: Corey Huinker <corey.huinker@gmail.com>Discussion:https://postgr.es/m/CADkLM=desCuf3dVHasADvdUVRmb-5gO0mhMO5u9nzgv6i7U86Q@mail.gmail.com
1 parent2a5e709 commit4694aed

File tree

4 files changed

+43
-8
lines changed

4 files changed

+43
-8
lines changed

‎src/bin/pg_dump/pg_dump.c

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6874,7 +6874,8 @@ getFuncs(Archive *fout)
68746874
*/
68756875
static RelStatsInfo *
68766876
getRelationStatistics(Archive *fout, DumpableObject *rel, int32 relpages,
6877-
char *reltuples, int32 relallvisible, char relkind,
6877+
char *reltuples, int32 relallvisible,
6878+
int32 relallfrozen, char relkind,
68786879
char **indAttNames, int nindAttNames)
68796880
{
68806881
if (!fout->dopt->dumpStatistics)
@@ -6903,6 +6904,7 @@ getRelationStatistics(Archive *fout, DumpableObject *rel, int32 relpages,
69036904
info->relpages = relpages;
69046905
info->reltuples = pstrdup(reltuples);
69056906
info->relallvisible = relallvisible;
6907+
info->relallfrozen = relallfrozen;
69066908
info->relkind = relkind;
69076909
info->indAttNames = indAttNames;
69086910
info->nindAttNames = nindAttNames;
@@ -6967,6 +6969,7 @@ getTables(Archive *fout, int *numTables)
69676969
inti_relpages;
69686970
inti_reltuples;
69696971
inti_relallvisible;
6972+
inti_relallfrozen;
69706973
inti_toastpages;
69716974
inti_owning_tab;
69726975
inti_owning_col;
@@ -7017,8 +7020,15 @@ getTables(Archive *fout, int *numTables)
70177020
"c.relowner, "
70187021
"c.relchecks, "
70197022
"c.relhasindex, c.relhasrules, c.relpages, "
7020-
"c.reltuples, c.relallvisible, c.relhastriggers, "
7021-
"c.relpersistence, "
7023+
"c.reltuples, c.relallvisible, ");
7024+
7025+
if (fout->remoteVersion >= 180000)
7026+
appendPQExpBufferStr(query, "c.relallfrozen, ");
7027+
else
7028+
appendPQExpBufferStr(query, "0 AS relallfrozen, ");
7029+
7030+
appendPQExpBufferStr(query,
7031+
"c.relhastriggers, c.relpersistence, "
70227032
"c.reloftype, "
70237033
"c.relacl, "
70247034
"acldefault(CASE WHEN c.relkind = " CppAsString2(RELKIND_SEQUENCE)
@@ -7183,6 +7193,7 @@ getTables(Archive *fout, int *numTables)
71837193
i_relpages = PQfnumber(res, "relpages");
71847194
i_reltuples = PQfnumber(res, "reltuples");
71857195
i_relallvisible = PQfnumber(res, "relallvisible");
7196+
i_relallfrozen = PQfnumber(res, "relallfrozen");
71867197
i_toastpages = PQfnumber(res, "toastpages");
71877198
i_owning_tab = PQfnumber(res, "owning_tab");
71887199
i_owning_col = PQfnumber(res, "owning_col");
@@ -7230,6 +7241,7 @@ getTables(Archive *fout, int *numTables)
72307241
for (i = 0; i < ntups; i++)
72317242
{
72327243
int32relallvisible = atoi(PQgetvalue(res, i, i_relallvisible));
7244+
int32relallfrozen = atoi(PQgetvalue(res, i, i_relallfrozen));
72337245

72347246
tblinfo[i].dobj.objType = DO_TABLE;
72357247
tblinfo[i].dobj.catId.tableoid = atooid(PQgetvalue(res, i, i_reltableoid));
@@ -7336,7 +7348,7 @@ getTables(Archive *fout, int *numTables)
73367348
stats = getRelationStatistics(fout, &tblinfo[i].dobj,
73377349
tblinfo[i].relpages,
73387350
PQgetvalue(res, i, i_reltuples),
7339-
relallvisible,
7351+
relallvisible, relallfrozen,
73407352
tblinfo[i].relkind, NULL, 0);
73417353
if (tblinfo[i].relkind == RELKIND_MATVIEW)
73427354
tblinfo[i].stats = stats;
@@ -7609,6 +7621,7 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
76097621
i_relpages,
76107622
i_reltuples,
76117623
i_relallvisible,
7624+
i_relallfrozen,
76127625
i_parentidx,
76137626
i_indexdef,
76147627
i_indnkeyatts,
@@ -7663,7 +7676,14 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
76637676
appendPQExpBufferStr(query,
76647677
"SELECT t.tableoid, t.oid, i.indrelid, "
76657678
"t.relname AS indexname, "
7666-
"t.relpages, t.reltuples, t.relallvisible, "
7679+
"t.relpages, t.reltuples, t.relallvisible, ");
7680+
7681+
if (fout->remoteVersion >= 180000)
7682+
appendPQExpBufferStr(query, "t.relallfrozen, ");
7683+
else
7684+
appendPQExpBufferStr(query, "0 AS relallfrozen, ");
7685+
7686+
appendPQExpBufferStr(query,
76677687
"pg_catalog.pg_get_indexdef(i.indexrelid) AS indexdef, "
76687688
"i.indkey, i.indisclustered, "
76697689
"c.contype, c.conname, "
@@ -7779,6 +7799,7 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
77797799
i_relpages = PQfnumber(res, "relpages");
77807800
i_reltuples = PQfnumber(res, "reltuples");
77817801
i_relallvisible = PQfnumber(res, "relallvisible");
7802+
i_relallfrozen = PQfnumber(res, "relallfrozen");
77827803
i_parentidx = PQfnumber(res, "parentidx");
77837804
i_indexdef = PQfnumber(res, "indexdef");
77847805
i_indnkeyatts = PQfnumber(res, "indnkeyatts");
@@ -7850,6 +7871,7 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
78507871
RelStatsInfo *relstats;
78517872
int32relpages = atoi(PQgetvalue(res, j, i_relpages));
78527873
int32relallvisible = atoi(PQgetvalue(res, j, i_relallvisible));
7874+
int32relallfrozen = atoi(PQgetvalue(res, j, i_relallfrozen));
78537875

78547876
indxinfo[j].dobj.objType = DO_INDEX;
78557877
indxinfo[j].dobj.catId.tableoid = atooid(PQgetvalue(res, j, i_tableoid));
@@ -7892,7 +7914,7 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
78927914

78937915
relstats = getRelationStatistics(fout, &indxinfo[j].dobj, relpages,
78947916
PQgetvalue(res, j, i_reltuples),
7895-
relallvisible, indexkind,
7917+
relallvisible,relallfrozen,indexkind,
78967918
indAttNames, nindAttNames);
78977919

78987920
contype = *(PQgetvalue(res, j, i_contype));
@@ -10618,9 +10640,15 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo)
1061810640
appendPQExpBufferStr(out, ",\n");
1061910641
appendPQExpBuffer(out, "\t'relpages', '%d'::integer,\n", rsinfo->relpages);
1062010642
appendPQExpBuffer(out, "\t'reltuples', '%s'::real,\n", rsinfo->reltuples);
10621-
appendPQExpBuffer(out, "\t'relallvisible', '%d'::integer\n);\n",
10643+
appendPQExpBuffer(out, "\t'relallvisible', '%d'::integer",
1062210644
rsinfo->relallvisible);
1062310645

10646+
if (fout->remoteVersion >= 180000)
10647+
appendPQExpBuffer(out, ",\n\t'relallfrozen', '%d'::integer", rsinfo->relallfrozen);
10648+
10649+
appendPQExpBufferStr(out, "\n);\n");
10650+
10651+
1062410652
/* fetch attribute stats */
1062510653
appendPQExpBufferStr(query, "EXECUTE getAttributeStats(");
1062610654
appendStringLiteralAH(query, dobj->namespace->dobj.name, fout);

‎src/bin/pg_dump/pg_dump.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ typedef struct _relStatsInfo
442442
int32relpages;
443443
char*reltuples;
444444
int32relallvisible;
445+
int32relallfrozen;
445446
charrelkind;/* 'r', 'm', 'i', etc */
446447

447448
/*

‎src/bin/pg_dump/t/002_pg_dump.pl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4771,7 +4771,8 @@
47714771
'relname',\s'dup_test_post_data_ix',\s+
47724772
'relpages',\s'\d+'::integer,\s+
47734773
'reltuples',\s'\d+'::real,\s+
4774-
'relallvisible',\s'\d+'::integer\s+
4774+
'relallvisible',\s'\d+'::integer,\s+
4775+
'relallfrozen',\s'\d+'::integer\s+
47754776
\);\s+
47764777
\QSELECT * FROM pg_catalog.pg_restore_attribute_stats(\E\s+
47774778
'version',\s'\d+'::integer,\s+

‎src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,11 @@ sub adjust_new_dumpfile
648648
$dump =~s {\n(\s+'version',) '\d+'::integer,$}
649649
{$1'000000'::integer,}mg;
650650

651+
if ($old_version < 18)
652+
{
653+
$dump =~s {,\n(\s+'relallfrozen',) '-?\d+'::integer$}{}mg;
654+
}
655+
651656
# pre-v16 dumps do not know about XMLSERIALIZE(NO INDENT).
652657
if ($old_version < 16)
653658
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp