Changeset: de4c738053f9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=de4c738053f9
Modified Files:
sql/backends/monet5/sql_gencode.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_semantic.c
sql/server/sql_semantic.h
Branch: scoping
Log Message:
Use 'qname_schema_object' to reference an object under a schema from the parser
diffs (truncated from 664 to 300 lines):
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1208,7 +1208,7 @@ mal_function_find_implementation_address
assert(m->sym->token == SQL_CREATE_FUNC);
l = m->sym->data.lval;
ext_name = l->h->next->next->next->data.lval;
- f->imp = sa_strdup(f->sa, qname_fname(ext_name)); /* found the
implementation, set it */
+ f->imp = sa_strdup(f->sa, qname_schema_object(ext_name)); /* found the
implementation, set it */
bailout:
if (m) {
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
@@ -82,7 +82,7 @@ rel_psm_stmt(sql_allocator *sa, sql_exp
return NULL;
}
-/* SET variable = value and set (variable1, .., variableN) = (query) */
+/* SET [ schema '.' ] variable = value and set ( [ schema1 '.' ] variable1,
.., [ schemaN '.' ] variableN) = (query) */
static sql_exp *
psm_set_exp(sql_query *query, dnode *n)
{
@@ -222,7 +222,7 @@ rel_psm_declare_table(sql_query *query,
mvc *sql = query->sql;
sql_rel *rel = NULL, *baset = NULL;
dlist *qname = n->next->data.lval;
- const char *name = qname_table(qname);
+ const char *name = qname_schema_object(qname);
const char *sname = qname_schema(qname);
sql_table *t;
@@ -808,7 +808,7 @@ static sql_rel *
rel_create_func(sql_query *query, dlist *qname, dlist *params, symbol *res,
dlist *ext_name, dlist *body, sql_ftype type, sql_flang lang, int replace)
{
mvc *sql = query->sql;
- const char *fname = qname_table(qname);
+ const char *fname = qname_schema_object(qname);
const char *sname = qname_schema(qname);
sql_schema *s = NULL;
sql_func *f = NULL;
@@ -996,7 +996,7 @@ rel_create_func(sql_query *query, dlist
return rel_psm_block(sql->sa, b);
} else { /* MAL implementation */
char *fmod = qname_module(ext_name);
- char *fnme = qname_fname(ext_name);
+ char *fnme = qname_schema_object(ext_name);
int clientid = sql->clientid;
if (!fmod || !fnme)
@@ -1137,7 +1137,7 @@ resolve_func( mvc *sql, sql_schema *s, c
static sql_rel*
rel_drop_func(mvc *sql, dlist *qname, dlist *typelist, int drop_action,
sql_ftype type, int if_exists)
{
- const char *name = qname_table(qname);
+ const char *name = qname_schema_object(qname);
const char *sname = qname_schema(qname);
sql_schema *s = NULL;
sql_func *func = NULL;
@@ -1167,7 +1167,7 @@ rel_drop_func(mvc *sql, dlist *qname, dl
static sql_rel*
rel_drop_all_func(mvc *sql, dlist *qname, int drop_action, sql_ftype type)
{
- const char *name = qname_table(qname);
+ const char *name = qname_schema_object(qname);
const char *sname = qname_schema(qname);
sql_schema *s = NULL;
list * list_func = NULL;
@@ -1228,9 +1228,9 @@ create_trigger(sql_query *query, dlist *
{
mvc *sql = query->sql;
const char *triggerschema = qname_schema(qname);
- const char *triggername = qname_table(qname);
+ const char *triggername = qname_schema_object(qname);
const char *sname = qname_schema(tqname);
- const char *tname = qname_table(tqname);
+ const char *tname = qname_schema_object(tqname);
sql_schema *ss = cur_schema(sql);
sql_table *t = NULL;
sql_trigger *st = NULL;
@@ -1382,7 +1382,7 @@ static sql_rel *
drop_trigger(mvc *sql, dlist *qname, int if_exists)
{
const char *sname = qname_schema(qname);
- const char *tname = qname_table(qname);
+ const char *tname = qname_schema_object(qname);
sql_schema *ss = cur_schema(sql);
if (!sname)
@@ -1424,11 +1424,11 @@ psm_analyze(sql_query *query, char *anal
if (qname->h->next)
sname = qname_schema(qname);
else
- sname = qname_table(qname);
+ sname = qname_schema_object(qname);
if (!sname)
sname = cur_schema(sql)->base.name;
if (qname->h->next)
- tname = qname_table(qname);
+ tname = qname_schema_object(qname);
}
/* call analyze( [schema, [ table ]], opt_sample_size, opt_minmax ) */
if (sname) {
@@ -1480,7 +1480,7 @@ create_table_from_loader(sql_query *quer
mvc *sql = query->sql;
sql_schema *s = NULL;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
sql_subfunc *loader = NULL;
sql_rel* rel = NULL;
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -22,10 +22,6 @@
#include "mal_authorize.h"
-#define qname_index(qname) qname_table(qname)
-#define qname_func(qname) qname_table(qname)
-#define qname_type(qname) qname_table(qname)
-
static sql_table *
_bind_table(sql_table *t, sql_schema *ss, sql_schema *s, char *name)
{
@@ -342,7 +338,7 @@ column_constraint_type(mvc *sql, const c
case SQL_FOREIGN_KEY: {
dnode *n = s->data.lval->h;
char *rsname = qname_schema(n->data.lval);
- char *rtname = qname_table(n->data.lval);
+ char *rtname = qname_schema_object(n->data.lval);
int ref_actions = n->next->next->next->data.i_val;
sql_schema *rs;
sql_table *rt;
@@ -528,7 +524,7 @@ table_foreign_key(mvc *sql, char *name,
{
dnode *n = s->data.lval->h;
char *rsname = qname_schema(n->data.lval);
- char *rtname = qname_table(n->data.lval);
+ char *rtname = qname_schema_object(n->data.lval);
sql_schema *fs;
sql_table *ft;
@@ -861,7 +857,7 @@ table_element(sql_query *query, symbol *
case SQL_LIKE:
{
char *sname = qname_schema(s->data.lval);
- char *name = qname_table(s->data.lval);
+ char *name = qname_schema_object(s->data.lval);
sql_schema *os = NULL;
sql_table *ot = NULL;
node *n;
@@ -1149,7 +1145,7 @@ static sql_rel *
rel_create_view(sql_query *query, sql_schema *ss, dlist *qname, dlist
*column_spec, symbol *ast, int check, int persistent, int replace)
{
mvc *sql = query->sql;
- char *name = qname_table(qname);
+ char *name = qname_schema_object(qname);
char *sname = qname_schema(qname);
sql_schema *s = NULL;
sql_table *t = NULL;
@@ -1286,7 +1282,7 @@ rel_schema3(sql_allocator *sa, int cat_t
static sql_rel *
rel_drop_type(mvc *sql, dlist *qname, int drop_action)
{
- char *name = qname_table(qname);
+ char *name = qname_schema_object(qname);
char *sname = qname_schema(qname);
sql_schema *s = NULL;
@@ -1306,7 +1302,7 @@ rel_drop_type(mvc *sql, dlist *qname, in
static sql_rel *
rel_create_type(mvc *sql, dlist *qname, char *impl)
{
- char *name = qname_table(qname);
+ char *name = qname_schema_object(qname);
char *sname = qname_schema(qname);
sql_schema *s = NULL;
@@ -1451,7 +1447,7 @@ sql_alter_table(sql_query *query, dlist
{
mvc *sql = query->sql;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
sql_schema *s = NULL;
sql_table *t = NULL;
@@ -1483,7 +1479,7 @@ sql_alter_table(sql_query *query, dlist
sql_schema *spt = NULL;
sql_table *pt = NULL;
char *nsname = qname_schema(nqname);
- char *ntname = qname_table(nqname);
+ char *ntname = qname_schema_object(nqname);
/* partition sname */
if (!nsname)
@@ -1781,7 +1777,7 @@ rel_grant_table(mvc *sql, sql_schema *cu
dnode *gn;
int all = PRIV_SELECT | PRIV_UPDATE | PRIV_INSERT | PRIV_DELETE |
PRIV_TRUNCATE;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
if (!sname)
sname = cur->base.name;
@@ -1849,7 +1845,7 @@ rel_grant_func(mvc *sql, sql_schema *cur
sql_rel *res = NULL;
dnode *gn;
char *sname = qname_schema(qname);
- char *fname = qname_func(qname);
+ char *fname = qname_schema_object(qname);
sql_schema *s = NULL;
sql_func *func = NULL;
@@ -1902,7 +1898,7 @@ rel_grant_privs(mvc *sql, sql_schema *cu
if (token == SQL_NAME) {
dlist *qname = obj->data.lval;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
sql_schema *s = cur;
if (sname)
@@ -1965,7 +1961,7 @@ rel_revoke_table(mvc *sql, sql_schema *c
sql_rel *res = NULL;
int all = PRIV_SELECT | PRIV_UPDATE | PRIV_INSERT | PRIV_DELETE |
PRIV_TRUNCATE;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
if (!sname)
sname = cur->base.name;
@@ -2033,7 +2029,7 @@ rel_revoke_func(mvc *sql, sql_schema *cu
dnode *gn;
sql_rel *res = NULL;
char *sname = qname_schema(qname);
- char *fname = qname_func(qname);
+ char *fname = qname_schema_object(qname);
sql_func *func = NULL;
sql_schema *s = NULL;
@@ -2086,7 +2082,7 @@ rel_revoke_privs(mvc *sql, sql_schema *c
if (token == SQL_NAME) {
dlist *qname = obj->data.lval;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
sql_schema *s = cur;
if (sname)
@@ -2126,7 +2122,7 @@ rel_create_index(mvc *sql, char *iname,
sql_idx *i;
dnode *n;
char *sname = qname_schema(qname);
- char *tname = qname_table(qname);
+ char *tname = qname_schema_object(qname);
if (sname && !(s = mvc_bind_schema(sql, sname)))
return sql_error(sql, 02, SQLSTATE(3F000) "CREATE INDEX: no
such schema '%s'", sname);
@@ -2264,7 +2260,7 @@ rel_find_designated_table(mvc *sql, symb
qname = sym->data.lval;
if (!(s = current_or_designated_schema(sql, qname_schema(qname))))
return 0;
- tname = qname_table(qname);
+ tname = qname_schema_object(qname);
t = mvc_bind_table(sql, s, tname);
if (t && !want_table == !isKindOfTable(t)) { /* comparing booleans
can be tricky */
*schema_out = s;
@@ -2326,7 +2322,7 @@ rel_find_designated_index(mvc *sql, symb
qname = sym->data.lval;
if (!(s = current_or_designated_schema(sql, qname_schema(qname))))
return 0;
- iname = qname_table(qname);
+ iname = qname_schema_object(qname);
idx = mvc_bind_idx(sql, s, iname);
if (idx) {
*schema_out = s;
@@ -2351,7 +2347,7 @@ rel_find_designated_sequence(mvc *sql, s
qname = sym->data.lval;
if (!(s = current_or_designated_schema(sql, qname_schema(qname))))
return 0;
- seqname = qname_table(qname);
+ seqname = qname_schema_object(qname);
seq = find_sql_sequence(s, seqname);
if (seq) {
*schema_out = s;
@@ -2385,7 +2381,7 @@ rel_find_designated_routine(mvc *sql, sy
if (!(s = current_or_designated_schema(sql, qname_schema(qname))))
return 0;
- fname = qname_func(qname);
+ fname = qname_schema_object(qname);
func = resolve_func(sql, s, fname, typelist, func_type, "COMMENT", 0);
if (!func && func_type == F_FUNC) {
// functions returning a table have a special type
@@ -2694,7 +2690,7 @@ rel_schemas(sql_query *query, symbol *s)
dlist *l = s->data.lval;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list