Log Message:
-----------
Properly quote function return types.
Modified Files:
--------------
pgadmin3/src/include:
pgFunction.h (r1.26 -> r1.27)
pgadmin3/src/schema:
pgFunction.cpp (r1.37 -> r1.38)
Index: pgFunction.h
===================================================================
RCS file: /projects/pgadmin3/src/include/pgFunction.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -Lsrc/include/pgFunction.h -Lsrc/include/pgFunction.h -u -w -r1.26 -r1.27
--- src/include/pgFunction.h
+++ src/include/pgFunction.h
@@ -49,7 +49,9 @@
void iAddArgName(const wxString &s) { argNames.Add(s); }
void iSetArgTypeOids(const wxString& s) { argTypeOids = s; }
wxString GetReturnType() const { return returnType; }
+ wxString GetQuotedReturnType() const { return quotedReturnType; }
void iSetReturnType(const wxString& s) { returnType = s; }
+ void iSetQuotedReturnType(const wxString& s) { quotedReturnType = s; }
wxString GetLanguage() const { return language; }
void iSetLanguage(const wxString& s) { language = s; }
wxString GetVolatility() const { return volatility; }
@@ -79,7 +81,7 @@
private:
wxString argTypeOids, argTypes, quotedArgTypes,
argTypeNames, quotedArgTypeNames,
- returnType, language, volatility, source, bin;
+ returnType, quotedReturnType, language, volatility, source, bin;
wxArrayString argNames;
bool returnAsSet, secureDefiner, isStrict;
long argCount;
Index: pgFunction.cpp
===================================================================
RCS file: /projects/pgadmin3/src/schema/pgFunction.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -Lsrc/schema/pgFunction.cpp -Lsrc/schema/pgFunction.cpp -u -w -r1.37 -r1.38
--- src/schema/pgFunction.cpp
+++ src/schema/pgFunction.cpp
@@ -56,7 +56,7 @@
+ wxT(")\n RETURNS ");
if (GetReturnAsSet())
sql += wxT("SETOF ");
- sql +=GetReturnType()
+ sql +=GetQuotedReturnType()
+ wxT(" AS\n");
if (GetLanguage().IsSameAs(wxT("C"), false))
@@ -158,6 +158,7 @@
function->iSetAcl(functions->GetVal(wxT("proacl")));
function->iSetArgCount(functions->GetLong(wxT("pronargs")));
function->iSetReturnType(obj->GetDatabase()->GetSchemaPrefix(functions->GetVal(wxT("typnsp")))
+ functions->GetVal(wxT("typname")));
+
function->iSetQuotedReturnType(obj->GetDatabase()->GetQuotedSchemaPrefix(functions->GetVal(wxT("typnsp")))
+ qtIdent(functions->GetVal(wxT("typname"))));
function->iSetComment(functions->GetVal(wxT("description")));
wxString oids=functions->GetVal(wxT("proargtypes"));
wxString argNames;
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match