This is an automated email from the ASF dual-hosted git repository. chenjinbao1989 pushed a commit to branch cbdb-postgres-merge in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/cbdb-postgres-merge by this push: new 3a15d32e675 Fix some compile error on utils 3a15d32e675 is described below commit 3a15d32e675819e5af4b5c4089a80c1749c02c68 Author: Jinbao Chen <chenjinbao1...@gmail.com> AuthorDate: Wed Sep 10 09:38:41 2025 +0800 Fix some compile error on utils --- src/backend/rewrite/rewriteDefine.c | 206 -------------------------- src/backend/rewrite/rewriteHandler.c | 58 -------- src/backend/rewrite/rewriteManip.c | 4 - src/backend/utils/Gen_fmgrtab.pl | 6 - src/backend/utils/misc/pg_controldata.c | 33 ----- src/backend/utils/misc/postgresql.conf.sample | 42 ------ src/backend/utils/misc/ps_status.c | 18 +-- 7 files changed, 1 insertion(+), 366 deletions(-) diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index 2dee5f86777..1df9c3a7eb7 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -3,13 +3,9 @@ * rewriteDefine.c * routines for defining a rewrite rule * -<<<<<<< HEAD * Portions Copyright (c) 2006-2009, Greenplum inc * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates. - * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group -======= * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group ->>>>>>> REL_16_9 * Portions Copyright (c) 1994, Regents of the University of California * * @@ -302,14 +298,9 @@ DefineQueryRewrite(const char *rulename, event_relation->rd_rel->relkind != RELKIND_PARTITIONED_TABLE) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), -<<<<<<< HEAD - errmsg("\"%s\" is not a table, directory table or view", - RelationGetRelationName(event_relation)))); -======= errmsg("relation \"%s\" cannot have rules", RelationGetRelationName(event_relation)), errdetail_relkind_not_supported(event_relation->rd_rel->relkind))); ->>>>>>> REL_16_9 if (!allowSystemTableMods && IsSystemRelation(event_relation)) ereport(ERROR, @@ -459,110 +450,6 @@ DefineQueryRewrite(const char *rulename, ViewSelectRuleName))); rulename = pstrdup(ViewSelectRuleName); } -<<<<<<< HEAD - - /* - * Are we converting a relation to a view? - * - * If so, check that the relation is empty because the storage for the - * relation is going to be deleted. Also insist that the rel not be - * involved in partitioning, nor have any triggers, indexes, child or - * parent tables, RLS policies, or RLS enabled. (Note: some of these - * tests are too strict, because they will reject relations that once - * had such but don't anymore. But we don't really care, because this - * whole business of converting relations to views is just an obsolete - * kluge to allow dump/reload of views that participate in circular - * dependencies.) - */ - if (event_relation->rd_rel->relkind != RELKIND_VIEW && - event_relation->rd_rel->relkind != RELKIND_MATVIEW) - { - TableScanDesc scanDesc; - Snapshot snapshot; - TupleTableSlot *slot; - - if (event_relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot convert partitioned table \"%s\" to a view", - RelationGetRelationName(event_relation)))); - - /* only case left: */ - Assert(event_relation->rd_rel->relkind == RELKIND_RELATION || - event_relation->rd_rel->relkind == RELKIND_DIRECTORY_TABLE); - - if (event_relation->rd_rel->relispartition) - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot convert partition \"%s\" to a view", - RelationGetRelationName(event_relation)))); - - /* - * In GPDB, also forbid turning AO tables into views. It might - * work, or at least it wouldn't be hard to make it work, but - * turning a table into a view is a very old legacy PostgreSQL - * feature that no one should be using anymore anyway, so let's - * just error out. - */ - if (!RelationIsHeap(event_relation)) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("cannot convert non-heap table \"%s\" to a view", - RelationGetRelationName(event_relation)))); - - snapshot = RegisterSnapshot(GetLatestSnapshot()); - scanDesc = table_beginscan(event_relation, snapshot, 0, NULL); - slot = table_slot_create(event_relation, NULL); - if (table_scan_getnextslot(scanDesc, ForwardScanDirection, slot)) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it is not empty", - RelationGetRelationName(event_relation)))); - ExecDropSingleTupleTableSlot(slot); - table_endscan(scanDesc); - UnregisterSnapshot(snapshot); - - if (event_relation->rd_rel->relhastriggers) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has triggers", - RelationGetRelationName(event_relation)), - errhint("In particular, the table cannot be involved in any foreign key relationships."))); - - if (event_relation->rd_rel->relhasindex) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has indexes", - RelationGetRelationName(event_relation)))); - - if (event_relation->rd_rel->relhassubclass) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has child tables", - RelationGetRelationName(event_relation)))); - - if (has_superclass(RelationGetRelid(event_relation))) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has parent tables", - RelationGetRelationName(event_relation)))); - - if (event_relation->rd_rel->relrowsecurity) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has row security enabled", - RelationGetRelationName(event_relation)))); - - if (relation_has_policies(event_relation)) - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("could not convert table \"%s\" to a view because it has row security policies", - RelationGetRelationName(event_relation)))); - - RelisBecomingView = true; - } -======= ->>>>>>> REL_16_9 } else { @@ -638,99 +525,6 @@ DefineQueryRewrite(const char *rulename, SetRelationRuleStatus(event_relid, true); } -<<<<<<< HEAD - /* --------------------------------------------------------------------- - * If the relation is becoming a view: - * - delete the associated storage files - * - get rid of any system attributes in pg_attribute; a view shouldn't - * have any of those - * - remove the toast table; there is no need for it anymore, and its - * presence would make vacuum slightly more complicated - * - set relkind to RELKIND_VIEW, and adjust other pg_class fields - * to be appropriate for a view - * - * NB: we had better have AccessExclusiveLock to do this ... - * --------------------------------------------------------------------- - */ - if (RelisBecomingView) - { - Relation relationRelation; - Oid toastrelid; - HeapTuple classTup; - Form_pg_class classForm; - - relationRelation = table_open(RelationRelationId, RowExclusiveLock); - toastrelid = event_relation->rd_rel->reltoastrelid; - - /* drop storage while table still looks like a table */ - RelationDropStorage(event_relation); - DeleteSystemAttributeTuples(event_relid); - /* delete distribution policy record */ - GpPolicyRemove(event_relid); - - /* - * Drop the toast table if any. (This won't take care of updating the - * toast fields in the relation's own pg_class entry; we handle that - * below.) - */ - if (OidIsValid(toastrelid)) - { - ObjectAddress toastobject; - - /* - * Delete the dependency of the toast relation on the main - * relation so we can drop the former without dropping the latter. - */ - deleteDependencyRecordsFor(RelationRelationId, toastrelid, - false); - - /* Make deletion of dependency record visible */ - CommandCounterIncrement(); - - /* Now drop toast table, including its index */ - toastobject.classId = RelationRelationId; - toastobject.objectId = toastrelid; - toastobject.objectSubId = 0; - performDeletion(&toastobject, DROP_RESTRICT, - PERFORM_DELETION_INTERNAL); - } - - /* - * SetRelationRuleStatus may have updated the pg_class row, so we must - * advance the command counter before trying to update it again. - */ - CommandCounterIncrement(); - - /* - * Fix pg_class entry to look like a normal view's, including setting - * the correct relkind/relstorage and removal of reltoastrelid of the - * toast table we potentially removed above. - */ - classTup = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(event_relid)); - if (!HeapTupleIsValid(classTup)) - elog(ERROR, "cache lookup failed for relation %u", event_relid); - classForm = (Form_pg_class) GETSTRUCT(classTup); - - classForm->relam = InvalidOid; - classForm->reltablespace = InvalidOid; - classForm->relpages = 0; - classForm->reltuples = -1; - classForm->relallvisible = 0; - classForm->reltoastrelid = InvalidOid; - classForm->relhasindex = false; - classForm->relkind = RELKIND_VIEW; - classForm->relfrozenxid = InvalidTransactionId; - classForm->relminmxid = InvalidMultiXactId; - classForm->relreplident = REPLICA_IDENTITY_NOTHING; - - CatalogTupleUpdate(relationRelation, &classTup->t_self, classTup); - - heap_freetuple(classTup); - table_close(relationRelation, RowExclusiveLock); - } - -======= ->>>>>>> REL_16_9 ObjectAddressSet(address, RewriteRelationId, ruleId); /* Close rel, but keep lock till commit... */ diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index f91ec088d59..b44511c1f4b 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -3,13 +3,9 @@ * rewriteHandler.c * Primary module of query rewriter. * -<<<<<<< HEAD * Portions Copyright (c) 2006-2008, Greenplum inc * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates. - * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group -======= * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group ->>>>>>> REL_16_9 * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION @@ -672,11 +668,7 @@ rewriteRuleAction(Query *parsetree, if (sub_action->hasModifyingCTE && rule_action != sub_action) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), -<<<<<<< HEAD - errmsg("INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH"))); -======= errmsg("INSERT ... SELECT rule actions are not supported for queries having data-modifying statements in WITH"))); ->>>>>>> REL_16_9 } /* @@ -1456,8 +1448,6 @@ findDefaultOnlyColumns(RangeTblEntry *rte) * all DEFAULT items are replaced, and if the target relation doesn't have a * default, the value is explicitly set to NULL. * -<<<<<<< HEAD -======= * Also, if a DEFAULT item is found in a column mentioned in unused_cols, * it is explicitly set to NULL. This happens for columns in the VALUES RTE * whose corresponding targetlist entries have already been replaced with the @@ -1468,7 +1458,6 @@ findDefaultOnlyColumns(RangeTblEntry *rte) * such a column with NULL, whether DEFAULT or not; but it doesn't seem worth * the trouble. * ->>>>>>> REL_16_9 * Note that we may have subscripted or field assignment targetlist entries, * as well as more complex expressions from already-replaced DEFAULT items if * we have recursed to here for an auto-updatable view. However, it ought to @@ -1655,53 +1644,6 @@ rewriteValuesRTE(Query *parsetree, RangeTblEntry *rte, int rti, return allReplaced; } -<<<<<<< HEAD -/* - * Mop up any remaining DEFAULT items in the given VALUES RTE by - * replacing them with NULL constants. - * - * This is used for the product queries generated by DO ALSO rules attached to - * an auto-updatable view. The action can't depend on the "target relation" - * since the product query might not have one (it needn't be an INSERT). - * Essentially, such queries are treated as being attached to a rule-updatable - * view. - */ -static void -rewriteValuesRTEToNulls(Query *parsetree, RangeTblEntry *rte) -{ - List *newValues; - ListCell *lc; - - newValues = NIL; - foreach(lc, rte->values_lists) - { - List *sublist = (List *) lfirst(lc); - List *newList = NIL; - ListCell *lc2; - - foreach(lc2, sublist) - { - Node *col = (Node *) lfirst(lc2); - - if (IsA(col, SetToDefault)) - { - SetToDefault *def = (SetToDefault *) col; - - newList = lappend(newList, makeNullConst(def->typeId, - def->typeMod, - def->collation)); - } - else - newList = lappend(newList, col); - } - newValues = lappend(newValues, newList); - } - rte->values_lists = newValues; -} - - -======= ->>>>>>> REL_16_9 /* * Mop up any remaining DEFAULT items in the given VALUES RTE by * replacing them with NULL constants. diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index ed95ea2ba0c..f49d4af11fd 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -2,13 +2,9 @@ * * rewriteManip.c * -<<<<<<< HEAD * Portions Copyright (c) 2006-2008, Greenplum inc * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates. - * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group -======= * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group ->>>>>>> REL_16_9 * Portions Copyright (c) 1994, Regents of the University of California * * diff --git a/src/backend/utils/Gen_fmgrtab.pl b/src/backend/utils/Gen_fmgrtab.pl index 7b9b88f0c77..ca0f3cc2103 100644 --- a/src/backend/utils/Gen_fmgrtab.pl +++ b/src/backend/utils/Gen_fmgrtab.pl @@ -25,15 +25,9 @@ my $include_path; my $extra_path; GetOptions( -<<<<<<< HEAD 'output:s' => \$output_path, 'include-path:s' => \$include_path, 'extra-path:s' => \$extra_path) || usage(); -======= - 'output:s' => \$output_path, - 'include-path:s' => \$include_path) || usage(); ->>>>>>> REL_16_9 - # Make sure paths end with a slash. if ($output_path ne '' && substr($output_path, -1) ne '/') { diff --git a/src/backend/utils/misc/pg_controldata.c b/src/backend/utils/misc/pg_controldata.c index 0dd63f4b4fc..ca72f6f33b6 100644 --- a/src/backend/utils/misc/pg_controldata.c +++ b/src/backend/utils/misc/pg_controldata.c @@ -213,41 +213,8 @@ pg_control_init(PG_FUNCTION_ARGS) ControlFileData *ControlFile; bool crc_ok; -<<<<<<< HEAD - /* - * Construct a tuple descriptor for the result row. This must match this - * function's pg_proc entry! - */ - tupdesc = CreateTemplateTupleDesc(12); - TupleDescInitEntry(tupdesc, (AttrNumber) 1, "max_data_alignment", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 2, "database_block_size", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 3, "blocks_per_segment", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 4, "wal_block_size", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 5, "bytes_per_wal_segment", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 6, "max_identifier_length", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 7, "max_index_columns", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 8, "max_toast_chunk_size", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 9, "large_object_chunk_size", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 10, "float8_pass_by_value", - BOOLOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 11, "data_page_checksum_version", - INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 12, "file_encryption_method", - INT4OID, -1, 0); - tupdesc = BlessTupleDesc(tupdesc); -======= if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) elog(ERROR, "return type must be a row type"); ->>>>>>> REL_16_9 /* read the control file */ LWLockAcquire(ControlFileLock, LW_SHARED); diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index c653925d750..2db5194f9b6 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -61,7 +61,6 @@ # comma-separated list of addresses; # defaults to '*', '*' = all # (change requires restart) -<<<<<<< HEAD #port = 5432 # sets the database listener port for # a Cloudberry instance. The master and @@ -74,11 +73,7 @@ # THE PORT NUMBER IN THIS FILE. #max_connections = 200 # (change requires restart) -======= -#port = 5432 # (change requires restart) -#max_connections = 100 # (change requires restart) #reserved_connections = 0 # (change requires restart) ->>>>>>> REL_16_9 #superuser_reserved_connections = 3 # (change requires restart) #unix_socket_directories = '/tmp' # comma-separated list of directories # (change requires restart) @@ -153,14 +148,9 @@ max_prepared_transactions = 250 # can be 0 or more # (change requires restart) # Caution: it is not advisable to set max_prepared_transactions nonzero unless # you actively intend to use prepared transactions. -<<<<<<< HEAD #work_mem = 32MB # min 64kB -#hash_mem_multiplier = 1.0 # 1-1000.0 multiplier on hash table work_mem -======= -#work_mem = 4MB # min 64kB #hash_mem_multiplier = 2.0 # 1-1000.0 multiplier on hash table work_mem ->>>>>>> REL_16_9 #maintenance_work_mem = 64MB # min 1MB #autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem #logical_decoding_work_mem = 64MB # min 64kB @@ -239,12 +229,8 @@ max_prepared_transactions = 250 # can be 0 or more #full_page_writes = on # recover from partial page writes #wal_log_hints = off # also do full page writes of non-critical updates # (change requires restart) -<<<<<<< HEAD #wal_compression = on # enable compression of full-page writes -======= -#wal_compression = off # enables compression of full-page writes; # off, pglz, lz4, zstd, or on ->>>>>>> REL_16_9 #wal_init_zero = on # zero-fill new WAL files #wal_recycle = on # recycle WAL files #wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers @@ -356,12 +342,8 @@ max_prepared_transactions = 250 # can be 0 or more #primary_conninfo = '' # connection string to sending server #primary_slot_name = '' # replication slot on sending server -<<<<<<< HEAD #promote_trigger_file = '' # file name whose presence ends recovery #hot_standby = off # "on" allows queries during recovery -======= -#hot_standby = on # "off" disallows queries during recovery ->>>>>>> REL_16_9 # (change requires restart) #max_standby_archive_delay = 30s # max delay before canceling queries # when reading WAL from archive; @@ -493,26 +475,6 @@ optimizer_analyze_root_partition = on # stats collection on root partitions # - Where to Log - -<<<<<<< HEAD -======= -#log_destination = 'stderr' # Valid values are combinations of - # stderr, csvlog, jsonlog, syslog, and - # eventlog, depending on platform. - # csvlog and jsonlog require - # logging_collector to be on. - -# This is used when logging to stderr: -#logging_collector = off # Enable capturing of stderr, jsonlog, - # and csvlog into log files. Required - # to be on for csvlogs and jsonlogs. - # (change requires restart) - -# These are only used if logging_collector is on: -#log_directory = 'log' # directory where log files are written, - # can be absolute or relative to PGDATA -#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, - # can include strftime() escapes ->>>>>>> REL_16_9 #log_file_mode = 0600 # creation mode for log files, # begin with 0 to use octal notation #log_rotation_age = 1d # Automatic rotation of logfiles will @@ -674,16 +636,12 @@ optimizer_analyze_root_partition = on # stats collection on root partitions # STATISTICS #------------------------------------------------------------------------------ -<<<<<<< HEAD # - ANALYZE Statistics on Database Contents - #default_statistics_target = 100 # range 1 - 10000 (target # of # histogram bins) -# - Query and Index Statistics Collector - -======= # - Cumulative Query and Index Statistics - ->>>>>>> REL_16_9 #track_activities = on #track_activity_query_size = 1024 # (change requires restart) diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 9ede8e5c8fa..8337c53bd2d 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -7,13 +7,9 @@ * * src/backend/utils/misc/ps_status.c * -<<<<<<< HEAD * Portions Copyright (c) 2005-2009, Greenplum inc * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates. - * Copyright (c) 2000-2021, PostgreSQL Global Development Group -======= * Copyright (c) 2000-2023, PostgreSQL Global Development Group ->>>>>>> REL_16_9 * various details abducted from various places *-------------------------------------------------------------------- */ @@ -34,11 +30,7 @@ #include "cdb/cdbvars.h" /* Gp_role, GpIdentity.segindex, currentSliceId */ extern char **environ; -<<<<<<< HEAD extern int PostPortNumber; /* GPDB: Helps identify child processes */ -bool update_process_title = true; -======= ->>>>>>> REL_16_9 /* GUC variable */ bool update_process_title = DEFAULT_UPDATE_PROCESS_TITLE; @@ -359,11 +351,6 @@ init_ps_display(const char *fixed_part) } #ifndef PS_USE_NONE -<<<<<<< HEAD - char *cp = ps_buffer + ps_buffer_fixed_size; - char *ep = ps_buffer + ps_buffer_size; - -======= /* * update_ps_display_precheck * Helper function to determine if updating the process title is @@ -372,7 +359,6 @@ init_ps_display(const char *fixed_part) static bool update_ps_display_precheck(void) { ->>>>>>> REL_16_9 /* update_process_title=off disables updates */ if (!update_process_title) return false; @@ -387,7 +373,6 @@ update_ps_display_precheck(void) return false; #endif -<<<<<<< HEAD Assert(cp >= ps_buffer); /* Add client session's global id. */ @@ -427,7 +412,7 @@ update_ps_display_precheck(void) ps_buffer_size - real_act_prefix_size); ps_buffer_cur_len = strlen(ps_buffer); -======= + return true; } #endif /* not PS_USE_NONE */ @@ -547,7 +532,6 @@ set_ps_display_with_len(const char *activity, size_t len) ps_buffer_cur_len = ps_buffer_fixed_size + len; } Assert(strlen(ps_buffer) == ps_buffer_cur_len); ->>>>>>> REL_16_9 /* Transmit new setting to kernel, if necessary */ flush_ps_display(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cloudberry.apache.org For additional commands, e-mail: commits-h...@cloudberry.apache.org