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

Commit16143d6

Browse files
committed
Dump the COLLATABLE attribute in CREATE TYPE
This was previously omitted by accident.
1 parent09b49a8 commit16143d6

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

‎src/bin/pg_dump/pg_dump.c

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7305,14 +7305,35 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
73057305
char*typbyval;
73067306
char*typalign;
73077307
char*typstorage;
7308+
char*typcollatable;
73087309
char*typdefault;
73097310
booltypdefault_is_literal= false;
73107311

73117312
/* Set proper schema search path so regproc references list correctly */
73127313
selectSourceSchema(tyinfo->dobj.namespace->dobj.name);
73137314

73147315
/* Fetch type-specific details */
7315-
if (fout->remoteVersion >=80400)
7316+
if (fout->remoteVersion >=90100)
7317+
{
7318+
appendPQExpBuffer(query,"SELECT typlen, "
7319+
"typinput, typoutput, typreceive, typsend, "
7320+
"typmodin, typmodout, typanalyze, "
7321+
"typinput::pg_catalog.oid AS typinputoid, "
7322+
"typoutput::pg_catalog.oid AS typoutputoid, "
7323+
"typreceive::pg_catalog.oid AS typreceiveoid, "
7324+
"typsend::pg_catalog.oid AS typsendoid, "
7325+
"typmodin::pg_catalog.oid AS typmodinoid, "
7326+
"typmodout::pg_catalog.oid AS typmodoutoid, "
7327+
"typanalyze::pg_catalog.oid AS typanalyzeoid, "
7328+
"typcategory, typispreferred, "
7329+
"typdelim, typbyval, typalign, typstorage, "
7330+
"(typcollation = (SELECT oid FROM pg_catalog.pg_collation WHERE collname = 'default')) AS typcollatable, "
7331+
"pg_catalog.pg_get_expr(typdefaultbin, 0) AS typdefaultbin, typdefault "
7332+
"FROM pg_catalog.pg_type "
7333+
"WHERE oid = '%u'::pg_catalog.oid",
7334+
tyinfo->dobj.catId.oid);
7335+
}
7336+
elseif (fout->remoteVersion >=80400)
73167337
{
73177338
appendPQExpBuffer(query,"SELECT typlen, "
73187339
"typinput, typoutput, typreceive, typsend, "
@@ -7326,6 +7347,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
73267347
"typanalyze::pg_catalog.oid AS typanalyzeoid, "
73277348
"typcategory, typispreferred, "
73287349
"typdelim, typbyval, typalign, typstorage, "
7350+
"false AS typcollatable, "
73297351
"pg_catalog.pg_get_expr(typdefaultbin, 0) AS typdefaultbin, typdefault "
73307352
"FROM pg_catalog.pg_type "
73317353
"WHERE oid = '%u'::pg_catalog.oid",
@@ -7346,6 +7368,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
73467368
"typanalyze::pg_catalog.oid AS typanalyzeoid, "
73477369
"'U' AS typcategory, false AS typispreferred, "
73487370
"typdelim, typbyval, typalign, typstorage, "
7371+
"false AS typcollatable, "
73497372
"pg_catalog.pg_get_expr(typdefaultbin, 'pg_catalog.pg_type'::pg_catalog.regclass) AS typdefaultbin, typdefault "
73507373
"FROM pg_catalog.pg_type "
73517374
"WHERE oid = '%u'::pg_catalog.oid",
@@ -7365,6 +7388,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
73657388
"typanalyze::pg_catalog.oid AS typanalyzeoid, "
73667389
"'U' AS typcategory, false AS typispreferred, "
73677390
"typdelim, typbyval, typalign, typstorage, "
7391+
"false AS typcollatable, "
73687392
"pg_catalog.pg_get_expr(typdefaultbin, 'pg_catalog.pg_type'::pg_catalog.regclass) AS typdefaultbin, typdefault "
73697393
"FROM pg_catalog.pg_type "
73707394
"WHERE oid = '%u'::pg_catalog.oid",
@@ -7384,6 +7408,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
73847408
"0 AS typanalyzeoid, "
73857409
"'U' AS typcategory, false AS typispreferred, "
73867410
"typdelim, typbyval, typalign, typstorage, "
7411+
"false AS typcollatable, "
73877412
"pg_catalog.pg_get_expr(typdefaultbin, 'pg_catalog.pg_type'::pg_catalog.regclass) AS typdefaultbin, typdefault "
73887413
"FROM pg_catalog.pg_type "
73897414
"WHERE oid = '%u'::pg_catalog.oid",
@@ -7403,6 +7428,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
74037428
"0 AS typanalyzeoid, "
74047429
"'U' AS typcategory, false AS typispreferred, "
74057430
"typdelim, typbyval, typalign, typstorage, "
7431+
"false AS typcollatable, "
74067432
"pg_catalog.pg_get_expr(typdefaultbin, 'pg_catalog.pg_type'::pg_catalog.regclass) AS typdefaultbin, typdefault "
74077433
"FROM pg_catalog.pg_type "
74087434
"WHERE oid = '%u'::pg_catalog.oid",
@@ -7426,6 +7452,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
74267452
"0 AS typanalyzeoid, "
74277453
"'U' AS typcategory, false AS typispreferred, "
74287454
"typdelim, typbyval, typalign, typstorage, "
7455+
"false AS typcollatable, "
74297456
"NULL AS typdefaultbin, typdefault "
74307457
"FROM pg_type "
74317458
"WHERE oid = '%u'::oid",
@@ -7449,6 +7476,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
74497476
"0 AS typanalyzeoid, "
74507477
"'U' AS typcategory, false AS typispreferred, "
74517478
"typdelim, typbyval, typalign, typstorage, "
7479+
"false AS typcollatable, "
74527480
"NULL AS typdefaultbin, NULL AS typdefault "
74537481
"FROM pg_type "
74547482
"WHERE oid = '%u'::oid",
@@ -7469,6 +7497,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
74697497
"'U' AS typcategory, false AS typispreferred, "
74707498
"typdelim, typbyval, typalign, "
74717499
"'p'::char AS typstorage, "
7500+
"false AS typcollatable, "
74727501
"NULL AS typdefaultbin, NULL AS typdefault "
74737502
"FROM pg_type "
74747503
"WHERE oid = '%u'::oid",
@@ -7510,6 +7539,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
75107539
typbyval=PQgetvalue(res,0,PQfnumber(res,"typbyval"));
75117540
typalign=PQgetvalue(res,0,PQfnumber(res,"typalign"));
75127541
typstorage=PQgetvalue(res,0,PQfnumber(res,"typstorage"));
7542+
typcollatable=PQgetvalue(res,0,PQfnumber(res,"typcollatable"));
75137543
if (!PQgetisnull(res,0,PQfnumber(res,"typdefaultbin")))
75147544
typdefault=PQgetvalue(res,0,PQfnumber(res,"typdefaultbin"));
75157545
elseif (!PQgetisnull(res,0,PQfnumber(res,"typdefault")))
@@ -7566,6 +7596,9 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
75667596
/* receive/send/typmodin/typmodout/analyze need not be printed */
75677597
}
75687598

7599+
if (strcmp(typcollatable,"t")==0)
7600+
appendPQExpBuffer(q,",\n COLLATABLE = true");
7601+
75697602
if (typdefault!=NULL)
75707603
{
75717604
appendPQExpBuffer(q,",\n DEFAULT = ");

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp