From 6a8f8dd4e2bd3823d00cbe41b5478a5f85e1db02 Mon Sep 17 00:00:00 2001 From: "Ahmad N. F." Date: Mon, 28 Jul 2025 11:41:31 +0700 Subject: [PATCH] fix(mc2mc): use copied additionalHints in (Client).ExecuteFn --- mc2mc/internal/client/client.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mc2mc/internal/client/client.go b/mc2mc/internal/client/client.go index e71ea4b..8aa1ae6 100644 --- a/mc2mc/internal/client/client.go +++ b/mc2mc/internal/client/client.go @@ -52,15 +52,16 @@ func (c *Client) Close() error { func (c *Client) ExecuteFn(id int) func(context.Context, string, map[string]string) error { return func(ctx context.Context, query string, additionalHints map[string]string) error { - // execute query with odps client c.logger.Info(fmt.Sprintf("[sequence: %d] query to execute:\n%s", id, query)) - // Merge additionalHints with the id - if additionalHints == nil { - additionalHints = make(map[string]string) + // Create local copy of additionalHints with sequence hint + hints := make(map[string]string, len(additionalHints)+1) + for k, v := range additionalHints { + hints[k] = v } - additionalHints[SqlScriptSequenceHint] = fmt.Sprintf("%d", id) + hints[SqlScriptSequenceHint] = fmt.Sprintf("%d", id) - if err := c.OdpsClient.ExecSQL(ctx, query, additionalHints); err != nil { + // execute query with odps client + if err := c.OdpsClient.ExecSQL(ctx, query, hints); err != nil { return errors.WithStack(err) }