Changeset: 756a179ab2b2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=756a179ab2b2
Modified Files:
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/server/rel_exp.c
        sql/server/rel_psm.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_sequence.c
        sql/server/rel_updates.c
        sql/server/sql_env.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_parser.y
        sql/server/sql_privileges.c
        sql/server/sql_var.c
Branch: scoping
Log Message:

Cleanup.

Look exclusively on the first frame whenver attempting to update a SQL global 
variable on the backend.
Reduced the number of lookups in the stack whenever attemping to add a SQL 
variable in relational plan.
Removed now obsolete functions for variable handling.


diffs (truncated from 1121 to 300 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -300,8 +300,8 @@ create_table_or_view(mvc *sql, char* sna
                return sql_message(SQLSTATE(3F000) "%s %s: schema '%s' doesn't 
exist", action, (t->query) ? "TABLE" : "VIEW", sname);
        if (mvc_bind_table(sql, s, t->base.name)) {
                return sql_message(SQLSTATE(42S01) "%s TABLE: name '%s' already 
in use", action, t->base.name);
-       } else if (temp != SQL_DECLARED_TABLE && (!mvc_schema_privs(sql, s) && 
!(isTempSchema(s) && temp == SQL_LOCAL_TEMP))) {
-               return sql_message(SQLSTATE(42000) "%s TABLE: insufficient 
privileges for user '%s' in schema '%s'", action, stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+       } else if (temp != SQL_DECLARED_TABLE && (!mvc_schema_privs(sql, s) && 
!(isTempSchema(s) && temp == SQL_LOCAL_TEMP))) { 
+               return sql_message(SQLSTATE(42000) "%s TABLE: insufficient 
privileges for user '%s' in schema '%s'", action, 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        } else if (temp == SQL_DECLARED_TABLE && !list_empty(t->keys.set)) {
                return sql_message(SQLSTATE(42000) "%s TABLE: '%s' cannot have 
constraints", action, t->base.name);
        }
@@ -642,6 +642,7 @@ setVariable(Client cntxt, MalBlkPtr mb, 
        int mtype = getArgType(mb, pci, 4);
        ValRecord *src;
        sql_schema *s;
+       sql_var *var;
 
        if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
                return msg;
@@ -662,30 +663,25 @@ setVariable(Client cntxt, MalBlkPtr mb, 
                                throw(SQL, "sql.setVariable", SQLSTATE(42100) 
"optimizer '%s' unknown", newopt);
                        (void) snprintf(buf, BUFSIZ, "user_%d", cntxt->idx);
                        if (!isOptimizerPipe(newopt) || strcmp(buf, newopt) == 
0) {
-                               msg = addPipeDefinition(cntxt, buf, newopt);
-                               if (msg)
+                               if ((msg = addPipeDefinition(cntxt, buf, 
newopt)))
                                        return msg;
-                               if (stack_find_var(m, s, varname)) {
-                                       if (!stack_set_string(m, s, varname, 
buf))
-                                               throw(SQL, "sql.setVariable", 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
-                               }
-                       } else if (stack_find_var(m, s, varname)) {
-                               if (!stack_set_string(m, s, varname, newopt))
+                               if (!sqlvar_set_string(find_global_var(m, s, 
varname), buf))
                                        throw(SQL, "sql.setVariable", 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
-                       }
+                       } else if (!sqlvar_set_string(find_global_var(m, s, 
varname), newopt))
+                               throw(SQL, "sql.setVariable", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
                }
                return MAL_SUCCEED;
        }
        src = &stk->stk[getArg(pci, 4)];
-       if (stack_find_var(m, s, varname)) {
+       if ((var = find_global_var(m, s, varname))) {
 #ifdef HAVE_HGE
                hge sgn = val_get_number(src);
 #else
                lng sgn = val_get_number(src);
 #endif
-               if ((msg = sql_update_var(m, s, varname, src->val.sval, sgn)) 
!= NULL)
+               if ((msg = sql_update_var(m, s, varname, src->val.sval, sgn)))
                        return msg;
-               if (!stack_set_var(m, s, varname, src))
+               if (!sqlvar_set(var, src))
                        throw(SQL, "sql.setVariable", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
        } else {
                throw(SQL, "sql.setVariable", SQLSTATE(42100) "Variable '%s.%s' 
unknown", sname, varname);
@@ -702,9 +698,9 @@ getVariable(Client cntxt, MalBlkPtr mb, 
        str msg;
        const char *sname = *getArgReference_str(stk, pci, 2);
        const char *varname = *getArgReference_str(stk, pci, 3);
-       atom *a;
        ValRecord *dst, *src;
        sql_schema *s;
+       sql_var *var;
 
        if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
                return msg;
@@ -715,9 +711,9 @@ getVariable(Client cntxt, MalBlkPtr mb, 
                throw(SQL, "sql.getVariable", SQLSTATE(3F000) "Cannot find the 
schema '%s'", sname);
        if (mtype < 0 || mtype >= 255)
                throw(SQL, "sql.getVariable", SQLSTATE(42100) "Variable type 
error");
-       if (!(a = stack_get_var(m, s, varname)))
+       if (!(var = find_global_var(m, s, varname)))
                throw(SQL, "sql.getVariable", SQLSTATE(42100) "Variable '%s.%s' 
unknown", sname, varname);
-       src = &a->data;
+       src = &(var->var.data);
        dst = &stk->stk[getArg(pci, 0)];
        if (VALcopy(dst, src) == NULL)
                throw(MAL, "sql.getVariable", SQLSTATE(HY013) MAL_MALLOC_FAIL);
@@ -804,7 +800,7 @@ mvc_next_value(Client cntxt, MalBlkPtr m
 
        if (seq_next_value(seq, res)) {
                m->last_id = *res;
-               stack_set_number(m, mvc_bind_schema(m, "sys"), "last_id", 
m->last_id);
+               sqlvar_set_number(find_global_var(m, mvc_bind_schema(m, "sys"), 
"last_id"), m->last_id);
                return MAL_SUCCEED;
        }
        throw(SQL, "sql.next_value", SQLSTATE(42000) "Error in fetching next 
value for sequence %s.%s", sname, seqname);
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -148,9 +148,9 @@ validate_alter_table_add_table(mvc *sql,
        if (psname && !(ps = mvc_bind_schema(sql, psname)))
                throw(SQL,call,SQLSTATE(3F000) "ALTER TABLE: no such schema 
'%s'", psname);
        if (!mvc_schema_privs(sql, ms))
-               throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: access denied for 
%s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, "sys"), 
"current_user"), ms->base.name);
+               throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: access denied for 
%s to schema '%s'", sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, 
"sys"), "current_user")), ms->base.name);
        if (!mvc_schema_privs(sql, ps))
-               throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: access denied for 
%s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, "sys"), 
"current_user"), ps->base.name);
+               throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: access denied for 
%s to schema '%s'", sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, 
"sys"), "current_user")), ps->base.name);
        if (!(rmt = mvc_bind_table(sql, ms, mtname)))
                throw(SQL,call,SQLSTATE(42S02) "ALTER TABLE: no such table '%s' 
in schema '%s'", ms->base.name, mtname);
        if (!(rpt = mvc_bind_table(sql, ps, ptname)))
@@ -409,9 +409,9 @@ alter_table_del_table(mvc *sql, char *ms
        if (psname && !(ps = mvc_bind_schema(sql, psname)))
                throw(SQL,"sql.alter_table_del_table",SQLSTATE(3F000) "ALTER 
TABLE: no such schema '%s'", psname);
        if (!mvc_schema_privs(sql, ms))
-               throw(SQL,"sql.alter_table_del_table",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), ms->base.name);
+               throw(SQL,"sql.alter_table_del_table",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), ms->base.name);
        if (!mvc_schema_privs(sql, ps))
-               throw(SQL,"sql.alter_table_del_table",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), ps->base.name);
+               throw(SQL,"sql.alter_table_del_table",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), ps->base.name);
        if (!(mt = mvc_bind_table(sql, ms, mtname)))
                throw(SQL,"sql.alter_table_del_table",SQLSTATE(42S02) "ALTER 
TABLE: no such table '%s' in schema '%s'", ms->base.name, mtname);
        if (!(pt = mvc_bind_table(sql, ps, ptname)))
@@ -435,7 +435,7 @@ alter_table_set_access(mvc *sql, char *s
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.alter_table_set_access",SQLSTATE(3F000) "ALTER 
TABLE: no such schema '%s'", sname);
        if (s && !mvc_schema_privs(sql, s))
-               throw(SQL,"sql.alter_table_set_access",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.alter_table_set_access",SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        if (!(t = mvc_bind_table(sql, s, tname)))
                throw(SQL,"sql.alter_table_set_access",SQLSTATE(42S02) "ALTER 
TABLE: no such table '%s' in schema '%s'", tname, s->base.name);
        if (isMergeTable(t))
@@ -461,7 +461,7 @@ create_trigger(mvc *sql, char *sname, ch
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.create_trigger",SQLSTATE(3F000) "CREATE TRIGGER: 
no such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.create_trigger",SQLSTATE(42000) "CREATE TRIGGER: 
access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.create_trigger",SQLSTATE(42000) "CREATE TRIGGER: 
access denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (mvc_bind_trigger(sql, s, triggername))
                throw(SQL,"sql.create_trigger",SQLSTATE(3F000) "CREATE TRIGGER: 
name '%s' already in use", triggername);
        if (!(t = mvc_bind_table(sql, s, tname)))
@@ -512,7 +512,7 @@ drop_trigger(mvc *sql, char *sname, char
                throw(SQL,"sql.drop_trigger",SQLSTATE(3F000) "DROP TRIGGER: no 
such schema '%s'", sname);
        }
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_trigger",SQLSTATE(42000) "DROP TRIGGER: 
access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_trigger",SQLSTATE(42000) "DROP TRIGGER: 
access denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
 
        if ((tri = mvc_bind_trigger(sql, s, tname)) == NULL) {
                if (if_exists)
@@ -551,7 +551,7 @@ drop_table(mvc *sql, char *sname, char *
        if (t->system)
                throw(SQL,"sql.drop_table", SQLSTATE(42000) "DROP TABLE: cannot 
drop system table '%s'", tname);
        if (!mvc_schema_privs(sql, s) && !(isTempSchema(s) && t->persistence == 
SQL_LOCAL_TEMP))
-               throw(SQL,"sql.drop_table", SQLSTATE(42000) "DROP TABLE: access 
denied for %s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_table", SQLSTATE(42000) "DROP TABLE: access 
denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (!drop_action && t->keys.set) {
                for (n = t->keys.set->h; n; n = n->next) {
                        sql_key *k = n->data;
@@ -596,7 +596,7 @@ drop_view(mvc *sql, char *sname, char *t
                throw(SQL,"sql.drop_view",SQLSTATE(42S02) "DROP VIEW: unknown 
view '%s'", tname);
        }
        if (!mvc_schema_privs(sql, ss) && !(isTempSchema(ss) && t && 
t->persistence == SQL_LOCAL_TEMP))
-               throw(SQL,"sql.drop_view", SQLSTATE(42000) "DROP VIEW: access 
denied for %s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), ss->base.name);
+               throw(SQL,"sql.drop_view", SQLSTATE(42000) "DROP VIEW: access 
denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), ss->base.name);
        if (!isView(t))
                throw(SQL,"sql.drop_view", SQLSTATE(42000) "DROP VIEW: unable 
to drop view '%s': is a table", tname);
        if (t->system)
@@ -615,7 +615,7 @@ drop_key(mvc *sql, char *sname, char *kn
        if (sname && !(ss = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.drop_key", SQLSTATE(3F000) "ALTER TABLE: no such 
schema '%s'", sname);
        if (!mvc_schema_privs(sql, ss))
-               throw(SQL,"sql.drop_key", SQLSTATE(42000) "ALTER TABLE: access 
denied for %s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), ss->base.name);
+               throw(SQL,"sql.drop_key", SQLSTATE(42000) "ALTER TABLE: access 
denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), ss->base.name);
        if ((key = mvc_bind_key(sql, ss, kname)) == NULL)
                throw(SQL,"sql.drop_key", SQLSTATE(42000) "ALTER TABLE: no such 
constraint '%s'", kname);
        if (!drop_action && mvc_check_dependency(sql, key->base.id, 
KEY_DEPENDENCY, NULL))
@@ -634,7 +634,7 @@ drop_index(Client cntxt, mvc *sql, char 
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.drop_index", SQLSTATE(3F000) "DROP INDEX: no 
such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_index", SQLSTATE(42000) "DROP INDEX: access 
denied for %s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), s->base.name); 
+               throw(SQL,"sql.drop_index", SQLSTATE(42000) "DROP INDEX: access 
denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name); 
        if (!(i = mvc_bind_idx(sql, s, iname)))
                throw(SQL,"sql.drop_index", SQLSTATE(42S12) "DROP INDEX: no 
such index '%s'", iname);
        if (i->type == ordered_idx) {
@@ -667,7 +667,7 @@ create_seq(mvc *sql, char *sname, char *
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.create_seq", SQLSTATE(3F000) "CREATE SEQUENCE: 
no such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.create_seq", SQLSTATE(42000) "CREATE SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.create_seq", SQLSTATE(42000) "CREATE SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        if (find_sql_sequence(s, seq->base.name))
                throw(SQL,"sql.create_seq", SQLSTATE(42000) "CREATE SEQUENCE: 
name '%s' already in use", seq->base.name);
        if (is_lng_nil(seq->start) || is_lng_nil(seq->minvalue) || 
is_lng_nil(seq->maxvalue) ||
@@ -693,7 +693,7 @@ alter_seq(mvc *sql, char *sname, char *s
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.alter_seq", SQLSTATE(3F000) "ALTER SEQUENCE: no 
such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.alter_seq", SQLSTATE(42000) "ALTER SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.alter_seq", SQLSTATE(42000) "ALTER SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        if (!(nseq = find_sql_sequence(s, seq->base.name)))
                throw(SQL,"sql.alter_seq", SQLSTATE(42000) "ALTER SEQUENCE: no 
such sequence '%s'", seq->base.name);
        /* if seq properties hold NULL values, then they should be ignored 
during the update */
@@ -723,7 +723,7 @@ drop_seq(mvc *sql, char *sname, char *na
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.drop_seq", SQLSTATE(3F000) "DROP SEQUENCE: no 
such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_seq", SQLSTATE(42000) "DROP SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_seq", SQLSTATE(42000) "DROP SEQUENCE: 
insufficient privileges for '%s' in schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        if (!(seq = find_sql_sequence(s, name)))
                throw(SQL,"sql.drop_seq", SQLSTATE(42M35) "DROP SEQUENCE: no 
such sequence '%s'", name);
        if (mvc_check_dependency(sql, seq->base.id, BEDROPPED_DEPENDENCY, NULL))
@@ -747,7 +747,7 @@ drop_func(mvc *sql, char *sname, char *n
                throw(SQL,"sql.drop_func", SQLSTATE(3F000) "DROP %s: no such 
schema '%s'", F, sname);
        }
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_func", SQLSTATE(42000) "DROP %s: access 
denied for %s to schema '%s'", F, stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_func", SQLSTATE(42000) "DROP %s: access 
denied for %s to schema '%s'", F, sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (fid >= 0) {
                node *n = find_sql_func_node(s, fid);
                if (n) {
@@ -796,7 +796,7 @@ create_func(mvc *sql, char *sname, char 
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.create_func", SQLSTATE(3F000) "CREATE %s: no 
such schema '%s'", F, sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.create_func", SQLSTATE(42000) "CREATE %s: access 
denied for %s to schema '%s'", F, stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.create_func", SQLSTATE(42000) "CREATE %s: access 
denied for %s to schema '%s'", F, sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        nf = mvc_create_func(sql, NULL, s, f->base.name, f->ops, f->res, 
f->type, f->lang, f->mod, f->imp, f->query, f->varres, f->vararg, f->system);
        assert(nf);
        switch (nf->lang) {
@@ -867,7 +867,7 @@ alter_table(Client cntxt, mvc *sql, char
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.alter_table", SQLSTATE(3F000) "ALTER TABLE: no 
such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s) && !(isTempSchema(s) && t->persistence == 
SQL_LOCAL_TEMP))
-               throw(SQL,"sql.alter_table", SQLSTATE(42000) "ALTER TABLE: 
insufficient privileges for user '%s' in schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.alter_table", SQLSTATE(42000) "ALTER TABLE: 
insufficient privileges for user '%s' in schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), s->base.name);
        if (!(nt = mvc_bind_table(sql, s, t->base.name)))
                throw(SQL,"sql.alter_table", SQLSTATE(42S02) "ALTER TABLE: no 
such table '%s'", t->base.name);
 
@@ -1073,7 +1073,7 @@ SQLcreate_schema(Client cntxt, MalBlkPtr
        if (name && (auth_id = sql_find_auth(sql, name)) < 0)
                throw(SQL,"sql.create_schema", SQLSTATE(42M32) "CREATE SCHEMA: 
no such authorization '%s'", name);
        if (sql->user_id != USER_MONETDB && sql->role_id != ROLE_SYSADMIN)
-               throw(SQL,"sql.create_schema", SQLSTATE(42000) "CREATE SCHEMA: 
insufficient privileges for user '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"));
+               throw(SQL,"sql.create_schema", SQLSTATE(42000) "CREATE SCHEMA: 
insufficient privileges for user '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")));
        if (mvc_bind_schema(sql, sname))
                throw(SQL,"sql.create_schema", SQLSTATE(3F000) "CREATE SCHEMA: 
name '%s' already in use", sname);
        (void) mvc_create_schema(sql, sname, auth_id, sql->user_id);
@@ -1099,7 +1099,7 @@ SQLdrop_schema(Client cntxt, MalBlkPtr m
                return MAL_SUCCEED;
        }
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_schema",SQLSTATE(42000) "DROP SCHEMA: 
access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_schema",SQLSTATE(42000) "DROP SCHEMA: 
access denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (s == cur_schema(sql))
                throw(SQL,"sql.drop_schema",SQLSTATE(42000) "DROP SCHEMA: 
cannot drop current schema");
        if (s->system)
@@ -1215,7 +1215,7 @@ SQLcreate_type(Client cntxt, MalBlkPtr m
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.create_type",SQLSTATE(3F000) "CREATE TYPE: no 
such schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.create_type", SQLSTATE(42000) "CREATE TYPE: 
access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.create_type", SQLSTATE(42000) "CREATE TYPE: 
access denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (schema_bind_type(sql, s, name))
                throw(SQL,"sql.create_type", SQLSTATE(42S02) "CREATE TYPE: type 
'%s' already exists", name);
        if (!mvc_create_type(sql, s, name, 0, 0, 0, impl))
@@ -1239,7 +1239,7 @@ SQLdrop_type(Client cntxt, MalBlkPtr mb,
        if (sname && !(s = mvc_bind_schema(sql, sname)))
                throw(SQL,"sql.drop_type",SQLSTATE(3F000) "DROP TYPE: no such 
schema '%s'", sname);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL,"sql.drop_type", SQLSTATE(42000) "DROP TYPE:  access 
denied for %s to schema '%s'", stack_get_string(sql, mvc_bind_schema(sql, 
"sys"), "current_user"), s->base.name);
+               throw(SQL,"sql.drop_type", SQLSTATE(42000) "DROP TYPE:  access 
denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), s->base.name);
        if (!(t = schema_bind_type(sql, s, name)))
                throw(SQL,"sql.drop_type", SQLSTATE(3F000) "DROP TYPE: type 
'%s' does not exist", name);
        if (!drop_action && mvc_check_dependency(sql, t->base.id, 
TYPE_DEPENDENCY, NULL))
@@ -1644,7 +1644,7 @@ SQLrename_schema(Client cntxt, MalBlkPtr
        if (!(s = mvc_bind_schema(sql, old_name)))
                throw(SQL, "sql.rename_schema", SQLSTATE(42S02) "ALTER SCHEMA: 
no such schema '%s'", old_name);
        if (!mvc_schema_privs(sql, s))
-               throw(SQL, "sql.rename_schema", SQLSTATE(42000) "ALTER SCHEMA: 
access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), old_name);
+               throw(SQL, "sql.rename_schema", SQLSTATE(42000) "ALTER SCHEMA: 
access denied for %s to schema '%s'", sqlvar_get_string(find_global_var(sql, 
mvc_bind_schema(sql, "sys"), "current_user")), old_name);
        if (s->system)
                throw(SQL, "sql.rename_schema", SQLSTATE(3F000) "ALTER SCHEMA: 
cannot rename a system schema");
        if (!list_empty(s->tables.set) || !list_empty(s->types.set) || 
!list_empty(s->funcs.set) || !list_empty(s->seqs.set))
@@ -1680,7 +1680,7 @@ SQLrename_table(Client cntxt, MalBlkPtr 
                if (!(s = mvc_bind_schema(sql, oschema_name)))
                        throw(SQL, "sql.rename_table", SQLSTATE(42S02) "ALTER 
TABLE: no such schema '%s'", oschema_name);
                if (!mvc_schema_privs(sql, s))
-                       throw(SQL, "sql.rename_table", SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), oschema_name);
+                       throw(SQL, "sql.rename_table", SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), oschema_name);
                if (!(t = mvc_bind_table(sql, s, otable_name)))
                        throw(SQL, "sql.rename_table", SQLSTATE(42S02) "ALTER 
TABLE: no such table '%s' in schema '%s'", otable_name, oschema_name);
                if (t->system)
@@ -1700,7 +1700,7 @@ SQLrename_table(Client cntxt, MalBlkPtr 
                if (!(o = mvc_bind_schema(sql, oschema_name)))
                        throw(SQL, "sql.rename_table", SQLSTATE(42S02) "ALTER 
TABLE: no such schema '%s'", oschema_name);
                if (!mvc_schema_privs(sql, o))
-                       throw(SQL, "sql.rename_table", SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", stack_get_string(sql, 
mvc_bind_schema(sql, "sys"), "current_user"), oschema_name);
+                       throw(SQL, "sql.rename_table", SQLSTATE(42000) "ALTER 
TABLE: access denied for %s to schema '%s'", 
sqlvar_get_string(find_global_var(sql, mvc_bind_schema(sql, "sys"), 
"current_user")), oschema_name);
                if (!(t = mvc_bind_table(sql, o, otable_name)))
                        throw(SQL, "sql.rename_table", SQLSTATE(42S02) "ALTER 
TABLE: no such table '%s' in schema '%s'", otable_name, oschema_name);
                if (t->system)
@@ -1716,7 +1716,7 @@ SQLrename_table(Client cntxt, MalBlkPtr 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to