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]

Reply via email to