diff --git a/arenadata/README.md b/arenadata/README.md index fff0b986..5c3f98d9 100644 --- a/arenadata/README.md +++ b/arenadata/README.md @@ -3,26 +3,34 @@ You can build your Docker image from GPDB source or use prebuilt images from hub.adsw.io. How to build Docker image: (["readme.md"](https://github.com/arenadata/gpdb/blob/f7ff7c8ecae4ce7ab3b73fd46171cdaa457b3591/arenadata/readme.md)). +## Supported GPDB images + +- `hub.adsw.io/library/gpdb6_regress:latest` +- `hub.adsw.io/library/gpdb6_u22:latest` +- `hub.adsw.io/library/gpdb7_u22:latest` + +## Steps to run tests + 1. Download the cmake-3.20 install script from ([source](https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.sh)). 2. Build diskquota in the Docker container. -Change and to the appropriate paths on your local machine. +Change and to the appropriate paths on your local machine, and to a supported GPDB docker image. ``` docker run --rm -it -e DISKQUOTA_OS=rhel7 \ -v /tmp/diskquota_artifacts:/home/gpadmin/diskquota_artifacts \ -v :/home/gpadmin/diskquota_src \ -v :/home/gpadmin/bin_cmake/cmake-3.20.0-linux-x86_64.sh \ - hub.adsw.io/library/gpdb6_regress:latest diskquota_src/concourse/scripts/entry.sh build + diskquota_src/concourse/scripts/entry.sh build ``` 3. Run tests. -Change and to the appropriate paths on your local machine. +Change and to the appropriate paths on your local machine, and to a supported GPDB docker image. ``` docker run --rm -it --sysctl 'kernel.sem=500 1024000 200 4096' \ -v /tmp/diskquota_artifacts:/home/gpadmin/bin_diskquota \ -v :/home/gpadmin/diskquota_src \ -v :/home/gpadmin/bin_cmake/cmake-3.20.0-linux-x86_64.sh \ - hub.adsw.io/library/gpdb6_regress:latest diskquota_src/concourse/scripts/entry.sh test + diskquota_src/concourse/scripts/entry.sh test ``` diff --git a/tests/init_file b/tests/init_file index 613ebf85..0f068e48 100644 --- a/tests/init_file +++ b/tests/init_file @@ -45,4 +45,20 @@ s/ERROR: tablespace: \d+, schema: \d+ diskquota exceeded.*/[hardlimit] tablespa m/^ERROR: Can not set disk quota for system owner:.*/ s/^ERROR: Can not set disk quota for system owner:.*/ERROR: Can not set disk quota from system owner:/ +# GPDB 7 differences +m/CREATE EXTENSION$/ +s/CREATE EXTENSION$/CREATE/ +m/DROP EXTENSION$/ +s/DROP EXTENSION$/DROP/ +m/CREATE SCHEMA$/ +s/CREATE SCHEMA$/CREATE/ +m/CREATE TABLE$/ +s/CREATE TABLE$/CREATE/ +m/INSERT 0 \d+$/ +s/INSERT 0 (\d+)$/INSERT $1/ +m/DROP SCHEMA$/ +s/DROP SCHEMA$/DROP/ +m/DROP TABLE$/ +s/DROP TABLE$/DROP/ + -- end_matchsubs diff --git a/tests/isolation2/expected/test_create_extension.out b/tests/isolation2/expected/test_create_extension.out index bbf84475..0e609859 100644 --- a/tests/isolation2/expected/test_create_extension.out +++ b/tests/isolation2/expected/test_create_extension.out @@ -1,15 +1,11 @@ -- check that diskquota ignores global flag appendonly=true -SET gp_default_storage_options='appendonly=true'; -SET CREATE EXTENSION diskquota; CREATE DROP EXTENSION diskquota; DROP -SET gp_default_storage_options='appendonly=false'; -SET CREATE EXTENSION diskquota; CREATE diff --git a/tests/isolation2/expected7/test_create_extension.out b/tests/isolation2/expected7/test_create_extension.out deleted file mode 100644 index f34d591a..00000000 --- a/tests/isolation2/expected7/test_create_extension.out +++ /dev/null @@ -1,15 +0,0 @@ -CREATE EXTENSION diskquota; -CREATE EXTENSION - -SELECT diskquota.init_table_size_table(); - init_table_size_table ------------------------ - -(1 row) - --- Wait after init so that diskquota.state is clean -SELECT diskquota.wait_for_worker_new_epoch(); - wait_for_worker_new_epoch ---------------------------- - t -(1 row) diff --git a/tests/isolation2/sql/test_create_extension.sql b/tests/isolation2/sql/test_create_extension.sql index 7b90f5d2..22367ef2 100644 --- a/tests/isolation2/sql/test_create_extension.sql +++ b/tests/isolation2/sql/test_create_extension.sql @@ -1,11 +1,23 @@ -- check that diskquota ignores global flag appendonly=true -SET gp_default_storage_options='appendonly=true'; +-- start_ignore +SELECT CASE + WHEN current_setting('server_version_num')::int > 120000 + THEN set_config('default_table_access_method', 'ao_row', false) + ELSE set_config('gp_default_storage_options', 'appendonly=true', false) +END; +-- end_ignore CREATE EXTENSION diskquota; DROP EXTENSION diskquota; -SET gp_default_storage_options='appendonly=false'; +-- start_ignore +SELECT CASE + WHEN current_setting('server_version_num')::int > 120000 + THEN set_config('default_table_access_method', 'heap', false) + ELSE set_config('gp_default_storage_options', 'appendonly=false', false) +END; +-- end_ignore CREATE EXTENSION diskquota; diff --git a/tests/regress/expected/test_activetable_limit.out b/tests/regress/expected/test_activetable_limit.out index 5b132120..7d19be8d 100644 --- a/tests/regress/expected/test_activetable_limit.out +++ b/tests/regress/expected/test_activetable_limit.out @@ -16,7 +16,11 @@ INSERT INTO a03 values(generate_series(0, 500)); CREATE EXTENSION diskquota; -- we only read the current log file CREATE EXTERNAL WEB TABLE segment_logs(line text) - EXECUTE 'cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1)' + EXECUTE 'if [ -d "$GP_SEG_DATADIR/pg_log" ]; then + cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1) + else + cat $GP_SEG_DATADIR/log/$(ls -Art $GP_SEG_DATADIR/log | tail -n 1) + fi' ON ALL FORMAT 'TEXT' (DELIMITER 'OFF'); CREATE SCHEMA s; SELECT diskquota.set_schema_quota('s', '1 MB'); diff --git a/tests/regress/expected/test_create_extension.out b/tests/regress/expected/test_create_extension.out index b0040506..d715937b 100644 --- a/tests/regress/expected/test_create_extension.out +++ b/tests/regress/expected/test_create_extension.out @@ -1,8 +1,6 @@ -- check that diskquota ignores global flag appendonly=true -SET gp_default_storage_options='appendonly=true'; CREATE EXTENSION diskquota; DROP EXTENSION diskquota; -SET gp_default_storage_options='appendonly=false'; CREATE EXTENSION diskquota; SELECT diskquota.init_table_size_table(); init_table_size_table diff --git a/tests/regress/expected/test_rejectmap_limit.out b/tests/regress/expected/test_rejectmap_limit.out index 8e1c0eaa..6663e135 100644 --- a/tests/regress/expected/test_rejectmap_limit.out +++ b/tests/regress/expected/test_rejectmap_limit.out @@ -15,7 +15,11 @@ SELECT diskquota.wait_for_worker_new_epoch(); -- we only read the current log file CREATE EXTERNAL WEB TABLE master_log(line text) - EXECUTE 'cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1)' + EXECUTE 'if [ -d "$GP_SEG_DATADIR/pg_log" ]; then + cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1) + else + cat $GP_SEG_DATADIR/log/$(ls -Art $GP_SEG_DATADIR/log | tail -n 1) + fi' ON MASTER FORMAT 'TEXT' (DELIMITER 'OFF'); CREATE SCHEMA s1; CREATE SCHEMA s2; diff --git a/tests/regress/sql/test_activetable_limit.sql b/tests/regress/sql/test_activetable_limit.sql index 601d7111..9b1b121e 100644 --- a/tests/regress/sql/test_activetable_limit.sql +++ b/tests/regress/sql/test_activetable_limit.sql @@ -22,7 +22,11 @@ INSERT INTO a03 values(generate_series(0, 500)); CREATE EXTENSION diskquota; -- we only read the current log file CREATE EXTERNAL WEB TABLE segment_logs(line text) - EXECUTE 'cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1)' + EXECUTE 'if [ -d "$GP_SEG_DATADIR/pg_log" ]; then + cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1) + else + cat $GP_SEG_DATADIR/log/$(ls -Art $GP_SEG_DATADIR/log | tail -n 1) + fi' ON ALL FORMAT 'TEXT' (DELIMITER 'OFF'); CREATE SCHEMA s; diff --git a/tests/regress/sql/test_create_extension.sql b/tests/regress/sql/test_create_extension.sql index 7987ff3d..ca1f6854 100644 --- a/tests/regress/sql/test_create_extension.sql +++ b/tests/regress/sql/test_create_extension.sql @@ -1,11 +1,23 @@ -- check that diskquota ignores global flag appendonly=true -SET gp_default_storage_options='appendonly=true'; +-- start_ignore +SELECT CASE + WHEN current_setting('server_version_num')::int > 120000 + THEN set_config('default_table_access_method', 'ao_row', false) + ELSE set_config('gp_default_storage_options', 'appendonly=true', false) +END; +-- end_ignore CREATE EXTENSION diskquota; DROP EXTENSION diskquota; -SET gp_default_storage_options='appendonly=false'; +-- start_ignore +SELECT CASE + WHEN current_setting('server_version_num')::int > 120000 + THEN set_config('default_table_access_method', 'heap', false) + ELSE set_config('gp_default_storage_options', 'appendonly=false', false) +END; +-- end_ignore CREATE EXTENSION diskquota; diff --git a/tests/regress/sql/test_rejectmap_limit.sql b/tests/regress/sql/test_rejectmap_limit.sql index 8bed5cf9..2906ab73 100644 --- a/tests/regress/sql/test_rejectmap_limit.sql +++ b/tests/regress/sql/test_rejectmap_limit.sql @@ -14,7 +14,11 @@ CREATE EXTENSION diskquota; SELECT diskquota.wait_for_worker_new_epoch(); -- we only read the current log file CREATE EXTERNAL WEB TABLE master_log(line text) - EXECUTE 'cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1)' + EXECUTE 'if [ -d "$GP_SEG_DATADIR/pg_log" ]; then + cat $GP_SEG_DATADIR/pg_log/$(ls -Art $GP_SEG_DATADIR/pg_log | tail -n 1) + else + cat $GP_SEG_DATADIR/log/$(ls -Art $GP_SEG_DATADIR/log | tail -n 1) + fi' ON MASTER FORMAT 'TEXT' (DELIMITER 'OFF'); CREATE SCHEMA s1;