I missed some references to xlogid/xrecoff in Win32-only code. Fix.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Sun, 24 Jun 2012 19:14:31 +0000 (22:14 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Sun, 24 Jun 2012 19:14:31 +0000 (22:14 +0300)
src/bin/pg_basebackup/pg_basebackup.c

index a66769871ec5eb08f98e5304ed7f6a5d4ba19320..a6fd3ae2040e16c398811a9b667d5471a0553c91 100644 (file)
@@ -1100,6 +1100,8 @@ BaseBackup(void)
                int                     r;
 #else
                DWORD           status;
+               uint32          hi,
+                                       lo;
 #endif
 
                if (verbose)
@@ -1147,12 +1149,13 @@ BaseBackup(void)
                 * value directly in the variable, and then set the flag that says
                 * it's there.
                 */
-               if (sscanf(xlogend, "%X/%X", &xlogendptr.xlogid, &xlogendptr.xrecoff) != 2)
+               if (sscanf(xlogend, "%X/%X", &hi, &lo) != 2)
                {
                        fprintf(stderr, _("%s: could not parse xlog end position \"%s\"\n"),
                                        progname, xlogend);
                        disconnect_and_exit(1);
                }
+               xlogendptr = ((uint64) hi) << 32 | lo;
                InterlockedIncrement(&has_xlogendptr);
 
                /* First wait for the thread to exit */