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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list