Alvaro Herrera wrote: > > Excerpts from Bruce Momjian's message of mi?? sep 28 13:48:28 -0300 2011: > > Bruce Momjian wrote: > > > OK, so it fails for all tables and you are using the newest version. > > > Thanks for all your work. I am now guessing that pg_upgrade 9.1.X is > > > just broken on Windows. > > > > > > Perhaps the variables set by pg_upgrade_support.so are not being passed > > > into the server variables? I know pg_upgrade 9.0.X worked on Windows > > > because EnterpriseDB did extensive testing recently on this. Has > > > anyone used pg_upgrade 9.1.X on Windows? > > > > OK, I have a new theory. postmaster.c processes the -b > > (binary-upgrade) flag by setting a C variable: > > > > case 'b': > > /* Undocumented flag used for binary upgrades */ > > IsBinaryUpgrade = true; > > break; > > > > I am now wondering if this variable is not being passed down to the > > sessions during Win32's EXEC_BACKEND. Looking at the other postmaster > > settings, these set GUC variables, which I assume are passed down. Can > > someone confirm this? > > Well, you could compile it with -DEXEC_BACKEND to test it for yourself. > > > How should this be fixed? > > Maybe it should be part of struct BackendParameters.
Thanks. That's what I did, and tested the failure with -DEXEC_BACKEND, and the fix with the patch, which is attached. I am confident this will fix Windows as well. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c new file mode 100644 index 94b57fa..0a84d97 *** a/src/backend/postmaster/postmaster.c --- b/src/backend/postmaster/postmaster.c *************** typedef struct *** 433,438 **** --- 433,439 ---- TimestampTz PgStartTime; TimestampTz PgReloadTime; bool redirection_done; + bool IsBinaryUpgrade; #ifdef WIN32 HANDLE PostmasterHandle; HANDLE initial_signal_pipe; *************** save_backend_variables(BackendParameters *** 4653,4658 **** --- 4654,4660 ---- param->PgReloadTime = PgReloadTime; param->redirection_done = redirection_done; + param->IsBinaryUpgrade = IsBinaryUpgrade; #ifdef WIN32 param->PostmasterHandle = PostmasterHandle; *************** restore_backend_variables(BackendParamet *** 4874,4879 **** --- 4876,4882 ---- PgReloadTime = param->PgReloadTime; redirection_done = param->redirection_done; + IsBinaryUpgrade = param->IsBinaryUpgrade; #ifdef WIN32 PostmasterHandle = param->PostmasterHandle;
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers