Skip to content

Commit

Permalink
Remove python based posgres comparsion integration-test (#5031)
Browse files Browse the repository at this point in the history
* Remove python based posgres comparsion function

* Remove old docs
  • Loading branch information
alamb authored Jan 24, 2023
1 parent cb05490 commit 3f5b834
Show file tree
Hide file tree
Showing 35 changed files with 0 additions and 1,120 deletions.
64 changes: 0 additions & 64 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,70 +186,6 @@ jobs:
- name: Verify Working Directory Clean
run: git diff --exit-code

integration-test:
name: "Compare to postgres"
needs: [ linux-build-lib ]
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: db_test
POSTGRES_INITDB_ARGS: --encoding=UTF-8 --lc-collate=C --lc-ctype=C
ports:
- 5432/tcp
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup toolchain
run: |
rustup toolchain install stable
rustup default stable
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel
# setuptools is normally only intended to serve as a build-time dependency
# but since numpy uses it internally and currently accessing methods that
# are removed from newer versions of setuptools we have a pin on it as well.
#
# TODO: this should be removed as soon as https://github.com/numpy/numpy/issues/22623
# is resolved and numpy version in integration-tests/requirements.txt is updated.
python -m pip install --upgrade "setuptools<=65.5.1"
python -m pip install -r integration-tests/requirements.txt
- name: Allow access of psql
run: |
# make sure psql can access the server
echo "$POSTGRES_HOST:$POSTGRES_PORT:$POSTGRES_DB:$POSTGRES_USER:$POSTGRES_PASSWORD" | tee ~/.pgpass
chmod 0600 ~/.pgpass
psql -d "$POSTGRES_DB" -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -U "$POSTGRES_USER" -f integration-tests/create_test_table_postgres.sql
psql -d "$POSTGRES_DB" -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -U "$POSTGRES_USER" -c "\copy test FROM '$(pwd)/testing/data/csv/aggregate_test_100.csv' WITH (FORMAT csv, HEADER true);"
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }}
POSTGRES_DB: db_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
- name: Build datafusion-cli
run: (cd datafusion-cli && cargo build)
- name: Test Psql Parity
run: python -m pytest -v integration-tests/test_psql_parity.py
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }}
POSTGRES_DB: db_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres

sqllogictest-postgres:
name: "Run sqllogictest with Postgres runner"
needs: [ linux-build-lib ]
Expand Down
49 changes: 0 additions & 49 deletions docs/source/contributor-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,55 +141,6 @@ The [sqllogictests](../../../datafusion/core/tests/sqllogictests) also validate
Data Driven tests have many benefits including being easier to write and maintain. We are in the process of [migrating sql_integration tests](https://github.com/apache/arrow-datafusion/issues/4460) and encourage
you to add new tests using sqllogictests if possible.

### SQL / Postgres Integration Tests

The [integration-tests](../../../integration-tests) directory contains a harness that runs certain queries against both postgres and datafusion and compares results

#### setup environment

```shell
export POSTGRES_DB=postgres
export POSTGRES_USER=postgres
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
```

#### Install dependencies

```shell
# Install dependencies
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r integration-tests/requirements.txt

# setup environment
POSTGRES_DB=postgres POSTGRES_USER=postgres POSTGRES_HOST=localhost POSTGRES_PORT=5432 python -m pytest -v integration-tests/test_psql_parity.py

# Create
psql -d "$POSTGRES_DB" -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -U "$POSTGRES_USER" -c 'CREATE TABLE IF NOT EXISTS test (
c1 character varying NOT NULL,
c2 integer NOT NULL,
c3 smallint NOT NULL,
c4 smallint NOT NULL,
c5 integer NOT NULL,
c6 bigint NOT NULL,
c7 smallint NOT NULL,
c8 integer NOT NULL,
c9 bigint NOT NULL,
c10 character varying NOT NULL,
c11 double precision NOT NULL,
c12 double precision NOT NULL,
c13 character varying NOT NULL
);'

psql -d "$POSTGRES_DB" -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -U "$POSTGRES_USER" -c "\copy test FROM '$(pwd)/testing/data/csv/aggregate_test_100.csv' WITH (FORMAT csv, HEADER true);"
```

#### Invoke the test runner

```shell
python -m pytest -v integration-tests/test_psql_parity.py
```

## Benchmarks

### Criterion Benchmarks
Expand Down
49 changes: 0 additions & 49 deletions integration-tests/README.md

This file was deleted.

15 changes: 0 additions & 15 deletions integration-tests/__init__.py

This file was deleted.

34 changes: 0 additions & 34 deletions integration-tests/create_test_table.sql

This file was deleted.

15 changes: 0 additions & 15 deletions integration-tests/create_test_table_postgres.sql

This file was deleted.

18 changes: 0 additions & 18 deletions integration-tests/requirements.in

This file was deleted.

114 changes: 0 additions & 114 deletions integration-tests/requirements.txt

This file was deleted.

17 changes: 0 additions & 17 deletions integration-tests/sqls/character_length.sql

This file was deleted.

Loading

0 comments on commit 3f5b834

Please sign in to comment.