53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
export PGUSER=postgres
|
|
|
|
dropdb parquet || true
|
|
createdb parquet
|
|
|
|
here=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")
|
|
|
|
psql parquet << EOF
|
|
CREATE TABLE no_nulls1(
|
|
rowid INT2,
|
|
bool_0 INT2,
|
|
int8_1 INT2,
|
|
int16_2 INT2,
|
|
int32_3 INT4,
|
|
int64_4 INT8,
|
|
ts_5 int8,
|
|
double_6 DOUBLE PRECISION,
|
|
string_7 TEXT,
|
|
string_8 TEXT,
|
|
binary_9 TEXT,
|
|
binary_10 TEXT
|
|
);
|
|
|
|
CREATE TABLE no_nulls2 (LIKE no_nulls1);
|
|
CREATE TABLE nulls (LIKE no_nulls1);
|
|
|
|
COPY no_nulls1 FROM '$here/no-nulls.csv';
|
|
COPY no_nulls2 FROM '$here/no-nulls.csv';
|
|
COPY nulls FROM '$here/nulls.csv';
|
|
|
|
CREATE OR REPLACE FUNCTION quote(TEXT) RETURNS TEXT AS \$\$
|
|
BEGIN
|
|
RETURN CASE WHEN \$1 IS NULL THEN 'NULL' ELSE \$1 END;
|
|
END;
|
|
\$\$ LANGUAGE 'plpgsql' IMMUTABLE;
|
|
|
|
CREATE OR REPLACE FUNCTION datetime(INT8, TEXT) RETURNS TEXT AS \$\$
|
|
BEGIN
|
|
RETURN to_timestamp(\$1) AT TIME ZONE 'UTC';
|
|
END;
|
|
\$\$ LANGUAGE 'plpgsql' IMMUTABLE;
|
|
|
|
CREATE OR REPLACE FUNCTION printf(TEXT, DOUBLE PRECISION) RETURNS TEXT AS \$\$
|
|
BEGIN
|
|
RETURN CAST(\$2 AS DECIMAL(10, 4))::TEXT;
|
|
END;
|
|
\$\$ LANGUAGE 'plpgsql' IMMUTABLE;
|
|
EOF
|