Changeset: 46eff133ff57 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=46eff133ff57
Added Files:
        sql/test/BugTracker-2015/Tests/All
        sql/test/BugTracker-2015/Tests/inet-ordering.Bug-3646.sql
        sql/test/BugTracker-2015/Tests/inet-ordering.Bug-3646.stable.err
        sql/test/BugTracker-2015/Tests/inet-ordering.Bug-3646.stable.out
        sql/test/BugTracker-2015/Tests/sharp-alias.Bug-3467.sql
        sql/test/BugTracker-2015/Tests/sharp-alias.Bug-3467.stable.err
        sql/test/BugTracker-2015/Tests/sharp-alias.Bug-3467.stable.out
Modified Files:
        NT/installer32/MonetDB-ODBC-Installer.vdproj
        NT/installer32/MonetDB5-SQL-Installer.vdproj
        NT/installer64/MonetDB-ODBC-Installer.vdproj
        NT/installer64/MonetDB5-SQL-Installer.vdproj
        buildtools/doc/windowsbuild.rst
        clients/ChangeLog.Oct2014
        clients/Tests/exports.stable.out
        clients/mapilib/mapi.c
        clients/odbc/driver/SQLGetConnectOption.c
        clients/odbc/driver/SQLSetConnectOption.c
        clients/perl/DBD/monetdb.pm
        clients/perl/Mapi.pm
        clients/perl/MonetDB-CLI-MapiPP/MonetDB/CLI/MapiPP.pm
        common/stream/stream.c
        gdk/gdk.h
        gdk/gdk_bbp.c
        gdk/gdk_calc.c
        gdk/gdk_cand.h
        gdk/gdk_posix.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/inet.h
        monetdb5/modules/atoms/inet.mal
        monetdb5/tests/mapi/Tests/perl_dbi.stable.out
        sql/backends/monet5/sql_result.c
        sql/test/mapi/Tests/perl_dbi.stable.out
        tools/merovingian/daemon/connections.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/discoveryrunner.c
Branch: resultset
Log Message:

Merge with default


diffs (truncated from 1164 to 300 lines):

diff --git a/NT/installer32/MonetDB-ODBC-Installer.vdproj 
b/NT/installer32/MonetDB-ODBC-Installer.vdproj
--- a/NT/installer32/MonetDB-ODBC-Installer.vdproj
+++ b/NT/installer32/MonetDB-ODBC-Installer.vdproj
@@ -330,7 +330,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_779449EF5BAD4B068A50802402E52278"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\bin\\libeay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\libeay32.dll"
             "TargetName" = "8:libeay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435"
@@ -370,7 +370,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B1B1C0011D7945F892A77F529772EA72"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\bin\\ssleay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\ssleay32.dll"
             "TargetName" = "8:ssleay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435"
diff --git a/NT/installer32/MonetDB5-SQL-Installer.vdproj 
b/NT/installer32/MonetDB5-SQL-Installer.vdproj
--- a/NT/installer32/MonetDB5-SQL-Installer.vdproj
+++ b/NT/installer32/MonetDB5-SQL-Installer.vdproj
@@ -1806,7 +1806,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2E0FEE7726DA47369758C263666F3DB1"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\lib\\libeay32.lib"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\lib\\libeay32.lib"
             "TargetName" = "8:libeay32.lib"
             "Tag" = "8:"
             "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA"
@@ -2066,7 +2066,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_45C820B6483D494EBFE6F9A28A30760C"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\bin\\ssleay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\ssleay32.dll"
             "TargetName" = "8:ssleay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24"
@@ -2446,7 +2446,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_732094CE07974147A084EDD6A5F43C6F"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\lib\\ssleay32.lib"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\lib\\ssleay32.lib"
             "TargetName" = "8:ssleay32.lib"
             "Tag" = "8:"
             "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA"
@@ -4006,7 +4006,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E80B0549492B4D76B7EB93941A6BF89D"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win32\\bin\\libeay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\libeay32.dll"
             "TargetName" = "8:libeay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24"
diff --git a/NT/installer64/MonetDB-ODBC-Installer.vdproj 
b/NT/installer64/MonetDB-ODBC-Installer.vdproj
--- a/NT/installer64/MonetDB-ODBC-Installer.vdproj
+++ b/NT/installer64/MonetDB-ODBC-Installer.vdproj
@@ -330,7 +330,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_779449EF5BAD4B068A50802402E52278"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\bin\\libeay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\libeay32.dll"
             "TargetName" = "8:libeay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435"
@@ -370,7 +370,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B1B1C0011D7945F892A77F529772EA72"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\bin\\ssleay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\ssleay32.dll"
             "TargetName" = "8:ssleay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435"
diff --git a/NT/installer64/MonetDB5-SQL-Installer.vdproj 
b/NT/installer64/MonetDB5-SQL-Installer.vdproj
--- a/NT/installer64/MonetDB5-SQL-Installer.vdproj
+++ b/NT/installer64/MonetDB5-SQL-Installer.vdproj
@@ -1786,7 +1786,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2E0FEE7726DA47369758C263666F3DB1"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\lib\\libeay32.lib"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\lib\\libeay32.lib"
             "TargetName" = "8:libeay32.lib"
             "Tag" = "8:"
             "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA"
@@ -2066,7 +2066,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_45C820B6483D494EBFE6F9A28A30760C"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\bin\\ssleay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\ssleay32.dll"
             "TargetName" = "8:ssleay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24"
@@ -2426,7 +2426,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_732094CE07974147A084EDD6A5F43C6F"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\lib\\ssleay32.lib"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\lib\\ssleay32.lib"
             "TargetName" = "8:ssleay32.lib"
             "Tag" = "8:"
             "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA"
@@ -3966,7 +3966,7 @@
             }
             
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E80B0549492B4D76B7EB93941A6BF89D"
             {
-            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1j.win64\\bin\\libeay32.dll"
+            "SourcePath" = 
"8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\libeay32.dll"
             "TargetName" = "8:libeay32.dll"
             "Tag" = "8:"
             "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24"
diff --git a/buildtools/doc/windowsbuild.rst b/buildtools/doc/windowsbuild.rst
--- a/buildtools/doc/windowsbuild.rst
+++ b/buildtools/doc/windowsbuild.rst
@@ -295,17 +295,17 @@ required for the MonetDB5 component, and
 the clients component when it needs to talk to a MonetDB5 server.
 
 Download the source from http://www.openssl.org/.  We used the latest
-stable version (1.0.1j).  Follow the instructions in the file
+stable version (1.0.1k).  Follow the instructions in the file
 ``INSTALL.W32`` or ``INSTALL.W64``.  We used the option
 ``enable-static-engine`` as described in the instructions.
 
 .. The actual commands used were::
-   perl Configure VC-WIN32 no-asm enable-static-engine 
--prefix=C:\Libraries\openssl-1.0.1j.win32
+   perl Configure VC-WIN32 no-asm enable-static-engine 
--prefix=C:\Libraries\openssl-1.0.1k.win32
    ms\do_ms.bat
    nmake /f ms\ntdll.mak
    nmake /f ms\ntdll.mak install
    and::
-   perl Configure VC-WIN64A enable-static-engine 
--prefix=C:\Libraries\openssl-1.0.1j.win64
+   perl Configure VC-WIN64A enable-static-engine 
--prefix=C:\Libraries\openssl-1.0.1k.win64
    ms\do_win64a
    nmake /f ms\ntdll.mak
    nmake /f ms\ntdll.mak install
diff --git a/clients/ChangeLog.Oct2014 b/clients/ChangeLog.Oct2014
--- a/clients/ChangeLog.Oct2014
+++ b/clients/ChangeLog.Oct2014
@@ -1,3 +1,30 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Tue Jan 13 2015 Sjoerd Mullender <sjo...@acm.org>
+- Changes to the Perl interface, thanks to Stefan O'Rear:
+  1. removes "use sigtrap", because this has global effects and should
+  not be used by modules, only by the application.
+  2. allows Perl 5.8.1+ Unicode strings to be passed to quote() and
+  included in statements (UTF-8 encoded, as expected by Monet's str
+  module)
+  3. quote and unquote now use the same quoting rules as the MonetDB
+  server, allowing for all characters except NUL to be round-tripped
+  4. several character loops have been reimplemented in regex for much
+  greater performance
+  5. micro-optimizations to the result fetch loop
+  6. block boundaries are preserved in piggyback data so that Xclose is
+  not appended or prepended to a SQL command
+  7. diagnostic messages #foo before a result header are ignored, this
+  is necessary to use recycler_pipe
+  8. fail quickly and loudly if we receive a continuation prompt (or any
+  other response that starts with a non-ASCII character)
+  9. header lines must start with %, not merely contain %, fixing a bug
+  when querying a table where string values contain %
+  10. after closing a large resultset, account for the fact that a reply
+  will come and do not lose sync
+  11. allow a MAPI_TRACE environment variable to dump wire protocol
+  frames to standard output
+  12. fixes maximum MAPI block size to match the server limit of 16k.
+  previously would crash on blocks larger than 16k
+
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
@@ -1307,6 +1307,7 @@ str INET_inet(inet *d, inet *s);
 str INET_isnil(bit *retval, inet *val);
 str INETabbrev(str *retval, inet *val);
 str INETbroadcast(inet *retval, inet *val);
+int INETcompare(inet *l, inet *r);
 int INETfromString(str src, int *len, inet **retval);
 str INEThost(str *retval, inet *val);
 str INEThostmask(inet *retval, inet *val);
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -4279,7 +4279,11 @@ mapi_query_part(MapiHdl hdl, const char 
        mid->active = hdl;
        /* remember the query just for the error messages */
        if (hdl->query == NULL) {
-               hdl->query = strdup(query);
+               hdl->query = malloc(size + 1);
+               if (hdl->query) {
+                       strncpy(hdl->query, query, size);
+                       hdl->query[size] = 0;
+               }
        } else {
                size_t sz = strlen(hdl->query);
                char *q;
diff --git a/clients/odbc/driver/SQLGetConnectOption.c 
b/clients/odbc/driver/SQLGetConnectOption.c
--- a/clients/odbc/driver/SQLGetConnectOption.c
+++ b/clients/odbc/driver/SQLGetConnectOption.c
@@ -40,7 +40,7 @@
 #ifdef _MSC_VER
 /* can't call them by their real name with Visual Studio 12.0 since we
  * would then get a warning which we translate to an error during
- * compilation (also see ODBS.syms) */
+ * compilation (also see ODBC.syms) */
 #define SQLGetConnectOption    SQLGetConnectOption_deprecated
 #define SQLGetConnectOptionA   SQLGetConnectOptionA_deprecated
 #define SQLGetConnectOptionW   SQLGetConnectOptionW_deprecated
diff --git a/clients/odbc/driver/SQLSetConnectOption.c 
b/clients/odbc/driver/SQLSetConnectOption.c
--- a/clients/odbc/driver/SQLSetConnectOption.c
+++ b/clients/odbc/driver/SQLSetConnectOption.c
@@ -44,7 +44,7 @@
 #ifdef _MSC_VER
 /* can't call them by their real name with Visual Studio 12.0 since we
  * would then get a warning which we translate to an error during
- * compilation (also see ODBS.syms) */
+ * compilation (also see ODBC.syms) */
 #define SQLSetConnectOption    SQLSetConnectOption_deprecated
 #define SQLSetConnectOptionA   SQLSetConnectOptionA_deprecated
 #define SQLSetConnectOptionW   SQLSetConnectOptionW_deprecated
diff --git a/clients/perl/DBD/monetdb.pm b/clients/perl/DBD/monetdb.pm
--- a/clients/perl/DBD/monetdb.pm
+++ b/clients/perl/DBD/monetdb.pm
@@ -1,8 +1,8 @@
 package DBD::monetdb;
 
 use strict;
-use sigtrap;
 use DBI();
+use Encode();
 use MonetDB::CLI();
 
 our $VERSION = '0.10';
@@ -99,11 +99,11 @@ sub quote {
     return $dbh->{monetdb_language} eq 'sql' ? 'NULL' : 'nil'
         unless defined $value;
 
+    $value = Encode::encode_utf8($value);
+
     for ($value) {
-      s/       /\\t/g;
       s/\\/\\\\/g;
       s/\n/\\n/g;
-      s/\r/\\r/g;
       s/"/\\"/g;
       s/'/''/g;
     }
@@ -122,22 +122,15 @@ sub quote {
 
 
 sub _count_param {
-    my @statement = split //, shift;
+    my $statement = shift;
     my $num = 0;
 
-    while (defined(my $c = shift @statement)) {
-        if ($c eq '"' || $c eq "'") {
-            my $end = $c;
-            while (defined(my $c = shift @statement)) {
-                last if $c eq $end;
-                @statement = splice @statement, 2 if $c eq '\\';
-            }
-        }
-        elsif ($c eq '?') {
-            $num++;
-        }
-    }
-    return $num;
+    $statement =~ s{
+        ' (?: \\. | [^\\']++ )*+ ' |
+        " (?: \\. | [^\\"]++ )*+ '
+    }{}gx;
+
+    return $statement =~ tr/?/?/;
 }
 
 
@@ -614,7 +607,7 @@ sub fetch {
         $sth->set_err(-1, $@) if $@;
         return;
     }
-    my @row = map $hdl->field($_), 0 .. $field_count-1;
+    my @row = map $hdl->{currow}[$_], 0 .. $field_count-1; # encapsulation 
break but saves a microsecond per cell
     map { s/\s+$// } @row if $sth->FETCH('ChopBlanks');
 
     $sth->{monetdb_rows}++;
diff --git a/clients/perl/Mapi.pm b/clients/perl/Mapi.pm
--- a/clients/perl/Mapi.pm
+++ b/clients/perl/Mapi.pm
@@ -96,7 +96,8 @@ sub new {
         PeerPort => $port,
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to