Changeset: 66bc23f9fc8c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=66bc23f9fc8c
Modified Files:
sql/backends/monet5/sql_result.c
Branch: protocol
Log Message:
Revert 17d91558ad65.
diffs (131 lines):
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1875,7 +1875,7 @@ static int write_str_term(stream* s, str
#include <mhapi.h>
#endif
-#define VARCHAR_MAXIMUM_FIXED 0
+#define VARCHAR_MAXIMUM_FIXED 3
static int mvc_export_resultset_prot10(res_table* t, stream* s, stream *c,
size_t bsize) {
@@ -2012,15 +2012,6 @@ static int mvc_export_resultset_prot10(r
}
mnstr_flush(s);
-#ifdef NULL_BITMASK
- // bitmask requires 1 bit per field for each row; for simplicity we
round up to the nearest byte
- fixed_lengths += (t->nr_cols / 8) + 1;
-#endif
- char fname[1000];
- snprintf(fname, 1000, "%s.proto", ((res_col*)t->cols)->tn);
-
- FILE *f = fopen(fname, "wb");
-
while (row < (size_t) count) {
char *buf = bs2_buffer(s).buf;
size_t crow = 0;
@@ -2241,32 +2232,6 @@ static int mvc_export_resultset_prot10(r
// but since we don't know the length
yet, just skip over it for now
char *startbuf = buf;
buf += sizeof(lng);
-#ifdef NULL_BITMASK
- size_t m, n;
- const void *nil = ATOMnilptr(mtype);
- int (*atomcmp)(const void *, const void
*) = ATOMcompare(mtype);
- // first write the bitmask
- for(m = 0; m < (row - srow); m+=8) {
- unsigned char byte = 0;
- for(n = 0; n < 8 && (m + n <
(row - srow)); n++) {
- char *str = (char*)
BUNtail(iterators[i], srow + m * 8 + n);
- if (strcmp(str,
str_nil) == 0) {
- // null value
- byte |= 1 << n;
- }
- }
- memcpy(buf, &byte, 1);
- buf += 1;
- }
- for(m = 0; m < (row - srow); m++) {
- char *str = (char*)
BUNtail(iterators[i], srow + m);
- if (strcmp(str, str_nil) != 0) {
- // not null value, so
copy into buffer
- buf = stpcpy(buf, str)
+ 1;
- }
- }
- //printf("%s: %f\n", c->name, (buf -
startbuf) / 1000.0);
-#else
for (crow = srow; crow < row; crow++) {
int varsize;
char *str = (char*)
BUNtail(iterators[i], crow);
@@ -2286,7 +2251,6 @@ static int mvc_export_resultset_prot10(r
}
#endif
}
- #endif
// after the loop we know the size of
the column, so write it
*((lng*)startbuf) = buf - (startbuf +
sizeof(lng));
}
@@ -2364,37 +2328,8 @@ static int mvc_export_resultset_prot10(r
}*/
} else {
#endif
-#ifdef NULL_BITMASK
- const void *nil = ATOMnilptr(mtype);
- int (*atomcmp)(const void *, const void *) =
ATOMcompare(mtype);
- char *baseptr = Tloc(iterators[i].b, srow);
- char *startbuf = buf;
- size_t m, n;
- // first write the bitmask
- for(m = 0; m < (row - srow); m+=8) {
- unsigned char byte = 0;
- int base_index = m * 8;
- for(n = 0; n < 8 && (srow + base_index
+ n < row); n++) {
- if ((*atomcmp)(baseptr +
(base_index + n) * atom_size, nil) == 0) {
- // null value
- byte |= 1 << n;
- }
- }
- memcpy(buf, &byte, 1);
- buf += 1;
- }
- for(m = 0; m < (row - srow); m++) {
- if ((*atomcmp)(baseptr + m * atom_size,
nil) != 0) {
- // not null value, so copy into
buffer
- memcpy(buf, baseptr + m *
atom_size, atom_size);
- buf += atom_size;
- }
- }
- //printf("%s: %f\n", c->name, (buf - startbuf)
/ 1000.0);
-#else
memcpy(buf, Tloc(iterators[i].b, srow), (row -
srow) * atom_size);
buf += (row - srow) * atom_size;
-#endif
#ifdef HAVE_PFOR
}
#endif
@@ -2410,21 +2345,14 @@ static int mvc_export_resultset_prot10(r
goto cleanup;
}
- printf("Write rows %d-%d (%fKB)\n", srow, row, (buf -
bs2_buffer(s).buf) / 1000.0);
- fwrite(bs2_buffer(s).buf, buf - bs2_buffer(s).buf, 1, f);
- bs2_setpos(s, 0);
- /*bs2_setpos(s, buf - bs2_buffer(s).buf);
+ bs2_setpos(s, buf - bs2_buffer(s).buf);
if (mnstr_flush(s) < 0) {
fprintf(stderr, "Failed to flush.\n");
fres = -1;
goto cleanup;
- }*/
+ }
srow = row;
}
- fclose(f);
- fprintf(stderr, "Finished writing result.\n");
- fres = -1;
- goto cleanup;
cleanup:
if (iterators) {
for(i = 0; i < (size_t) t->nr_cols; i++) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list