Changeset: c0b1da9c7d99 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0b1da9c7d99
Modified Files:
        sql/server/rel_psm.c
        tools/monetdbe/monetdbe.c
Branch: scoping2
Log Message:

Apply scoping rules to monetdbe calls and remove unecessary calls to obtain 
current schema


diffs (98 lines):

diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -429,7 +429,7 @@ rel_psm_return( sql_query *query, sql_su
                if (!(t = find_table_or_view_on_scope(sql, NULL, sname, tname, 
"RETURN", false)))
                        return NULL;
                if (isDeclaredTable(t)) {
-                       rel = rel_table(sql, ddl_create_table, 
cur_schema(sql)->base.name, t, SQL_DECLARED_TABLE);
+                       rel = rel_table(sql, ddl_create_table, "sys", t, 
SQL_DECLARED_TABLE);
                } else {
                        rel = rel_basetable(sql, t, t->base.name);
                        for (node *n = rel->exps->h ; n ; n = n->next) {
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -1498,10 +1498,13 @@ monetdbe_get_columns_remote(monetdbe_dat
 }
 
 char*
-monetdbe_get_columns(monetdbe_database dbhdl, const char* schema_name, const 
char *table_name, size_t *column_count,
+monetdbe_get_columns(monetdbe_database dbhdl, const char *schema_name, const 
char *table_name, size_t *column_count,
                                        char ***column_names, int 
**column_types)
 {
        monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl;
+       mvc *m = NULL;
+       sql_table *t = NULL;
+       int columns = 0;
 
        if ((mdbe->msg = validate_database_handle(mdbe, 
"monetdbe.monetdbe_get_columns")) != MAL_SUCCEED) {
                return mdbe->msg;
@@ -1527,25 +1530,12 @@ monetdbe_get_columns(monetdbe_database d
                return monetdbe_get_columns_remote(mdbe, schema_name, 
table_name, column_count, column_names, column_types);
        }
 
-       mvc *m;
-       sql_schema *s;
-       sql_table *t;
-       int columns;
-
        if ((mdbe->msg = getSQLContext(mdbe->c, NULL, &m, NULL)) != MAL_SUCCEED)
                return mdbe->msg;
        if ((mdbe->msg = SQLtrans(m)) != MAL_SUCCEED)
                return mdbe->msg;
-       if (schema_name) {
-               if (!(s = mvc_bind_schema(m, schema_name))) {
-                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_get_columns", "Could not find schema %s", schema_name);
-                       goto cleanup;
-               }
-       } else {
-               s = cur_schema(m);
-       }
-       if (!(t = mvc_bind_table(m, s, table_name))) {
-               mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_get_columns", "Could not find table %s", table_name);
+       if (!(t = find_table_or_view_on_scope(m, NULL, schema_name, table_name, 
"CATALOG", false))) {
+               mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_get_columns", "%s", m->errstr + 6); /* Skip error code */
                goto cleanup;
        }
 
@@ -1764,18 +1754,15 @@ cleanup:
 }
 
 char*
-monetdbe_append(monetdbe_database dbhdl, const char* schema, const char* 
table, monetdbe_column **input, size_t column_count)
+monetdbe_append(monetdbe_database dbhdl, const char *schema, const char 
*table, monetdbe_column **input, size_t column_count)
 {
        monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl;
        mvc *m = NULL;
-       sql_schema *s = NULL;
        sql_table *t = NULL;
        size_t i, cnt;
        node *n;
-
        Symbol remote_prg = NULL;
 
-
        if ((mdbe->msg = validate_database_handle(mdbe, 
"monetdbe.monetdbe_append")) != MAL_SUCCEED) {
                return mdbe->msg;
        }
@@ -1850,17 +1837,8 @@ remote_cleanup:
 
                if ((mdbe->msg = SQLtrans(m)) != MAL_SUCCEED)
                        goto cleanup;
-
-               if (schema) {
-                       if (!(s = mvc_bind_schema(m, schema))) {
-                               mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_append", "Schema missing %s", schema);
-                               goto cleanup;
-                       }
-               } else {
-                       s = cur_schema(m);
-               }
-               if (!(t = mvc_bind_table(m, s, table))) {
-                       mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Table missing %s.%s", schema, table);
+               if (!(t = find_table_or_view_on_scope(m, NULL, schema, table, 
"CATALOG", false))) {
+                       mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "%s", m->errstr + 6); /* Skip error code */
                        goto cleanup;
                }
        }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to