Changeset: 3aeedd114d9a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3aeedd114d9a
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
Branch: copyintobinary
Log Message:
Switch from endianness int to byteswap bool
To be more consistent with loading
diffs (71 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -5837,6 +5837,11 @@ rel2bin_output(backend *be, sql_rel *rel
list_append(slist, export);
} else if (tpe == TYPE_int) {
endianness endian = take_atom_arg(&argnode, TYPE_int)->val.ival;
+#ifdef WORDS_BIGENDIAN
+ bool do_byteswap = endian == endian_little;
+#else
+ bool do_byteswap = endian == endian_big;
+#endif
int on_client = take_atom_arg(&argnode, TYPE_int)->val.ival;
assert(sub->type == st_list);
list *collist = sub->op4.lval;
@@ -5844,7 +5849,7 @@ rel2bin_output(backend *be, sql_rel *rel
stmt *colstmt = colnode->data;
assert(argnode != NULL);
const char *filename = take_atom_arg(&argnode,
TYPE_str)->val.sval;
- stmt *export = stmt_export_bin(be, colstmt, endian,
filename, on_client);
+ stmt *export = stmt_export_bin(be, colstmt,
do_byteswap, filename, on_client);
list_append(slist, export);
}
assert(argnode == NULL);
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -5201,8 +5201,8 @@ static mel_func sql_init_funcs[] = {
pattern("sql", "exportChunk", mvc_export_chunk_wrap, true, "Export a chunk of
the result set (in order) to stream s", args(1,3,
arg("",void),arg("s",streams),arg("res_id",int))),
pattern("sql", "exportChunk", mvc_export_chunk_wrap, true, "Export a chunk of
the result set (in order) to stream s", args(1,5,
arg("",void),arg("s",streams),arg("res_id",int),arg("offset",int),arg("nr",int))),
pattern("sql", "exportOperation", mvc_export_operation_wrap, true, "Export
result of schema/transaction queries", args(1,1, arg("",void))),
- pattern("sql", "export_bin_column", mvc_export_bin_column_wrap, true, "export
column as binary", args(1, 5, arg("", lng), batargany("col", 1), arg("endian",
int), arg("filename", str), arg("onclient", int))),
- pattern("sql", "export_bin_column", mvc_export_bin_column_wrap, true, "export
column as binary", args(1, 5, arg("", lng), argany("val", 1), arg("endian",
int), arg("filename", str), arg("onclient", int))),
+ pattern("sql", "export_bin_column", mvc_export_bin_column_wrap, true, "export
column as binary", args(1, 5, arg("", lng), batargany("col", 1),
arg("byteswap", bit), arg("filename", str), arg("onclient", int))),
+ pattern("sql", "export_bin_column", mvc_export_bin_column_wrap, true, "export
column as binary", args(1, 5, arg("", lng), argany("val", 1), arg("byteswap",
bit), arg("filename", str), arg("onclient", int))),
pattern("sql", "affectedRows", mvc_affected_rows_wrap, true, "export the
number of affected rows by the current query", args(1,3,
arg("",int),arg("mvc",int),arg("nr",lng))),
pattern("sql", "copy_from", mvc_import_table_wrap, true, "Import a table from
bstream s with the \ngiven tuple and seperators (sep/rsep)", args(1,13,
batvarargany("",0),arg("t",ptr),arg("sep",str),arg("rsep",str),arg("ssep",str),arg("ns",str),arg("fname",str),arg("nr",lng),arg("offset",lng),arg("best",int),arg("fwf",str),arg("onclient",int),arg("escape",int))),
//we use bat.single now
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -2610,7 +2610,7 @@ stmt_export(backend *be, stmt *t, const
}
stmt *
-stmt_export_bin(backend *be, stmt *colstmt, endianness endian, const char
*filename, int on_client)
+stmt_export_bin(backend *be, stmt *colstmt, bool byteswap, const char
*filename, int on_client)
{
MalBlkPtr mb = be->mb;
InstrPtr q;
@@ -2618,7 +2618,7 @@ stmt_export_bin(backend *be, stmt *colst
q = newStmt(mb, sqlRef, export_bin_columnRef);
pushArgument(mb, q, colstmt->nr);
- pushInt(mb, q, endian);
+ pushBit(mb, q, byteswap);
pushStr(mb, q, filename);
pushInt(mb, q, on_client);
diff --git a/sql/backends/monet5/sql_statement.h
b/sql/backends/monet5/sql_statement.h
--- a/sql/backends/monet5/sql_statement.h
+++ b/sql/backends/monet5/sql_statement.h
@@ -172,7 +172,7 @@ extern stmt *stmt_replace(backend *be, s
extern stmt *stmt_table_clear(backend *be, sql_table *t, int
restart_sequences);
extern stmt *stmt_export(backend *be, stmt *t, const char *sep, const char
*rsep, const char *ssep, const char *null_string, int onclient, stmt *file);
-extern stmt *stmt_export_bin(backend *be, stmt *colstmt, endianness endian,
const char *filename, int on_client);
+extern stmt *stmt_export_bin(backend *be, stmt *colstmt, bool byteswap, const
char *filename, int on_client);
extern stmt *stmt_trans(backend *b, int type, stmt *chain, stmt *name);
extern stmt *stmt_catalog(backend *be, int type, stmt *args);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]