MonetDB: Jan2022 - Compilation fix
Changeset: 71c355de61eb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/71c355de61eb Modified Files: sql/server/rel_updates.c Branch: Jan2022 Log Message: Compilation fix diffs (12 lines): diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c --- a/sql/server/rel_updates.c +++ b/sql/server/rel_updates.c @@ -399,7 +399,7 @@ rel_inserts(mvc *sql, sql_table *t, sql_ sql_exp *e = inserts[c->colnr]; assert(is_values(e)); list *vals = e->f; - append(p->exps, list_fetch(vals, j)); + append(p->exps, list_fetch(vals, (int) j)); } if (c) { c = rel_setop(sql->sa, c, p, op_union); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Use relation inplacement at outer2inner_union...
Changeset: c5fa877c43fa for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c5fa877c43fa Modified Files: sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_rel.h sql/server/rel_unnest.c Branch: default Log Message: Use relation inplacement at outer2inner_union, so it will be safe to rewrite when the input relation has more than 1 reference diffs (243 lines): diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -9839,14 +9839,7 @@ rel_setjoins_2_joingroupby(visitor *v, s list *lexps = rel_projections(v->sql, l, NULL, 1, 1); aexps = list_merge(aexps, lexps, (fdup)NULL); if (rel_is_ref(rel)) { - sql_rel *l = rel_create(v->sql->sa); - if (!l) - return NULL; - *l = *rel; - /* properly increment the ref counts */ - rel_dup(rel->l); - rel_dup(rel->r); - l->ref.refcnt = 1; + sql_rel *l = rel_dup_copy(v->sql->sa, rel); rel = rel_inplace_groupby(rel, l, list_append(sa_list(v->sql->sa), exp_ref(v->sql, lid)), aexps); } else { rel = rel_groupby(v->sql, rel, list_append(sa_list(v->sql->sa), exp_ref(v->sql, lid))); diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -556,6 +556,55 @@ rel_inplace_groupby(sql_rel *rel, sql_re return rel; } +/* this function is to be used with the above rel_inplace_* functions */ +sql_rel * +rel_dup_copy(sql_allocator *sa, sql_rel *rel) +{ + sql_rel *nrel = rel_create(sa); + + if (!nrel) + return NULL; + *nrel = *rel; + nrel->ref.refcnt = 1; + switch(nrel->op){ + case op_basetable: + case op_ddl: + break; + case op_table: + if ((IS_TABLE_PROD_FUNC(nrel->flag) || nrel->flag == TABLE_FROM_RELATION) && nrel->l) + rel_dup(nrel->l); + break; + case op_join: + case op_left: + case op_right: + case op_full: + case op_semi: + case op_anti: + case op_union: + case op_inter: + case op_except: + case op_insert: + case op_update: + case op_delete: + case op_merge: + if (nrel->l) + rel_dup(nrel->l); + if (nrel->r) + rel_dup(nrel->r); + break; + case op_project: + case op_groupby: + case op_select: + case op_topn: + case op_sample: + case op_truncate: + if (nrel->l) + rel_dup(nrel->l); + break; + } + return nrel; +} + sql_rel * rel_setop(sql_allocator *sa, sql_rel *l, sql_rel *r, operator_type setop) { diff --git a/sql/server/rel_rel.h b/sql/server/rel_rel.h --- a/sql/server/rel_rel.h +++ b/sql/server/rel_rel.h @@ -74,6 +74,7 @@ extern sql_rel *rel_inplace_setop(mvc *s extern sql_rel *rel_inplace_project(sql_allocator *sa, sql_rel *rel, sql_rel *l, list *e); extern sql_rel *rel_inplace_select(sql_rel *rel, sql_rel *l, list *exps); extern sql_rel *rel_inplace_groupby(sql_rel *rel, sql_rel *l, list *groupbyexps, list *exps ); +extern sql_rel *rel_dup_copy(sql_allocator *sa, sql_rel *rel); extern int rel_convert_types(mvc *sql, sql_rel *ll, sql_rel *rr, sql_exp **L, sql_exp **R, int scale_fixing, check_type tpe); extern sql_rel *rel_setop(sql_allocator *sa, sql_rel *l, sql_rel *r, operator_type setop); diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c --- a/sql/server/rel_unnest.c +++ b/sql/server/rel_unnest.c @@ -2192,13 +2192,7 @@ aggrs_split_funcs(mvc *sql, sql_rel *rel } if (!list_empty(projs)) { /* the grouping relation may have more than 1 reference, a replacement is needed */ - sql_rel *l = rel_create(sql->sa); - if (!l) - return NULL; - *l = *rel; - /* increment the refcount of the left relation */ - rel_dup(rel->l); - l->ref.refcnt = 1; + sql_rel *l = rel_dup_copy(sql->sa, rel); list *nexps = list_merge(rel_projections(sql, l, NULL, 1, 1), projs, NULL); rel = rel_inplace_project(sql->sa, rel, l, nexps); rel->card = exps_card(nexps); @@ -3722,70 +3716,68 @@ rewrite_outer2inner_union(visitor *v, sq { if (is_outerjoin(rel->op) && !is_rew
MonetDB: default - Merged with Jan2022
Changeset: 5cbd8603a03b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5cbd8603a03b Modified Files: sql/server/rel_updates.c Branch: default Log Message: Merged with Jan2022 diffs (12 lines): diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c --- a/sql/server/rel_updates.c +++ b/sql/server/rel_updates.c @@ -400,7 +400,7 @@ rel_inserts(mvc *sql, sql_table *t, sql_ sql_exp *e = inserts[c->colnr]; assert(is_values(e)); list *vals = e->f; - append(p->exps, list_fetch(vals, j)); + append(p->exps, list_fetch(vals, (int) j)); } if (c) { c = rel_setop(sql->sa, c, p, op_union); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: embedded_mapi - Add host field to mapi server options i...
Changeset: 117b17ffd354 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/117b17ffd354 Modified Files: tools/monetdbe/monetdbe.c tools/monetdbe/monetdbe.h Branch: embedded_mapi Log Message: Add host field to mapi server options in monetdbe. diffs (42 lines): diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -646,8 +646,18 @@ monetdbe_startup(monetdbe_database_inter if (opts && opts->mapi_server) { /*This monetdbe instance wants to listen to external mapi client connections.*/ - with_mapi_server = true; + if (opts->mapi_server->host) { + with_mapi_server = true; + int psetlen = setlen; + setlen = mo_add_option(&set, setlen, opt_cmdline, "mapi_listenaddr", opts->mapi_server->host); + if (setlen == psetlen) { + mo_free_options(set, setlen); + set_error(mdbe, createException(MAL, "monetdbe.monetdbe_startup", MAL_MALLOC_FAIL)); + goto cleanup; + } + } if (opts->mapi_server->port) { + with_mapi_server = true; int psetlen = setlen; setlen = mo_add_option(&set, setlen, opt_cmdline, "mapi_port", opts->mapi_server->port); if (setlen == psetlen) { @@ -657,6 +667,7 @@ monetdbe_startup(monetdbe_database_inter } } if (opts->mapi_server->usock) { + with_mapi_server = true; int psetlen = setlen; setlen = mo_add_option(&set, setlen, opt_cmdline, "mapi_usock", opts->mapi_server->usock); if (setlen == psetlen) { diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h --- a/tools/monetdbe/monetdbe.h +++ b/tools/monetdbe/monetdbe.h @@ -103,6 +103,7 @@ typedef struct { } monetdbe_remote; typedef struct { + const char *host; const char* port; const char* usock; } monetdbe_mapi_server; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: embedded_mapi - Add API method to retrieve mapi port nu...
Changeset: b5b300529d49 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b5b300529d49 Modified Files: tools/monetdbe/monetdbe.c tools/monetdbe/monetdbe.h Branch: embedded_mapi Log Message: Add API method to retrieve mapi port number from embedded mapi server. diffs (23 lines): diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -2842,3 +2842,8 @@ timestamp_from_data(monetdbe_data_timest date_create(ptr->date.year, ptr->date.month, ptr->date.day), daytime_create(ptr->time.hours, ptr->time.minutes, ptr->time.seconds, ptr->time.ms * 1000)); } + +const char* +monetdbe_get_mapi_port(void) { + return GDKgetenv("mapi_port"); +} diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h --- a/tools/monetdbe/monetdbe.h +++ b/tools/monetdbe/monetdbe.h @@ -180,6 +180,7 @@ monetdbe_export char* monetdbe_get_colum monetdbe_export char* monetdbe_dump_database(monetdbe_database dbhdl, const char *backupfile); monetdbe_export char* monetdbe_dump_table(monetdbe_database dbhdl, const char *schema_name, const char *table_name, const char *backupfile); +monetdbe_export const char* monetdbe_get_mapi_port(void); #ifdef __cplusplus } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org