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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list