Changeset: daee50128ff3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=daee50128ff3
Modified Files:
        clients/odbc/driver/SQLProcedures.c
Branch: default
Log Message:

We need to distinguish functions and procedures using the type column.


diffs (48 lines):

diff --git a/clients/odbc/driver/SQLProcedures.c 
b/clients/odbc/driver/SQLProcedures.c
--- a/clients/odbc/driver/SQLProcedures.c
+++ b/clients/odbc/driver/SQLProcedures.c
@@ -122,23 +122,28 @@ SQLProcedures_(ODBCStmt *stmt,
        assert(query);
        query_end = query;
 
+/* see sql_catalog.h */
+#define F_FUNC 1
+#define F_PROC 2
+#define F_UNION 5
        snprintf(query_end, 1000,
-                "select \"e\".\"value\" as \"procedure_cat\","
-                "       \"s\".\"name\" as \"procedure_schem\","
-                "       \"p\".\"name\" as \"procedure_name\","
-                "       0 as \"num_input_params\","
-                "       0 as \"num_output_params\","
-                "       0 as \"num_result_sets\","
-                "       cast('' as varchar(1)) as \"remarks\","
-                "       cast(case when \"a\".\"name\" is null then %d else %d 
end as smallint) as \"procedure_type\""
-                "from \"sys\".\"schemas\" as \"s\","
-                "     \"sys\".\"env\"() as \"e\","
-                "     \"sys\".\"functions\" as \"p\" left outer join 
\"sys\".\"args\" as \"a\""
-                "             on \"p\".\"id\" = \"a\".\"func_id\" and 
\"a\".\"name\" = 'result'"
-                "where \"p\".\"schema_id\" = \"s\".\"id\" and"
-                "      \"p\".\"sql\" = true and"
-                "      \"e\".\"name\" = 'gdk_dbname'",
-                SQL_PT_PROCEDURE, SQL_PT_FUNCTION);
+                "select \"e\".\"value\" as \"procedure_cat\", "
+                       "\"s\".\"name\" as \"procedure_schem\", "
+                       "\"p\".\"name\" as \"procedure_name\", "
+                       "0 as \"num_input_params\", "
+                       "0 as \"num_output_params\", "
+                       "0 as \"num_result_sets\", "
+                       "cast('' as varchar(1)) as \"remarks\", "
+                       "cast(case when \"p\".\"type\" = %d then %d else %d end 
as smallint) as \"procedure_type\" "
+                "from \"sys\".\"schemas\" as \"s\", "
+                     "\"sys\".\"env\"() as \"e\", "
+                     "\"sys\".\"functions\" as \"p\" "
+                "where \"p\".\"schema_id\" = \"s\".\"id\" and "
+                      "\"p\".\"sql\" = true and "
+                      "\"p\".\"type\" in (%d, %d, %d) and "
+                      "\"e\".\"name\" = 'gdk_dbname'",
+                F_PROC, SQL_PT_PROCEDURE, SQL_PT_FUNCTION,
+                F_FUNC, F_PROC, F_UNION);
        assert(strlen(query) < 800);
        query_end += strlen(query_end);
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to