X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpsql-reader.c;h=76b4674dc9d914cabaadce71aef6512be050e683;hb=6549c9aced0949b16abb372257772fc0893e02bb;hp=741bf36e44c079196d608df94c1a6b5f6ee7a9e4;hpb=5c3291dc396b795696e94f47780308fd7ace6fc4;p=pspp diff --git a/src/data/psql-reader.c b/src/data/psql-reader.c index 741bf36e44..76b4674dc9 100644 --- a/src/data/psql-reader.c +++ b/src/data/psql-reader.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -54,6 +54,9 @@ psql_open_reader (struct psql_read_info *info UNUSED, struct dictionary **dict U #include +/* Default width of string variables. */ +#define PSQL_DEFAULT_WIDTH 8 + /* These macros must be the same as in catalog/pg_types.h from the postgres source */ #define BOOLOID 16 #define BYTEAOID 17 @@ -283,8 +286,7 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) } } - r->postgres_epoch = - calendar_gregorian_to_offset (2000, 1, 1, NULL, NULL); + r->postgres_epoch = calendar_gregorian_to_offset (2000, 1, 1, NULL); /* Create the dictionary and populate it */ @@ -376,7 +378,7 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) if ( n_tuples > 0 ) length = PQgetlength (qres, 0, i); else - length = MAX_SHORT_STRING; + length = PSQL_DEFAULT_WIDTH; switch (type) { @@ -403,13 +405,13 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) case BPCHAROID: fmt.type = FMT_A; width = (info->str_width == -1) ? - ROUND_UP (length, MAX_SHORT_STRING) : info->str_width; + ROUND_UP (length, PSQL_DEFAULT_WIDTH) : info->str_width; fmt.w = width; fmt.d = 0; break; case BYTEAOID: fmt.type = FMT_AHEX; - width = length > 0 ? length : MAX_SHORT_STRING; + width = length > 0 ? length : PSQL_DEFAULT_WIDTH; fmt.w = width * 2; fmt.d = 0; break; @@ -448,14 +450,14 @@ psql_open_reader (struct psql_read_info *info, struct dictionary **dict) default: msg (MW, _("Unsupported OID %d. SYSMIS values will be inserted."), type); fmt.type = FMT_A; - width = length > 0 ? length : MAX_SHORT_STRING; + width = length > 0 ? length : PSQL_DEFAULT_WIDTH; fmt.w = width ; fmt.d = 0; break; } if ( width == 0 && fmt_is_string (fmt.type)) - fmt.w = width = MAX_SHORT_STRING; + fmt.w = width = PSQL_DEFAULT_WIDTH; var = create_var (r, &fmt, width, PQfname (qres, i), i); @@ -835,7 +837,7 @@ set_value (struct psql_reader *r) case VARCHAROID: case BPCHAROID: case BYTEAOID: - memcpy (value_str_rw (val, var_width), (char *) vptr, + memcpy (value_str_rw (val, var_width), vptr, MIN (length, var_width)); break;