Changeset: a7ebdda88223 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7ebdda88223 Modified Files: sql/backends/monet5/sql_result.c Branch: protocol Log Message:
Allow maximum fixed-width trasfer for varchar to be specified through command line and fix for varint string prefix. diffs (52 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,9 +1875,6 @@ static int write_str_term(stream* s, str #include <mhapi.h> #endif -#define VARCHAR_MAXIMUM_FIXED 3 - - static int mvc_export_resultset_prot10(res_table* t, stream* s, stream *c, size_t bsize) { BAT *order; lng count; @@ -1891,6 +1888,16 @@ static int mvc_export_resultset_prot10(r int fres = 0; column_compression colcomp = bs2_colcomp(s); + int VARCHAR_MAXIMUM_FIXED = 0; + if (GDKgetenv("varchar_maximum_fixed") != NULL) { + str baseptr = GDKgetenv("varchar_maximum_fixed"); + str endptr; + VARCHAR_MAXIMUM_FIXED = strtol(baseptr, &endptr, 0); + if (baseptr == endptr) { + VARCHAR_MAXIMUM_FIXED = 0; + errno = 0; + } + } iterators = GDKzalloc(sizeof(BATiter) * t->nr_cols); @@ -2238,18 +2245,9 @@ static int mvc_export_resultset_prot10(r #ifndef VARINT_PADDING buf = stpcpy(buf, str) + 1; #else - if (c->type.digits > 0) { - char *endbuf; - varsize = varint_size(c->type.digits); - endbuf = stpcpy(buf + varsize, str); - write_varint(buf, endbuf - (buf + varsize)); - assert(read_varint_value(buf) == strlen(str)); - buf = endbuf; - } else { - varsize = write_varint(buf, strlen(str)); - buf = stpcpy(buf + varsize, str); - } - #endif + varsize = write_varint(buf, strlen(str)); + buf = stpcpy(buf + varsize, str); +#endif } // after the loop we know the size of the column, so write it *((lng*)startbuf) = buf - (startbuf + sizeof(lng)); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list