Changeset: 8d2869a2203b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8d2869a2203b
Modified Files:
        common/stream/stream.c
Branch: Apr2019
Log Message:

Fix Bug #6713 COPY INTO FROM 'file.xz' does not work

This happened when reading in ascii mode, for example
a csv file. The problem was that after checking for
a Byte Order Marker it tried to rewind the stream
but failed to reset one field of the xz_stream struct.


diffs (27 lines):

diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -1588,18 +1588,15 @@ open_xzstream(const char *restrict filen
                    strncmp(buf, UTF8BOM, UTF8BOMLENGTH) == 0) {
                        s->isutf8 = true;
                } else {
-                       FILE *fp = xz->fp;
-                       lzma_ret ret;
                        lzma_end(&xz->strm);
-                       ret = lzma_stream_decoder(&xz->strm, UINT64_MAX, 
LZMA_CONCATENATED);
-                       if (ret != LZMA_OK) {
+                       if (lzma_stream_decoder(&xz->strm, UINT64_MAX, 
LZMA_CONCATENATED) != LZMA_OK
+                               || fseek (xz->fp, 0L, SEEK_SET) < 0) {
+                               fclose(xz->fp);
+                               free(xz);
                                destroy(s);
-                               free(xz);
-                               fclose(fp);
                                return NULL;
                        }
-                       rewind(fp);
-                       xz->fp = fp;
+                       xz->todo = 0;
                }
        }
        return s;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to