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

Commit206b44b

Browse files
committed
1 parent9637bad commit206b44b

File tree

3 files changed

+45
-22
lines changed

3 files changed

+45
-22
lines changed

‎src/bin/pg_upgrade/info.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,11 +311,19 @@ get_template0_info(ClusterInfo *cluster)
311311
inti_datctype;
312312
inti_daticulocale;
313313

314-
dbres=executeQueryOrDie(conn,
315-
"SELECT encoding, datlocprovider, "
316-
" datcollate, datctype, daticulocale "
317-
"FROMpg_catalog.pg_database "
318-
"WHERE datname='template0'");
314+
if (GET_MAJOR_VERSION(cluster->major_version) >=1500)
315+
dbres=executeQueryOrDie(conn,
316+
"SELECT encoding, datlocprovider, "
317+
" datcollate, datctype, daticulocale "
318+
"FROMpg_catalog.pg_database "
319+
"WHERE datname='template0'");
320+
else
321+
dbres=executeQueryOrDie(conn,
322+
"SELECT encoding, 'c' AS datlocprovider, "
323+
" datcollate, datctype, NULL AS daticulocale "
324+
"FROMpg_catalog.pg_database "
325+
"WHERE datname='template0'");
326+
319327

320328
if (PQntuples(dbres)!=1)
321329
pg_fatal("template0 not found");

‎src/bin/pg_upgrade/pg_upgrade.c

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -404,19 +404,30 @@ set_locale_and_encoding(void)
404404
daticulocale_literal=pg_strdup("NULL");
405405

406406
/* update template0 in new cluster */
407-
PQclear(executeQueryOrDie(conn_new_template1,
408-
"UPDATE pg_catalog.pg_database "
409-
" SET encoding = %u, "
410-
" datlocprovider = '%c', "
411-
" datcollate = %s, "
412-
" datctype = %s, "
413-
" daticulocale = %s "
414-
" WHERE datname = 'template0' ",
415-
locale->db_encoding,
416-
locale->db_collprovider,
417-
datcollate_literal,
418-
datctype_literal,
419-
daticulocale_literal));
407+
if (GET_MAJOR_VERSION(new_cluster.major_version) >=1500)
408+
PQclear(executeQueryOrDie(conn_new_template1,
409+
"UPDATE pg_catalog.pg_database "
410+
" SET encoding = %u, "
411+
" datlocprovider = '%c', "
412+
" datcollate = %s, "
413+
" datctype = %s, "
414+
" daticulocale = %s "
415+
" WHERE datname = 'template0' ",
416+
locale->db_encoding,
417+
locale->db_collprovider,
418+
datcollate_literal,
419+
datctype_literal,
420+
daticulocale_literal));
421+
else
422+
PQclear(executeQueryOrDie(conn_new_template1,
423+
"UPDATE pg_catalog.pg_database "
424+
" SET encoding = %u, "
425+
" datcollate = %s, "
426+
" datctype = %s "
427+
" WHERE datname = 'template0' ",
428+
locale->db_encoding,
429+
datcollate_literal,
430+
datctype_literal));
420431

421432
PQfreemem(datcollate_literal);
422433
PQfreemem(datctype_literal);

‎src/bin/pg_upgrade/t/002_pg_upgrade.pl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ sub filter_dump
110110
my$original_provider ="c";
111111
my$original_collate ="C";
112112
my$original_iculocale ="";
113+
my$provider_field ="'c' AS datlocprovider";
114+
my$iculocale_field ="NULL AS daticulocale";
113115
if ($oldnode->pg_version >= 15 &&$ENV{with_icu}eq'yes')
114116
{
117+
$provider_field ="datlocprovider";
118+
$iculocale_field ="daticulocale";
115119
$original_provider ="i";
116120
$original_iculocale ="fr-CA";
117121
}
@@ -132,8 +136,8 @@ sub filter_dump
132136

133137
my$result;
134138
$result =$oldnode->safe_psql(
135-
'postgres',q{SELECT encoding,datlocprovider, datcollate,daticulocale
136-
FROM pg_database WHERE datname='template0'});
139+
'postgres',"SELECT encoding,$provider_field, datcollate,$iculocale_field
140+
FROM pg_database WHERE datname='template0'");
137141
is($result,"$original_encoding|$original_provider|$original_collate|$original_iculocale",
138142
"check locales in original cluster"
139143
);
@@ -395,8 +399,8 @@ sub filter_dump
395399

396400
# Test that upgraded cluster has original locale settings.
397401
$result =$newnode->safe_psql(
398-
'postgres',q{SELECT encoding,datlocprovider, datcollate, datctype,daticulocale
399-
FROM pg_database WHERE datname='template0'});
402+
'postgres',"SELECT encoding,$provider_field, datcollate, datctype,$iculocale_field
403+
FROM pg_database WHERE datname='template0'");
400404
is($result,"$original_encoding|$original_provider|$original_collate|$original_ctype|$original_iculocale",
401405
"check that locales in new cluster match original cluster"
402406
);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp