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