projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
work
[pspp]
/
src
/
data
/
psql-reader.c
diff --git
a/src/data/psql-reader.c
b/src/data/psql-reader.c
index d28085f1f4a5ab13307739a89876c0236b8a8c5e..ae56d18212b5eb86873835e6e8dc150285f544b6 100644
(file)
--- a/
src/data/psql-reader.c
+++ b/
src/data/psql-reader.c
@@
-128,7
+128,7
@@
data_to_native (const void *in_, void *out_, int len)
int i;
const unsigned char *in = in_;
unsigned char *out = out_;
int i;
const unsigned char *in = in_;
unsigned char *out = out_;
- for (i = 0 ; i < len ; ++i
)
+ for (i = 0 ; i < len ; ++i)
out[i] = in[i];
}
#else
out[i] = in[i];
}
#else
@@
-138,7
+138,7
@@
data_to_native (const void *in_, void *out_, int len)
int i;
const unsigned char *in = in_;
unsigned char *out = out_;
int i;
const unsigned char *in = in_;
unsigned char *out = out_;
- for (i = 0 ; i < len ; ++i
)
+ for (i = 0 ; i < len ; ++i)
out[len - i - 1] = in[i];
}
#endif
out[len - i - 1] = in[i];
}
#endif
@@
-166,7
+166,7
@@
dump (const unsigned char *x, int l)
for (i = 0; i < l ; ++i)
{
for (i = 0; i < l ; ++i)
{
- if (
isprint (x[i]))
+ if (isprint (x[i]))
printf ("%c ", x[i]);
else
printf (" ");
printf ("%c ", x[i]);
else
printf (" ");
@@
-190,7
+190,7
@@
create_var (struct psql_reader *r, const struct fmt_spec *fmt,
var_set_both_formats (var, fmt);
var_set_both_formats (var, fmt);
- if (
col != -1)
+ if (col != -1)
{
r->vmap = xrealloc (r->vmap, (col + 1) * sizeof (*r->vmap));
{
r->vmap = xrealloc (r->vmap, (col + 1) * sizeof (*r->vmap));
@@
-233,17
+233,17
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
casenumber n_cases = CASENUMBER_MAX;
const char *encoding;
casenumber n_cases = CASENUMBER_MAX;
const char *encoding;
- struct psql_reader *r =
xzalloc (sizeof *
r);
+ struct psql_reader *r =
XZALLOC (struct psql_reade
r);
struct string query ;
r->conn = PQconnectdb (info->conninfo);
struct string query ;
r->conn = PQconnectdb (info->conninfo);
- if (
NULL == r->conn)
+ if (NULL == r->conn)
{
msg (ME, _("Memory error whilst opening psql source"));
goto error;
}
{
msg (ME, _("Memory error whilst opening psql source"));
goto error;
}
- if (
PQstatus (r->conn) != CONNECTION_OK
)
+ if (
PQstatus (r->conn) != CONNECTION_OK
)
{
msg (ME, _("Error opening psql source: %s."),
PQerrorMessage (r->conn));
{
msg (ME, _("Error opening psql source: %s."),
PQerrorMessage (r->conn));
@@
-257,7
+257,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
sscanf (vers, "%d", &ver_num);
sscanf (vers, "%d", &ver_num);
- if (
ver_num < 8)
+ if (ver_num < 8)
{
msg (ME,
_("Postgres server is version %s."
{
msg (ME,
_("Postgres server is version %s."
@@
-271,11
+271,11
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
{
const char *dt = PQparameterStatus (r->conn, "integer_datetimes");
{
const char *dt = PQparameterStatus (r->conn, "integer_datetimes");
- r->integer_datetimes = (
0 == c_strcasecmp (dt, "on"));
+ r->integer_datetimes = (0 == c_strcasecmp (dt, "on"));
}
#if USE_SSL
}
#if USE_SSL
- if (
PQgetssl (r->conn) == NULL)
+ if (PQgetssl (r->conn) == NULL)
#endif
{
if (! info->allow_clear)
#endif
{
if (! info->allow_clear)
@@
-286,7
+286,8
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
}
}
}
}
- r->postgres_epoch = calendar_gregorian_to_offset (2000, 1, 1, NULL);
+ r->postgres_epoch = calendar_gregorian_to_offset (
+ 2000, 1, 1, settings_get_fmt_settings (), NULL);
{
const int enc = PQclientEncoding (r->conn);
{
const int enc = PQclientEncoding (r->conn);
@@
-319,7
+320,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
qres = PQexec (r->conn, ds_cstr (&query));
ds_destroy (&query);
qres = PQexec (r->conn, ds_cstr (&query));
ds_destroy (&query);
- if (
PQresultStatus (qres) != PGRES_COMMAND_OK
)
+ if (
PQresultStatus (qres) != PGRES_COMMAND_OK
)
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
@@
-344,7
+345,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
qres = PQexec (r->conn, ds_cstr (&query));
ds_destroy (&query);
qres = PQexec (r->conn, ds_cstr (&query));
ds_destroy (&query);
- if (
PQresultStatus (qres) != PGRES_TUPLES_OK
)
+ if (
PQresultStatus (qres) != PGRES_TUPLES_OK
)
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
@@
-354,7
+355,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
PQclear (qres);
qres = PQexec (r->conn, "FETCH FIRST FROM pspp");
PQclear (qres);
qres = PQexec (r->conn, "FETCH FIRST FROM pspp");
- if (
PQresultStatus (qres) != PGRES_TUPLES_OK
)
+ if (
PQresultStatus (qres) != PGRES_TUPLES_OK
)
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
{
msg (ME, _("Error from psql source: %s."),
PQresultErrorMessage (qres));
@@
-368,17
+369,17
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
r->vmap = NULL;
r->vmapsize = 0;
r->vmap = NULL;
r->vmapsize = 0;
- for (i = 0 ; i < n_fields ; ++i
)
+ for (i = 0 ; i < n_fields ; ++i)
{
struct variable *var;
{
struct variable *var;
- struct fmt_spec fmt = {
FMT_F, 8, 2
};
+ struct fmt_spec fmt = {
.type = FMT_F, .w = 8, .d = 2
};
Oid type = PQftype (qres, i);
int width = 0;
int length ;
/* If there are no data then make a finger in the air
guess at the contents */
Oid type = PQftype (qres, i);
int width = 0;
int length ;
/* If there are no data then make a finger in the air
guess at the contents */
- if (
n_tuples > 0
)
+ if (
n_tuples > 0
)
length = PQgetlength (qres, 0, i);
else
length = PSQL_DEFAULT_WIDTH;
length = PQgetlength (qres, 0, i);
else
length = PSQL_DEFAULT_WIDTH;
@@
-459,12
+460,12
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
break;
}
break;
}
- if (
width == 0 && fmt_is_string (fmt.type))
+ if (width == 0 && fmt_is_string (fmt.type))
fmt.w = width = PSQL_DEFAULT_WIDTH;
var = create_var (r, &fmt, width, PQfname (qres, i), i);
fmt.w = width = PSQL_DEFAULT_WIDTH;
var = create_var (r, &fmt, width, PQfname (qres, i), i);
- if (
type == NUMERICOID && n_tuples > 0)
+ if (type == NUMERICOID && n_tuples > 0)
{
const uint8_t *vptr = (const uint8_t *) PQgetvalue (qres, 0, i);
struct fmt_spec fmt;
{
const uint8_t *vptr = (const uint8_t *) PQgetvalue (qres, 0, i);
struct fmt_spec fmt;
@@
-522,7
+523,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
PQclear (qres);
qres = PQexec (r->conn, "MOVE BACKWARD 1 FROM pspp");
PQclear (qres);
qres = PQexec (r->conn, "MOVE BACKWARD 1 FROM pspp");
- if (
PQresultStatus (qres) != PGRES_COMMAND_OK)
+ if (PQresultStatus (qres) != PGRES_COMMAND_OK)
{
PQclear (qres);
goto error;
{
PQclear (qres);
goto error;
@@
-544,7
+545,7
@@
psql_open_reader (struct psql_read_info *info, struct dictionary **dict)
&psql_casereader_class, r);
error:
&psql_casereader_class, r);
error:
- dict_
destroy
(*dict);
+ dict_
unref
(*dict);
psql_casereader_destroy (NULL, r);
return NULL;
psql_casereader_destroy (NULL, r);
return NULL;
@@
-574,9
+575,9
@@
psql_casereader_read (struct casereader *reader UNUSED, void *r_)
{
struct psql_reader *r = r_;
{
struct psql_reader *r = r_;
- if (
NULL == r->res || r->tuple >= r->cache_size)
+ if (NULL == r->res || r->tuple >= r->cache_size)
{
{
- if (
! reload_cache (r)
)
+ if (
! reload_cache (r)
)
return false;
}
return false;
}
@@
-594,14
+595,14
@@
set_value (struct psql_reader *r)
n_vars = PQnfields (r->res);
n_vars = PQnfields (r->res);
- if (
r->tuple >= PQntuples (r->res))
+ if (r->tuple >= PQntuples (r->res))
return NULL;
c = case_create (r->proto);
case_set_missing (c);
return NULL;
c = case_create (r->proto);
case_set_missing (c);
- for (i = 0 ; i < n_vars ; ++i
)
+ for (i = 0 ; i < n_vars ; ++i)
{
Oid type = PQftype (r->res, i);
const struct variable *v = r->vmap[i];
{
Oid type = PQftype (r->res, i);
const struct variable *v = r->vmap[i];
@@
-614,7
+615,7
@@
set_value (struct psql_reader *r)
case INTERVALOID:
case TIMESTAMPTZOID:
case TIMETZOID:
case INTERVALOID:
case TIMESTAMPTZOID:
case TIMETZOID:
- if (i < r->vmapsize && var_get_dict_index(v) + 1 < dict_get_
var_cnt
(r->dict))
+ if (i < r->vmapsize && var_get_dict_index(v) + 1 < dict_get_
n_vars
(r->dict))
{
const struct variable *v1 = NULL;
v1 = dict_get_var (r->dict, var_get_dict_index (v) + 1);
{
const struct variable *v1 = NULL;
v1 = dict_get_var (r->dict, var_get_dict_index (v) + 1);
@@
-728,7
+729,7
@@
set_value (struct psql_reader *r)
case INTERVALOID:
{
case INTERVALOID:
{
- if (
r->integer_datetimes
)
+ if (
r->integer_datetimes
)
{
uint32_t months;
uint32_t days;
{
uint32_t months;
uint32_t days;
@@
-774,7
+775,7
@@
set_value (struct psql_reader *r)
case TIMEOID:
{
case TIMEOID:
{
- if (
r->integer_datetimes)
+ if (r->integer_datetimes)
{
uint64_t x;
GET_VALUE (&vptr, x);
{
uint64_t x;
GET_VALUE (&vptr, x);
@@
-792,7
+793,7
@@
set_value (struct psql_reader *r)
case TIMETZOID:
{
int32_t zone;
case TIMETZOID:
{
int32_t zone;
- if (
r->integer_datetimes)
+ if (r->integer_datetimes)
{
uint64_t x;
{
uint64_t x;
@@
-816,7
+817,7
@@
set_value (struct psql_reader *r)
case TIMESTAMPOID:
case TIMESTAMPTZOID:
{
case TIMESTAMPOID:
case TIMESTAMPTZOID:
{
- if (
r->integer_datetimes)
+ if (r->integer_datetimes)
{
int64_t x;
{
int64_t x;
@@
-824,7
+825,7
@@
set_value (struct psql_reader *r)
x /= 1000000;
x /= 1000000;
- val->f = (x + r->postgres_epoch * 24 * 3600
);
+ val->f = (x + r->postgres_epoch * 24 * 3600);
}
else
{
}
else
{
@@
-832,7
+833,7
@@
set_value (struct psql_reader *r)
GET_VALUE (&vptr, x);
GET_VALUE (&vptr, x);
- val->f = (x + r->postgres_epoch * 24 * 3600
);
+ val->f = (x + r->postgres_epoch * 24 * 3600);
}
}
break;
}
}
break;
@@
-840,8
+841,7
@@
set_value (struct psql_reader *r)
case VARCHAROID:
case BPCHAROID:
case BYTEAOID:
case VARCHAROID:
case BPCHAROID:
case BYTEAOID:
- memcpy (value_str_rw (val, var_width), vptr,
- MIN (length, var_width));
+ memcpy (val->s, vptr, MIN (length, var_width));
break;
case NUMERICOID:
break;
case NUMERICOID:
@@
-874,10
+874,10
@@
set_value (struct psql_reader *r)
f += x * pow (10000, weight--);
}
f += x * pow (10000, weight--);
}
- if (
sign == 0x4000)
+ if (sign == 0x4000)
f *= -1.0;
f *= -1.0;
- if (
sign == 0xC000)
+ if (sign == 0xC000)
val->f = SYSMIS;
else
val->f = f;
val->f = SYSMIS;
else
val->f = f;