Changeset: 58220aaee9f7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58220aaee9f7 Branch: window-tunning Log Message:
Merged with default diffs (truncated from 747 to 300 lines): diff --git a/clients/odbc/driver/CMakeLists.txt b/clients/odbc/driver/CMakeLists.txt --- a/clients/odbc/driver/CMakeLists.txt +++ b/clients/odbc/driver/CMakeLists.txt @@ -103,7 +103,7 @@ target_sources(MonetODBC SQLTables.c SQLTransact.c driver.rc - ODBC.syms) + ODBC.def) target_include_directories(MonetODBC PRIVATE diff --git a/clients/odbc/driver/ODBC.syms b/clients/odbc/driver/ODBC.def rename from clients/odbc/driver/ODBC.syms rename to clients/odbc/driver/ODBC.def --- a/clients/odbc/driver/ODBC.syms +++ b/clients/odbc/driver/ODBC.def @@ -1,3 +1,4 @@ +EXPORTS DllMain SQLAllocConnect SQLAllocEnv diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc --- a/clients/odbc/driver/driver.rc +++ b/clients/odbc/driver/driver.rc @@ -22,10 +22,10 @@ BEGIN VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB ODBC Driver DLL\0" VALUE "FileVersion", sversion(11,40,0) - VALUE "InternalName", "libMonetODBC\0" + VALUE "InternalName", "MonetODBC\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2020\0" VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "libMonetODBC.dll\0" + VALUE "OriginalFilename", "MonetODBC.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB SQL Server\0" VALUE "ProductVersion", sversion(11,40,0) diff --git a/clients/odbc/winsetup/CMakeLists.txt b/clients/odbc/winsetup/CMakeLists.txt --- a/clients/odbc/winsetup/CMakeLists.txt +++ b/clients/odbc/winsetup/CMakeLists.txt @@ -13,7 +13,7 @@ target_sources(MonetODBCs PRIVATE setup.c setup.rc - setup.syms + setup.def resource.h) target_include_directories(MonetODBCs diff --git a/clients/odbc/winsetup/install.c b/clients/odbc/winsetup/install.c --- a/clients/odbc/winsetup/install.c +++ b/clients/odbc/winsetup/install.c @@ -20,8 +20,8 @@ static char *DriverName = "MonetDB ODBC Driver"; static char *DataSourceName = "MonetDB"; -static char *DriverDLL = "libMonetODBC" DLL; -static char *DriverDLLs = "libMonetODBCs" DLL; +static char *DriverDLL = "MonetODBC" DLL; +static char *DriverDLLs = "MonetODBCs" DLL; /* General error handler for installer functions */ diff --git a/clients/odbc/winsetup/setup.syms b/clients/odbc/winsetup/setup.def rename from clients/odbc/winsetup/setup.syms rename to clients/odbc/winsetup/setup.def --- a/clients/odbc/winsetup/setup.syms +++ b/clients/odbc/winsetup/setup.def @@ -1,3 +1,4 @@ +EXPORTS DllMain ConfigDSN ConfigDriver diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc --- a/clients/odbc/winsetup/setup.rc +++ b/clients/odbc/winsetup/setup.rc @@ -84,9 +84,9 @@ BEGIN VALUE "CompanyName", "MonetDB B.V." VALUE "FileDescription", "MonetDB ODBC Setup DLL" VALUE "FileVersion", sversion(11,40,0) - VALUE "InternalName", "libMonetODBCs.dll" + VALUE "InternalName", "MonetODBCs.dll" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2020" - VALUE "OriginalFilename", "libMonetODBCs.dll" + VALUE "OriginalFilename", "MonetODBCs.dll" VALUE "ProductName", "MonetDB SQL Server" VALUE "ProductVersion", sversion(11,40,0) END 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 @@ -2489,26 +2489,26 @@ rel_rename_schema(mvc *sql, char *old_na } static sql_rel * -rel_rename_table(mvc *sql, char* schema_name, char *old_name, char *new_name, int if_exists) +rel_rename_table(mvc *sql, char *schema_name, char *old_name, char *new_name, int if_exists) { - sql_schema *s; + sql_schema *s = cur_schema(sql); sql_table *t; sql_rel *rel; list *exps; - assert(schema_name && old_name && new_name); + assert(old_name && new_name); - if (!(s = mvc_bind_schema(sql, schema_name))) { + if (schema_name && !(s = mvc_bind_schema(sql, schema_name))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such schema '%s'", schema_name); } if (!mvc_schema_privs(sql, s)) - return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), schema_name); + return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), s->base.name); if (!(t = find_table_on_scope(sql, &s, schema_name, old_name))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); - return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", old_name, schema_name); + return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", old_name, s->base.name); } if (t->system) return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: cannot rename a system table"); @@ -2520,13 +2520,13 @@ rel_rename_table(mvc *sql, char* schema_ return sql_error(sql, 02, SQLSTATE(2BM37) "ALTER TABLE: unable to rename table '%s' (there are database objects which depend on it)", old_name); if (strNil(new_name) || *new_name == '\0') return sql_error(sql, 02, SQLSTATE(3F000) "ALTER TABLE: invalid new table name"); - if (find_table_on_scope(sql, &s, schema_name, new_name)) - return sql_error(sql, 02, SQLSTATE(3F000) "ALTER TABLE: there is a table named '%s' in schema '%s'", new_name, schema_name); + if (find_table_on_scope(sql, &s, s->base.name, new_name)) + return sql_error(sql, 02, SQLSTATE(3F000) "ALTER TABLE: there is a table named '%s' in schema '%s'", new_name, s->base.name); rel = rel_create(sql->sa); exps = new_exp_list(sql->sa); - append(exps, exp_atom_clob(sql->sa, schema_name)); - append(exps, exp_atom_clob(sql->sa, schema_name)); + append(exps, exp_atom_clob(sql->sa, s->base.name)); + append(exps, exp_atom_clob(sql->sa, s->base.name)); append(exps, exp_atom_clob(sql->sa, old_name)); append(exps, exp_atom_clob(sql->sa, new_name)); rel->op = op_ddl; @@ -2536,27 +2536,27 @@ rel_rename_table(mvc *sql, char* schema_ } static sql_rel * -rel_rename_column(mvc *sql, char* schema_name, char *table_name, char *old_name, char *new_name, int if_exists) +rel_rename_column(mvc *sql, char *schema_name, char *table_name, char *old_name, char *new_name, int if_exists) { - sql_schema *s; + sql_schema *s = cur_schema(sql); sql_table *t; sql_column *col; sql_rel *rel; list *exps; - assert(schema_name && table_name && old_name && new_name); + assert(table_name && old_name && new_name); - if (!(s = mvc_bind_schema(sql, schema_name))) { + if (schema_name && !(s = mvc_bind_schema(sql, schema_name))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such schema '%s'", schema_name); } if (!mvc_schema_privs(sql, s)) - return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), schema_name); + return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), s->base.name); if (!(t = find_table_on_scope(sql, &s, schema_name, table_name))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); - return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", table_name, schema_name); + return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", table_name, s->base.name); } if (t->system) return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: cannot rename a column in a system table"); @@ -2575,7 +2575,7 @@ rel_rename_column(mvc *sql, char* schema rel = rel_create(sql->sa); exps = new_exp_list(sql->sa); - append(exps, exp_atom_clob(sql->sa, schema_name)); + append(exps, exp_atom_clob(sql->sa, s->base.name)); append(exps, exp_atom_clob(sql->sa, table_name)); append(exps, exp_atom_clob(sql->sa, old_name)); append(exps, exp_atom_clob(sql->sa, new_name)); @@ -2586,27 +2586,27 @@ rel_rename_column(mvc *sql, char* schema } static sql_rel * -rel_set_table_schema(sql_query *query, char* old_schema, char *tname, char *new_schema, int if_exists) +rel_set_table_schema(sql_query *query, char *old_schema, char *tname, char *new_schema, int if_exists) { mvc *sql = query->sql; - sql_schema *os, *ns; + sql_schema *os = cur_schema(sql), *ns; sql_table *ot; sql_rel *rel; list *exps; - assert(old_schema && tname && new_schema); + assert(tname && new_schema); - if (!(os = mvc_bind_schema(sql, old_schema))) { + if (old_schema && !(os = mvc_bind_schema(sql, old_schema))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such schema '%s'", old_schema); } if (!mvc_schema_privs(sql, os)) - return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), old_schema); + return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), os->base.name); if (!(ot = find_table_on_scope(sql, &os, old_schema, tname))) { if (if_exists) return rel_psm_block(sql->sa, new_exp_list(sql->sa)); - return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", tname, old_schema); + return sql_error(sql, 02, SQLSTATE(42S02) "ALTER TABLE: no such table '%s' in schema '%s'", tname, os->base.name); } if (ot->system) return sql_error(sql, 02, SQLSTATE(42000) "ALTER TABLE: cannot set schema of a system table"); @@ -2631,7 +2631,7 @@ rel_set_table_schema(sql_query *query, c rel = rel_create(sql->sa); exps = new_exp_list(sql->sa); - append(exps, exp_atom_clob(sql->sa, old_schema)); + append(exps, exp_atom_clob(sql->sa, os->base.name)); append(exps, exp_atom_clob(sql->sa, new_schema)); append(exps, exp_atom_clob(sql->sa, tname)); append(exps, exp_atom_clob(sql->sa, tname)); @@ -2856,24 +2856,18 @@ rel_schemas(sql_query *query, symbol *s) dlist *l = s->data.lval; char *sname = qname_schema(l->h->data.lval); char *tname = qname_schema_object(l->h->data.lval); - if (!sname) - sname = cur_schema(sql)->base.name; ret = rel_rename_table(sql, sname, tname, l->h->next->data.sval, l->h->next->next->data.i_val); } break; case SQL_RENAME_COLUMN: { dlist *l = s->data.lval; char *sname = qname_schema(l->h->data.lval); char *tname = qname_schema_object(l->h->data.lval); - if (!sname) - sname = cur_schema(sql)->base.name; ret = rel_rename_column(sql, sname, tname, l->h->next->data.sval, l->h->next->next->data.sval, l->h->next->next->next->data.i_val); } break; case SQL_SET_TABLE_SCHEMA: { dlist *l = s->data.lval; char *sname = qname_schema(l->h->data.lval); char *tname = qname_schema_object(l->h->data.lval); - if (!sname) - sname = cur_schema(sql)->base.name; ret = rel_set_table_schema(query, sname, tname, l->h->next->data.sval, l->h->next->next->data.i_val); } break; case SQL_CREATE_TYPE: { 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 @@ -1227,7 +1227,7 @@ validate_merge_update_delete(mvc *sql, s (upd_token == SQL_DELETE) ? "DELETE" : "UPDATE", join_rel_name ? " '" : "", join_rel_name ? join_rel_name : "", join_rel_name ? "'" : "", alias ? "relation" : "table", - alias ? alias : t->s->base.name, alias ? "" : ".", alias ? "" : t->base.name); + alias ? alias : t->s ? t->s->base.name : "", alias ? "" : ".", alias ? "" : t->base.name); ex = exp_exception(sql->sa, ex, buf); res = rel_exception(sql->sa, groupby, NULL, list_append(new_exp_list(sql->sa), ex)); @@ -1252,7 +1252,8 @@ merge_into_table(sql_query *query, dlist if (!(t = find_table_on_scope(sql, &s, sname, tname))) return sql_error(sql, 02, SQLSTATE(42S02) "MERGE: no such table '%s'", tname); if (!table_privs(sql, t, PRIV_SELECT)) - return sql_error(sql, 02, SQLSTATE(42000) "MERGE: access denied for %s to table '%s.%s'", get_string_global_var(sql, "current_user"), s->base.name, tname); + return sql_error(sql, 02, SQLSTATE(42000) "MERGE: access denied for %s to table %s%s%s'%s'", + get_string_global_var(sql, "current_user"), t->s ? "'":"", t->s ? t->s->base.name : "", t->s ? "'.":"", tname); if (isMergeTable(t)) return sql_error(sql, 02, SQLSTATE(42000) "MERGE: merge statements not available for merge tables yet"); diff --git a/sql/test/pg_regress/Tests/alter_table.stable.err b/sql/test/pg_regress/Tests/alter_table.stable.err --- a/sql/test/pg_regress/Tests/alter_table.stable.err +++ b/sql/test/pg_regress/Tests/alter_table.stable.err @@ -5,46 +5,21 @@ stderr of test 'alter_table` in director # 17:11:18 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=38959" "--set" "mapi_usock=/var/tmp/mtest-1142/.s.monetdb.38959" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/ufs/dinther/INSTALL/var/MonetDB/mTests_sql_test_pg_regress" "--set" "mal_listing=0" # 17:11:18 > -# builtin opt gdk_dbpath = /ufs/dinther/INSTALL/var/monetdb5/dbfarm/demo -# builtin opt gdk_debug = 0 -# builtin opt gdk_vmtrim = no -# builtin opt monet_prompt = > -# builtin opt monet_daemon = no -# builtin opt mapi_port = 50000 -# builtin opt mapi_open = false -# builtin opt mapi_autosense = false -# builtin opt sql_optimizer = default_pipe -# builtin opt sql_debug = 0 -# cmdline opt gdk_nr_threads = 0 -# cmdline opt mapi_open = true -# cmdline opt mapi_port = 38959 -# cmdline opt mapi_usock = /var/tmp/mtest-1142/.s.monetdb.38959 -# cmdline opt monet_prompt = -# cmdline opt mal_listing = 2 -# cmdline opt gdk_dbpath = /ufs/dinther/INSTALL/var/MonetDB/mTests_sql_test_pg_regress _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list