@@ -25,25 +25,21 @@ import (
2525)
2626
2727const (
28- // tableNameTempl is the template for the table name for each namespace.
29- tableNameTempl = "ns_%s"
30-
3128 // validateReadsSQLTempl template for validating reads for each namespace.
32- validateReadsSQLTempl = "SELECT * FROM " + validateReadsOnNsFuncNamePrefix + tableNameTempl +
33- "($1::bytea[], $2::bigint[]);"
29+ validateReadsSQLTempl = "SELECT * FROM validate_reads_ns_${NAMESPACE_ID}($1::BYTEA[], $2::BIGINT[]);"
3430 // updateNsStatesSQLTempl template for the committing updates for each namespace.
35- updateNsStatesSQLTempl = "SELECT " + updateNsStatesFuncNamePrefix + tableNameTempl +
36- "($1::bytea[], $2::bytea[], $3::bigint[]);"
31+ updateNsStatesSQLTempl = "SELECT * FROM update_ns_${NAMESPACE_ID}($1::BYTEA[], $2::BYTEA[], $3::BIGINT[]);"
3732 // insertNsStatesSQLTempl template for committing new keys for each namespace.
38- insertNsStatesSQLTempl = "SELECT " + insertNsStatesFuncNamePrefix + tableNameTempl + "($1::bytea[], $2::bytea[]);"
39-
33+ insertNsStatesSQLTempl = "SELECT * FROM insert_ns_${NAMESPACE_ID}($1::BYTEA[], $2::BYTEA[]);"
4034 // queryVersionsSQLTempl template for the querying versions for given keys for each namespace.
41- queryVersionsSQLTempl = "SELECT key, version FROM " + tableNameTempl + " WHERE key = ANY($1);"
42- // insertTxStatusSQLTempl template for committing transaction's status for each TX.
43- insertTxStatusSQLTempl = "SELECT " + insertTxStatusFuncName + "($1::bytea[], $2::integer[], $3::bytea[]);"
35+ queryVersionsSQLTempl = "SELECT key, version FROM ns_${NAMESPACE_ID} WHERE key = ANY($1);"
4436
37+ // insertTxStatusSQLStmt commits transaction's status for each TX.
38+ insertTxStatusSQLStmt = "SELECT * FROM insert_tx_status($1::BYTEA[], $2::INTEGER[], $3::BYTEA[]);"
39+ // queryPoliciesSQLStmt queries meta-namespace policies.
4540 queryPoliciesSQLStmt = "SELECT key, value from ns_" + types .MetaNamespaceID + ";"
46- queryConfigSQLStmt = "SELECT key, value from ns_" + types .ConfigNamespaceID + ";"
41+ // queryConfigSQLStmt queries the config-namespace policy.
42+ queryConfigSQLStmt = "SELECT key, value from ns_" + types .ConfigNamespaceID + ";"
4743)
4844
4945// ErrMetadataEmpty indicates that a requested metadata value is empty or not found.
@@ -118,7 +114,7 @@ func (db *database) validateNamespaceReads(
118114 // a common function for all namespace, we need to pass the table name as a parameter
119115 // which makes the query dynamic and hence we lose the benefits of static SQL.
120116 start := time .Now ()
121- query := fmt . Sprintf (validateReadsSQLTempl , nsID )
117+ query := FmtNsID (validateReadsSQLTempl , nsID )
122118
123119 conflictIdx , err := retryQueryAndReadArrayResult [int ](ctx , db , query , r .keys , r .versions )
124120 if err != nil {
@@ -137,7 +133,7 @@ func (db *database) validateNamespaceReads(
137133// queryVersionsIfPresent queries the versions for the given keys if they exist.
138134func (db * database ) queryVersionsIfPresent (ctx context.Context , nsID string , queryKeys [][]byte ) (keyToVersion , error ) {
139135 start := time .Now ()
140- query := fmt . Sprintf (queryVersionsSQLTempl , nsID )
136+ query := FmtNsID (queryVersionsSQLTempl , nsID )
141137
142138 foundKeys , foundVersions , err := retryQueryAndReadTwoItems [[]byte , int64 ](ctx , db , query , queryKeys )
143139 if err != nil {
@@ -302,10 +298,10 @@ func (db *database) insertTxStatus(
302298 heights = append (heights , blkAndTxNum .ToBytes ())
303299 }
304300
305- ret := tx .QueryRow (ctx , insertTxStatusSQLTempl , ids , statues , heights )
301+ ret := tx .QueryRow (ctx , insertTxStatusSQLStmt , ids , statues , heights )
306302 duplicates , err := readArrayResult [[]byte ](ret )
307303 if err != nil {
308- return nil , fmt .Errorf ("failed to read result from query [%s]: %w" , insertTxStatusSQLTempl , err )
304+ return nil , fmt .Errorf ("failed to read result from query [%s]: %w" , insertTxStatusSQLStmt , err )
309305 }
310306 if len (duplicates ) == 0 {
311307 promutil .Observe (db .metrics .databaseTxBatchCommitTxsStatusLatencySeconds , time .Since (start ))
@@ -338,7 +334,7 @@ func (db *database) insertStates(
338334 continue
339335 }
340336
341- q := fmt . Sprintf (insertNsStatesSQLTempl , nsID )
337+ q := FmtNsID (insertNsStatesSQLTempl , nsID )
342338 ret := tx .QueryRow (ctx , q , writes .keys , writes .values )
343339 violating , err := readArrayResult [[]byte ](ret )
344340 if err != nil {
@@ -367,7 +363,7 @@ func (db *database) updateStates(ctx context.Context, tx pgx.Tx, nsToWrites name
367363 continue
368364 }
369365
370- query := fmt . Sprintf (updateNsStatesSQLTempl , nsID )
366+ query := FmtNsID (updateNsStatesSQLTempl , nsID )
371367 _ , err := tx .Exec (ctx , query , writes .keys , writes .values , writes .versions )
372368 if err != nil {
373369 return errors .Wrapf (err , "failed to execute query [%s]" , query )
@@ -418,11 +414,6 @@ func (s *statesToBeCommitted) empty() bool {
418414 return s .updateWrites .empty () && s .newWrites .empty () && (s .batchStatus == nil || len (s .batchStatus .Status ) == 0 )
419415}
420416
421- // TableName returns the table name for the given namespace.
422- func TableName (nsID string ) string {
423- return fmt .Sprintf (tableNameTempl , nsID )
424- }
425-
426417func (db * database ) readStatusWithHeight (
427418 ctx context.Context ,
428419 txIDs [][]byte ,
0 commit comments