You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by gf...@apache.org on 2025/08/28 12:45:44 UTC
(cloudberry-gpbackup) branch sync-with-upstream updated: fix(test): Adapt operator metadata test for Cloudberry support (#31)
This is an automated email from the ASF dual-hosted git repository.
gfphoenix78 pushed a commit to branch sync-with-upstream
in repository https://gitbox.apache.org/repos/asf/cloudberry-gpbackup.git
The following commit(s) were added to refs/heads/sync-with-upstream by this push:
new 2d0880a5 fix(test): Adapt operator metadata test for Cloudberry support (#31)
2d0880a5 is described below
commit 2d0880a56016eca247292633075968555570d892
Author: Robert Mu <db...@hotmail.com>
AuthorDate: Thu Aug 28 20:45:41 2025 +0800
fix(test): Adapt operator metadata test for Cloudberry support (#31)
This commit modifies the operator metadata integration test to
support Cloudberry in addition to the original Greenplum support.
The original test created a unary prefix operator, which worked
fine for Greenplum. However, Cloudberry (based on PostgreSQL 14)
no longer supports user-defined unary operators, causing the test
to fail.
To ensure compatibility across both platforms, the test now uses
a binary operator approach universally, which is supported by
both Greenplum and Cloudberry. This eliminates the need for
conditional logic while maintaining the same test coverage.
Changes:
- Replace unary prefix operator with binary operator
- Use `binary_op_func(bigint, bigint)` instead of `numeric_fac`
- Update operator syntax to `(LEFTARG = bigint, RIGHTARG = bigint)`
- Remove database-specific conditional branching
This change ensures the test passes on both Greenplum and
Cloudberry without compromising the metadata validation logic.
---
integration/predata_acl_queries_test.go | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/integration/predata_acl_queries_test.go b/integration/predata_acl_queries_test.go
index 78e48aad..525d3be5 100644
--- a/integration/predata_acl_queries_test.go
+++ b/integration/predata_acl_queries_test.go
@@ -376,10 +376,15 @@ LANGUAGE SQL`)
structmatcher.ExpectStructsToMatchExcluding(&expectedMetadata, &resultMetadata, "Oid")
})
It("returns a slice of default metadata for an operator", func() {
- testhelper.AssertQueryRuns(connectionPool, "CREATE OPERATOR public.#### (LEFTARG = bigint, PROCEDURE = numeric_fac)")
- defer testhelper.AssertQueryRuns(connectionPool, "DROP OPERATOR public.#### (bigint, NONE)")
+ // Cloudberry does not support user-defined unary operators (based on PostgreSQL 14).
+ // To ensure this test runs on all platforms, we use a binary operator,
+ // which is supported by both Greenplum and Cloudberry.
+ testhelper.AssertQueryRuns(connectionPool, "CREATE FUNCTION public.binary_op_func(bigint, bigint) RETURNS bigint AS 'SELECT $1 + $2' LANGUAGE SQL IMMUTABLE;")
+ defer testhelper.AssertQueryRuns(connectionPool, "DROP FUNCTION public.binary_op_func(bigint, bigint);")
- testhelper.AssertQueryRuns(connectionPool, "COMMENT ON OPERATOR public.#### (bigint, NONE) IS 'This is an operator comment.'")
+ testhelper.AssertQueryRuns(connectionPool, "CREATE OPERATOR public.#### (LEFTARG = bigint, RIGHTARG = bigint, PROCEDURE = public.binary_op_func)")
+ defer testhelper.AssertQueryRuns(connectionPool, "DROP OPERATOR public.#### (bigint, bigint)")
+ testhelper.AssertQueryRuns(connectionPool, "COMMENT ON OPERATOR public.#### (bigint, bigint) IS 'This is an operator comment.'")
resultMetadataMap := backup.GetMetadataForObjectType(connectionPool, backup.TYPE_OPERATOR)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org