diff --git a/pgadmin/dlg/dlgDatabase.cpp b/pgadmin/dlg/dlgDatabase.cpp index 84bf9af..325ede2 100644 --- a/pgadmin/dlg/dlgDatabase.cpp +++ b/pgadmin/dlg/dlgDatabase.cpp @@ -439,12 +439,25 @@ bool dlgDatabase::executeDDLSql(const wxString &strSql) if (data->majorVer > 1 || (data->majorVer == 1 && data->minorVer >= 2)) { - tmp = wxT("SELECT ") + qtIdent(data->cluster) - + wxT(".ddlscript_prepare(") + NumToStr(data->setId) + wxT(", -1);\n") - + strSql + wxT(";\n") - + wxT("SELECT ") + qtIdent(data->cluster) - + wxT(".ddlscript_complete(") + NumToStr(data->setId) + wxT(", ") - + qtDbString(strSql) + wxT(", -1);\n"); + // From slony version 2.2.0 onwards ddlscript_prepare() method is removed and + // ddlscript_complete() method arguments got changed so we have to use ddlcapture() method + // instead of ddlscript_prepare() and changed the argument of ddlscript_complete() method + if (data->majorVer >= 2 && data->minorVer >= 2) + { + tmp = wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlcapture(") + qtDbString(strSql) + wxT(", ") + wxT("NULL::text") + wxT(");\n") + + wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_complete(") + wxT("NULL::text") + wxT(");\n"); + } + else + { + tmp = wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_prepare(") + NumToStr(data->setId) + wxT(", -1);\n") + + strSql + wxT(";\n") + + wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_complete(") + NumToStr(data->setId) + wxT(", ") + + qtDbString(strSql) + wxT(", -1);\n"); + } } else { diff --git a/pgadmin/dlg/dlgProperty.cpp b/pgadmin/dlg/dlgProperty.cpp index 48af320..9f976a5 100644 --- a/pgadmin/dlg/dlgProperty.cpp +++ b/pgadmin/dlg/dlgProperty.cpp @@ -952,12 +952,25 @@ wxString dlgProperty::BuildSql(const wxString &sql) { if (data->majorVer > 1 || (data->majorVer == 1 && data->minorVer >= 2)) { - tmp = wxT("SELECT ") + qtIdent(data->cluster) - + wxT(".ddlscript_prepare(") + NumToStr(data->setId) + wxT(", -1);\n") - + sql + wxT(";\n") - + wxT("SELECT ") + qtIdent(data->cluster) - + wxT(".ddlscript_complete(") + NumToStr(data->setId) + wxT(", ") - + qtDbString(sql) + wxT(", -1);\n"); + // From slony version 2.2.0 onwards ddlscript_prepare() method is removed and + // ddlscript_complete() method arguments got changed so we have to use ddlcapture() method + // instead of ddlscript_prepare() and changed the argument of ddlscript_complete() method + if (data->majorVer >= 2 && data->minorVer >= 2) + { + tmp = wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlcapture(") + qtDbString(sql) + wxT(", ") + wxT("NULL::text") + wxT(" );\n") + + wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_complete(") + wxT("NULL::text") + wxT(" );\n"); + } + else + { + tmp = wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_prepare(") + NumToStr(data->setId) + wxT(", -1);\n") + + sql + wxT(";\n") + + wxT("SELECT ") + qtIdent(data->cluster) + + wxT(".ddlscript_complete(") + NumToStr(data->setId) + wxT(", ") + + qtDbString(sql) + wxT(", -1);\n"); + } } else {