export PATH
PGDATA=`pwd`/cluster
export PGDATA
- PGHOST=`pwd`
- export PGHOST
PGPORT=$PG_PORT
export PGPORT
+ socket_dir=`mktemp -d`
+ PGHOST="$socket_dir"
+ export PGHOST
AT_CHECK([initdb -A trust], [0], [ignore])
- AT_CHECK([pg_ctl start -w -o "-k `pwd` -h ''"], [0], [ignore])
+ AT_CHECK([pg_ctl start -w -o "-k $socket_dir -h ''"], [0], [ignore])
trap 'CLEANUP_PSQL' 0
- AT_CHECK([createdb -h "`pwd`" -p $PG_PORT $PG_DBASE],
+ AT_CHECK([createdb -h "$socket_dir" -p $PG_PORT $PG_DBASE],
[0], [ignore], [ignore])
AT_DATA([populate.sql],
[CREATE TABLE empty (a int, b date, c numeric(23, 4));
'01:05:02 UTC-7'
);
])
- AT_CHECK([psql -h "`pwd`" -p $PG_PORT $PG_DBASE < populate.sql],
+ AT_CHECK([psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < populate.sql],
[0], [ignore])])
-m4_define([CLEANUP_PSQL], [pg_ctl stop -W -o "-k `pwd` -h ''"])
+m4_define([CLEANUP_PSQL], [pg_ctl stop -W -o "-k $socket_dir -h ''"])
AT_SETUP([GET DATA /TYPE=PSQL])
INIT_PSQL
dnl Test with an ordinary query.
AT_CHECK([cat > ordinary-query.sps <<EOF
GET DATA /TYPE=psql
- /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+ /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
/UNENCRYPTED
/SQL="select * from thing".
])
AT_CHECK([pspp -o pspp.csv ordinary-query.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-bool,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-bytea,Format: AHEX2,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 1,,
-char,Format: A8,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-int8,Format: F8.2,,4
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-int2,Format: F8.2,,5
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-int4,Format: F8.2,,6
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-numeric,Format: E40.6,,7
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-text,Format: A16,,8
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 16,,
-oid,Format: F8.2,,9
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-float4,Format: F8.2,,10
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-float8,Format: F8.2,,11
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-money,Format: DOLLAR8.2,,12
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-pbchar,Format: A8,,13
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-varchar,Format: A8,,14
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-date,Format: DATE11,,15
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-time,Format: TIME11.0,,16
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timestamp,Format: DATETIME22.0,,17
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timestamptz,Format: DATETIME22.0,,18
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-interval,Format: DTIME13.0,,19
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-interval_months,Format: F3.0,,20
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timetz,Format: TIME11.0,,21
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timetz_zone,Format: F8.2,,22
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+bool,Format: F8.2,1
+bytea,Format: AHEX2,2
+char,Format: A8,3
+int8,Format: F8.2,4
+int2,Format: F8.2,5
+int4,Format: F8.2,6
+numeric,Format: E40.6,7
+text,Format: A16,8
+oid,Format: F8.2,9
+float4,Format: F8.2,10
+float8,Format: F8.2,11
+money,Format: DOLLAR8.2,12
+pbchar,Format: A8,13
+varchar,Format: A8,14
+date,Format: DATE11,15
+time,Format: TIME11.0,16
+timestamp,Format: DATETIME22.0,17
+timestamptz,Format: DATETIME22.0,18
+interval,Format: DTIME13.0,19
+interval_months,Format: F3.0,20
+timetz,Format: TIME11.0,21
+timetz_zone,Format: F8.2,22
Table: Data List
bool,bytea,char,int8,int2,int4,numeric,text,oid,float4,float8,money,pbchar,varchar,date,time,timestamp,timestamptz,interval,interval_months,timetz,timetz_zone
dnl Test query with empty result set.
AT_CHECK([cat > empty-result.sps <<EOF
GET DATA /TYPE=psql
- /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+ /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
/UNENCRYPTED
/SQL="select * from empty".
])
AT_CHECK([pspp -o pspp.csv empty-result.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-a,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-b,Format: DATE11,,2
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-c,Format: E40.2,,3
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+a,Format: F8.2,1
+b,Format: DATE11,2
+c,Format: E40.2,3
])
dnl Test query with large result set.
AT_CHECK([cat > large-result.sps <<EOF
GET DATA /TYPE=psql
- /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+ /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
/UNENCRYPTED
/SQL="select * from large".
INSERT INTO foo VALUES (null, '');
])
-AT_CHECK([psql -h "`pwd`" -p $PG_PORT $PG_DBASE < all-null-string.sql],
+AT_CHECK([psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < all-null-string.sql],
[0], [ignore])
AT_CAPTURE_FILE([get-data.sps])
AT_CHECK([cat > get-data.sps <<EOF
GET DATA /TYPE=psql
- /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+ /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
/UNENCRYPTED
/SQL="select * from foo".
])
AT_CHECK([pspp -o pspp.csv get-data.sps])
AT_CAPTURE_FILE([pspp.csv])
+rm -rf "$socket_dir"
AT_CLEANUP