MonetDB: default - merged with aug2024
Changeset: b62cf00a4142 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b62cf00a4142 Modified Files: clients/Tests/exports.stable.out sql/backends/monet5/sql.c Branch: default Log Message: merged with aug2024 diffs (truncated from 780 to 300 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,6 +182,11 @@ install(FILES DESTINATION ${EXPORT_TARGET_PATH} COMPONENT monetdbdev) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/MonetDBConfigVersion.cmake + DESTINATION ${EXPORT_TARGET_PATH} + COMPONENT monetdbdev) + include(monetdb-packages) include(CTest) diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -790,7 +790,6 @@ str AUTHunlockVault(const char *password str AUTHverifyPassword(const char *passwd); str BKCmirror(bat *ret, const bat *bid); str BKCnewBAT(bat *res, const int *tt, const BUN *cap, role_t role); -str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str COPYrejects_clear(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1022,6 +1021,7 @@ int getOidConstant(MalBlkPtr mb, oid val int getPC(MalBlkPtr mb, InstrPtr p); str getPipeCatalog(bat *nme, bat *def, bat *stat); const char *getRef; +str getScenarioLanguage(Client c); int getShtConstant(MalBlkPtr mb, sht val); int getStrConstant(MalBlkPtr mb, str val); const char *getTraceRef; diff --git a/monetdb5/mal/mal_scenario.h b/monetdb5/mal/mal_scenario.h --- a/monetdb5/mal/mal_scenario.h +++ b/monetdb5/mal/mal_scenario.h @@ -37,11 +37,11 @@ typedef struct SCENARIO { mal_export Scenario getFreeScenario(void); mal_export Scenario findScenario(const char *nme); +mal_export str getScenarioLanguage(Client c); #ifdef LIBMONETDB5 extern str setScenario(Client c, const char *nme); extern str runScenario(Client c); -extern str getScenarioLanguage(Client c); extern void showCurrentScenario(void); extern void showScenarioByName(stream *f, const char *s); diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c --- a/monetdb5/modules/mal/clients.c +++ b/monetdb5/modules/mal/clients.c @@ -773,214 +773,6 @@ CLTshutdown(Client cntxt, MalBlkPtr mb, return MAL_SUCCEED; } -str -CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) -{ - BAT *id = NULL, *user = NULL, *login = NULL, *sessiontimeout = NULL, - *querytimeout = NULL, *idle = NULL; - BAT *opt = NULL, *wlimit = NULL, *mlimit = NULL; - BAT *language = NULL, *peer = NULL, *hostname = NULL, *application = NULL, *client = NULL, *clientpid = NULL, *remark = NULL; - bat *idId = getArgReference_bat(stk, pci, 0); - bat *userId = getArgReference_bat(stk, pci, 1); - bat *loginId = getArgReference_bat(stk, pci, 2); - bat *idleId = getArgReference_bat(stk, pci, 3); - bat *optId = getArgReference_bat(stk, pci, 4); - bat *sessiontimeoutId = getArgReference_bat(stk, pci, 5); - bat *querytimeoutId = getArgReference_bat(stk, pci, 6); - bat *wlimitId = getArgReference_bat(stk, pci, 7); - bat *mlimitId = getArgReference_bat(stk, pci, 8); - bat *languageId = getArgReference_bat(stk, pci, 9); - bat *peerId = getArgReference_bat(stk, pci, 10); - bat *hostnameId = getArgReference_bat(stk, pci, 11); - bat *applicationId = getArgReference_bat(stk, pci, 12); - bat *clientId = getArgReference_bat(stk, pci, 13); - bat *clientpidId = getArgReference_bat(stk, pci, 14); - bat *remarkId = getArgReference_bat(stk, pci, 15); - Client c; - bool admin; - timestamp ts; - lng pid; - const char *s; - int timeout; - str msg = NULL; - - (void) cntxt; - (void) mb; - - id = COLnew(0, TYPE_int, 0, TRANSIENT); - user = COLnew(0, TYPE_str, 0, TRANSIENT); - login = COLnew(0, TYPE_timestamp, 0, TRANSIENT); - opt = COLnew(0, TYPE_str, 0, TRANSIENT); - sessiontimeout = COLnew(0, TYPE_int, 0, TRANSIENT); - querytimeout = COLnew(0, TYPE_int, 0, TRANSIENT); - wlimit = COLnew(0, TYPE_int, 0, TRANSIENT); - mlimit = COLnew(0, TYPE_int, 0, TRANSIENT); - idle = COLnew(0, TYPE_timestamp, 0, TRANSIENT); - language = COLnew(0, TYPE_str, 0, TRANSIENT); - peer = COLnew(0, TYPE_str, 0, TRANSIENT); - hostname = COLnew(0, TYPE_str, 0, TRANSIENT); - application = COLnew(0, TYPE_str, 0, TRANSIENT); - client = COLnew(0, TYPE_str, 0, TRANSIENT); - clientpid = COLnew(0, TYPE_lng, 0, TRANSIENT); - remark = COLnew(0, TYPE_str, 0, TRANSIENT); - - if (id == NULL || user == NULL || login == NULL || sessiontimeout == NULL - || idle == NULL ||
MonetDB: default - merged with Aug2024
Changeset: 2cc06379d80e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2cc06379d80e Modified Files: clients/Tests/exports.stable.out Branch: default Log Message: merged with Aug2024 diffs (101 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1065,6 +1065,7 @@ const char *likeRef; const char *likejoinRef; const char *likeselectRef; const char *likeuselectRef; +const char *lngRef; str loadLibrary(const char *modulename, int flag); char *locate_file(const char *basename, const char *ext, bit recurse); const char *lockRef; diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -149,6 +149,7 @@ const char *leftjoinRef; const char *likejoinRef; const char *likeRef; const char *likeselectRef; +const char *lngRef; const char *lockRef; const char *lookupRef; const char *malRef; @@ -409,6 +410,7 @@ optimizerInit(void) likejoinRef = putName("likejoin"); likeRef = putName("like"); likeselectRef = putName("likeselect"); + lngRef = putName("lng"); lockRef = putName("lock"); lookupRef = putName("lookup"); malRef = putName("mal"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -147,6 +147,7 @@ mal_export const char *likejoinRef; mal_export const char *likeRef; mal_export const char *likeselectRef; mal_export const char *likeuselectRef; +mal_export const char *lngRef; mal_export const char *lockRef; mal_export const char *lookupRef; mal_export const char *malRef; diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c --- a/monetdb5/optimizer/opt_remap.c +++ b/monetdb5/optimizer/opt_remap.c @@ -21,6 +21,21 @@ #include "opt_inline.h" #include "opt_multiplex.h" +static InstrPtr +pushNilAt(MalBlkPtr mb, InstrPtr p, int pos) +{ +int i; + +p = pushNilBat(mb, p); /* push at end */ +if (mb->errors == NULL) { + int arg = getArg(p, p->argc - 1); +for (i = p->argc - 1; i > pos; i--) +getArg(p, i) = getArg(p, i - 1); +getArg(p, pos) = arg; +} +return p; +} + static int OPTremapDirect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, int idx, Module scope) @@ -261,11 +276,16 @@ OPTmultiplexInline(Client cntxt, MalBlkP q->typeresolved = false; if (q->retc == 1 && ((getModuleId(q) == batcalcRef - && (getFunctionId(q) == mulRef - || getFunctionId(q) == divRef - || getFunctionId(q) == plusRef - || getFunctionId(q) == minusRef - || getFunctionId(q) == modRef)) + && ( getFunctionId(q) == mulRef + || getFunctionId(q) == divRef + || getFunctionId(q) == plusRef + || getFunctionId(q) == minusRef + || getFunctionId(q) == modRef + || (q->argc > 3 && ( + getFunctionId(q) == intRef + || getFunctionId(q) == lngRef + || getFunctionId(q) == hgeRef)) +)) || getModuleId(q) == batmtimeRef || getModuleId(q) == batstrRef)) { if (q->argc == 3 && @@ -292,6 +312,12 @@ OPTmultiplexInline(Client cntxt, MalBlkP if (isaBatType(getArgType(mq, q, 2))) q = pushNilBat(mq, q); q = pushArgument(mq, q, a); + } else if (q->argc == 5 && getModuleId(q) == batcalcRef) { /* decimal casts */ + int pos = 3; + if (isaBatType(getArgType(mq, q, 1))) +
MonetDB: default - merged with Aug2024
Changeset: d78523603c5f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d78523603c5f Branch: default Log Message: merged with Aug2024 diffs (28 lines): diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -2176,7 +2176,7 @@ BBPinit(bool allow_hge_upgrade) } } - if (MT_create_thread(, BBPmanager, NULL, MT_THR_DETACHED, "BBPmanager") < 0) { + if (!GDKinmemory(0) && MT_create_thread(, BBPmanager, NULL, MT_THR_DETACHED, "BBPmanager") < 0) { TRC_CRITICAL(GDK, "Could not start BBPmanager thread."); return GDK_FAIL; } diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c --- a/sql/storage/objectset.c +++ b/sql/storage/objectset.c @@ -643,9 +643,9 @@ tc_commit_objectversion(sql_trans *tr, s (void)oldest; if (!tr->parent) change->obj->new = 0; - ATOMIC_INC(>cat->schema_version); - } - else { + if (!ov->os->temporary) + ATOMIC_INC(>cat->schema_version); + } else { os_rollback(ov, tr->store); } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - merged with aug2024
Changeset: 24f8685ce20c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/24f8685ce20c Modified Files: sql/server/rel_select.c Branch: default Log Message: merged with aug2024 diffs (71 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -2842,8 +2842,10 @@ rel_logical_exp(sql_query *query, sql_re assert(quantifier == 0 || quantifier == 1 || quantifier == 2 || quantifier == 3 || quantifier == 4); if (quantifier >= 3) { - if (quantifier == 4) + if (quantifier == 4) { is_distinct_from = true; + compare_op = "<>"; + } quantifier = 0; is_semantics = 1; } @@ -2859,6 +2861,7 @@ rel_logical_exp(sql_query *query, sql_re bool rs_is_non_null_atom = exp_is_atom(rs) && exp_is_not_null(rs); if (ls_is_non_null_atom || rs_is_non_null_atom) { + sql_rel *r = rel_dup(rel); sql_rel* l = rel_compare(query, rel, sc, lo, ro, compare_op, f | sql_or, ek, quantifier, 0); sql_subtype *t; if (!(t = exp_subtype(rs_is_non_null_atom?ls:rs))) @@ -2866,9 +2869,10 @@ rel_logical_exp(sql_query *query, sql_re sql_exp* e = exp_compare(sql->sa, rs_is_non_null_atom?ls:rs, exp_atom(sql->sa, atom_general(sql->sa, t, NULL, 0)), cmp_equal); set_has_no_nil(e); set_semantics(e); - sql_rel* r = rel_select_push_compare_exp_down(sql, rel, e, e->l, e->r, NULL, f | sql_or); - - return rel_or(sql, rel_dup(rel), l, r, NULL, NULL, NULL); + + r = rel_select_push_compare_exp_down(sql, r, e, e->l, e->r, NULL, f | sql_or); + + return rel_or(sql, rel, l, r, NULL, NULL, NULL); } } diff --git a/sql/test/BugTracker-2024/Tests/7534-is-distinct-from.test b/sql/test/BugTracker-2024/Tests/7534-is-distinct-from.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2024/Tests/7534-is-distinct-from.test @@ -0,0 +1,20 @@ +statement ok +CREATE TABLE t0(c0 VARCHAR) + +statement ok +INSERT INTO t0 (c0) VALUES ('a'); + +query T +SELECT t0.c0 FROM t0 + +a + +query T +SELECT (1 AND ('' IS DISTINCT FROM t0.c0)) FROM t0 + +True + +query T +SELECT t0.c0 FROM t0 WHERE (1 AND ('' IS DISTINCT FROM t0.c0)) + +a diff --git a/sql/test/BugTracker-2024/Tests/All b/sql/test/BugTracker-2024/Tests/All --- a/sql/test/BugTracker-2024/Tests/All +++ b/sql/test/BugTracker-2024/Tests/All @@ -61,4 +61,5 @@ 7513-uri-authority-parse-issue 7514-wrong-window-function 7524-right-outer-join 7528-jarowinkler-null +7534-is-distinct-from 7535-create-view-groupby-func ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - merged with aug2024
Changeset: d48164e0e4d4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d48164e0e4d4 Modified Files: sql/server/rel_select.c Branch: default Log Message: merged with aug2024 diffs (32 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -1337,9 +1337,8 @@ bool group_by_pk_project_uk_cond(mvc* sq if (pki && pki->columns->cnt == 1 && inner->r && ((list*) inner->r)->cnt == 1) { /* for now only check simple case where primary key and group by expression is a single column*/ sql_exp* gbe = ((list*) inner->r)->h->data; - assert(gbe->type == e_column); sql_column* pkc = ((sql_kc *)pki->columns->h->data)->c; - if (strcmp(gbe->alias.name, pkc->base.name) == 0) { + if (gbe->type == e_column && strcmp(gbe->alias.name, pkc->base.name) == 0) { node *n; for (n = ukil->h; n; n = n->next){ sql_idx* uki = n->data; diff --git a/sql/test/BugTracker-2024/Tests/7535-create-view-groupby-func.test b/sql/test/BugTracker-2024/Tests/7535-create-view-groupby-func.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2024/Tests/7535-create-view-groupby-func.test @@ -0,0 +1,5 @@ +statement ok +CREATE TABLE t0(c0 VARCHAR, c1 INTEGER, PRIMARY KEY(c0)) + +statement error 42000!SELECT: cannot use non GROUP BY column 't0.c0' in query results without an aggregate function +CREATE VIEW v0(c0) AS SELECT ('a'||t0.c0) FROM t0 GROUP BY (CASE t0.c1 WHEN t0.c1 THEN 'a' END ) diff --git a/sql/test/BugTracker-2024/Tests/All b/sql/test/BugTracker-2024/Tests/All --- a/sql/test/BugTracker-2024/Tests/All +++ b/sql/test/BugTracker-2024/Tests/All @@ -61,3 +61,4 @@ 7513-uri-authority-parse-issue 7514-wrong-window-function 7524-right-outer-join 7528-jarowinkler-null +7535-create-view-groupby-func ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - merged with aug2024
Changeset: a207071d3ec8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a207071d3ec8 Modified Files: sql/server/rel_dump.c Branch: default Log Message: merged with aug2024 diffs (78 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 @@ -2555,21 +2555,25 @@ exp2sql_dquoted(stream *fout, const char /* only simple expressions, ie recursive no psm */ static void -exp2sql_print(mvc *sql, stream *fout, sql_exp *e) +exp2sql_print(mvc *sql, stream *fout, sql_exp *e, int depth) { switch (e->type) { case e_func: { sql_subfunc *sf = e->f; list *args = e->l; if (list_length(args) == 2 && is_infix(sf->func)) { - exp2sql_print(sql, fout, args->h->data); + if (depth) + mnstr_printf(fout, "( " ); + exp2sql_print(sql, fout, args->h->data, depth+1); mnstr_printf(fout, " %s ", sf->func->base.name); - exp2sql_print(sql, fout, args->h->next->data); + exp2sql_print(sql, fout, args->h->next->data, depth+1); + if (depth) + mnstr_printf(fout, " )" ); } else { exp2sql_dquoted(fout, NULL, sf->func->base.name, "("); if (args) for (node *n = args->h; n; n = n->next) { - exp2sql_print(sql, fout, n->data); + exp2sql_print(sql, fout, n->data, depth+1); if (n->next) mnstr_printf(fout, ", "); } @@ -2581,7 +2585,7 @@ exp2sql_print(mvc *sql, stream *fout, sq break; case e_convert: mnstr_printf(fout, "CAST (" ); - exp2sql_print(sql, fout, e->l); + exp2sql_print(sql, fout, e->l, depth+1); mnstr_printf(fout, "AS %s)", sql_subtype_string(sql->sa, exp_subtype(e))); break; case e_atom: @@ -2609,7 +2613,7 @@ exp2sql( mvc *sql, sql_exp *exp) if(s == NULL) goto cleanup; - exp2sql_print(sql, s, exp); + exp2sql_print(sql, s, exp, 0); res = buffer_get_buf(b); diff --git a/sql/test/subquery/Tests/subquery3.test b/sql/test/subquery/Tests/subquery3.test --- a/sql/test/subquery/Tests/subquery3.test +++ b/sql/test/subquery/Tests/subquery3.test @@ -624,19 +624,19 @@ query I rowsort SELECT col1 FROM another_T WHERE (col2, col3) IN (SELECT 1,2) -statement error 42000!syntax error, unexpected sqlINT, expecting SELECT or '(' or VALUES or WITH in: "select (1,2) in (1" +statement error 42000! SELECT (1,2) IN (1,2) -statement error 42000!syntax error, unexpected sqlINT, expecting SELECT or '(' or VALUES or WITH in: "select (1,2) in (1" +statement error 42000! SELECT (1,2) IN (1) statement error 42000!Subquery has too few columns SELECT (col1, col2) IN (VALUES (1)) FROM another_T -statement error 42000!syntax error, unexpected sqlINT, expecting SELECT or '(' or VALUES or WITH in: "select (col1, col2) in (1" +statement error 42000! SELECT (col1, col2) IN (1) FROM another_T -statement error 42000!syntax error, unexpected sqlINT, expecting SELECT or '(' or VALUES or WITH in: "select col1 from another_t where (col2, col3) in (1" +statement error 42000! SELECT col1 FROM another_T WHERE (col2, col3) IN (1,2,3) statement error 42000!Subquery has too few columns ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - merged with aug2024
Changeset: acc24cd4639d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/acc24cd4639d Modified Files: MonetDB.spec clients/odbc/winsetup/setup.rc sql/backends/monet5/sql.c Branch: default Log Message: merged with aug2024 diffs (truncated from 2480 to 300 lines): diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -44,6 +44,7 @@ GPATH GRTAGS TAGS tags +cscope.* *.pyo *.rej *.orig diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,8 +118,14 @@ if(WIN32) ${CMAKE_CURRENT_BINARY_DIR}/unistd.h) endif() -add_library(monetdb_config_header - INTERFACE) +add_library(monetdb_config_header INTERFACE) + +if (CTAGS_PATH) + add_dependencies(monetdb_config_header tags) +endif() +if (CSCOPE_PATH) + add_dependencies(monetdb_config_header cscope) +endif() target_include_directories(monetdb_config_header INTERFACE diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -417,6 +417,7 @@ developer. %{_bindir}/arraytest %{_bindir}/bincopydata %{_bindir}/murltest +%{_bindir}/odbcconnect %{_bindir}/odbcsample1 %{_bindir}/sample0 %{_bindir}/sample1 diff --git a/clients/odbc/winsetup/resource.h b/clients/odbc/winsetup/resource.h --- a/clients/odbc/winsetup/resource.h +++ b/clients/odbc/winsetup/resource.h @@ -24,21 +24,21 @@ #define IDC_EDIT_PORT 2006 #define IDC_EDIT_DATABASE 2007 -// Advanced settings (new from Jun2024) -#define IDC_EDIT_SCHEMA 2011 -#define IDC_EDIT_LOGINTIMEOUT 2012 -#define IDC_EDIT_REPLYTIMEOUT 2013 -#define IDC_EDIT_REPLYSIZE 2014 -#define IDC_EDIT_AUTOCOMMIT 2015 -#define IDC_EDIT_TIMEZONE 2016 -#define IDC_EDIT_LOGFILE2017 +// Secure connections using TLS +#define IDC_EDIT_USETLS 2011 +#define IDC_EDIT_SERVERCERT 2012 +#define IDC_EDIT_SERVERCERTHASH 2013 +#define IDC_EDIT_CLIENTKEY 2014 +#define IDC_EDIT_CLIENTCERT 2015 -// Secure connections using TLS -#define IDC_EDIT_USETLS 2021 -#define IDC_EDIT_SERVERCERT 2022 -#define IDC_EDIT_SERVERCERTHASH 2023 -#define IDC_EDIT_CLIENTKEY 2024 -#define IDC_EDIT_CLIENTCERT 2025 +// Advanced settings +#define IDC_EDIT_SCHEMA 2021 +#define IDC_EDIT_LOGINTIMEOUT 2022 +#define IDC_EDIT_REPLYTIMEOUT 2023 +#define IDC_EDIT_REPLYSIZE 2024 +#define IDC_EDIT_AUTOCOMMIT 2025 +#define IDC_EDIT_TIMEZONE 2026 +#define IDC_EDIT_LOGFILE2027 #define IDC_BUTTON_TEST 2031 #define IDC_BUTTON_HELP 2032 diff --git a/clients/odbc/winsetup/setup.c b/clients/odbc/winsetup/setup.c --- a/clients/odbc/winsetup/setup.c +++ b/clients/odbc/winsetup/setup.c @@ -154,6 +154,13 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR SetDlgItemText(hwndDlg, IDC_EDIT_HOST, datap->host ? datap->host : ""); SetDlgItemText(hwndDlg, IDC_EDIT_PORT, datap->port ? datap->port : ""); SetDlgItemText(hwndDlg, IDC_EDIT_DATABASE, datap->database ? datap->database : ""); + // Secure connections using TLS + SetDlgItemText(hwndDlg, IDC_EDIT_USETLS, datap->use_tls ? datap->use_tls : "off"); + SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERT, datap->servercert ? datap->servercert : ""); + SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERTHASH, datap->servercerthash ? datap->servercerthash : ""); + SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTKEY, datap->clientkey ? datap->clientkey : ""); + SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTCERT, datap->clientcert ? datap->clientcert : ""); + // Advanced settings SetDlgItemText(hwndDlg, IDC_EDIT_SCHEMA, datap->schema ? datap->schema : ""); SetDlgItemText(hwndDlg, IDC_EDIT_LOGINTIMEOUT, datap->logintimeout ? datap->logintimeout : ""); SetDlgItemText(hwndDlg, IDC_EDIT_REPLYTIMEOUT, datap->replytimeout ? datap->replytimeout : ""); @@ -161,11 +168,6 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR SetDlgItemText(hwndDlg, IDC_EDIT_AUTOCOMMIT, datap->autocommit ? datap->autocommit : "on"); SetDlgItemText(hwndDlg, IDC_EDIT_TIMEZONE, datap->timezone ? datap->timezone : ""); SetDlgItemText(hwndDlg, IDC_EDIT_LOGFILE, datap->logfile ? datap->logfile : ""); - SetDlgItemText(hwndDlg, IDC_EDIT_USETLS, datap->use_tls ? datap->use_tls : "off"); - SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERT, datap->servercert ? datap->servercert : ""); - SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERTHASH, datap->servercerthash ? datap->servercerthash : ""); - SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTKEY, datap->clientkey ?