Changeset: 38e69746de3f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=38e69746de3f Modified Files: sql/backends/monet5/sql.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_gencode.h sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out Branch: default Log Message:
make sure we optimize remote - relational calls diffs (107 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 @@ -5084,7 +5084,7 @@ RAstatement2(Client cntxt, MalBlkPtr mb, if (!rel) throw(SQL, "sql.register", "Cannot register %s", buf); if (rel) { - monet5_create_relational_function(m, *mod, *nme, rel, stmt_list(m->sa, ops)); + monet5_create_relational_function(m, *mod, *nme, rel, stmt_list(m->sa, ops), 0); rel_destroy(rel); } sqlcleanup(m, 0); 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 @@ -416,7 +416,7 @@ relational_func_create_result(mvc *sql, static int -_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call) +_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call, int inline_func) { sql_rel *r; Client c = MCgetClient(m->clientid); @@ -479,7 +479,8 @@ static int return -1; be->mvc->argc = old_argc; /* SQL function definitions meant for inlineing should not be optimized before */ - curBlk->inlineProp =1; + if (inline_func) + curBlk->inlineProp =1; addQueryToCache(c); if (backup) c->curprg = backup; @@ -510,7 +511,7 @@ static int /* dirty hack, rename (change first char of name) L->l, local * functions name start with 'l' */ name[0] = 'l'; - if (_create_relational_function(m, mod, name, rel, call) < 0) + if (_create_relational_function(m, mod, name, rel, call, 0) < 0) return -1; /* create stub */ @@ -571,7 +572,7 @@ static int p = pushStr(curBlk, p, mod); p = pushStr(curBlk, p, name); #else - /* remote.exec(q, "sql", "register", "mod", "name", "relational_plan"); */ + /* remote.exec(q, "sql", "register", "mod", "name", "relational_plan", "signature"); */ p = newInstruction(curBlk, ASSIGNsymbol); setModuleId(p, remoteRef); setFunctionId(p, execRef); @@ -689,14 +690,14 @@ static int } int -monet5_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call) +monet5_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call, int inline_func) { prop *p = NULL; if (rel && (p = find_prop(rel->p, PROP_REMOTE)) != NULL) return _create_relational_remote(m, mod, name, rel, call, p); else - return _create_relational_function(m, mod, name, rel, call); + return _create_relational_function(m, mod, name, rel, call, inline_func); } /* @@ -2095,7 +2096,7 @@ static int /* dump args */ if (s->op1 && _dumpstmt(sql, mb, s->op1) < 0) return -1; - if (monet5_create_relational_function(sql->mvc, mod, fimp, rel, s) < 0) + if (monet5_create_relational_function(sql->mvc, mod, fimp, rel, s, 1) < 0) return -1; q = newStmt(mb, mod, fimp); diff --git a/sql/backends/monet5/sql_gencode.h b/sql/backends/monet5/sql_gencode.h --- a/sql/backends/monet5/sql_gencode.h +++ b/sql/backends/monet5/sql_gencode.h @@ -23,6 +23,6 @@ sql5_export void backend_call(backend *b sql5_export void initSQLreferences(void); sql5_export int monet5_resolve_function(ptr M, sql_func *f); sql5_export int backend_create_func(backend *be, sql_func *f, list *restypes, list *ops); -sql5_export int monet5_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call); +sql5_export int monet5_create_relational_function(mvc *m, char *mod, char *name, sql_rel *rel, stmt *call, int inline_func); #endif /* _SQL2MAL_H */ diff --git a/sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out b/sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out --- a/sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out +++ b/sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out @@ -75,10 +75,10 @@ Ready. % varchar, varchar, int # type % 7, 13, 4 # length [ "monetdb", "MonetDB Admin", 2000 ] -[ "user1", "1st user", 6884 ] -[ "user2", "2nd user", 6884 ] -[ "user3", "3rd user", 6884 ] -[ "user4", "4th user", 6884 ] +[ "user1", "1st user", 7418 ] +[ "user2", "2nd user", 7418 ] +[ "user3", "3rd user", 7418 ] +[ "user4", "4th user", 7418 ] #DROP USER user1; #DROP USER user2; #DROP USER user3; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list