From 9266b483c64088c4b1bfe891aeaa9050e1c9d0a9 Mon Sep 17 00:00:00 2001 From: Aris Tzoumas Date: Mon, 7 Nov 2022 20:27:52 +0200 Subject: [PATCH] fix: always use a sql safe table name in failed events manager --- router/failed-events-manager.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/router/failed-events-manager.go b/router/failed-events-manager.go index b76908fb99..a91d6ea1f5 100644 --- a/router/failed-events-manager.go +++ b/router/failed-events-manager.go @@ -56,7 +56,7 @@ func (*FailedEventsManagerT) SaveFailedRecordIDs(taskRunIDFailedEventsMap map[st } for taskRunID, failedEvents := range taskRunIDFailedEventsMap { - table := `"` + strings.ReplaceAll(fmt.Sprintf(`%s_%s`, failedKeysTablePrefix, taskRunID), `"`, `""`) + `"` + table := getSqlSafeTablename(taskRunID) sqlStatement := fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s ( destination_id TEXT NOT NULL, record_id JSONB NOT NULL, @@ -94,7 +94,7 @@ func (fem *FailedEventsManagerT) DropFailedRecordIDs(taskRunID string) { } // Drop table - table := fmt.Sprintf(`%s_%s`, failedKeysTablePrefix, taskRunID) + table := getSqlSafeTablename(taskRunID) sqlStatement := fmt.Sprintf(`DROP TABLE IF EXISTS %s`, table) _, err := fem.dbHandle.Exec(sqlStatement) if err != nil { @@ -111,7 +111,7 @@ func (fem *FailedEventsManagerT) FetchFailedRecordIDs(taskRunID string) []*Faile var rows *sql.Rows var err error - table := `"` + strings.ReplaceAll(fmt.Sprintf(`%s_%s`, failedKeysTablePrefix, taskRunID), `"`, `""`) + `"` + table := getSqlSafeTablename(taskRunID) sqlStatement := fmt.Sprintf(`SELECT %[1]s.destination_id, %[1]s.record_id FROM %[1]s `, table) rows, err = fem.dbHandle.Query(sqlStatement) @@ -188,3 +188,7 @@ func CleanFailedRecordsTableProcess(ctx context.Context) { func (fem *FailedEventsManagerT) GetDBHandle() *sql.DB { return fem.dbHandle } + +func getSqlSafeTablename(taskRunID string) string { + return `"` + strings.ReplaceAll(fmt.Sprintf(`%s_%s`, failedKeysTablePrefix, taskRunID), `"`, `""`) + `"` +}