Changeset: 1c410d6a8cdc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1c410d6a8cdc
Branch: default
Log Message:
Merge with Oct2020 branch.
diffs (truncated from 1270 to 300 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
@@ -119,7 +119,7 @@ gdk_return BATclear(BAT *b, bool force);
void BATcommit(BAT *b);
BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, role_t role);
BAT *BATconvert(BAT *b, BAT *s, int tp, bool abort_on_error, uint8_t scale1,
uint8_t scale2, uint8_t precision);
-BUN BATcount_no_nil(BAT *b);
+BUN BATcount_no_nil(BAT *b, BAT *s);
gdk_return BATdel(BAT *b, BAT *d) __attribute__((__warn_unused_result__));
BAT *BATdense(oid hseq, oid tseq, BUN cnt)
__attribute__((__warn_unused_result__));
BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in,
BUN estimate);
diff --git a/common/stream/Tests/All b/common/stream/Tests/All
--- a/common/stream/Tests/All
+++ b/common/stream/Tests/All
@@ -10,7 +10,7 @@ HAVE_LIBZ?write_gz
HAVE_LIBLZ4&HAVE_PYTHON_LZ4?write_lz4
HAVE_LIBLZMA?write_xz
-urlstream
+HAVE_CURL?urlstream
read_iconv
write_iconv
diff --git a/common/stream/Tests/read_bz2.py b/common/stream/Tests/read_bz2.py
--- a/common/stream/Tests/read_bz2.py
+++ b/common/stream/Tests/read_bz2.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import read_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/read_gz.py b/common/stream/Tests/read_gz.py
--- a/common/stream/Tests/read_gz.py
+++ b/common/stream/Tests/read_gz.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import read_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/read_iconv.py
b/common/stream/Tests/read_iconv.py
--- a/common/stream/Tests/read_iconv.py
+++ b/common/stream/Tests/read_iconv.py
@@ -1,10 +1,10 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
from testdata import Doc, TestFile
-import os
import subprocess
-import sys
def run_streamcat(text, enc, expected_error = None):
@@ -20,7 +20,10 @@ def run_streamcat(text, enc, expected_er
cmd = ['streamcat', 'read', filename, 'rstream', f'iconv:{enc}']
print(f"Input is {repr(content)}")
proc = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ if proc.stdout:
+ proc.stdout = proc.stdout.replace(b'\r', b'')
if proc.stderr:
+ proc.stderr = proc.stderr.replace(b'\r', b'')
sys.stderr.buffer.write(proc.stderr)
sys.stderr.flush()
if expected_error == None:
@@ -49,4 +52,3 @@ run_streamcat(text, 'latin1')
# invalid utf-8, expect an error
run_streamcat(b"M\xc3\xc3NETDB", 'utf-8', b'multibyte sequence')
-
diff --git a/common/stream/Tests/read_lz4.py b/common/stream/Tests/read_lz4.py
--- a/common/stream/Tests/read_lz4.py
+++ b/common/stream/Tests/read_lz4.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import read_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/read_uncompressed.py
b/common/stream/Tests/read_uncompressed.py
--- a/common/stream/Tests/read_uncompressed.py
+++ b/common/stream/Tests/read_uncompressed.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import read_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/read_xz.py b/common/stream/Tests/read_xz.py
--- a/common/stream/Tests/read_xz.py
+++ b/common/stream/Tests/read_xz.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import read_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/write_bz2.py b/common/stream/Tests/write_bz2.py
--- a/common/stream/Tests/write_bz2.py
+++ b/common/stream/Tests/write_bz2.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import write_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/write_gz.py b/common/stream/Tests/write_gz.py
--- a/common/stream/Tests/write_gz.py
+++ b/common/stream/Tests/write_gz.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import write_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/write_iconv.py
b/common/stream/Tests/write_iconv.py
--- a/common/stream/Tests/write_iconv.py
+++ b/common/stream/Tests/write_iconv.py
@@ -1,10 +1,10 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
from testdata import Doc, TestFile
-import os
import subprocess
-import sys
import tempfile
diff --git a/common/stream/Tests/write_lz4.py b/common/stream/Tests/write_lz4.py
--- a/common/stream/Tests/write_lz4.py
+++ b/common/stream/Tests/write_lz4.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import write_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/write_uncompressed.py
b/common/stream/Tests/write_uncompressed.py
--- a/common/stream/Tests/write_uncompressed.py
+++ b/common/stream/Tests/write_uncompressed.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import write_tests
-import sys
def filter(f):
diff --git a/common/stream/Tests/write_xz.py b/common/stream/Tests/write_xz.py
--- a/common/stream/Tests/write_xz.py
+++ b/common/stream/Tests/write_xz.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
+import sys, os
+sys.path.append(os.environ.get('TSTSRCDIR','.'))
import write_tests
-import sys
def filter(f):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1040,7 +1040,7 @@ BUNtoid(BAT *b, BUN p)
* to insert BUNs at the end of the BAT, but not to modify anything
* that already was in there.
*/
-gdk_export BUN BATcount_no_nil(BAT *b);
+gdk_export BUN BATcount_no_nil(BAT *b, BAT *s);
gdk_export void BATsetcapacity(BAT *b, BUN cnt);
gdk_export void BATsetcount(BAT *b, BUN cnt);
gdk_export BUN BATgrows(BAT *b);
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -2324,7 +2324,7 @@ BATrmprop(BAT *b, enum prop_t idx)
* non-nil tail value.
*/
BUN
-BATcount_no_nil(BAT *b)
+BATcount_no_nil(BAT *b, BAT *s)
{
BUN cnt = 0;
BUN i, n;
@@ -2332,9 +2332,11 @@ BATcount_no_nil(BAT *b)
const char *restrict base;
int t;
int (*cmp)(const void *, const void *);
+ struct canditer ci;
+ oid hseq = b->hseqbase;
BATcheck(b, 0);
- n = BATcount(b);
+ n = canditer_init(&ci, b, s);
if (b->tnonil)
return n;
p = Tloc(b, 0);
@@ -2345,54 +2347,54 @@ BATcount_no_nil(BAT *b)
break;
case TYPE_bte:
for (i = 0; i < n; i++)
- cnt += !is_bte_nil(((const bte *) p)[i]);
+ cnt += !is_bte_nil(((const bte *) p)[canditer_next(&ci)
- hseq]);
break;
case TYPE_sht:
for (i = 0; i < n; i++)
- cnt += !is_sht_nil(((const sht *) p)[i]);
+ cnt += !is_sht_nil(((const sht *) p)[canditer_next(&ci)
- hseq]);
break;
case TYPE_int:
for (i = 0; i < n; i++)
- cnt += !is_int_nil(((const int *) p)[i]);
+ cnt += !is_int_nil(((const int *) p)[canditer_next(&ci)
- hseq]);
break;
case TYPE_lng:
for (i = 0; i < n; i++)
- cnt += !is_lng_nil(((const lng *) p)[i]);
+ cnt += !is_lng_nil(((const lng *) p)[canditer_next(&ci)
- hseq]);
break;
#ifdef HAVE_HGE
case TYPE_hge:
for (i = 0; i < n; i++)
- cnt += !is_hge_nil(((const hge *) p)[i]);
+ cnt += !is_hge_nil(((const hge *) p)[canditer_next(&ci)
- hseq]);
break;
#endif
case TYPE_flt:
for (i = 0; i < n; i++)
- cnt += !is_flt_nil(((const flt *) p)[i]);
+ cnt += !is_flt_nil(((const flt *) p)[canditer_next(&ci)
- hseq]);
break;
case TYPE_dbl:
for (i = 0; i < n; i++)
- cnt += !is_dbl_nil(((const dbl *) p)[i]);
+ cnt += !is_dbl_nil(((const dbl *) p)[canditer_next(&ci)
- hseq]);
break;
case TYPE_str:
base = b->tvheap->base;
switch (b->twidth) {
case 1:
for (i = 0; i < n; i++)
- cnt += base[(var_t) ((const unsigned char *)
p)[i] + GDK_VAROFFSET] != '\200';
+ cnt += base[(var_t) ((const unsigned char *)
p)[canditer_next(&ci) - hseq] + GDK_VAROFFSET] != '\200';
break;
case 2:
for (i = 0; i < n; i++)
- cnt += base[(var_t) ((const unsigned short *)
p)[i] + GDK_VAROFFSET] != '\200';
+ cnt += base[(var_t) ((const unsigned short *)
p)[canditer_next(&ci) - hseq] + GDK_VAROFFSET] != '\200';
break;
#if SIZEOF_VAR_T != SIZEOF_INT
case 4:
for (i = 0; i < n; i++)
- cnt += base[(var_t) ((const unsigned int *)
p)[i]] != '\200';
+ cnt += base[(var_t) ((const unsigned int *)
p)[canditer_next(&ci) - hseq]] != '\200';
break;
#endif
default:
for (i = 0; i < n; i++)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list