diff options
author | Fujii Masao <fujii@postgresql.org> | 2025-03-04 23:56:49 +0900 |
---|---|---|
committer | Fujii Masao <fujii@postgresql.org> | 2025-03-04 23:56:49 +0900 |
commit | 91ecb5e0bc7f8373ec9ff7d188bfd0d45f13a333 (patch) | |
tree | b75682d1b922548b02f0c0e2908b37fab78467cd /src | |
parent | d2e7068392b22218b83b7e275b77968027ac3d29 (diff) | |
download | postgresql-91ecb5e0bc7f8373ec9ff7d188bfd0d45f13a333.tar.gz postgresql-91ecb5e0bc7f8373ec9ff7d188bfd0d45f13a333.zip |
Add regression tests for pg_stat_progress_copy.tuples_skipped.
This commit adds tests to verify that tuples_skipped in pg_stat_progress_copy
works as expected. While existing tests checked other fields, tuples_skipped
was previously untested.
This improves test coverage and ensures accurate tracking of skipped tuples.
Author: Jian He <jian.universality@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Reviewed-by: Josef Šimánek <josef.simanek@gmail.com>
Discussion: https://postgr.es/m/CACJufxFazq-bfyhiO0KBojR=yOr84E25Rqf6mHB0Ow0KPidkKw@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r-- | src/test/regress/expected/copy.out | 11 | ||||
-rw-r--r-- | src/test/regress/sql/copy.sql | 10 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/test/regress/expected/copy.out b/src/test/regress/expected/copy.out index e69e34c69b8..06bae8c61ae 100644 --- a/src/test/regress/expected/copy.out +++ b/src/test/regress/expected/copy.out @@ -181,7 +181,8 @@ begin bytes_processed > 0 as has_bytes_processed, bytes_total > 0 as has_bytes_total, tuples_processed, - tuples_excluded + tuples_excluded, + tuples_skipped from pg_stat_progress_copy where pid = pg_backend_pid()) select into report (to_jsonb(r)) as value @@ -197,13 +198,17 @@ create trigger check_after_tab_progress_reporting execute function notice_after_tab_progress_reporting(); -- Generate COPY FROM report with PIPE. copy tab_progress_reporting from stdin; -INFO: progress: {"type": "PIPE", "command": "COPY FROM", "relname": "tab_progress_reporting", "has_bytes_total": false, "tuples_excluded": 0, "tuples_processed": 3, "has_bytes_processed": true} +INFO: progress: {"type": "PIPE", "command": "COPY FROM", "relname": "tab_progress_reporting", "tuples_skipped": 0, "has_bytes_total": false, "tuples_excluded": 0, "tuples_processed": 3, "has_bytes_processed": true} -- Generate COPY FROM report with FILE, with some excluded tuples. truncate tab_progress_reporting; \set filename :abs_srcdir '/data/emp.data' copy tab_progress_reporting from :'filename' where (salary < 2000); -INFO: progress: {"type": "FILE", "command": "COPY FROM", "relname": "tab_progress_reporting", "has_bytes_total": true, "tuples_excluded": 1, "tuples_processed": 2, "has_bytes_processed": true} +INFO: progress: {"type": "FILE", "command": "COPY FROM", "relname": "tab_progress_reporting", "tuples_skipped": 0, "has_bytes_total": true, "tuples_excluded": 1, "tuples_processed": 2, "has_bytes_processed": true} +-- Generate COPY FROM report with PIPE, with some skipped tuples. +copy tab_progress_reporting from stdin(on_error ignore); +NOTICE: 2 rows were skipped due to data type incompatibility +INFO: progress: {"type": "PIPE", "command": "COPY FROM", "relname": "tab_progress_reporting", "tuples_skipped": 2, "has_bytes_total": false, "tuples_excluded": 0, "tuples_processed": 1, "has_bytes_processed": true} drop trigger check_after_tab_progress_reporting on tab_progress_reporting; drop function notice_after_tab_progress_reporting(); drop table tab_progress_reporting; diff --git a/src/test/regress/sql/copy.sql b/src/test/regress/sql/copy.sql index 895479d2d0f..3009bdfdf89 100644 --- a/src/test/regress/sql/copy.sql +++ b/src/test/regress/sql/copy.sql @@ -193,7 +193,8 @@ begin bytes_processed > 0 as has_bytes_processed, bytes_total > 0 as has_bytes_total, tuples_processed, - tuples_excluded + tuples_excluded, + tuples_skipped from pg_stat_progress_copy where pid = pg_backend_pid()) select into report (to_jsonb(r)) as value @@ -222,6 +223,13 @@ truncate tab_progress_reporting; copy tab_progress_reporting from :'filename' where (salary < 2000); +-- Generate COPY FROM report with PIPE, with some skipped tuples. +copy tab_progress_reporting from stdin(on_error ignore); +sharon x (15,12) x sam +sharon 25 (15,12) 1000 sam +sharon y (15,12) x sam +\. + drop trigger check_after_tab_progress_reporting on tab_progress_reporting; drop function notice_after_tab_progress_reporting(); drop table tab_progress_reporting; |