Changeset: eb7052ece4d8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/eb7052ece4d8
Branch: default
Log Message:
merged
diffs (truncated from 2141 to 300 lines):
diff --git a/clients/Tests/MAL-signatures-hge.test
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -46769,11 +46769,6 @@ pattern json.renderobject(X_0:any...):js
JSONrenderobject;
(empty)
json
-resultSet
-command json.resultSet(X_0:bat[:uuid], X_1:bat[:lng], X_2:bat[:json]):json
-JSONresultSet;
-Converts the json store into a single json string:
-json
str
command json.str(X_0:json):str
JSONjson2str;
@@ -48274,26 +48269,6 @@ pattern optimizer.inline(X_0:str, X_1:st
OPTwrapper;
Expand inline functions
optimizer
-jit
-pattern optimizer.jit():str
-OPTwrapper;
-(empty)
-optimizer
-jit
-pattern optimizer.jit(X_0:str, X_1:str):str
-OPTwrapper;
-Propagate candidate lists in just-in-time optimization
-optimizer
-json
-pattern optimizer.json():str
-OPTwrapper;
-(empty)
-optimizer
-json
-pattern optimizer.json(X_0:str, X_1:str):str
-OPTwrapper;
-Unroll the mat.pack operation
-optimizer
macro
pattern optimizer.macro(X_0:str, X_1:str):void
OPTmacro;
@@ -48304,16 +48279,6 @@ pattern optimizer.macro(X_0:str, X_1:str
OPTmacro;
Inline a target function used in a specific function.
optimizer
-mask
-pattern optimizer.mask():str
-OPTwrapper;
-(empty)
-optimizer
-mask
-pattern optimizer.mask(X_0:str, X_1:str):str
-OPTwrapper;
-Manipulate the MSK objects
-optimizer
matpack
pattern optimizer.matpack():str
OPTwrapper;
@@ -49734,21 +49699,21 @@ unsafe pattern sql.setVariable(X_0:int,
setVariable;
Set the value of a session variable
sql
-sql
set_count_distinct
-unsafe pattern sql.set_count_distinct(X_0:str, X_1:str, X_2:str, X_3:lng):void
+unsafe pattern sql.set_count_distinct(X_0:str, X_1:str, X_2:str, X_3:lng):void
sql_set_count_distinct;
Set count distinct for column
sql
set_max
-unsafe pattern sql.set_max(X_0:str, X_1:str, X_2:str, X_3:any_1):void
+unsafe pattern sql.set_max(X_0:str, X_1:str, X_2:str, X_3:any_1):void
sql_set_max;
Set max for column
sql
set_min
-unsafe pattern sql.set_min(X_0:str, X_1:str, X_2:str, X_3:any_1):void
+unsafe pattern sql.set_min(X_0:str, X_1:str, X_2:str, X_3:any_1):void
sql_set_min;
Set min for column
+sql
set_protocol
unsafe pattern sql.set_protocol(X_0:int):int
SQLset_protocol;
diff --git a/clients/Tests/MAL-signatures.test
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -35204,11 +35204,6 @@ pattern json.renderobject(X_0:any...):js
JSONrenderobject;
(empty)
json
-resultSet
-command json.resultSet(X_0:bat[:uuid], X_1:bat[:lng], X_2:bat[:json]):json
-JSONresultSet;
-Converts the json store into a single json string:
-json
str
command json.str(X_0:json):str
JSONjson2str;
@@ -36704,26 +36699,6 @@ pattern optimizer.inline(X_0:str, X_1:st
OPTwrapper;
Expand inline functions
optimizer
-jit
-pattern optimizer.jit():str
-OPTwrapper;
-(empty)
-optimizer
-jit
-pattern optimizer.jit(X_0:str, X_1:str):str
-OPTwrapper;
-Propagate candidate lists in just-in-time optimization
-optimizer
-json
-pattern optimizer.json():str
-OPTwrapper;
-(empty)
-optimizer
-json
-pattern optimizer.json(X_0:str, X_1:str):str
-OPTwrapper;
-Unroll the mat.pack operation
-optimizer
macro
pattern optimizer.macro(X_0:str, X_1:str):void
OPTmacro;
@@ -36734,16 +36709,6 @@ pattern optimizer.macro(X_0:str, X_1:str
OPTmacro;
Inline a target function used in a specific function.
optimizer
-mask
-pattern optimizer.mask():str
-OPTwrapper;
-(empty)
-optimizer
-mask
-pattern optimizer.mask(X_0:str, X_1:str):str
-OPTwrapper;
-Manipulate the MSK objects
-optimizer
matpack
pattern optimizer.matpack():str
OPTwrapper;
@@ -38115,17 +38080,17 @@ setVariable;
Set the value of a session variable
sql
set_count_distinct
-unsafe pattern sql.set_count_distinct(X_0:str, X_1:str, X_2:str, X_3:lng):void
+unsafe pattern sql.set_count_distinct(X_0:str, X_1:str, X_2:str, X_3:lng):void
sql_set_count_distinct;
Set count distinct for column
sql
set_max
-unsafe pattern sql.set_max(X_0:str, X_1:str, X_2:str, X_3:any_1):void
+unsafe pattern sql.set_max(X_0:str, X_1:str, X_2:str, X_3:any_1):void
sql_set_max;
Set max for column
sql
set_min
-unsafe pattern sql.set_min(X_0:str, X_1:str, X_2:str, X_3:any_1):void
+unsafe pattern sql.set_min(X_0:str, X_1:str, X_2:str, X_3:any_1):void
sql_set_min;
Set min for column
sql
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
@@ -4,6 +4,7 @@ int ATOMallocate(const char *nme);
void *ATOMdup(int id, const void *val);
uint8_t ATOMelmshift(int sz) __attribute__((__const__));
char *ATOMformat(int id, const void *val);
+gdk_return ATOMheap(int id, Heap *hp, size_t cap)
__attribute__((__warn_unused_result__));
int ATOMindex(const char *nme);
size_t ATOMlen(int id, const void *v);
const char *ATOMname(int id);
@@ -1625,6 +1626,7 @@ char *buffer_get_buf(buffer *b);
void buffer_init(buffer *restrict b, char *restrict buf, size_t size);
stream *buffer_rastream(buffer *restrict b, const char *restrict name);
stream *buffer_wastream(buffer *restrict b, const char *restrict name);
+stream *byte_counting_stream(stream *wrapped, uint64_t *counter);
stream *bz2_stream(stream *inner, int preset);
stream *callback_stream(void *restrict priv, ssize_t (*read)(void *restrict
priv, void *restrict buf, size_t elmsize, size_t cnt), ssize_t (*write)(void
*restrict priv, const void *restrict buf, size_t elmsize, size_t cnt), void
(*close)(void *priv), void (*destroy)(void *priv), const char *restrict name);
void close_stream(stream *s);
diff --git a/clients/examples/C/bincopydata.c b/clients/examples/C/bincopydata.c
--- a/clients/examples/C/bincopydata.c
+++ b/clients/examples/C/bincopydata.c
@@ -212,6 +212,35 @@ gen_null_strings(FILE *f, bool byteswap,
}
static void
+gen_null_blobs(FILE *f, bool byteswap, long nrecs)
+{
+ uint8_t *buffer = malloc(nrecs);
+ for (long i = 0; i < nrecs; i++) {
+ buffer[i] = 0xD0 + 3 - (i % 3);
+ }
+
+ for (long i = 0; i < nrecs; i++) {
+ uint64_t header;
+ size_t n;
+ if (i % 3 == 2) {
+ // null
+ n = 0;
+ header = (uint64_t)-1;
+ } else {
+ n = (i % 1000);
+ header = n;
+ }
+ if (byteswap)
+ copy_binary_convert64(&header);
+ assert(sizeof(header) == 8);
+ fwrite(&header, sizeof(header), 1, f);
+ if (n > 0)
+ fwrite(buffer, 1, n, f);
+ }
+ free(buffer);
+}
+
+static void
gen_json(FILE *f, bool byteswap, long nrecs)
{
(void)byteswap;
@@ -247,6 +276,7 @@ static struct gen {
{ "broken_strings", gen_broken_strings },
{ "newline_strings", gen_newline_strings },
{ "null_strings", gen_null_strings },
+ { "null_blobs", gen_null_blobs },
//
{ "timestamps", gen_timestamps },
{ "timestamp_times", gen_timestamp_times },
diff --git a/clients/examples/C/bincopytemporaldata.c
b/clients/examples/C/bincopytemporaldata.c
--- a/clients/examples/C/bincopytemporaldata.c
+++ b/clients/examples/C/bincopytemporaldata.c
@@ -10,11 +10,32 @@
#include "bincopydata.h"
+static const copy_binary_timestamp binary_nil_timestamp = {
+ .time = {
+ .ms = 0xFFFFFFFF,
+ .seconds = 255,
+ .minutes = 255,
+ .hours = 255,
+ .padding = 255,
+ },
+ .date = {
+ .day = 255,
+ .month = 255,
+ .year =-1,
+ },
+};
+
static copy_binary_timestamp
random_timestamp(struct rng *rng)
{
+ copy_binary_timestamp ts;
+ if (rng_next(rng) % 10 == 9) {
+ ts = binary_nil_timestamp;
+ return ts;
+ }
+
// the % trick gives a little skew but we don't care
- copy_binary_timestamp ts = {
+ ts = (copy_binary_timestamp){
.time = {
.ms = rng_next(rng) % 1000000,
.seconds = rng_next(rng) % 60, // 61 ??
@@ -62,7 +83,7 @@ gen_timestamps(FILE *f, bool byteswap, l
}
}
-#define GEN_TIMESTAMP_FIELD(name, fld) \
+#define GEN_TIMESTAMP_FIELD(name, typ, fld, nilvalue) \
void name \
(FILE *f, bool byteswap, long nrecs) \
{ \
@@ -70,20 +91,22 @@ gen_timestamps(FILE *f, bool byteswap, l
\
for (long i = 0; i < nrecs; i++) { \
copy_binary_timestamp ts = random_timestamp(&rng); \
+ typ *p = &ts.fld; \
+ typ tmp = ts.date.day == 255 ? nilvalue : *p; \
if (byteswap) { \
copy_binary_convert_timestamp(&ts); \
} \
- fwrite(&ts.fld, sizeof(ts.fld), 1, f); \
+ fwrite(&tmp, sizeof(tmp), 1, f); \
} \
}
-GEN_TIMESTAMP_FIELD(gen_timestamp_times, time)
-GEN_TIMESTAMP_FIELD(gen_timestamp_dates, date)
+GEN_TIMESTAMP_FIELD(gen_timestamp_times, copy_binary_time, time,
binary_nil_timestamp.time)
+GEN_TIMESTAMP_FIELD(gen_timestamp_dates, copy_binary_date, date,
binary_nil_timestamp.date)
-GEN_TIMESTAMP_FIELD(gen_timestamp_ms, time.ms)
-GEN_TIMESTAMP_FIELD(gen_timestamp_seconds, time.seconds)
-GEN_TIMESTAMP_FIELD(gen_timestamp_minutes, time.minutes)
-GEN_TIMESTAMP_FIELD(gen_timestamp_hours, time.hours)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]