Changeset: 232f617b63de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/232f617b63de
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_bincopy.c
Branch: copyfaster
Log Message:
Handle newlines correctly, even when compressed
diffs (83 lines):
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
@@ -2522,10 +2522,10 @@ mvc_result_set_wrap( Client cntxt, MalBl
str
-wrap_onclient_compression(stream **inner, str context, int nr)
+wrap_onclient_compression(stream **inner, str context, int nr, bool binary)
{
if (nr <= 1)
- return MAL_SUCCEED;
+ return MAL_SUCCEED;
// these number match those in sql_parser.y's opt_on_location.
stream *s = *inner;
@@ -2551,6 +2551,15 @@ wrap_onclient_compression(stream **inner
close_stream(cs);
return msg;
}
+ if (!binary) {
+ stream *t = create_text_stream(cs);
+ if (t == NULL) {
+ str msg = createException(IO, context, SQLSTATE(42000)
"%s", mnstr_peek_error(NULL));
+ close_stream(cs);
+ return msg;
+ }
+ cs = t;
+ }
*inner = cs;
return MAL_SUCCEED;
}
@@ -2665,7 +2674,7 @@ mvc_export_table_wrap( Client cntxt, Mal
close_stream(s);
goto wrapup_result_set1;
}
- msg = wrap_onclient_compression(&s, "sql.copy_from", onclient);
+ msg = wrap_onclient_compression(&s, "sql.copy_from", onclient,
false);
if (msg != NULL) {
close_stream(s);
return msg;
@@ -3202,7 +3211,7 @@ mvc_import_table_wrap(Client cntxt, MalB
close_stream(ss);
return msg;
}
- msg = wrap_onclient_compression(&ss, "sql.copy_from", onclient);
+ msg = wrap_onclient_compression(&ss, "sql.copy_from", onclient,
false);
if (msg != NULL) {
close_stream(ss);
return msg;
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -93,7 +93,7 @@ extern str mvc_export_chunk_wrap(Client
extern str mvc_export_operation_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
extern str mvc_scalar_value_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
extern str mvc_row_result_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-extern str wrap_onclient_compression(stream **s, str context, int nr);
+extern str wrap_onclient_compression(stream **s, str context, int nr, bool
binary);
extern str mvc_export_row_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
extern str mvc_import_table_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
extern str mvc_bin_import_column_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
diff --git a/sql/backends/monet5/sql_bincopy.c
b/sql/backends/monet5/sql_bincopy.c
--- a/sql/backends/monet5/sql_bincopy.c
+++ b/sql/backends/monet5/sql_bincopy.c
@@ -272,7 +272,7 @@ import_column(backend *be, bat *ret, BUN
if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) {
bailout("%s", mnstr_peek_error(NULL));
}
- msg = wrap_onclient_compression(&s, "sql.copy_from", onclient);
+ msg = wrap_onclient_compression(&s, "sql.copy_from", onclient, true);
if (msg != NULL)
goto end;
@@ -567,7 +567,7 @@ export_column(backend *be, BAT *b, bool
}
if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) {
}
- msg = wrap_onclient_compression(&s, "sql.copy_from", onclient);
+ msg = wrap_onclient_compression(&s, "sql.copy_from", onclient, true);
if (msg != NULL)
goto end;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]