diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/modules/injection_points/Makefile | 2 | ||||
-rw-r--r-- | src/test/modules/injection_points/expected/hashagg.out | 68 | ||||
-rw-r--r-- | src/test/modules/injection_points/meson.build | 1 | ||||
-rw-r--r-- | src/test/modules/injection_points/sql/hashagg.sql | 26 |
4 files changed, 96 insertions, 1 deletions
diff --git a/src/test/modules/injection_points/Makefile b/src/test/modules/injection_points/Makefile index 4f0161fd33a..e680991f8d4 100644 --- a/src/test/modules/injection_points/Makefile +++ b/src/test/modules/injection_points/Makefile @@ -11,7 +11,7 @@ EXTENSION = injection_points DATA = injection_points--1.0.sql PGFILEDESC = "injection_points - facility for injection points" -REGRESS = injection_points reindex_conc +REGRESS = injection_points hashagg reindex_conc REGRESS_OPTS = --dlpath=$(top_builddir)/src/test/regress ISOLATION = basic inplace syscache-update-pruned diff --git a/src/test/modules/injection_points/expected/hashagg.out b/src/test/modules/injection_points/expected/hashagg.out new file mode 100644 index 00000000000..cc4247af97d --- /dev/null +++ b/src/test/modules/injection_points/expected/hashagg.out @@ -0,0 +1,68 @@ +-- Test for hash aggregation +CREATE EXTENSION injection_points; +SELECT injection_points_set_local(); + injection_points_set_local +---------------------------- + +(1 row) + +SELECT injection_points_attach('hash-aggregate-enter-spill-mode', 'notice'); + injection_points_attach +------------------------- + +(1 row) + +SELECT injection_points_attach('hash-aggregate-process-batch', 'notice'); + injection_points_attach +------------------------- + +(1 row) + +-- force partition fan-out to 1 +SELECT injection_points_attach('hash-aggregate-single-partition', 'notice'); + injection_points_attach +------------------------- + +(1 row) + +-- force spilling after 1000 groups +SELECT injection_points_attach('hash-aggregate-spill-1000', 'notice'); + injection_points_attach +------------------------- + +(1 row) + +CREATE TABLE hashagg_ij(x INTEGER); +INSERT INTO hashagg_ij SELECT g FROM generate_series(1,5100) g; +SET max_parallel_workers=0; +SET max_parallel_workers_per_gather=0; +SET enable_sort=FALSE; +SET work_mem='4MB'; +SELECT COUNT(*) FROM (SELECT DISTINCT x FROM hashagg_ij) s; +NOTICE: notice triggered for injection point hash-aggregate-spill-1000 +NOTICE: notice triggered for injection point hash-aggregate-enter-spill-mode +NOTICE: notice triggered for injection point hash-aggregate-single-partition +NOTICE: notice triggered for injection point hash-aggregate-process-batch +NOTICE: notice triggered for injection point hash-aggregate-spill-1000 +NOTICE: notice triggered for injection point hash-aggregate-enter-spill-mode +NOTICE: notice triggered for injection point hash-aggregate-single-partition +NOTICE: notice triggered for injection point hash-aggregate-process-batch +NOTICE: notice triggered for injection point hash-aggregate-spill-1000 +NOTICE: notice triggered for injection point hash-aggregate-enter-spill-mode +NOTICE: notice triggered for injection point hash-aggregate-single-partition +NOTICE: notice triggered for injection point hash-aggregate-process-batch +NOTICE: notice triggered for injection point hash-aggregate-spill-1000 +NOTICE: notice triggered for injection point hash-aggregate-enter-spill-mode +NOTICE: notice triggered for injection point hash-aggregate-single-partition +NOTICE: notice triggered for injection point hash-aggregate-process-batch +NOTICE: notice triggered for injection point hash-aggregate-spill-1000 +NOTICE: notice triggered for injection point hash-aggregate-enter-spill-mode +NOTICE: notice triggered for injection point hash-aggregate-single-partition +NOTICE: notice triggered for injection point hash-aggregate-process-batch + count +------- + 5100 +(1 row) + +DROP TABLE hashagg_ij; +DROP EXTENSION injection_points; diff --git a/src/test/modules/injection_points/meson.build b/src/test/modules/injection_points/meson.build index 259045e5c2d..d61149712fd 100644 --- a/src/test/modules/injection_points/meson.build +++ b/src/test/modules/injection_points/meson.build @@ -35,6 +35,7 @@ tests += { 'regress': { 'sql': [ 'injection_points', + 'hashagg', 'reindex_conc', ], 'regress_args': ['--dlpath', meson.build_root() / 'src/test/regress'], diff --git a/src/test/modules/injection_points/sql/hashagg.sql b/src/test/modules/injection_points/sql/hashagg.sql new file mode 100644 index 00000000000..51d814623fc --- /dev/null +++ b/src/test/modules/injection_points/sql/hashagg.sql @@ -0,0 +1,26 @@ +-- Test for hash aggregation +CREATE EXTENSION injection_points; + +SELECT injection_points_set_local(); + +SELECT injection_points_attach('hash-aggregate-enter-spill-mode', 'notice'); +SELECT injection_points_attach('hash-aggregate-process-batch', 'notice'); + +-- force partition fan-out to 1 +SELECT injection_points_attach('hash-aggregate-single-partition', 'notice'); + +-- force spilling after 1000 groups +SELECT injection_points_attach('hash-aggregate-spill-1000', 'notice'); + +CREATE TABLE hashagg_ij(x INTEGER); +INSERT INTO hashagg_ij SELECT g FROM generate_series(1,5100) g; + +SET max_parallel_workers=0; +SET max_parallel_workers_per_gather=0; +SET enable_sort=FALSE; +SET work_mem='4MB'; + +SELECT COUNT(*) FROM (SELECT DISTINCT x FROM hashagg_ij) s; + +DROP TABLE hashagg_ij; +DROP EXTENSION injection_points; |