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

Commitf9b622e

Browse files
author
Maksim Milyutin
committed
Fix xid format for 32-bit systems
1 parent7618b10 commitf9b622e

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

‎src/backend/bootstrap/bootstrap.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,14 +250,14 @@ AuxiliaryProcessMain(int argc, char *argv[])
250250
bootstrap_data_checksum_version=PG_DATA_CHECKSUM_VERSION;
251251
break;
252252
case'm':
253-
if (sscanf(optarg,"%lx",&start_mx_id)!=1)
253+
if (sscanf(optarg,HEX_XID_FMT,&start_mx_id)!=1)
254254
{
255255
fprintf(stderr,"%s: invalid hex value of multixact-id\n",progname);
256256
exit(1);
257257
}
258258
break;
259259
case'o':
260-
if (sscanf(optarg,"%ld",&start_mx_offset)!=1)
260+
if (sscanf(optarg,XID_FMT,&start_mx_offset)!=1)
261261
{
262262
fprintf(stderr,"%s: invalid decimal value of multixact-offset\n",progname);
263263
exit(1);
@@ -267,7 +267,7 @@ AuxiliaryProcessMain(int argc, char *argv[])
267267
strlcpy(OutputFileName,optarg,MAXPGPATH);
268268
break;
269269
case'X':
270-
if (sscanf(optarg,"%lx",&start_xid)!=1)
270+
if (sscanf(optarg,HEX_XID_FMT,&start_xid)!=1)
271271
{
272272
fprintf(stderr,"%s: invalid hex value of xid\n",progname);
273273
exit(1);

‎src/bin/initdb/initdb.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ bootstrap_template1(void)
15381538
unsetenv("PGCLIENTENCODING");
15391539

15401540
snprintf(cmd,sizeof(cmd),
1541-
"\"%s\" --boot -x1 %s %s%lx%s%lx%s%ld %s %s",
1541+
"\"%s\" --boot -x1 %s %s"HEX_XID_FMT"%s"HEX_XID_FMT"%s"XID_FMT" %s %s",
15421542
backend_exec,
15431543
data_checksums ?"-k" :"",
15441544
"-X",start_xid,
@@ -3469,7 +3469,7 @@ main(int argc, char *argv[])
34693469
printf(_("Running in debug mode.\n"));
34703470
break;
34713471
case'm':
3472-
if (sscanf(optarg,"%lx",&start_mx_id)!=1)
3472+
if (sscanf(optarg,HEX_XID_FMT,&start_mx_id)!=1)
34733473
{
34743474
fprintf(stderr,"%s: invalid hex value of multixact-id\n",progname);
34753475
exit(1);
@@ -3483,7 +3483,7 @@ main(int argc, char *argv[])
34833483
do_sync= false;
34843484
break;
34853485
case'o':
3486-
if (sscanf(optarg,"%ld",&start_mx_offset)!=1)
3486+
if (sscanf(optarg,XID_FMT,&start_mx_offset)!=1)
34873487
{
34883488
fprintf(stderr,"%s: invalid decimal value of multixact-offset\n",progname);
34893489
exit(1);
@@ -3535,7 +3535,7 @@ main(int argc, char *argv[])
35353535
xlog_dir=pg_strdup(optarg);
35363536
break;
35373537
case'x':
3538-
if (sscanf(optarg,"%lx",&start_xid)!=1)
3538+
if (sscanf(optarg,HEX_XID_FMT,&start_xid)!=1)
35393539
{
35403540
fprintf(stderr,"%s: invalid hex value of xid\n",progname);
35413541
exit(1);

‎src/include/c.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ typedef uint64 SubTransactionId;
407407
#defineTopSubTransactionId((SubTransactionId) 1)
408408

409409
#defineXID_FMT UINT64_FORMAT
410+
#defineHEX_XID_FMT "%" INT64_MODIFIER "x"
410411

411412
/* MultiXactId must be equivalent to TransactionId, to fit in t_xmax */
412413
typedefTransactionIdMultiXactId;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp