Changeset: 7e095ca4ac61 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7e095ca4ac61 Modified Files: sql/server/rel_dump.c Branch: Apr2019 Log Message:
Backported rel_read features added in acticloud branch. diffs (truncated from 973 to 300 lines): diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -14,6 +14,7 @@ #include "rel_rel.h" #include "rel_exp.h" #include "rel_prop.h" +#include "rel_updates.h" #include "rel_remote.h" #include "mal_errors.h" /* for SQLSTATE() */ @@ -32,7 +33,7 @@ print_indent(mvc *sql, stream *fout, int if (depth > LINESIZE) depth = LINESIZE; for (i = 0; i < depth; i++){ - if ((i % TABSTOP) == 0) + if ((i % TABSTOP) == 0) buf[i] = '|'; else buf[i] = ' '; @@ -42,7 +43,7 @@ print_indent(mvc *sql, stream *fout, int } static void -cmp_print(mvc *sql, stream *fout, int cmp) +cmp_print(mvc *sql, stream *fout, int cmp) { char *r; @@ -68,7 +69,7 @@ cmp_print(mvc *sql, stream *fout, int cm static void exps_print(mvc *sql, stream *fout, list *exps, int depth, list *refs, int alias, int brackets); static void -exp_print(mvc *sql, stream *fout, sql_exp *e, int depth, list *refs, int comma, int alias) +exp_print(mvc *sql, stream *fout, sql_exp *e, int depth, list *refs, int comma, int alias) { (void)sql; if (!e) @@ -115,7 +116,7 @@ exp_print(mvc *sql, stream *fout, sql_ex atom *a = e->l; if (atom_type(a)->type->localtype == TYPE_ptr) { sql_table *t = a->data.val.pval; - mnstr_printf(fout, "%s(%s)", + mnstr_printf(fout, "%s(%s)", isStream(t)?"stream": isMergeTable(t)?"merge table": isReplicaTable(t)?"replica table":"table", @@ -148,8 +149,8 @@ exp_print(mvc *sql, stream *fout, sql_ex } break; case e_func: { sql_subfunc *f = e->f; - mnstr_printf(fout, "%s.%s", - f->func->s?f->func->s->base.name:"sys", + mnstr_printf(fout, "%s.%s", + f->func->s?f->func->s->base.name:"sys", f->func->base.name); exps_print(sql, fout, e->l, depth, refs, alias, 1); if (e->r) @@ -157,8 +158,8 @@ exp_print(mvc *sql, stream *fout, sql_ex } break; case e_aggr: { sql_subaggr *a = e->f; - mnstr_printf(fout, "%s.%s", - a->aggr->s?a->aggr->s->base.name:"sys", + mnstr_printf(fout, "%s.%s", + a->aggr->s?a->aggr->s->base.name:"sys", a->aggr->base.name); if (need_distinct(e)) mnstr_printf(fout, " unique "); @@ -171,18 +172,18 @@ exp_print(mvc *sql, stream *fout, sql_ex else mnstr_printf(fout, "()"); } break; - case e_column: + case e_column: if (e->l) mnstr_printf(fout, "\"%s\".", (char*)e->l); mnstr_printf(fout, "\"%s\"", (char*)e->r); if (e->rname && e->name && e->l && e->r && strcmp(e->rname, e->l) == 0 && - strcmp(e->name, e->r) == 0) + strcmp(e->name, e->r) == 0) alias = 0; if (!e->rname && e->name && strcmp(e->name, e->r)==0) alias = 0; break; - case e_cmp: + case e_cmp: if (e->flag == cmp_in || e->flag == cmp_notin) { exp_print(sql, fout, e->l, depth, refs, 0, alias); cmp_print(sql, fout, get_cmp(e)); @@ -248,7 +249,7 @@ exp_print(mvc *sql, stream *fout, sql_ex } static void -exps_print(mvc *sql, stream *fout, list *exps, int depth, list *refs, int alias, int brackets) +exps_print(mvc *sql, stream *fout, list *exps, int depth, list *refs, int alias, int brackets) { node *en; @@ -257,7 +258,7 @@ exps_print(mvc *sql, stream *fout, list else mnstr_printf(fout, " [ "); if (exps) - for (en = exps->h; en; en = en->next) + for (en = exps->h; en; en = en->next) exp_print(sql, fout, en->data, depth+1, refs, (en->next!=NULL), alias); if (brackets) mnstr_printf(fout, ")"); @@ -266,7 +267,7 @@ exps_print(mvc *sql, stream *fout, list } const char * -op2string(operator_type op) +op2string(operator_type op) { switch (op) { case op_basetable: @@ -277,31 +278,31 @@ op2string(operator_type op) return "ddl"; case op_project: return "project"; - case op_select: + case op_select: return "select"; - case op_apply: + case op_apply: return "apply"; - case op_join: - case op_left: - case op_right: - case op_full: + case op_join: + case op_left: + case op_right: + case op_full: return "join"; - case op_semi: + case op_semi: return "semi"; - case op_anti: + case op_anti: return "anti"; - case op_union: - case op_inter: - case op_except: + case op_union: + case op_inter: + case op_except: return "set op"; - case op_groupby: + case op_groupby: return "group by"; - case op_topn: + case op_topn: return "topn"; case op_sample: return "sample"; - case op_insert: - case op_update: + case op_insert: + case op_update: case op_delete: case op_truncate: return "modify op"; @@ -310,7 +311,7 @@ op2string(operator_type op) } } -static int +static int find_ref( list *refs, sql_rel *rel ) { node *n; @@ -324,8 +325,8 @@ find_ref( list *refs, sql_rel *rel ) } void -rel_print_(mvc *sql, stream *fout, sql_rel *rel, int depth, list *refs, int decorate) -{ +rel_print_(mvc *sql, stream *fout, sql_rel *rel, int depth, list *refs, int decorate) +{ char *r = NULL; if (!rel) @@ -357,19 +358,19 @@ rel_print_(mvc *sql, stream *fout, sql_ tname = mapiuri_table( uri, sql->sa, tname); } if (sname) - mnstr_printf(fout, "%s(%s.%s)", + mnstr_printf(fout, "%s(%s.%s)", isStream(t)?"stream": isRemote(t)&&decorate?"REMOTE": isReplicaTable(t)?"REPLICA":"table", sname, tname); else - mnstr_printf(fout, "%s(%s)", + mnstr_printf(fout, "%s(%s)", isStream(t)?"stream": isRemote(t)&&decorate?"REMOTE": isReplicaTable(t)?"REPLICA":"table", tname); - } - if (rel->exps) + } + if (rel->exps) exps_print(sql, fout, rel->exps, depth, refs, 1, 0); } break; case op_table: @@ -380,7 +381,7 @@ rel_print_(mvc *sql, stream *fout, sql_ exp_print(sql, fout, rel->r, depth, refs, 1, 0); if (rel->l) rel_print_(sql, fout, rel->l, depth+1, refs, decorate); - if (rel->exps) + if (rel->exps) exps_print(sql, fout, rel->exps, depth, refs, 1, 0); break; case op_ddl: @@ -393,16 +394,16 @@ rel_print_(mvc *sql, stream *fout, sql_ if (rel->exps && (rel->flag == DDL_PSM || rel->flag == DDL_EXCEPTION || rel->flag == DDL_LIST)) exps_print(sql, fout, rel->exps, depth, refs, 1, 0); break; - case op_join: - case op_left: - case op_right: - case op_full: - case op_apply: - case op_semi: - case op_anti: - case op_union: - case op_inter: - case op_except: + case op_join: + case op_left: + case op_right: + case op_full: + case op_apply: + case op_semi: + case op_anti: + case op_union: + case op_inter: + case op_except: r = "join"; if (rel->op == op_left) r = "left outer join"; @@ -455,10 +456,10 @@ rel_print_(mvc *sql, stream *fout, sql_ exps_print(sql, fout, rel->exps, depth, refs, 1, 0); break; case op_project: - case op_select: - case op_groupby: - case op_topn: - case op_sample: + case op_select: + case op_groupby: + case op_topn: + case op_sample: r = "project"; if (rel->op == op_select) r = "select"; @@ -539,7 +540,7 @@ rel_print_(mvc *sql, stream *fout, sql_ } void -rel_print_refs(mvc *sql, stream* fout, sql_rel *rel, int depth, list *refs, int decorate) +rel_print_refs(mvc *sql, stream* fout, sql_rel *rel, int depth, list *refs, int decorate) { if (!rel) return; @@ -565,16 +566,16 @@ rel_print_refs(mvc *sql, stream* fout, s } } break; - case op_join: - case op_left: - case op_right: - case op_full: - case op_apply: - case op_semi: - case op_anti: - case op_union: - case op_inter: - case op_except: + case op_join: + case op_left: + case op_right: + case op_full: + case op_apply: + case op_semi: + case op_anti: + case op_union: + case op_inter: + case op_except: rel_print_refs(sql, fout, rel->l, depth, refs, decorate); rel_print_refs(sql, fout, rel->r, depth, refs, decorate); if (rel_is_ref(rel->l) && !find_ref(refs, rel->l)) { @@ -587,18 +588,18 @@ rel_print_refs(mvc *sql, stream* fout, s } break; case op_project: _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list