Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add exhaustive ingestion tests #270

Open
10 tasks
matriv opened this issue Jun 27, 2023 · 1 comment
Open
10 tasks

Add exhaustive ingestion tests #270

matriv opened this issue Jun 27, 2023 · 1 comment

Comments

@matriv
Copy link
Contributor

matriv commented Jun 27, 2023

To improve our test coverage we should add ingestion tests, that cover somehow "exhaustively" combinations for table setup. Implement code to generate tables with all DDL permutations for:

  • Data types

  • Each type as a top level and some deep leaf column

  • Column option like index, columnar store,

  • Generated columns

  • Primary key definitions

  • Constraints (also involving references to other columns)

  • Partition by

  • Test with NULLs, provided, completely excluded values

  • Ensure recovery from translog path is hit

  • Test INSERT INTO VALUES, INSERT FROM (SELECT ...), INSERT ... ON CONFLICT, etc.

  • Think (and maybe test), to check different code paths, to narrow down combinations and avoid exploding the number of permutations.

  • Make sure the exact configuration and insert stmt is exposed in case of failure for easily debugging.

@seut
Copy link
Member

seut commented Aug 22, 2023

Outcome of an internal discussion:
In the first iteration we want to:

  • enhance the existing bwc.rolling_upgrade test to create a column with a random type and random column options like indexing or storage. The random values used for the column type should be taken out of the system's available types e.g. pg_type

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Could
Development

No branches or pull requests

2 participants