Changeset: 2e8a54c6fce0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2e8a54c6fce0
Added Files:
sql/test/BugTracker-2019/Tests/index-insert-crash.Bug-6781.sql
Removed Files:
clients/mapiclient/mnc.c
sql/test/datacell/Tests/All
sql/test/datacell/Tests/crashonundefined.sql
sql/test/datacell/Tests/crashonundefined.stable.err
sql/test/datacell/Tests/crashonundefined.stable.out
sql/test/datacell/Tests/garbagecollect.sql
sql/test/datacell/Tests/garbagecollect.stable.err
sql/test/datacell/Tests/garbagecollect.stable.out
sql/test/datacell/Tests/select.sql
sql/test/datacell/Tests/select.stable.err
sql/test/datacell/Tests/select.stable.out
sql/test/datacell/Tests/topbasket.sql
sql/test/datacell/Tests/topbasket.stable.err
sql/test/datacell/Tests/topbasket.stable.out
Modified Files:
NT/mkodbcwxs.py
NT/mksqlwxs.py
clients/Tests/MAL-signatures.stable.out.int128
clients/mapiclient/Makefile.ag
gdk/gdk_bbp.c
monetdb5/modules/atoms/00_json_hge.mal
sql/ChangeLog.Nov2019
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_upgrades.c
sql/common/sql_types.c
sql/scripts/40_json.sql
sql/test/BugTracker-2019/Tests/All
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/sql_xml/Tests/funcs.sql
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: default
Log Message:
Merge with Nov2019
diffs (truncated from 1320 to 300 lines):
diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py
--- a/NT/mkodbcwxs.py
+++ b/NT/mkodbcwxs.py
@@ -55,16 +55,13 @@ def main():
print(r' <CustomAction Id="driverinstall" FileKey="odbcinstall"
ExeCommand="/Install" Execute="deferred" Impersonate="no"/>')
print(r' <CustomAction Id="driveruninstall" FileKey="odbcinstall"
ExeCommand="/Uninstall" Execute="deferred" Impersonate="no"/>')
print(r' <Directory Id="TARGETDIR" Name="SourceDir">')
- if vs in ('17', '19'):
- msvc = r'C:\Program Files (x86)\Microsoft Visual
Studio\20%s\Community\VC\Redist\MSVC' % vs
- d = sorted(os.listdir(msvc))[-1]
- msm = '_CRT_%s.msm' % arch
- for f in sorted(os.listdir(os.path.join(msvc, d, 'MergeModules'))):
- if msm in f:
- fn = f
- print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="%s\%s\MergeModules\%s"/>' % (msvc, d, fn))
- else:
- print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="C:\Program Files (x86)\Common Files\Merge
Modules\Microsoft_VC%s0_CRT_%s.msm"/>' % (vs, arch))
+ msvc = r'C:\Program Files (x86)\Microsoft Visual
Studio\20%s\Community\VC\Redist\MSVC' % vs
+ d = sorted(os.listdir(msvc))[-1]
+ msm = '_CRT_%s.msm' % arch
+ for f in sorted(os.listdir(os.path.join(msvc, d, 'MergeModules'))):
+ if msm in f:
+ fn = f
+ print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="%s\%s\MergeModules\%s"/>' % (msvc, d, fn))
print(r' <Directory Id="%s">' % folder)
print(r' <Directory Id="ProgramFilesMonetDB" Name="MonetDB">')
print(r' <Directory Id="INSTALLDIR" Name="MonetDB ODBC Driver">')
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -114,16 +114,13 @@ def main():
print(r' <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
print(r' <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
print(r' <Directory Id="TARGETDIR" Name="SourceDir">')
- if vs in ('17', '19'):
- msvc = r'C:\Program Files (x86)\Microsoft Visual
Studio\20%s\Community\VC\Redist\MSVC' % vs
- d = sorted(os.listdir(msvc))[-1]
- msm = '_CRT_%s.msm' % arch
- for f in sorted(os.listdir(os.path.join(msvc, d, 'MergeModules'))):
- if msm in f:
- fn = f
- print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="%s\%s\MergeModules\%s"/>' % (msvc, d, fn))
- else:
- print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="C:\Program Files (x86)\Common Files\Merge
Modules\Microsoft_VC%s0_CRT_%s.msm"/>' % (vs, arch))
+ msvc = r'C:\Program Files (x86)\Microsoft Visual
Studio\20%s\Community\VC\Redist\MSVC' % vs
+ d = sorted(os.listdir(msvc))[-1]
+ msm = '_CRT_%s.msm' % arch
+ for f in sorted(os.listdir(os.path.join(msvc, d, 'MergeModules'))):
+ if msm in f:
+ fn = f
+ print(r' <Merge Id="VCRedist" DiskId="1" Language="0"
SourceFile="%s\%s\MergeModules\%s"/>' % (msvc, d, fn))
print(r' <Directory Id="%s">' % folder)
print(r' <Directory Id="ProgramFilesMonetDB" Name="MonetDB">')
print(r' <Directory Id="INSTALLDIR" Name="MonetDB5">')
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -15544,8 +15544,6 @@ stdout of test 'MAL-signatures` in direc
[ "io", "setmallocsuccesscount", "command
io.setmallocsuccesscount(count:lng):void ", "IOsetmallocsuccesscount;",
"Set number of mallocs that are allowed to succeed." ]
[ "io", "stdin", "pattern io.stdin():bstream ", "io_stdin;",
"return the input stream to the database client" ]
[ "io", "stdout", "pattern io.stdout():streams ", "io_stdout;",
"return the output stream for the database client" ]
-[ "iterator", "filter", "command iterator.filter(name:json, idx:hge,
other:str):json ", "JSONfilterArrayDefault_hge;", "" ]
-[ "iterator", "filter", "command iterator.filter(name:json,
idx:hge):json ", "JSONfilterArray_hge;", "" ]
[ "iterator", "new", "pattern iterator.new(b:bat[:any_2]) (h:oid, t:any_2)
", "ITRbunIterator;", "Process the buns one by one extracted from a
void table." ]
[ "iterator", "new", "command iterator.new(b:bat[:any_2], size:lng)
(X_0:lng, X_1:bat[:any_2]) ", "ITRnewChunk;", "Create an iterator with fixed
granule size.\n\t The result is a view." ]
[ "iterator", "next", "pattern iterator.next(b:bat[:any_2]) (h:oid, t:any_2)
", "ITRbunNext;", "Produce the next bun for processing." ]
@@ -15562,10 +15560,12 @@ stdout of test 'MAL-signatures` in direc
[ "json", "dump", "pattern json.dump(j:json):void ", "JSONdump;",
"" ]
[ "json", "filter", "command json.filter(name:json,
pathexpr:str):json ", "JSONfilter;", "Filter all members of an object by a
path expression, returning an array.\nNon-matching elements are skipped." ]
[ "json", "filter", "command json.filter(name:json, idx:bte,
other:str):json ", "JSONfilterArrayDefault_bte;", "" ]
+[ "json", "filter", "command json.filter(name:json, idx:hge,
other:str):json ", "JSONfilterArrayDefault_hge;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:int,
other:str):json ", "JSONfilterArrayDefault_int;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:lng,
other:str):json ", "JSONfilterArrayDefault_lng;", "Extract a single array
element" ]
[ "json", "filter", "command json.filter(name:json, idx:sht,
other:str):json ", "JSONfilterArrayDefault_sht;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:bte):json
", "JSONfilterArray_bte;", "" ]
+[ "json", "filter", "command json.filter(name:json, idx:hge):json
", "JSONfilterArray_hge;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:int):json
", "JSONfilterArray_int;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:lng):json
", "JSONfilterArray_lng;", "" ]
[ "json", "filter", "command json.filter(name:json, idx:sht):json
", "JSONfilterArray_sht;", "" ]
diff --git a/clients/mapiclient/Makefile.ag b/clients/mapiclient/Makefile.ag
--- a/clients/mapiclient/Makefile.ag
+++ b/clients/mapiclient/Makefile.ag
@@ -54,15 +54,6 @@ bin_tomograph = {
$(SOCKET_LIBS) $(zlib_LIBS) $(bzip2_LIBS) $(snappy_LIBS)
$(lz4_LIBS) $(liblzma_LIBS) $(curl_LIBS) $(LTLIBICONV) $(openssl_LIBS)
}
-# disabled: it's not really a tool for users, more to debug mapi
-# problems, or measure performance
-#bin_mnc = {
-# SOURCES = mnc.c
-# LIBS = ../../common/stream/libstream \
-# ../mapilib/libmapi \
-# $(curl_LIBS) $(MALLOC_LIBS) $(PTHREAD_LIBS) $(SOCKET_LIBS)
-#}
-
man_MANS = mclient.1 msqldump.1
EXTRA_DIST = $(man_MANS)
diff --git a/clients/mapiclient/mnc.c b/clients/mapiclient/mnc.c
deleted file mode 100644
--- a/clients/mapiclient/mnc.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
- */
-
-/**
- * mnc
- * Fabian Groffen
- *
- * MCL netcat
- * Simple utility meant to measure the protocol overhead incurred by our
- * stream library compared to "plain" netcat (nc).
- */
-
-#include "monetdb_config.h"
-#include "mapi.h"
-#include "stream.h"
-#include "stream_socket.h"
-#include <string.h>
-#include <signal.h>
-#include <unistd.h>
-#ifdef HAVE_PTHREAD_H
-#include <pthread.h>
-#endif
-#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-#ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-
-#ifndef HAVE_GETOPT_LONG
-# include "monet_getopt.h"
-#else
-# ifdef HAVE_GETOPT_H
-# include "getopt.h"
-# endif
-#endif
-
-#define SOCKPTR struct sockaddr *
-#ifdef HAVE_SOCKLEN_T
-#define SOCKLEN socklen_t
-#else
-#define SOCKLEN int
-#endif
-
-#if !defined(HAVE_ACCEPT4) || !defined(SOCK_CLOEXEC)
-#define accept4(sockfd, addr, addlen, flags) accept(sockfd, addr, addrlen)
-#endif
-
-static void
-usage(void)
-{
- fprintf(stderr, "mnc [options] destination port\n");
- fprintf(stderr, " -l | --listen listen for connection instead\n");
- /* TODO
- fprintf(stderr, " -u | --udp use UDP instead of TCP\n");
- fprintf(stderr, " -g | --gzip use gzip stream wrapper\n");
- fprintf(stderr, " -j | --bzip2 use bzip2 stream wrapper\n");
- fprintf(stderr, " -b | --buffer use buffered stream\n");
- */
- fprintf(stderr, " -B | --block use block stream\n");
-}
-
-int
-main(int argc, char **argv)
-{
- int a = 1;
- char *host = NULL;
- int port = 0;
- char clisten = 0;
- /* char udp = 0; */
- /* char zip = 0; */
- /* char buffer = 0; */
- char block = 0;
- SOCKET s = INVALID_SOCKET;
- stream *in = NULL;
- stream *out = NULL;
- char buf[8096];
- ssize_t len;
- fd_set fds;
- char seeneof = 0;
- char seenflush = 0;
-
- static struct option long_options[8] = {
- { "listen", 0, 0, 'l' },
- { "udp", 0, 0, 'u' },
- { "gzip", 0, 0, 'g' },
- { "bzip2", 0, 0, 'j' },
- { "buffer", 0, 0, 'b' },
- { "block", 0, 0, 'B' },
- { "help", 0, 0, '?' },
- { 0, 0, 0, 0 }
- };
- while (1) {
- int option_index = 0;
- int c = getopt_long(argc, argv, "lugjbB?h",
- long_options, &option_index);
- if (c == -1)
- break;
- switch (c) {
- case 'l':
- clisten = 1;
- break;
- case 'u':
- /* udp = 1; */
- break;
- case 'g':
- /* zip = 1; */
- break;
- case 'j':
- /* zip = 2; */
- break;
- case 'b':
- /* buffer = 1; */
- break;
- case 'B':
- block = 1;
- break;
- default:
- usage();
- exit(0);
- }
- }
-
- a = optind;
- if (argc - a != 2) {
- fprintf(stderr, "%s: need destination and port arguments\n",
argv[0]);
- usage();
- exit(-1);
- }
-
- host = argv[a++];
- port = atoi(argv[a]);
-
- /* call the stream wrappers based on the user's choice, stream
- * everything from/to stdin/stdout */
-
- if (!clisten) {
-#ifdef HAVE_GETADDRINFO
- struct addrinfo hints, *res, *rp;
- char sport[32];
- int ret;
-
- snprintf(sport, sizeof(sport), "%d", port & 0xFFFF);
-
- hints = (struct addrinfo) {
- .ai_family = AF_UNSPEC,
- .ai_socktype = SOCK_STREAM,
- .ai_protocol = IPPROTO_TCP,
- };
- ret = getaddrinfo(host, sport, &hints, &res);
- if (ret) {
- fprintf(stderr, "getaddrinfo failed: %s\n",
gai_strerror(ret));
- exit(1);
- }
- for (rp = res; rp; rp = rp->ai_next) {
- s = socket(rp->ai_family, rp->ai_socktype
-#ifdef SOCK_CLOEXEC
- | SOCK_CLOEXEC
-#endif
- , rp->ai_protocol);
- if (s == INVALID_SOCKET)
- continue;
- if (connect(s, rp->ai_addr, (socklen_t) rp->ai_addrlen)
!= SOCKET_ERROR)
- break; /* success */
- closesocket(s);
- }
-#if !defined(SOCK_CLOEXEC) && defined(HAVE_FCNTL)
- (void) fcntl(s, F_SETFD, FD_CLOEXEC);
-#endif
- freeaddrinfo(res);
- if (rp == NULL) {
- fprintf(stderr, "could not connect to %s:%s: %s\n",
- host, sport, strerror(errno));
- exit(1);
- }
-#else
- struct sockaddr_in server;
- struct hostent *hp;
- struct sockaddr *serv = (struct sockaddr *) &server;
-
- if ((hp = gethostbyname(host)) == NULL) {
- fprintf(stderr, "gethostbyname failed: %s\n", errno ?
strerror(errno) : hstrerror(h_errno));
- exit(1);
- }
- server = (struct sockaddr_in) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list