297
313
cbAdminNode->Hide();
315
wxString scriptVersion = wxEmptyString;
316
wxString xxidVersion = wxEmptyString;
299
318
txtNodeID->SetValidator(numericValidator);
300
319
txtAdminNodeID->SetValidator(numericValidator);
301
320
txtClusterName->Hide();
303
if (connection->BackendMinimumVersion(8, 0))
305
if (!AddScript(createScript, wxT("xxid.v80.sql")) ||
306
!AddScript(createScript, wxT("slony1_base.sql")) ||
307
!AddScript(createScript, wxT("slony1_funcs.sql")) ||
308
!AddScript(createScript, wxT("slony1_funcs.v80.sql")))
309
createScript = wxEmptyString;
313
if (!AddScript(createScript, wxT("xxid.v74.sql")) ||
314
!AddScript(createScript, wxT("slony1_base.sql")) ||
315
!AddScript(createScript, wxT("slony1_funcs.sql")) ||
316
!AddScript(createScript, wxT("slony1_funcs.v74.sql")))
317
createScript = wxEmptyString;
322
//We need to find the exact Slony Version.
323
//NOTE: We are not supporting Slony versions less than 1.2.0
326
AddScript(tempScript, wxT("slony1_funcs.sql"));
328
if (tempScript.Contains(wxT("@MODULEVERSION@")) && slonyVersion.IsEmpty())
330
this->database->ExecuteVoid(wxT("CREATE OR REPLACE FUNCTION pgadmin_slony_version() returns text as '$libdir/slony1_funcs', '_Slony_I_getModuleVersion' LANGUAGE C"));
331
slonyVersion = this->database->ExecuteScalar(wxT("SELECT pgadmin_slony_version();"));
332
this->database->ExecuteVoid(wxT("DROP FUNCTION pgadmin_slony_version()"));
334
if (slonyVersion.IsEmpty())
336
wxLogError(_("Couldn't test for the Slony version. Assuming 1.2.0"));
337
slonyVersion = wxT("1.2.0");
341
//Here we are finding the exact slony scripts version, which is based on Slony Version and PG Version.
342
// For Slony 1.2.0 to 1.2.17 and 2.0.0 if PG 7.3 script version is v73
343
// For Slony 1.2.0 to 1.2.17 and 2.0.0 if PG 7.4 script version is v74
344
// For Slony 1.2.0 to 1.2.6 if PG 8.0+ script version is v80
345
// For Slony 1.2.7 to 1.2.17 and 2.0.0 if PG 8.0 script version is v80
346
// For Slony 1.2.7 to 1.2.17 and 2.0.0 if PG 8.1+ script version is v81
347
// For Slony 2.0.1 and 2.0.2 if PG 8.3+ script version is v83. (These version onwards do not support PG Version less than 8.3)
348
// For Slony 2.0.3 if PG 8.3 script version is v83.
349
// For Slony 2.0.3 if PG 8.4+ script version is v84.
351
//Since both 1.2 and 2.0 series is increasing, the following code needs to be updated with each Slony or PG update.
354
if (!tempScript.IsEmpty())
356
//Set the slony_base and slony_funcs script version.
357
if (SlonyMaximumVersion(wxT("1.2"), 6))
359
if (connection->BackendMinimumVersion(8, 0))
360
scriptVersion = wxT("v80");
363
if (connection->BackendMinimumVersion(7, 4))
364
scriptVersion = wxT("v74");
366
scriptVersion = wxT("v73");
371
if (SlonyMaximumVersion(wxT("1.2"), 17) || SlonyMaximumVersion(wxT("2.0"), 0))
373
if (connection->BackendMinimumVersion(8, 1))
374
scriptVersion = wxT("v81");
377
if (connection->BackendMinimumVersion(8, 0))
378
scriptVersion = wxT("v80");
381
if (connection->BackendMinimumVersion(7, 4))
382
scriptVersion = wxT("v74");
384
scriptVersion = wxT("v73");
390
if (SlonyMaximumVersion(wxT("2.0"), 2))
391
scriptVersion = wxT("v83");
394
if (SlonyMaximumVersion(wxT("2.0"), 3))
396
if (connection->BackendMinimumVersion(8, 4))
397
scriptVersion = wxT("v84");
400
scriptVersion = wxT("v83");
406
//Set the correct xxid version if applicable
407
// For Slony 1.2.0 to 1.2.17 and 2.0.0 if PG 7.3 xxid version is v73
408
// For Slony 1.2.1 to 1.2.17 and 2.0.0 if PG 7.4+ xxid version is v74
409
// For Slony 1.2.0 if PG 8.0 xxid version is v80
410
// For Slony 2.0.1+ and PG8.4+ xxid is obsolete.
412
if (SlonyMaximumVersion(wxT("1.2"), 0))
414
if (connection->BackendMinimumVersion(8, 0))
415
xxidVersion = wxT("v80");
418
if (connection->BackendMinimumVersion(7, 4))
419
xxidVersion = wxT("v74");
421
xxidVersion = wxT("v73");
426
if (SlonyMaximumVersion(wxT("1.2"), 17) || SlonyMaximumVersion(wxT("2.0"), 0))
428
if (!connection->BackendMinimumVersion(8, 4))
430
if (connection->BackendMinimumVersion(7, 4))
431
xxidVersion = wxT("v74");
433
xxidVersion = wxT("v73");
439
wxString slonyBaseVersionFilename = wxT("slony1_base.") + scriptVersion + wxT(".sql");
440
wxString slonyFuncsVersionFilename = wxT("slony1_funcs.") + scriptVersion + wxT(".sql");
442
wxString xxidVersionFilename;
444
if (!xxidVersion.IsEmpty())
445
xxidVersionFilename = wxT("xxid.") + xxidVersion + wxT(".sql");
447
if (((!xxidVersion.IsEmpty() && !AddScript(createScript, xxidVersionFilename)) ||
448
!AddScript(createScript, wxT("slony1_base.sql")) ||
449
!AddScript(createScript, slonyBaseVersionFilename) ||
450
!AddScript(createScript, wxT("slony1_funcs.sql")) ||
451
!AddScript(createScript, slonyFuncsVersionFilename)))
452
createScript = wxEmptyString;
320
456
treeObjectIterator it(mainForm->GetBrowser(), mainForm->GetServerCollection());