citusdata / citusdata/citus

Regression test improvements

Open
#347 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
12.8k
Forks
794
Avg merge
2d 14h
Merged PRs (30d)
31

Description

I'm creating this issue to track improvements related to Citus' regression tests in one place.

We currently have about ten open issues that relate to regression tests. (continuously edited)
- [ ] Issue #1828 suggests that we should add some tests with large number of shard_counts.
- [ ] Issue #1908 relates to changing deprecated `master_create_*` APIs with `create_distributed_table`.
- [ ] Issue #1909 relates to removing explicit calls, where we reduced the shard count to 4 to speed up regression tests.
- [ ] Issue #1910 relates to evaluating our regression test coverage split between append, hash, and range distributed tables.
- [ ] Issue #1911 relates to replacing short `COPY` with `INSERT` to improve regression test runtime performance.
- [ ] Issue #325 relates to cleaning up the code in `pg_regress_multi`.
- [x] Issue #253 relates to exercising shard fetching functionality for broadcast joins as part of our regression tests suite.
- [ ] Issue #155 relates to exercising additional code paths in our regression tests. These include foreign file fetching, and creating/deleting tables.
- [ ] Issue #373 relates to "make check" failing on Mac 10.10.5 due to `libdir`.
- [x] Issue #561 relates to incorporating cstore_fdw related regression tests into our test suite.
- [ ] Issue #1912 relates to splitting some tests to another schedule

**Resolved**

- [x] Issue #133 relates to replacing \stage by `INSERT` to improve regression test runtime performance.
- [x] Issue #758 relates to adding regression tests to include queries with ``WHERE distribution column = NULL``.
- [x] Issue #795 adds regression tests for the MX project and queries from workers.
- [x] Issue #346 notes that our regression tests take minutes to run. The issue aims to reduce this runtime.
- [x] Issue #870 relates to adding regression tests to exercise queries that have non-relational filter clauses.
- [x] Issue #877 talks about adding Postgres as a regression test target for Citus.
- [x] Issue #345 talks about a semi-related issue that comes up when our regression tests run in an environment where worker nodes have high load. In that case, Citus might emit warning messages that break the regression tests.
- [x] Issue #323 changes the default policy for \stage. This makes our regression tests' output platform independent.
- [x] Issue #302 highlights a small fix in regression tests. We previously didn't have native support for hash partitioned tables in Citus and manually added lines to change partition method. We can now fix this.
- [x] Issue #275 considers rewriting certain regression tests to remove variant files that we added.
- [x] Issue #271 relates to manually setting shardId and jobId sequences in regression tests -- this will make it easier for us to reorder our regression tests and add new ones.
- [x] Issue #148 relates to the regression test worker_check_invalid_arguments failing on some platforms.
- [x] Issue #298 notes that we now have a pg_regress_multi script that removes the need for multi_task_tracker_executor.conf and binary_worker_copy_format.conf.
- [x] Issue #297 evaluates removing postgresql-hll (HyperLogLog extension) regression tests.
- [x] Issue #92 relates to using variable interpolation in regression tests to fix hardcoded paths.

Contributor guide

Open the contributing guide

Research direction

This is an umbrella tracker for Citus regression-test work, including pg_regress_multi cleanup and `make check` platform failures. Start by reviewing the still-open issue descriptions linked in this tracker and choose one narrowly scoped item. Done means that item's regression-test change is implemented and its relevant checks pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgresql, sql
Domain
databases, testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.