Changeset: 3c2436287db3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3c2436287db3
Branch: Aug2024
Log Message:

Merge heads


diffs (truncated from 542 to 300 lines):

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
@@ -297,7 +297,7 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                SetDlgItemText(hwndDlg, IDC_EDIT_TIMEZONE, datap->timezone ? 
datap->timezone : "");
                SetDlgItemText(hwndDlg, IDC_EDIT_LOGFILE, datap->logfile ? 
datap->logfile : "");
                // Client Info
-               SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, datap->clientinfo 
? datap->clientinfo : "off");
+               SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, datap->clientinfo 
? datap->clientinfo : "on");
                SetDlgItemText(hwndDlg, IDC_EDIT_APPLICNAME, 
datap->applicationname ? datap->applicationname : "");
                SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTREMARK, 
datap->clientremark ? datap->clientremark : "");
                if (datap->request == ODBC_ADD_DSN && datap->dsn && *datap->dsn)
@@ -333,7 +333,7 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                        }
                        GetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, buf, 
sizeof(buf));
                        if (strcmp("on", buf) != 0 && strcmp("off", buf) != 0) {
-                               MessageBox(hwndDlg, "Client Info must be set to 
on or off.\nDefault is off.", NULL, MB_ICONERROR);
+                               MessageBox(hwndDlg, "Client Info must be set to 
on or off.\nDefault is on.", NULL, MB_ICONERROR);
                                return TRUE;
                        }
 
@@ -585,7 +585,7 @@ ConfigDSN(HWND parent, WORD request, LPC
        MergeFromProfileString(data.dsn, &data.autocommit, "AutoCommit", "on");
        MergeFromProfileString(data.dsn, &data.timezone, "TimeZone", "");
        MergeFromProfileString(data.dsn, &data.logfile, "LogFile", "");
-       MergeFromProfileString(data.dsn, &data.clientinfo, "ClientInfo", "off");
+       MergeFromProfileString(data.dsn, &data.clientinfo, "ClientInfo", "on");
        MergeFromProfileString(data.dsn, &data.applicationname, "AppName", "");
        MergeFromProfileString(data.dsn, &data.clientremark, "ClientRemark", 
"");
 
diff --git a/clients/odbc/winsetup/winredist/ds16gt.dll 
b/clients/odbc/winsetup/winredist/ds16gt.dll
deleted file mode 100755
index 
ea94cdd0ef7d009441d6b56da7464cb8f2515384..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/ds32gt.dll 
b/clients/odbc/winsetup/winredist/ds32gt.dll
deleted file mode 100755
index 
0cc5f7be21475f4b88dee87edcc50689d812f298..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbc16gt.dll 
b/clients/odbc/winsetup/winredist/odbc16gt.dll
deleted file mode 100755
index 
30ca156b9f363d1b4095ab4bf1c7d8285d51a467..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbc32.dll 
b/clients/odbc/winsetup/winredist/odbc32.dll
deleted file mode 100755
index 
b5c2ac81f64cfe599710e3928d4cf1d39ebfbb6a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbc32gt.dll 
b/clients/odbc/winsetup/winredist/odbc32gt.dll
deleted file mode 100755
index 
d420ecbb2dd84495100ccb2075d30f24557c18e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbccp32.cpl 
b/clients/odbc/winsetup/winredist/odbccp32.cpl
deleted file mode 100755
index 
9160bc01ab105cb0e3e1d1b6146c31c9ecf93b41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbccp32.dll 
b/clients/odbc/winsetup/winredist/odbccp32.dll
deleted file mode 100755
index 
c75f2deedd5b1d730d80bf5ff672c5b13fe055ce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbccr32.dll 
b/clients/odbc/winsetup/winredist/odbccr32.dll
deleted file mode 100755
index 
42471b014a009d1023e47f2f028b1d96cec8f338..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbcinst.chm 
b/clients/odbc/winsetup/winredist/odbcinst.chm
deleted file mode 100644
index 
5587f04fc28e3e764118e5c6088e614ddcc222a6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbcint.dll 
b/clients/odbc/winsetup/winredist/odbcint.dll
deleted file mode 100755
index 
f18360479e3e64b74be5dd452c61e4cd360b7b05..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/clients/odbc/winsetup/winredist/odbctrac.dll 
b/clients/odbc/winsetup/winredist/odbctrac.dll
deleted file mode 100755
index 
b62ab440c550bbd284effc294bfad8cff2258a7d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001

diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -762,11 +762,35 @@ fullscan_str(BATiter *bi, struct candite
        oid o;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
 
-       if (!equi || !GDK_ELIMDOUBLES(bi->vh))
+       if (anti && tl == th && !bi->nonil && GDK_ELIMDOUBLES(bi->vh) &&
+           strcmp(tl, str_nil) != 0 &&
+           strLocate(bi->vh, str_nil) == (var_t) -2) {
+               /* anti-equi select for non-nil value, and there are no
+                * nils, so we can use fast path; trigger by setting
+                * nonil */
+               bi->nonil = true;
+       }
+       if (!((equi ||
+              (anti && tl == th && (bi->nonil || strcmp(tl, str_nil) == 0))) &&
+             GDK_ELIMDOUBLES(bi->vh)))
                return fullscan_any(bi, ci, bn, tl, th, li, hi, equi, anti,
                                    lval, hval, lnil, cnt, hseq, dst,
                                    maximum, imprints, algo);
        if ((pos = strLocate(bi->vh, tl)) == (var_t) -2) {
+               if (anti) {
+                       /* return the whole shebang */
+                       *algo = "select: fullscan anti-equi strelim (all)";
+                       if (BATextend(bn, ncand) != GDK_SUCCEED) {
+                               BBPreclaim(bn);
+                               return BUN_NONE;
+                       }
+                       dst = Tloc(bn, 0);
+                       TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                               dst[p] = canditer_next(ci);
+                       }
+                       TIMEOUT_CHECK(qry_ctx, 
GOTO_LABEL_TIMEOUT_HANDLER(bailout, qry_ctx));
+                       return ncand;
+               }
                *algo = "select: fullscan equi strelim (nomatch)";
                return 0;
        }
@@ -774,40 +798,74 @@ fullscan_str(BATiter *bi, struct candite
                BBPreclaim(bn);
                return BUN_NONE;
        }
-       *algo = "select: fullscan equi strelim";
+       *algo = anti ? "select: fullscan anti-equi strelim" : "select: fullscan 
equi strelim";
        assert(pos >= GDK_VAROFFSET);
        switch (bi->width) {
        case 1: {
                const unsigned char *ptr = (const unsigned char *) bi->base;
                pos -= GDK_VAROFFSET;
                if (ci->tpe == cand_dense) {
-                       TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
-                               o = canditer_next_dense(ci);
-                               if (ptr[o - hseq] == pos) {
-                                       dst = buninsfix(bn, dst, cnt, o,
-                                                       (BUN) ((dbl) cnt / 
(dbl) (p == 0 ? 1 : p)
-                                                              * (dbl) 
(ncand-p) * 1.1 + 1024),
-                                                       maximum);
-                                       if (dst == NULL) {
-                                               BBPreclaim(bn);
-                                               return BUN_NONE;
+                       if (anti) {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next_dense(ci);
+                                       if (ptr[o - hseq] != pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
                                        }
-                                       cnt++;
+                               }
+                       } else {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next_dense(ci);
+                                       if (ptr[o - hseq] == pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
+                                       }
                                }
                        }
                } else {
-                       TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
-                               o = canditer_next(ci);
-                               if (ptr[o - hseq] == pos) {
-                                       dst = buninsfix(bn, dst, cnt, o,
-                                                       (BUN) ((dbl) cnt / 
(dbl) (p == 0 ? 1 : p)
-                                                              * (dbl) 
(ncand-p) * 1.1 + 1024),
-                                                       maximum);
-                                       if (dst == NULL) {
-                                               BBPreclaim(bn);
-                                               return BUN_NONE;
+                       if (anti) {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next(ci);
+                                       if (ptr[o - hseq] != pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
                                        }
-                                       cnt++;
+                               }
+                       } else {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next(ci);
+                                       if (ptr[o - hseq] == pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
+                                       }
                                }
                        }
                }
@@ -817,33 +875,67 @@ fullscan_str(BATiter *bi, struct candite
                const unsigned short *ptr = (const unsigned short *) bi->base;
                pos -= GDK_VAROFFSET;
                if (ci->tpe == cand_dense) {
-                       TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
-                               o = canditer_next_dense(ci);
-                               if (ptr[o - hseq] == pos) {
-                                       dst = buninsfix(bn, dst, cnt, o,
-                                                       (BUN) ((dbl) cnt / 
(dbl) (p == 0 ? 1 : p)
-                                                              * (dbl) 
(ncand-p) * 1.1 + 1024),
-                                                       maximum);
-                                       if (dst == NULL) {
-                                               BBPreclaim(bn);
-                                               return BUN_NONE;
+                       if (anti) {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next_dense(ci);
+                                       if (ptr[o - hseq] != pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
                                        }
-                                       cnt++;
+                               }
+                       } else {
+                               TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
+                                       o = canditer_next_dense(ci);
+                                       if (ptr[o - hseq] == pos) {
+                                               dst = buninsfix(bn, dst, cnt, o,
+                                                               (BUN) ((dbl) 
cnt / (dbl) (p == 0 ? 1 : p)
+                                                                      * (dbl) 
(ncand-p) * 1.1 + 1024),
+                                                               maximum);
+                                               if (dst == NULL) {
+                                                       BBPreclaim(bn);
+                                                       return BUN_NONE;
+                                               }
+                                               cnt++;
+                                       }
                                }
                        }
                } else {
-                       TIMEOUT_LOOP_IDX(p, ncand, qry_ctx) {
-                               o = canditer_next(ci);
-                               if (ptr[o - hseq] == pos) {
-                                       dst = buninsfix(bn, dst, cnt, o,
-                                                       (BUN) ((dbl) cnt / 
(dbl) (p == 0 ? 1 : p)
-                                                              * (dbl) 
(ncand-p) * 1.1 + 1024),
-                                                       maximum);
-                                       if (dst == NULL) {
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to