mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-04 03:52:56 +00:00
## Problem Sometimes, the regression test of `pg_repack` fails due to an extra line in the output. The most probable cause of this is autovacuum. https://databricks.atlassian.net/browse/LKB-2637 ## Summary of changes Autovacuum is disabled during the test. Co-authored-by: Alexey Masterov <alexey.masterov@databricks.com>
121 lines
4.9 KiB
Diff
121 lines
4.9 KiB
Diff
commit 5eb393810cf7c7bafa4e394dad2e349e2a8cb2cb
|
|
Author: Alexey Masterov <alexey.masterov@databricks.com>
|
|
Date: Mon Jul 28 18:11:02 2025 +0200
|
|
|
|
Patch for pg_repack
|
|
|
|
diff --git a/regress/Makefile b/regress/Makefile
|
|
index bf6edcb..110e734 100644
|
|
--- a/regress/Makefile
|
|
+++ b/regress/Makefile
|
|
@@ -17,7 +17,7 @@ INTVERSION := $(shell echo $$(($$(echo $(VERSION).0 | sed 's/\([[:digit:]]\{1,\}
|
|
# Test suite
|
|
#
|
|
|
|
-REGRESS := init-extension repack-setup repack-run error-on-invalid-idx no-error-on-invalid-idx after-schema repack-check nosuper tablespace get_order_by trigger
|
|
+REGRESS := init-extension noautovacuum repack-setup repack-run error-on-invalid-idx no-error-on-invalid-idx after-schema repack-check nosuper get_order_by trigger autovacuum
|
|
|
|
USE_PGXS = 1 # use pgxs if not in contrib directory
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
diff --git a/regress/expected/autovacuum.out b/regress/expected/autovacuum.out
|
|
new file mode 100644
|
|
index 0000000..e7f2363
|
|
--- /dev/null
|
|
+++ b/regress/expected/autovacuum.out
|
|
@@ -0,0 +1,7 @@
|
|
+ALTER SYSTEM SET autovacuum='on';
|
|
+SELECT pg_reload_conf();
|
|
+ pg_reload_conf
|
|
+----------------
|
|
+ t
|
|
+(1 row)
|
|
+
|
|
diff --git a/regress/expected/noautovacuum.out b/regress/expected/noautovacuum.out
|
|
new file mode 100644
|
|
index 0000000..fc7978e
|
|
--- /dev/null
|
|
+++ b/regress/expected/noautovacuum.out
|
|
@@ -0,0 +1,7 @@
|
|
+ALTER SYSTEM SET autovacuum='off';
|
|
+SELECT pg_reload_conf();
|
|
+ pg_reload_conf
|
|
+----------------
|
|
+ t
|
|
+(1 row)
|
|
+
|
|
diff --git a/regress/expected/nosuper.out b/regress/expected/nosuper.out
|
|
index 8d0a94e..63b68bf 100644
|
|
--- a/regress/expected/nosuper.out
|
|
+++ b/regress/expected/nosuper.out
|
|
@@ -4,22 +4,22 @@
|
|
SET client_min_messages = error;
|
|
DROP ROLE IF EXISTS nosuper;
|
|
SET client_min_messages = warning;
|
|
-CREATE ROLE nosuper WITH LOGIN;
|
|
+CREATE ROLE nosuper WITH LOGIN PASSWORD 'NoSuPeRpAsSwOrD';
|
|
-- => OK
|
|
\! pg_repack --dbname=contrib_regression --table=tbl_cluster --no-superuser-check
|
|
INFO: repacking table "public.tbl_cluster"
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper
|
|
ERROR: pg_repack failed with error: You must be a superuser to use pg_repack
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
ERROR: pg_repack failed with error: ERROR: permission denied for schema repack
|
|
LINE 1: select repack.version(), repack.version_sql()
|
|
^
|
|
GRANT ALL ON ALL TABLES IN SCHEMA repack TO nosuper;
|
|
GRANT USAGE ON SCHEMA repack TO nosuper;
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
INFO: repacking table "public.tbl_cluster"
|
|
ERROR: query failed: ERROR: current transaction is aborted, commands ignored until end of transaction block
|
|
DETAIL: query was: RESET lock_timeout
|
|
diff --git a/regress/sql/autovacuum.sql b/regress/sql/autovacuum.sql
|
|
new file mode 100644
|
|
index 0000000..a8eda63
|
|
--- /dev/null
|
|
+++ b/regress/sql/autovacuum.sql
|
|
@@ -0,0 +1,2 @@
|
|
+ALTER SYSTEM SET autovacuum='on';
|
|
+SELECT pg_reload_conf();
|
|
diff --git a/regress/sql/noautovacuum.sql b/regress/sql/noautovacuum.sql
|
|
new file mode 100644
|
|
index 0000000..13d4836
|
|
--- /dev/null
|
|
+++ b/regress/sql/noautovacuum.sql
|
|
@@ -0,0 +1,2 @@
|
|
+ALTER SYSTEM SET autovacuum='off';
|
|
+SELECT pg_reload_conf();
|
|
diff --git a/regress/sql/nosuper.sql b/regress/sql/nosuper.sql
|
|
index 072f0fa..dbe60f8 100644
|
|
--- a/regress/sql/nosuper.sql
|
|
+++ b/regress/sql/nosuper.sql
|
|
@@ -4,19 +4,19 @@
|
|
SET client_min_messages = error;
|
|
DROP ROLE IF EXISTS nosuper;
|
|
SET client_min_messages = warning;
|
|
-CREATE ROLE nosuper WITH LOGIN;
|
|
+CREATE ROLE nosuper WITH LOGIN PASSWORD 'NoSuPeRpAsSwOrD';
|
|
-- => OK
|
|
\! pg_repack --dbname=contrib_regression --table=tbl_cluster --no-superuser-check
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
|
|
GRANT ALL ON ALL TABLES IN SCHEMA repack TO nosuper;
|
|
GRANT USAGE ON SCHEMA repack TO nosuper;
|
|
|
|
-- => ERROR
|
|
-\! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
+\! PGPASSWORD=NoSuPeRpAsSwOrD pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check
|
|
|
|
REVOKE ALL ON ALL TABLES IN SCHEMA repack FROM nosuper;
|
|
REVOKE USAGE ON SCHEMA repack FROM nosuper;
|