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 12a95b2f30d Enable vacuum command
12a95b2f30d is described below

commit 12a95b2f30df5db620fd995b42681d0f47f84bcf
Author: Jinbao Chen <[email protected]>
AuthorDate: Wed Oct 29 22:01:06 2025 +0800

    Enable vacuum command
---
 src/backend/commands/vacuum.c | 23 ++++++++---------------
 src/bin/initdb/initdb.c       | 16 ++++++++--------
 2 files changed, 16 insertions(+), 23 deletions(-)

diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 42d8aff5182..936aa9bcda9 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -2272,21 +2272,9 @@ vac_update_datfrozenxid(void)
                newMinMulti = dbform->datminmxid;
 
        if (dirty)
-       {
-               /*
-               * GPDB_14_MERGE_FIXME
-               * Remove some codes(fetch_database_tuple) from GPDB upstream.
-               * Check if pg upstream has already fixed it or check from GPDB
-               * 
https://github.com/greenplum-db/gpdb/commit/373e676de819fc0cdadfb59d35d9279abe3d11d9
 
-               */
-
-               heap_inplace_update(relation, tuple);
-#ifdef FAULT_INJECTOR
-               FaultInjector_InjectFaultIfSet(
-                       "vacuum_update_dat_frozen_xid", DDLNotSpecified,
-                       NameStr(dbform->datname), "");
-#endif
-       }
+               systable_inplace_update_finish(inplace_state, tuple);
+       else
+               systable_inplace_update_cancel(inplace_state);
 
        heap_freetuple(tuple);
        table_close(relation, RowExclusiveLock);
@@ -3413,6 +3401,11 @@ vacuum_params_to_options_list(VacuumParams *params)
                options = lappend(options, makeDefElem("skip_locked", (Node *) 
makeInteger(1), -1));
                optmask &= ~VACOPT_SKIP_LOCKED;
        }
+       if (optmask & VACOPT_PROCESS_MAIN)
+       {
+               options = lappend(options, makeDefElem("process_main", (Node *) 
makeInteger(1), -1));
+               optmask &= ~VACOPT_PROCESS_MAIN;
+       }
        if (optmask & VACOPT_PROCESS_TOAST)
        {
                /* GPDB_14_MERGE_FIXME: skip_toast is replaced by 
process_toast, need to check */
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 5278d4c02bc..893965a2a2e 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -302,7 +302,7 @@ static void setup_schema(FILE *cmdfd);
 static void setup_cdb_schema(FILE *cmdfd);
 static void setup_password_history(FILE *cmdfd);
 //static void load_plpgsql(FILE *cmdfd);
-//static void vacuum_db(FILE *cmdfd);
+static void vacuum_db(FILE *cmdfd);
 static void make_template0(FILE *cmdfd);
 static void make_postgres(FILE *cmdfd);
 static void trapsig(SIGNAL_ARGS);
@@ -2174,12 +2174,12 @@ load_exttable(FILE *cmdfd)
 /*
  * clean everything up in template1
  */
-//static void
-//vacuum_db(FILE *cmdfd)
-//{
-//     /* Run analyze before VACUUM so the statistics are frozen. */
-//     PG_CMD_PUTS("ANALYZE;\n\nVACUUM FREEZE;\n\n");
-//}
+static void
+vacuum_db(FILE *cmdfd)
+{
+       /* Run analyze before VACUUM so the statistics are frozen. */
+       PG_CMD_PUTS("ANALYZE;\n\nVACUUM FREEZE;\n\n");
+}
 
 /*
  * copy template1 to template0
@@ -3423,7 +3423,7 @@ initialize_data_directory(void)
        /* sets up the Apache Cloudberry admin schema */
        setup_cdb_schema(cmdfd);
 
-//     vacuum_db(cmdfd);
+       vacuum_db(cmdfd);
 
        make_template0(cmdfd);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to