Changeset: 5594cf709444 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5594cf709444
Modified Files:
        common/stream/mapi_stream.c
        common/stream/stream.h
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_bincopyfrom.c
Branch: default
Log Message:

Let mapi_request_upload do the bstream handling


diffs (125 lines):

diff --git a/common/stream/mapi_stream.c b/common/stream/mapi_stream.c
--- a/common/stream/mapi_stream.c
+++ b/common/stream/mapi_stream.c
@@ -92,35 +92,36 @@ recv_upload_destroy(stream *s)
 
 
 stream*
-mapi_request_upload(const char *filename, bool binary, stream *from, stream 
*to)
+mapi_request_upload(const char *filename, bool binary, bstream *bs, stream *ws)
 {
        const char *msg = NULL;
        stream *s = NULL;
        struct mapi_recv_upload *state = NULL;
        ssize_t nwritten;
 
-       assert(from->readonly);
-       assert(!to->readonly);
-       assert(isa_block_stream(from));
-       assert(isa_block_stream(to));
+       while (!bs->eof)
+               bstream_next(bs);
+       stream *rs = bs->s;
+       assert(isa_block_stream(ws));
+       assert(isa_block_stream(rs));
 
        if (binary)
-               nwritten = mnstr_printf(to, "%srb %s\n", PROMPT3, filename);
+               nwritten = mnstr_printf(ws, "%srb %s\n", PROMPT3, filename);
        else
-               nwritten = mnstr_printf(to, "%sr 0 %s\n", PROMPT3, filename);
+               nwritten = mnstr_printf(ws, "%sr 0 %s\n", PROMPT3, filename);
        if (nwritten <= 0) {
-               msg = mnstr_peek_error(to);
+               msg = mnstr_peek_error(ws);
                goto end;
        }
-       if (mnstr_flush(to, MNSTR_FLUSH_ALL) < 0) {
-               msg = mnstr_peek_error(to);
+       if (mnstr_flush(ws, MNSTR_FLUSH_ALL) < 0) {
+               msg = mnstr_peek_error(ws);
                goto end;
        }
 
        char buf[256];
-       if (mnstr_readline(from, buf, sizeof(buf)) != 1 || buf[0] != '\n') {
+       if (mnstr_readline(rs, buf, sizeof(buf)) != 1 || buf[0] != '\n') {
                msg = buf;
-               discard(from);
+               discard(rs);
                goto end;
        }
 
@@ -135,8 +136,8 @@ mapi_request_upload(const char *filename
                msg = mnstr_peek_error(NULL);
                goto end;
        }
-       state->from_client = from;
-       state->to_client = to;
+       state->from_client = rs;
+       state->to_client = ws;
        s->stream_data.p = state;
        s->binary= binary;
        s->read = recv_upload_read;
diff --git a/common/stream/stream.h b/common/stream/stream.h
--- a/common/stream/stream.h
+++ b/common/stream/stream.h
@@ -220,9 +220,6 @@ stream_export stream *block_stream(strea
 stream_export bool isa_block_stream(const stream *s); // mapi.c, mal_client.c, 
remote.c, sql_scenario.c/sqlReader, sql_scan.c
 stream_export stream *bs_stream(stream *s); // unused
 
-
-stream_export stream *mapi_request_upload(const char *filename, bool binary, 
stream *from, stream *to);
-
 typedef enum {
        PROTOCOL_AUTO = 0, // unused
        PROTOCOL_9 = 1, // mal_mapi.c, mal_client.c;
@@ -265,7 +262,8 @@ stream_export stream *stream_blackhole_c
 
 stream_export stream *stream_fwf_create(stream *restrict s, size_t num_fields, 
size_t *restrict widths, char filler); // sql.c
 
-
 stream_export stream *create_text_stream(stream *s);
 
+stream_export stream *mapi_request_upload(const char *filename, bool binary, 
bstream *rs, stream *ws);
+
 #endif /*_STREAM_H_*/
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
@@ -3111,14 +3111,7 @@ mvc_import_table_wrap(Client cntxt, MalB
                msg = mvc_import_table(cntxt, &b, be->mvc, be->mvc->scanner.rs, 
t, tsep, rsep, ssep, ns, sz, offset, besteffort, true, escape);
        } else {
                if (onclient) {
-                       stream *ws = be->mvc->scanner.ws;
-                       bstream *bs = be->mvc->scanner.rs;
-                       while (!bs->eof)
-                               bstream_next(bs);
-                       stream *rs = bs->s;
-                       assert(isa_block_stream(ws));
-                       assert(isa_block_stream(rs));
-                       ss = mapi_request_upload(fname, false, rs, ws);
+                       ss = mapi_request_upload(fname, false, 
be->mvc->scanner.rs, be->mvc->scanner.ws);
                } else {
                        ss = open_rastream(fname);
                }
diff --git a/sql/backends/monet5/sql_bincopyfrom.c 
b/sql/backends/monet5/sql_bincopyfrom.c
--- a/sql/backends/monet5/sql_bincopyfrom.c
+++ b/sql/backends/monet5/sql_bincopyfrom.c
@@ -580,15 +580,7 @@ importColumn(backend *be, bat *ret, BUN 
 
        // Open the input stream
        if (onclient) {
-
-                       stream *ws = be->mvc->scanner.ws;
-                       bstream *bs = be->mvc->scanner.rs;
-                       while (!bs->eof)
-                               bstream_next(bs);
-                       stream *rs = bs->s;
-                       assert(isa_block_stream(ws));
-                       assert(isa_block_stream(rs));
-                       s = stream_to_close = mapi_request_upload(path, true, 
rs, ws);
+               s = stream_to_close = mapi_request_upload(path, true, 
be->mvc->scanner.rs, be->mvc->scanner.ws);
        } else {
                s = stream_to_close = open_rstream(path);
        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to