GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [Cloudberry] Add PQS, TLP and DQP test oracles by roseduan · Pull Request #1370 · sqlancer/sqlancer

Conversation

@roseduan

@roseduan roseduan commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Add the oracles PQS, HAVING, AGGREGATE, DISTINCT, GROUP_BY, QUERY_PARTITIONING and DQP. DQP runs each query under GPORCA and the PostgreSQL-based planner, and with join, aggregation and motion methods disabled, and checks that all plans return the same rows. The CI job now also runs TestCloudberryTLP, TestCloudberryPQS and TestCloudberryDQP.

GPORCA falls back to the PostgreSQL-based planner for queries with ONLY or whole-row references, so the new oracles and the NoREC and WHERE oracles no longer generate them.

Fix two places where CloudberryProvider ignored --cloudberry-oracle: it now skips databases with empty tables when an oracle requires rows, and enables generateOnlyKnown for PQS.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@roseduan
roseduan force-pushed the cloudberry-oracles branch from d66a010 to f556cc4 Compare October 16, 2026 03:29
@roseduan
[Cloudberry] Add PQS, TLP and DQP test oracles
044e355
Add the oracles PQS, HAVING, AGGREGATE, DISTINCT, GROUP_BY,
QUERY_PARTITIONING and DQP. DQP runs each query under GPORCA and the
PostgreSQL-based planner, and with join, aggregation and motion methods
disabled, and checks that all plans return the same rows. The CI job
now also runs TestCloudberryTLP, TestCloudberryPQS and TestCloudberryDQP.

GPORCA falls back to the PostgreSQL-based planner for queries with
ONLY or whole-row references, so the new oracles and the NoREC and
WHERE oracles no longer generate them.

Fix two places where CloudberryProvider ignored --cloudberry-oracle:
it now skips databases with empty tables when an oracle requires rows,
and enables generateOnlyKnown for PQS.

Work around the Cloudberry bugs found by these oracles:
- apache/cloudberry#2134: expect the errors of a PAX table broken by
  REINDEX DATABASE CONCURRENTLY
- apache/cloudberry#2135: do not generate CREATE STATISTICS, which can
  crash the coordinator
- apache/cloudberry#2137: do not generate SET wal_compression, which
  crashes the mirrors

Also expect the error raised when a redistributed table has an
inheritance child with an incompatible UNIQUE index.
@roseduan
roseduan force-pushed the cloudberry-oracles branch from f556cc4 to 044e355 Compare October 16, 2026 07:00
@roseduan

roseduan commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

I add some necessary test suites for Apache Cloudberry, please review it when you are free. Thanks a lot!
@mrigger

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mrigger
mrigger approved these changes Oct 20, 2026
View reviewed changes

@mrigger mrigger left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread test/sqlancer/dbms/TestCloudberryDQP.java
assertEquals(0,
Main.executeMain(new String[] { "--random-seed", "0", "--timeout-seconds", TestConfig.SECONDS,
"--num-threads", "4", "--num-queries", TestConfig.NUM_QUERIES, "--username", "gpadmin",
"cloudberry", "--connection-url", "postgresql://localhost:7000/test", "--test-collations",

@mrigger mrigger Oct 20, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the port, perhaps we could subsequently encode this as a constant somewhere? Not sure, but I remember we also had a common option for this.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mrigger
mrigger merged commit 11d9c9a into sqlancer:main Oct 20, 2026
24 of 26 checks passed

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mrigger mrigger mrigger approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@roseduan @mrigger
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.