Hi,

> The pgAdmin source base is peppered with references to a non-existent
> "proargdefvals" attribute.


Ok, this was being used in AS83, so we cannot remove these references
completely.


> The FEATURE_FUNCTION_DEFAULTS feature will not get set because of this
> ever. This patch replaces the references to this attribute by the valid
> "proargdefaults" attribute.
>
>
PFA, a revised patch which now checks for version number apropriately. The
problem seems to be only with procedures/functions belonging to packages in
the code.

Regards,
Nikhils
diff --git a/pgadmin/db/pgConn.cpp b/pgadmin/db/pgConn.cpp
index 5589b89..a40782b 100644
--- a/pgadmin/db/pgConn.cpp
+++ b/pgadmin/db/pgConn.cpp
@@ -517,7 +517,9 @@ bool pgConn::HasFeature(int featureNo, bool forceCheck)
 		}
 
 		// Check for EDB function parameter default support
-		wxString hasFuncDefs = ExecuteScalar(wxT("SELECT count(*) FROM pg_attribute WHERE attrelid = 'pg_catalog.pg_proc'::regclass AND attname = 'proargdefvals'"));
+		wxString defCol = EdbMinimumVersion(8, 4) ? wxT("'proargdefaults'") : wxT("'proargdefvals'");
+
+		wxString hasFuncDefs = ExecuteScalar(wxT("SELECT count(*) FROM pg_attribute WHERE attrelid = 'pg_catalog.pg_proc'::regclass AND attname = ") + defCol);
 		if (hasFuncDefs == wxT("1"))
 			features[FEATURE_FUNCTION_DEFAULTS] = true;
 		else
diff --git a/pgadmin/schema/edbPackageFunction.cpp b/pgadmin/schema/edbPackageFunction.cpp
index ed0b692..49faae7 100644
--- a/pgadmin/schema/edbPackageFunction.cpp
+++ b/pgadmin/schema/edbPackageFunction.cpp
@@ -189,7 +189,10 @@ edbPackageFunction *edbPackageFunctionFactory::AppendFunctions(pgObject *obj, ed
 	wxString sql, argDefsCol;
 
 	if (obj->GetConnection()->HasFeature(FEATURE_FUNCTION_DEFAULTS))
-		argDefsCol = wxT("proargdefvals, ");
+	{
+		argDefsCol = obj->GetConnection()->EdbMinimumVersion(8, 4) ? wxT("proargdefaults") : wxT("proargdefvals");
+		argDefsCol += wxT(" AS argdefaults, ");
+	}
 
 	if (obj->GetConnection()->EdbMinimumVersion(8, 2))
 	{
@@ -259,7 +262,8 @@ edbPackageFunction *edbPackageFunctionFactory::AppendFunctions(pgObject *obj, ed
 			// Function defaults
 			if (obj->GetConnection()->HasFeature(FEATURE_FUNCTION_DEFAULTS))
 			{
-				tmp = packageFunctions->GetVal(wxT("proargdefvals"));
+				tmp = packageFunctions->GetVal(wxT("argdefaults"));
+
 				if (!tmp.IsEmpty())
 					argDefsTkz.SetString(tmp.Mid(1, tmp.Length() - 2), wxT(","));
 			}
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to