You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by dj...@apache.org on 2026/09/02 01:58:45 UTC

(cloudberry-backup) 14/40: Bump Go version from 1.21 to 1.24.

This is an automated email from the ASF dual-hosted git repository.

tuhaihe pushed a commit to branch REL_2_STABLE
in repository https://gitbox.apache.org/repos/asf/cloudberry-backup.git

commit 04ecda5eebee7cc17ce210afbe0e7c493af0b565
Author: woblerr <an...@gmail.com>
AuthorDate: Tue Apr 7 11:43:18 2026 +0300

    Bump Go version from 1.21 to 1.24.
    
    Update Go to 1.24.
    
    Fix non-constant format string errors for Go 1.24.
    
    Fix patterns applied:
    - func(err.Error()) -> func("%s", err.Error())
    - func(fmt.Sprintf("...", args)) -> func("...", args)
---
 backup/backup.go             | 14 +++++++-------
 backup/data.go               |  2 +-
 backup/incremental.go        |  6 +++---
 backup/predata_functions.go  |  8 ++++----
 backup/queries_acl.go        |  2 +-
 backup/wrappers.go           |  4 ++--
 go.mod                       |  2 +-
 plugins/s3plugin/backup.go   |  2 +-
 plugins/s3plugin/restore.go  |  6 +++---
 plugins/s3plugin/s3plugin.go |  2 +-
 report/report.go             |  6 +++---
 restore/data.go              | 10 +++++-----
 restore/restore.go           |  4 ++--
 restore/validate.go          |  4 ++--
 restore/wrappers.go          |  4 ++--
 utils/gpexpand_sensor.go     |  9 ++++-----
 utils/io.go                  |  4 ++--
 utils/plugin.go              | 12 ++++++------
 utils/util.go                |  2 +-
 19 files changed, 51 insertions(+), 52 deletions(-)

diff --git a/backup/backup.go b/backup/backup.go
index 0c8249ac..2711f83c 100644
--- a/backup/backup.go
+++ b/backup/backup.go
@@ -387,7 +387,7 @@ func DoTeardown() {
 	if err := recover(); err != nil {
 		// gplog's Fatal will cause a panic with error code 2
 		if gplog.GetErrorCode() != 2 {
-			gplog.Error(fmt.Sprintf("%v: %s", err, debug.Stack()))
+			gplog.Error("%v: %s", err, debug.Stack())
 			gplog.SetErrorCode(2)
 		} else {
 			errStr = fmt.Sprintf("%v", err)
@@ -448,12 +448,12 @@ func DoTeardown() {
 			if pluginConfig != nil {
 				err = pluginConfig.BackupFile(configFilename)
 				if err != nil {
-					gplog.Error(fmt.Sprintf("%v", err))
+					gplog.Error("%v", err)
 					return
 				}
 				err = pluginConfig.BackupFile(reportFilename)
 				if err != nil {
-					gplog.Error(fmt.Sprintf("%v", err))
+					gplog.Error("%v", err)
 					return
 				}
 			}
@@ -499,7 +499,7 @@ func DoCleanup(backupFailed bool) {
 		if wasTerminated {
 			err := utils.CheckAgentErrorsOnSegments(globalCluster, globalFPInfo)
 			if err != nil {
-				gplog.Error(err.Error())
+				gplog.Error("%s", err.Error())
 			}
 		}
 	}
@@ -519,12 +519,12 @@ func DoCleanup(backupFailed bool) {
 		historyDBName := globalFPInfo.GetBackupHistoryDatabasePath()
 		historyDB, err := history.InitializeHistoryDatabase(historyDBName)
 		if err != nil {
-			gplog.Error(fmt.Sprintf("Unable to update history database.  Error: %v", err))
+			gplog.Error("Unable to update history database. Error: %v", err)
 		} else {
 			_, err := historyDB.Exec(fmt.Sprintf("UPDATE backups SET status='%s', end_time='%s' WHERE timestamp='%s'", statusString, backupReport.BackupConfig.EndTime, globalFPInfo.Timestamp))
 			historyDB.Close()
 			if err != nil {
-				gplog.Error(fmt.Sprintf("Unable to update history database.  Error: %v", err))
+				gplog.Error("Unable to update history database. Error: %v", err)
 			}
 		}
 	}
@@ -559,7 +559,7 @@ func cancelBlockedQueries(timestamp string) {
 		return
 	}
 
-	gplog.Info(fmt.Sprintf("Canceling %d blocked queries", len(pids)))
+	gplog.Info("Canceling %d blocked queries", len(pids))
 	// Cancel all gpbackup queries waiting for a lock
 	for _, pid := range pids {
 		conn.MustExec(fmt.Sprintf("SELECT pg_cancel_backend(%d)", pid))
diff --git a/backup/data.go b/backup/data.go
index 85ee1de9..9d937bae 100644
--- a/backup/data.go
+++ b/backup/data.go
@@ -117,7 +117,7 @@ func BackupSingleTableData(table Table, rowsCopiedMap map[uint32]int64, counters
 	logMessage := fmt.Sprintf("%sWriting data for table %s to file", workerInfo, table.FQN())
 	// Avoid race condition by incrementing counters in call to sprintf
 	tableCount := fmt.Sprintf(" (table %d of %d)", atomic.AddInt64(&counters.NumRegTables, 1), counters.TotalRegTables)
-	utils.LogProgress(logMessage + tableCount)
+	utils.LogProgress("%s", logMessage+tableCount)
 
 	destinationToWrite := ""
 	if MustGetFlagBool(options.SINGLE_DATA_FILE) {
diff --git a/backup/incremental.go b/backup/incremental.go
index 0326c940..dcf70619 100644
--- a/backup/incremental.go
+++ b/backup/incremental.go
@@ -86,7 +86,7 @@ func GetLatestMatchingBackupConfig(historyDBPath string, currentBackupConfig *hi
 		ORDER BY timestamp DESC`, whereClause)
 	timestampRows, err := historyDB.Query(getBackupTimetampsQuery)
 	if err != nil {
-		gplog.Error(err.Error())
+		gplog.Error("%s", err.Error())
 		return nil
 	}
 	defer timestampRows.Close()
@@ -96,7 +96,7 @@ func GetLatestMatchingBackupConfig(historyDBPath string, currentBackupConfig *hi
 		var timestamp string
 		err = timestampRows.Scan(&timestamp)
 		if err != nil {
-			gplog.Error(err.Error())
+			gplog.Error("%s", err.Error())
 			return nil
 		}
 		timestamps = append(timestamps, timestamp)
@@ -105,7 +105,7 @@ func GetLatestMatchingBackupConfig(historyDBPath string, currentBackupConfig *hi
 	for _, ts := range timestamps {
 		backupConfig, err := history.GetBackupConfig(ts, historyDB)
 		if err != nil {
-			gplog.Error(err.Error())
+			gplog.Error("%s", err.Error())
 			return nil
 		}
 		if !backupConfig.Failed() && matchesIncrementalFlags(backupConfig, currentBackupConfig) {
diff --git a/backup/predata_functions.go b/backup/predata_functions.go
index f7953932..9f6324ef 100644
--- a/backup/predata_functions.go
+++ b/backup/predata_functions.go
@@ -393,7 +393,7 @@ func PrintCreateTransformStatement(metadataFile *utils.FileWithByteCount, objToc
 	TypeFQN := fmt.Sprintf("%s.%s", transform.TypeNamespace, transform.TypeName)
 
 	if !fromSQLIsDefined && !toSQLIsDefined {
-		gplog.Warn(fmt.Sprintf("Skipping invalid transform object for type %s and language %s; At least one of FROM and TO functions should be specified.", TypeFQN, transform.LanguageName))
+		gplog.Warn("Skipping invalid transform object for type %s and language %s; At least one of FROM and TO functions should be specified.", TypeFQN, transform.LanguageName)
 		return
 	}
 	start := metadataFile.ByteCount
@@ -401,7 +401,7 @@ func PrintCreateTransformStatement(metadataFile *utils.FileWithByteCount, objToc
 	if fromSQLIsDefined {
 		statement += fmt.Sprintf("FROM SQL WITH FUNCTION %s", fromSQLFunc.FQN())
 	} else {
-		gplog.Warn(fmt.Sprintf("No FROM function found for transform object with type %s and language %s\n", TypeFQN, transform.LanguageName))
+		gplog.Warn("No FROM function found for transform object with type %s and language %s\n", TypeFQN, transform.LanguageName)
 	}
 
 	if toSQLIsDefined {
@@ -410,10 +410,10 @@ func PrintCreateTransformStatement(metadataFile *utils.FileWithByteCount, objToc
 		}
 		statement += fmt.Sprintf("TO SQL WITH FUNCTION %s", toSQLFunc.FQN())
 	} else {
-		gplog.Warn(fmt.Sprintf("No TO function found for transform object with type %s and language %s\n", TypeFQN, transform.LanguageName))
+		gplog.Warn("No TO function found for transform object with type %s and language %s\n", TypeFQN, transform.LanguageName)
 	}
 	statement += ");"
-	metadataFile.MustPrintf(statement)
+	metadataFile.MustPrintf("%s", statement)
 	section, entry := transform.GetMetadataEntry()
 	tier := globalTierMap[transform.GetUniqueID()]
 	objToc.AddMetadataEntry(section, entry, start, metadataFile.ByteCount, tier)
diff --git a/backup/queries_acl.go b/backup/queries_acl.go
index b47a4be7..11d02b6b 100644
--- a/backup/queries_acl.go
+++ b/backup/queries_acl.go
@@ -138,7 +138,7 @@ type MetadataQueryStruct struct {
 }
 
 func GetMetadataForObjectType(connectionPool *dbconn.DBConn, params MetadataQueryParams) MetadataMap {
-	gplog.Verbose("Getting object type metadata from " + params.CatalogTable)
+	gplog.Verbose("Getting object type metadata from %s", params.CatalogTable)
 
 	tableName := params.CatalogTable
 	nameCol := "''"
diff --git a/backup/wrappers.go b/backup/wrappers.go
index c32df413..284348cd 100644
--- a/backup/wrappers.go
+++ b/backup/wrappers.go
@@ -63,7 +63,7 @@ func initializeConnectionPool(timestamp string) {
 		numConns = 2
 	}
 
-	gplog.Verbose(fmt.Sprintf("Initializing %d database connections", numConns))
+	gplog.Verbose("Initializing %d database connections", numConns)
 	connectionPool.MustConnect(numConns)
 
 	utils.ValidateGPDBVersionCompatibility(connectionPool)
@@ -183,7 +183,7 @@ func createBackupLockFile(timestamp string) {
 	gplog.FatalOnError(err)
 	err = backupLockFile.TryLock()
 	if err != nil {
-		gplog.Error(err.Error())
+		gplog.Error("%s", err.Error())
 		gplog.Fatal(errors.Errorf("A backup with timestamp %s is already in progress. Wait 1 second and try the backup again.", timestamp), "")
 	}
 }
diff --git a/go.mod b/go.mod
index 3adaf23e..cec552ff 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/apache/cloudberry-backup
 
-go 1.21
+go 1.24.0
 
 require (
 	github.com/DATA-DOG/go-sqlmock v1.5.0
diff --git a/plugins/s3plugin/backup.go b/plugins/s3plugin/backup.go
index a2fcbea5..0a7d0c50 100644
--- a/plugins/s3plugin/backup.go
+++ b/plugins/s3plugin/backup.go
@@ -155,7 +155,7 @@ func BackupDirectoryParallel(c *cli.Context) error {
 					totalBytes += bytes
 					msg := fmt.Sprintf("Uploaded %d bytes for %s in %v", bytes,
 						filepath.Base(fileKey), elapsed.Round(time.Millisecond))
-					gplog.Verbose(msg)
+					gplog.Verbose("%s", msg)
 					fmt.Println(msg)
 				} else {
 					finalErr = err
diff --git a/plugins/s3plugin/restore.go b/plugins/s3plugin/restore.go
index b7f31f23..deb3cc98 100644
--- a/plugins/s3plugin/restore.go
+++ b/plugins/s3plugin/restore.go
@@ -44,7 +44,7 @@ func RestoreFile(c *cli.Context) error {
 	if err != nil {
 		fileErr := os.Remove(fileName)
 		if fileErr != nil {
-			gplog.Error(fileErr.Error())
+			gplog.Error("%s", fileErr.Error())
 		}
 		return err
 	}
@@ -95,7 +95,7 @@ func RestoreDirectory(c *cli.Context) error {
 		if err != nil {
 			fileErr := os.Remove(filename)
 			if fileErr != nil {
-				gplog.Error(fileErr.Error())
+				gplog.Error("%s", fileErr.Error())
 			}
 			return err
 		}
@@ -175,7 +175,7 @@ func RestoreDirectoryParallel(c *cli.Context) error {
 					numFiles++
 					msg := fmt.Sprintf("Downloaded %d bytes for %s in %v", bytes,
 						filepath.Base(fileKey), elapsed.Round(time.Millisecond))
-					gplog.Verbose(msg)
+					gplog.Verbose("%s", msg)
 					fmt.Println(msg)
 				} else {
 					finalErr = err
diff --git a/plugins/s3plugin/s3plugin.go b/plugins/s3plugin/s3plugin.go
index 92f0e080..9a2a4e83 100644
--- a/plugins/s3plugin/s3plugin.go
+++ b/plugins/s3plugin/s3plugin.go
@@ -336,7 +336,7 @@ func DeleteBackup(c *cli.Context) error {
 	if !IsValidTimestamp(timestamp) {
 		msg := fmt.Sprintf("delete requires a <timestamp> with format "+
 			"YYYYMMDDHHMMSS, but received: %s", timestamp)
-		return fmt.Errorf(msg)
+		return fmt.Errorf("%s", msg)
 	}
 
 	date := timestamp[0:8]
diff --git a/report/report.go b/report/report.go
index 0b3a2153..d50ad9e5 100644
--- a/report/report.go
+++ b/report/report.go
@@ -236,9 +236,9 @@ func logOutputReport(reportFile io.WriteCloser, reportInfo []LineInfo) {
 
 	for _, lineInfo := range reportInfo {
 		if lineInfo.Key == "" {
-			utils.MustPrintf(reportFile, fmt.Sprintf("\n"))
+			utils.MustPrintf(reportFile, "\n")
 		} else {
-			utils.MustPrintf(reportFile, fmt.Sprintf("%-*s%s\n", maxSize+3, lineInfo.Key, lineInfo.Value))
+			utils.MustPrintf(reportFile, "%-*s%s\n", maxSize+3, lineInfo.Key, lineInfo.Value)
 		}
 	}
 }
@@ -279,7 +279,7 @@ func PrintObjectCounts(reportFile io.WriteCloser, objectCounts map[string]int) {
 			objectStr += fmt.Sprintf("%-*s%d\n", maxSize+3, strings.ToLower(object), objectCounts[object])
 		}
 	}
-	utils.MustPrintf(reportFile, objectStr)
+	utils.MustPrintf(reportFile, "%s", objectStr)
 }
 
 /*
diff --git a/restore/data.go b/restore/data.go
index ee073379..11d2deea 100644
--- a/restore/data.go
+++ b/restore/data.go
@@ -111,7 +111,7 @@ func restoreSingleTableData(fpInfo *filepath.FilePathInfo, entry toc.Coordinator
 		partialRowsRestored, copyErr := CopyTableIn(connectionPool, tableName, entry.AttributeString, destinationToRead, backupConfig.SingleDataFile, whichConn)
 
 		if copyErr != nil {
-			gplog.Error(copyErr.Error())
+			gplog.Error("%s", copyErr.Error())
 			if MustGetFlagBool(options.ON_ERROR_CONTINUE) {
 				if ((connectionPool.Version.IsGPDB() && connectionPool.Version.AtLeast("6")) || connectionPool.Version.IsCBDB()) && backupConfig.SingleDataFile {
 					// inform segment helpers to skip this entry
@@ -149,7 +149,7 @@ func restoreSingleTableData(fpInfo *filepath.FilePathInfo, entry toc.Coordinator
 	// The subsequent division in gprestore leads to a miscalculated row count, causing this check to fail.
 	err := CheckRowsRestored(numRowsRestored, numRowsBackedUp, tableName)
 	if err != nil {
-		gplog.Error(err.Error())
+		gplog.Error("%s", err.Error())
 		return err
 	}
 
@@ -158,12 +158,12 @@ func restoreSingleTableData(fpInfo *filepath.FilePathInfo, entry toc.Coordinator
 		if entry.IsReplicated && (origSize < destSize) {
 			err := ExpandReplicatedTable(origSize, tableName, whichConn)
 			if err != nil {
-				gplog.Error(err.Error())
+				gplog.Error("%s", err.Error())
 			}
 		} else {
 			err := RedistributeTableData(tableName, whichConn)
 			if err != nil {
-				gplog.Error(err.Error())
+				gplog.Error("%s", err.Error())
 			}
 		}
 	}
@@ -294,7 +294,7 @@ func restoreDataFromTimestamp(fpInfo filepath.FilePathInfo, dataEntries []toc.Co
 					gplog.Verbose("Truncating table %s prior to restoring data", tableName)
 					_, err := connectionPool.Exec(`TRUNCATE `+tableName, whichConn)
 					if err != nil {
-						gplog.Error(err.Error())
+						gplog.Error("%s", err.Error())
 					}
 				}
 				if err == nil {
diff --git a/restore/restore.go b/restore/restore.go
index c91d0ec1..91c6c5ab 100644
--- a/restore/restore.go
+++ b/restore/restore.go
@@ -612,7 +612,7 @@ func DoTeardown() {
 	if err := recover(); err != nil {
 		// Check if gplog.Fatal did not cause the panic
 		if gplog.GetErrorCode() != 2 {
-			gplog.Error(fmt.Sprintf("%v: %s", err, debug.Stack()))
+			gplog.Error("%v: %s", err, debug.Stack())
 			gplog.SetErrorCode(2)
 		} else {
 			errStr = fmt.Sprintf("%+v", err)
@@ -733,7 +733,7 @@ func DoCleanup(restoreFailed bool) {
 			if wasTerminated {
 				err := utils.CheckAgentErrorsOnSegments(globalCluster, globalFPInfo)
 				if err != nil {
-					gplog.Error(err.Error())
+					gplog.Error("%s", err.Error())
 				}
 			}
 		}
diff --git a/restore/validate.go b/restore/validate.go
index be0ee281..f9fb55fb 100644
--- a/restore/validate.go
+++ b/restore/validate.go
@@ -138,7 +138,7 @@ WHERE quote_ident(n.nspname) || '.' || quote_ident(c.relname) IN (%s)`, quotedTa
 		errMsg = fmt.Sprintf("Relation %s already exists", relationsInDB[0])
 	}
 	if errMsg != "" {
-		gplog.Fatal(nil, errMsg)
+		gplog.Fatal(nil, "%s", errMsg)
 	}
 }
 
@@ -147,7 +147,7 @@ func ValidateRedirectSchema(connectionPool *dbconn.DBConn, redirectSchema string
 	schemaInDB := dbconn.MustSelectStringSlice(connectionPool, query)
 
 	if len(schemaInDB) == 0 {
-		gplog.Fatal(nil, fmt.Sprintf("Schema %s to redirect into does not exist", redirectSchema))
+		gplog.Fatal(nil, "Schema %s to redirect into does not exist", redirectSchema)
 	}
 }
 
diff --git a/restore/wrappers.go b/restore/wrappers.go
index 73d7e22c..ceafeb25 100644
--- a/restore/wrappers.go
+++ b/restore/wrappers.go
@@ -366,10 +366,10 @@ func RestoreSchemas(schemaStatements []toc.StatementWithType, progressBar utils.
 			} else {
 				errMsg := fmt.Sprintf("Error encountered while creating schema %s", schema.Name)
 				if MustGetFlagBool(options.ON_ERROR_CONTINUE) {
-					gplog.Verbose(fmt.Sprintf("%s: %s", errMsg, err.Error()))
+					gplog.Verbose("%s: %s", errMsg, err.Error())
 					numErrors++
 				} else {
-					gplog.Fatal(err, errMsg)
+					gplog.Fatal(err, "%s", errMsg)
 				}
 			}
 		}
diff --git a/utils/gpexpand_sensor.go b/utils/gpexpand_sensor.go
index 8ca83676..0d0d4655 100644
--- a/utils/gpexpand_sensor.go
+++ b/utils/gpexpand_sensor.go
@@ -1,7 +1,6 @@
 package utils
 
 import (
-	"fmt"
 	"os"
 	"path/filepath"
 
@@ -54,12 +53,12 @@ func NewGpexpandSensor(myfs vfs.Filesystem, conn *dbconn.DBConn) GpexpandSensor
 func (sensor GpexpandSensor) IsGpexpandRunning() (bool, error) {
 	err := validateConnection(sensor.postgresConn)
 	if err != nil {
-		gplog.Error(fmt.Sprintf("Error encountered validating db connection: %v", err))
+		gplog.Error("Error encountered validating db connection: %v", err)
 		return false, err
 	}
 	coordinatorDataDir, err := dbconn.SelectString(sensor.postgresConn, CoordinatorDataDirQuery)
 	if err != nil {
-		gplog.Error(fmt.Sprintf("Error encountered retrieving data directory: %v", err))
+		gplog.Error("Error encountered retrieving data directory: %v", err)
 		return false, err
 	}
 
@@ -76,7 +75,7 @@ func (sensor GpexpandSensor) IsGpexpandRunning() (bool, error) {
 		var tableName string
 		tableName, err = dbconn.SelectString(sensor.postgresConn, GpexpandStatusTableExistsQuery)
 		if err != nil {
-			gplog.Error(fmt.Sprintf("Error encountered retrieving gpexpand status: %v", err))
+			gplog.Error("Error encountered retrieving gpexpand status: %v", err)
 			return false, err
 		}
 		if len(tableName) <= 0 {
@@ -87,7 +86,7 @@ func (sensor GpexpandSensor) IsGpexpandRunning() (bool, error) {
 		var status string
 		status, err = dbconn.SelectString(sensor.postgresConn, GpexpandTemporaryTableStatusQuery)
 		if err != nil {
-			gplog.Error(fmt.Sprintf("Error encountered retrieving gpexpand status: %v", err))
+			gplog.Error("Error encountered retrieving gpexpand status: %v", err)
 			return false, err
 		}
 
diff --git a/utils/io.go b/utils/io.go
index 0985d588..a425b9c2 100644
--- a/utils/io.go
+++ b/utils/io.go
@@ -92,11 +92,11 @@ func CopyFile(src, dest string) error {
 		var content []byte
 		content, err = ioutil.ReadFile(src)
 		if err != nil {
-			gplog.Error(fmt.Sprintf("Error: %v, encountered when reading file: %s", err, src))
+			gplog.Error("Error: %v, encountered when reading file: %s", err, src)
 			return err
 		}
 		return ioutil.WriteFile(dest, content, info.Mode())
 	}
-	gplog.Error(fmt.Sprintf("Error: %v, encountered when trying to stat file: %s", err, src))
+	gplog.Error("Error: %v, encountered when trying to stat file: %s", err, src)
 	return err
 }
diff --git a/utils/plugin.go b/utils/plugin.go
index 212ee7db..e1e9b1a2 100644
--- a/utils/plugin.go
+++ b/utils/plugin.go
@@ -245,10 +245,10 @@ func (plugin *PluginConfig) executeHook(c *cluster.Cluster, verboseCommandMsg st
 		plugin.buildHookString(command, fpInfo, scope, coordinatorContentID))
 	if coordinatorErr != nil {
 		if noFatal {
-			gplog.Error(coordinatorOutput)
+			gplog.Error("%s", coordinatorOutput)
 			return
 		}
-		gplog.Fatal(coordinatorErr, coordinatorOutput)
+		gplog.Fatal(coordinatorErr, "%s", coordinatorOutput)
 	}
 
 	// Execute command once on each segment host
@@ -368,14 +368,14 @@ func (plugin *PluginConfig) createHostPluginConfig(contentIDForSegmentOnHost int
 	if plugin.UsesEncryption() {
 		pluginName, err := plugin.GetPluginName(c)
 		if err != nil {
-			_, _ = fmt.Fprintf(operating.System.Stdout, err.Error())
-			gplog.Fatal(nil, err.Error())
+			_, _ = fmt.Fprintf(operating.System.Stdout, "%s", err.Error())
+			gplog.Fatal(nil, "%s", err.Error())
 		}
 
 		secret, err := GetSecretKey(pluginName, c.GetDirForContent(-1))
 		if err != nil {
-			_, _ = fmt.Fprintf(operating.System.Stdout, err.Error())
-			gplog.Fatal(nil, err.Error())
+			_, _ = fmt.Fprintf(operating.System.Stdout, "%s", err.Error())
+			gplog.Fatal(nil, "%s", err.Error())
 		}
 		plugin.Options[pluginName] = secret
 	}
diff --git a/utils/util.go b/utils/util.go
index c2450c53..e773f099 100644
--- a/utils/util.go
+++ b/utils/util.go
@@ -252,7 +252,7 @@ func ValidateGPDBVersionCompatibility(connectionPool *dbconn.DBConn) {
 
 func LogExecutionTime(start time.Time, name string) {
 	elapsed := time.Since(start)
-	gplog.Debug(fmt.Sprintf("%s took %s", name, elapsed))
+	gplog.Debug("%s took %s", name, elapsed)
 }
 
 func Exists(slice []string, val string) bool {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org