Index: CHANGELOG.txt
===================================================================
RCS file: /projects/pgadmin3/CHANGELOG.txt,v
retrieving revision 1.171.2.3
retrieving revision 1.171.2.4
diff -LCHANGELOG.txt -LCHANGELOG.txt -u -w -r1.171.2.3 -r1.171.2.4
--- CHANGELOG.txt
+++ CHANGELOG.txt
@@ -17,6 +17,7 @@
+ - 2005-03-04 DP 1.2.1 Fix aggregate SQL generation per James Prichard
- 2005-02-07 AHP 1.2.1 fix libpq/ssl library detection
- 2005-01-13 DP 1.2.1 fix EXPLICIT CAST sql generation (r: Merlin Moncure)
- 2004-12-06 AP 1.2.1 Fix tablespace reference in namespace
Index: dlgProperty.h
===================================================================
RCS file: /projects/pgadmin3/src/include/dlgProperty.h,v
retrieving revision 1.41.2.1
retrieving revision 1.41.2.2
diff -Lsrc/include/dlgProperty.h -Lsrc/include/dlgProperty.h -u -w -r1.41.2.1 -r1.41.2.2
--- src/include/dlgProperty.h
+++ src/include/dlgProperty.h
@@ -56,7 +56,7 @@
void CheckValid(bool &enable, const bool condition, const wxString &msg);
static dlgProperty *CreateDlg(frmMain *frame, pgObject *node, bool asNew, int type=-1);
- void AppendNameChange(wxString &sql);
+ void AppendNameChange(wxString &sql, const wxString &objname=wxEmptyString);
void AppendOwnerChange(wxString &sql, const wxString &objName=wxEmptyString);
void AppendOwnerNew(wxString &sql, const wxString &objname);
void AppendComment(wxString &sql, const wxString &objType, pgSchema *schema, pgObject *obj);
Index: pgAggregate.cpp
===================================================================
RCS file: /projects/pgadmin3/src/schema/pgAggregate.cpp,v
retrieving revision 1.25.2.1
retrieving revision 1.25.2.2
diff -Lsrc/schema/pgAggregate.cpp -Lsrc/schema/pgAggregate.cpp -u -w -r1.25.2.1 -r1.25.2.2
--- src/schema/pgAggregate.cpp
+++ src/schema/pgAggregate.cpp
@@ -31,7 +31,7 @@
bool pgAggregate::DropObject(wxFrame *frame, wxTreeCtrl *browser)
{
- return GetDatabase()->ExecuteVoid(wxT("DROP AGGREGATE ") + GetQuotedFullIdentifier() + wxT("(") + GetInputType() + wxT(")"));
+ return GetDatabase()->ExecuteVoid(wxT("DROP AGGREGATE ") + GetQuotedFullIdentifier() + wxT("(") + GetInputType() + wxT(");"));
}
wxString pgAggregate::GetSql(wxTreeCtrl *browser)
@@ -39,16 +39,18 @@
if (sql.IsNull())
{
sql = wxT("-- Aggregate: ") + GetQuotedFullIdentifier() + wxT("\n\n")
- + wxT("-- DROP AGGREGATE ") + GetQuotedFullIdentifier() + wxT("(") + GetInputType() + wxT(")")
+ + wxT("-- DROP AGGREGATE ") + GetQuotedFullIdentifier() + wxT("(") + GetInputType() + wxT(");")
+ wxT("\n\nCREATE AGGREGATE ") + GetQuotedFullIdentifier()
+ wxT("(\n BASETYPE=") + GetInputType()
+ wxT(",\n SFUNC=") + GetStateFunction()
+ wxT(",\n STYPE=") + GetStateType();
- AppendIfFilled(sql, wxT(",\n FFUNC="), qtIdent(GetFinalFunction()));
+ AppendIfFilled(sql, wxT(",\n FINALFUNC="), qtIdent(GetFinalFunction()));
if (GetInitialCondition().length() > 0)
sql += wxT(",\n INITCOND=") + qtString(GetInitialCondition());
sql += wxT("\n);\n")
- + GetOwnerSql(8, 0);
+ + GetOwnerSql(8, 0, wxT("AGGREGATE ") + GetQuotedFullIdentifier()
+ + wxT("(") + qtIdent(GetInputType())
+ + wxT(")"));
if (!GetComment().IsNull())
{
Index: dlgProperty.cpp
===================================================================
RCS file: /projects/pgadmin3/src/ui/dlgProperty.cpp,v
retrieving revision 1.106.2.1
retrieving revision 1.106.2.2
diff -Lsrc/ui/dlgProperty.cpp -Lsrc/ui/dlgProperty.cpp -u -w -r1.106.2.1 -r1.106.2.2
--- src/ui/dlgProperty.cpp
+++ src/ui/dlgProperty.cpp
@@ -251,14 +251,23 @@
}
-void dlgProperty::AppendNameChange(wxString &sql)
+void dlgProperty::AppendNameChange(wxString &sql, const wxString &objName)
{
if (GetObject()->GetName() != GetName())
+ {
+ if (objName.Length() > 0)
+ {
+ sql += wxT("ALTER ") + objName
+ + wxT(" RENAME TO ") + qtIdent(GetName())
+ + wxT(";\n");
+ } else {
sql += wxT("ALTER ") + GetObject()->GetTypeName()
+ wxT(" ") + GetObject()->GetQuotedFullIdentifier()
+ wxT(" RENAME TO ") + qtIdent(GetName())
+ wxT(";\n");
}
+ }
+}
void dlgProperty::AppendOwnerChange(wxString &sql, const wxString &objName)
Index: dlgAggregate.cpp
===================================================================
RCS file: /projects/pgadmin3/src/ui/dlgAggregate.cpp,v
retrieving revision 1.21.2.1
retrieving revision 1.21.2.2
diff -Lsrc/ui/dlgAggregate.cpp -Lsrc/ui/dlgAggregate.cpp -u -w -r1.21.2.1 -r1.21.2.2
--- src/ui/dlgAggregate.cpp
+++ src/ui/dlgAggregate.cpp
@@ -210,8 +210,10 @@
if (aggregate)
{
// edit mode
- AppendNameChange(sql);
- AppendOwnerChange(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name));
+ AppendNameChange(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(aggregate->GetName()) +
+ wxT("(") + GetQuotedTypename(cbBaseType->GetGuessedSelection()) + wxT(")"));
+ AppendOwnerChange(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(GetName()) +
+ wxT("(") + GetQuotedTypename(cbBaseType->GetGuessedSelection()) + wxT(")"));
}
else
{
@@ -233,7 +235,8 @@
sql += wxT(");\n");
- AppendOwnerNew(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name));
+ AppendOwnerNew(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name)+
+ wxT("(") + GetQuotedTypename(cbBaseType->GetGuessedSelection()) + wxT(")"));
}
AppendComment(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name)
+ wxT("(") + GetQuotedTypename(cbBaseType->GetGuessedSelection())