Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run tests for postgres-scanner on CI #3141

Merged
merged 6 commits into from
Mar 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/ci-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,15 @@ jobs:
steps:
- uses: actions/checkout@v3

- name: Update PostgreSQL host
working-directory: extension/postgres_scanner/test/test_files
env:
FNAME: postgres_scanner.test
FIND: "localhost"
run: |
node -e 'fs=require("fs");fs.readFile(process.env.FNAME,"utf8",(err,data)=>{if(err!=null)throw err;fs.writeFile(process.env.FNAME,data.replaceAll(process.env.FIND,process.env.PG_HOST),"utf8",e=>{if(e!=null)throw e;});});'
cat postgres_scanner.test
- name: Ensure Python dependencies
run: |
pip install torch~=2.0.0 --extra-index-url https://download.pytorch.org/whl/cpu
Expand Down Expand Up @@ -179,6 +188,15 @@ jobs:
steps:
- uses: actions/checkout@v3

- name: Update PostgreSQL host
working-directory: extension/postgres_scanner/test/test_files
env:
FNAME: postgres_scanner.test
FIND: "localhost"
run: |
node -e 'fs=require("fs");fs.readFile(process.env.FNAME,"utf8",(err,data)=>{if(err!=null)throw err;fs.writeFile(process.env.FNAME,data.replaceAll(process.env.FIND,process.env.PG_HOST),"utf8",e=>{if(e!=null)throw e;});});'
cat postgres_scanner.test
- name: Ensure Python dependencies
run: |
pip install torch~=2.0.0 --extra-index-url https://download.pytorch.org/whl/cpu
Expand Down Expand Up @@ -225,10 +243,20 @@ jobs:
AWS_S3_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
PG_HOST: ${{ secrets.PG_HOST }}
RUN_ID: "$(hostname)-$([Math]::Floor((Get-Date).TimeOfDay.TotalSeconds))"
steps:
- uses: actions/checkout@v3

- name: Update PostgreSQL host
working-directory: extension/postgres_scanner/test/test_files
env:
FNAME: postgres_scanner.test
FIND: "localhost"
run: |
node -e 'fs=require("fs");fs.readFile(process.env.FNAME,"utf8",(err,data)=>{if(err!=null)throw err;fs.writeFile(process.env.FNAME,data.replaceAll(process.env.FIND,process.env.PG_HOST),"utf8",e=>{if(e!=null)throw e;});});'
cat postgres_scanner.test
- name: Ensure Python dependencies
run: |
pip install torch~=2.0.0 --extra-index-url https://download.pytorch.org/whl/cpu
Expand Down Expand Up @@ -430,10 +458,20 @@ jobs:
AWS_S3_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
PG_HOST: ${{ secrets.PG_HOST }}
RUN_ID: "$(hostname)-$(date +%s)"
steps:
- uses: actions/checkout@v3

- name: Update PostgreSQL host
working-directory: extension/postgres_scanner/test/test_files
env:
FNAME: postgres_scanner.test
FIND: "localhost"
run: |
node -e 'fs=require("fs");fs.readFile(process.env.FNAME,"utf8",(err,data)=>{if(err!=null)throw err;fs.writeFile(process.env.FNAME,data.replaceAll(process.env.FIND,process.env.PG_HOST),"utf8",e=>{if(e!=null)throw e;});});'
cat postgres_scanner.test
- name: Ensure Python dependencies
run: |
pip3 install torch~=2.0.0 --extra-index-url https://download.pytorch.org/whl/cpu
Expand Down
4 changes: 0 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,8 @@ extension-test:
-DBUILD_EXTENSIONS="httpfs;duckdb_scanner;postgres_scanner" \
-DBUILD_EXTENSION_TESTS=TRUE \
)
dropdb -h localhost -p 5432 -U ci pgscan || true
createdb -h localhost -p 5432 -U ci -E UTF8 -T template0 -e pgscan
psql -U ci -d pgscan -f extension/postgres_scanner/test/test_files/create_test_db.sql
ctest --test-dir build/release/extension --output-on-failure -j ${TEST_JOBS}
aws s3 rm s3://kuzu-dataset-us/${RUN_ID}/ --recursive
dropdb -h localhost -p 5432 -U ci pgscan

extension-debug:
$(call run-cmake-debug, \
Expand Down
50 changes: 25 additions & 25 deletions extension/postgres_scanner/test/test_files/create_test_db.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SET client_min_messages = warning;
SET row_security = off;

--
-- Name: audience_type; Type: TYPE; Schema: public; Owner: z473chen
-- Name: audience_type; Type: TYPE; Schema: public; Owner: ci
--

CREATE TYPE public.audience_type AS (
Expand All @@ -26,10 +26,10 @@ CREATE TYPE public.audience_type AS (
);


ALTER TYPE public.audience_type OWNER TO z473chen;
ALTER TYPE public.audience_type OWNER TO ci;

--
-- Name: description_type; Type: TYPE; Schema: public; Owner: z473chen
-- Name: description_type; Type: TYPE; Schema: public; Owner: ci
--

CREATE TYPE public.description_type AS (
Expand All @@ -50,10 +50,10 @@ CREATE TYPE public.description_type AS (
);


ALTER TYPE public.description_type OWNER TO z473chen;
ALTER TYPE public.description_type OWNER TO ci;

--
-- Name: mood; Type: TYPE; Schema: public; Owner: z473chen
-- Name: mood; Type: TYPE; Schema: public; Owner: ci
--

CREATE TYPE public.mood AS ENUM (
Expand All @@ -63,10 +63,10 @@ CREATE TYPE public.mood AS ENUM (
);


ALTER TYPE public.mood OWNER TO z473chen;
ALTER TYPE public.mood OWNER TO ci;

--
-- Name: state_type; Type: TYPE; Schema: public; Owner: z473chen
-- Name: state_type; Type: TYPE; Schema: public; Owner: ci
--

CREATE TYPE public.state_type AS (
Expand All @@ -75,10 +75,10 @@ CREATE TYPE public.state_type AS (
);


ALTER TYPE public.state_type OWNER TO z473chen;
ALTER TYPE public.state_type OWNER TO ci;

--
-- Name: stock_type; Type: TYPE; Schema: public; Owner: z473chen
-- Name: stock_type; Type: TYPE; Schema: public; Owner: ci
--

CREATE TYPE public.stock_type AS (
Expand All @@ -87,14 +87,14 @@ CREATE TYPE public.stock_type AS (
);


ALTER TYPE public.stock_type OWNER TO z473chen;
ALTER TYPE public.stock_type OWNER TO ci;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: movies; Type: TABLE; Schema: public; Owner: z473chen
-- Name: movies; Type: TABLE; Schema: public; Owner: ci
--

CREATE TABLE public.movies (
Expand All @@ -107,10 +107,10 @@ CREATE TABLE public.movies (
);


ALTER TABLE public.movies OWNER TO z473chen;
ALTER TABLE public.movies OWNER TO ci;

--
-- Name: organisation; Type: TABLE; Schema: public; Owner: z473chen
-- Name: organisation; Type: TABLE; Schema: public; Owner: ci
--

CREATE TABLE public.organisation (
Expand All @@ -128,10 +128,10 @@ CREATE TABLE public.organisation (
);


ALTER TABLE public.organisation OWNER TO z473chen;
ALTER TABLE public.organisation OWNER TO ci;

--
-- Name: person; Type: TABLE; Schema: public; Owner: z473chen
-- Name: person; Type: TABLE; Schema: public; Owner: ci
--

CREATE TABLE public.person (
Expand All @@ -152,21 +152,21 @@ CREATE TABLE public.person (
);


ALTER TABLE public.person OWNER TO z473chen;
ALTER TABLE public.person OWNER TO ci;

--
-- Name: persontest; Type: TABLE; Schema: public; Owner: z473chen
-- Name: persontest; Type: TABLE; Schema: public; Owner: ci
--

CREATE TABLE public.persontest (
id integer
);


ALTER TABLE public.persontest OWNER TO z473chen;
ALTER TABLE public.persontest OWNER TO ci;

--
-- Data for Name: movies; Type: TABLE DATA; Schema: public; Owner: z473chen
-- Data for Name: movies; Type: TABLE DATA; Schema: public; Owner: ci
--

COPY public.movies (name, length, note, description, content, audience) FROM stdin;
Expand All @@ -177,7 +177,7 @@ Roma 298 the movie is very interesting and funny (1223,100,10003,"2011-02-11 16:


--
-- Data for Name: organisation; Type: TABLE DATA; Schema: public; Owner: z473chen
-- Data for Name: organisation; Type: TABLE DATA; Schema: public; Owner: ci
--

COPY public.organisation (id, name, orgcode, mark, score, history, licensevalidinterval, rating, state, stock, info) FROM stdin;
Expand All @@ -188,7 +188,7 @@ COPY public.organisation (id, name, orgcode, mark, score, history, licensevalidi


--
-- Data for Name: person; Type: TABLE DATA; Schema: public; Owner: z473chen
-- Data for Name: person; Type: TABLE DATA; Schema: public; Owner: ci
--

COPY public.person (id, fname, gender, isstudent, isworker, age, eyesight, birthdate, registertime, lastjobduration, workedhours, usednames, height, u) FROM stdin;
Expand All @@ -204,31 +204,31 @@ COPY public.person (id, fname, gender, isstudent, isworker, age, eyesight, birth


--
-- Data for Name: persontest; Type: TABLE DATA; Schema: public; Owner: z473chen
-- Data for Name: persontest; Type: TABLE DATA; Schema: public; Owner: ci
--

COPY public.persontest (id) FROM stdin;
\.


--
-- Name: movies movies_pkey; Type: CONSTRAINT; Schema: public; Owner: z473chen
-- Name: movies movies_pkey; Type: CONSTRAINT; Schema: public; Owner: ci
--

ALTER TABLE ONLY public.movies
ADD CONSTRAINT movies_pkey PRIMARY KEY (name);


--
-- Name: organisation organisation_pkey; Type: CONSTRAINT; Schema: public; Owner: z473chen
-- Name: organisation organisation_pkey; Type: CONSTRAINT; Schema: public; Owner: ci
--

ALTER TABLE ONLY public.organisation
ADD CONSTRAINT organisation_pkey PRIMARY KEY (id);


--
-- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: z473chen
-- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: ci
--

ALTER TABLE ONLY public.person
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
-CASE ScanPostgresTable
-STATEMENT load extension "${KUZU_ROOT_DIRECTORY}/extension/postgres_scanner/build/libpostgres_scanner.kuzu_extension"
---- ok
-STATEMENT ATTACH 'dbname=pgscan user=ci host=127.0.0.1' as tinysnb (dbtype 'POSTGRES');
-STATEMENT ATTACH 'dbname=pgscan user=ci host=localhost' as tinysnb (dbtype 'POSTGRES');
---- ok
-STATEMENT LOAD FROM tinysnb_person RETURN *;
---- 8
Expand Down Expand Up @@ -34,7 +34,7 @@ Catalog exception: Table: person1 does not exist.
-STATEMENT LOAD FROM tinysnb1_person RETURN *;
---- error
Binder exception: No database named tinysnb1 has been attached.
-STATEMENT ATTACH 'dbname=pgscan user=ci host=127.0.0.1' (dbtype 'POSTGRES');
-STATEMENT ATTACH 'dbname=pgscan user=ci host=localhost' (dbtype 'POSTGRES');
---- ok
-STATEMENT LOAD FROM pgscan_movies RETURN count(*);
---- 1
Expand All @@ -44,5 +44,6 @@ Binder exception: No database named tinysnb1 has been attached.
The 😂😃🧘🏻‍♂️🌍🌦️🍞🚗 movie
-LOG IncorrectConnectionStr
-STATEMENT ATTACH 'dbname=test2132131 user=ci host=127.0.0.1' as tinysnb (dbtype 'POSTGRES');
---- error
Binder exception: Failed to attach postgres database due to: IO Error: Unable to connect to Postgres at dbname=test2132131 user=ci host=127.0.0.1: connection to server at "127.0.0.1", port 5432 failed: FATAL: database "test2132131" does not exist
---- error 2 rows
Binder exception: Failed to attach postgres database due to: IO Error: Unable to connect to Postgres at dbname=test2132131 user=ci host=127.0.0.1: connection to server at "127.0.0.1", port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
13 changes: 13 additions & 0 deletions extension/test_list
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
PostgresScanner.ScanPostgresTable /Users/lc/Developer/kuzu/extension/postgres_scanner/test/test_files/postgres_scanner.test
DuckDBScanner.InvalidDuckDBDatabase /Users/lc/Developer/kuzu/extension/duckdb_scanner/test/test_files/duckdb_scanner.test
DuckDBScanner.ScanDuckDBTable /Users/lc/Developer/kuzu/extension/duckdb_scanner/test/test_files/duckdb_scanner.test
S3.DISABLED_GlobS3Folder /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_glob.test
S3.DISABLED_UploadToS3 /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_upload.test
S3.DISABLED_ScanFromDifferentAWSS3File /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_download.test
S3.ScanFromUWS3File /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_download.test
S3.DuplicateOption /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_download.test
S3.S3Option /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/s3_download.test
HTTPFS.ScanFromHTTPS /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/http.test
HTTPFS.CopyFromHTTPCSV /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/http.test
HTTPFS.ScanFromLargeFiles /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/http.test
HTTPFS.ScanFromHTTPCSV /Users/lc/Developer/kuzu/extension/httpfs/test/test_files/http.test
Loading