Skip to content

Commit 6a6bbd9

Browse files
authored
Remove FINAL from ClickHouse queries (#315)
* Remove FINAL from ClickHouse queries Remove the FINAL clause from multiple SELECT queries in internal/libs/clickhouse.go. Affected functions: GetTransactionMismatchRangeFromClickHouseV2, GetLogsMismatchRangeFromClickHouseV2, getBlocksFromV2, getTransactionsFromV2, getLogsFromV2, and getTracesFromV2. Queries now read directly from the respective tables (blocks, transactions, logs, traces) without the FINAL modifier. * Remove FINAL from ClickHouse SELECT queries internal/libs/clickhouse.go: remove the FINAL clause from SELECT queries in queryBlocksByBlockNumbers, queryTransactionsByBlockNumbers, queryLogsByBlockNumbers and queryTracesByBlockNumbers. The change drops "FINAL" from queries against blocks, transactions, logs and traces tables (keeps same ordering and fields). This avoids using ClickHouse's FINAL merge behavior in these lookups, simplifying the queries and addressing related performance/consistency concerns.
1 parent 21672cd commit 6a6bbd9

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

internal/libs/clickhouse.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ func queryBlocksByBlockNumbers(chainId uint64, nums []uint64) ([]common.Block, e
269269
return nil, nil
270270
}
271271
q := fmt.Sprintf(
272-
"SELECT %s FROM %s.blocks FINAL WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number",
272+
"SELECT %s FROM %s.blocks WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number",
273273
strings.Join(defaultBlockFields, ", "),
274274
config.Cfg.CommitterClickhouseDatabase,
275275
chainId,
@@ -283,7 +283,7 @@ func queryTransactionsByBlockNumbers(chainId uint64, nums []uint64) ([]common.Tr
283283
return nil, nil
284284
}
285285
q := fmt.Sprintf(
286-
"SELECT %s FROM %s.transactions FINAL WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, transaction_index",
286+
"SELECT %s FROM %s.transactions WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, transaction_index",
287287
strings.Join(defaultTransactionFields, ", "),
288288
config.Cfg.CommitterClickhouseDatabase,
289289
chainId,
@@ -297,7 +297,7 @@ func queryLogsByBlockNumbers(chainId uint64, nums []uint64) ([]common.Log, error
297297
return nil, nil
298298
}
299299
q := fmt.Sprintf(
300-
"SELECT %s FROM %s.logs FINAL WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, log_index",
300+
"SELECT %s FROM %s.logs WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, log_index",
301301
strings.Join(defaultLogFields, ", "),
302302
config.Cfg.CommitterClickhouseDatabase,
303303
chainId,
@@ -311,7 +311,7 @@ func queryTracesByBlockNumbers(chainId uint64, nums []uint64) ([]common.Trace, e
311311
return nil, nil
312312
}
313313
q := fmt.Sprintf(
314-
"SELECT %s FROM %s.traces FINAL WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, transaction_index",
314+
"SELECT %s FROM %s.traces WHERE chain_id = %d AND block_number IN (%s) ORDER BY block_number, transaction_index",
315315
strings.Join(defaultTraceFields, ", "),
316316
config.Cfg.CommitterClickhouseDatabase,
317317
chainId,
@@ -415,7 +415,7 @@ func GetTransactionMismatchRangeFromClickHouseV2(chainId uint64, startBlockNumbe
415415

416416
// Aggregate transaction counts per block from the transactions table.
417417
query := fmt.Sprintf(
418-
"SELECT block_number, count() AS tx_count FROM %s.transactions FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d GROUP BY block_number ORDER BY block_number",
418+
"SELECT block_number, count() AS tx_count FROM %s.transactions WHERE chain_id = %d AND block_number BETWEEN %d AND %d GROUP BY block_number ORDER BY block_number",
419419
config.Cfg.CommitterClickhouseDatabase,
420420
chainId,
421421
startBlockNumber,
@@ -492,7 +492,7 @@ func GetLogsMismatchRangeFromClickHouseV2(chainId uint64, startBlockNumber uint6
492492

493493
// Aggregate log counts and max log_index per block from the logs table.
494494
query := fmt.Sprintf(
495-
"SELECT block_number, count() AS log_count, max(log_index) AS max_log_index FROM %s.logs FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d GROUP BY block_number ORDER BY block_number",
495+
"SELECT block_number, count() AS log_count, max(log_index) AS max_log_index FROM %s.logs WHERE chain_id = %d AND block_number BETWEEN %d AND %d GROUP BY block_number ORDER BY block_number",
496496
config.Cfg.CommitterClickhouseDatabase,
497497
chainId,
498498
startBlockNumber,
@@ -560,7 +560,7 @@ func getBlocksFromV2(chainId uint64, startBlockNumber uint64, endBlockNumber uin
560560
length := endBlockNumber - startBlockNumber + 1
561561
blocksRaw := make([]common.Block, length)
562562

563-
query := fmt.Sprintf("SELECT %s FROM %s.blocks FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number",
563+
query := fmt.Sprintf("SELECT %s FROM %s.blocks WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number",
564564
strings.Join(defaultBlockFields, ", "),
565565
config.Cfg.CommitterClickhouseDatabase,
566566
chainId,
@@ -589,7 +589,7 @@ func getTransactionsFromV2(chainId uint64, startBlockNumber uint64, endBlockNumb
589589
length := endBlockNumber - startBlockNumber + 1
590590
transactionsRaw := make([][]common.Transaction, length)
591591

592-
query := fmt.Sprintf("SELECT %s FROM %s.transactions FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number, transaction_index",
592+
query := fmt.Sprintf("SELECT %s FROM %s.transactions WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number, transaction_index",
593593
strings.Join(defaultTransactionFields, ", "),
594594
config.Cfg.CommitterClickhouseDatabase,
595595
chainId,
@@ -618,7 +618,7 @@ func getLogsFromV2(chainId uint64, startBlockNumber uint64, endBlockNumber uint6
618618
length := endBlockNumber - startBlockNumber + 1
619619
logsRaw := make([][]common.Log, length)
620620

621-
query := fmt.Sprintf("SELECT %s FROM %s.logs FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number, log_index",
621+
query := fmt.Sprintf("SELECT %s FROM %s.logs WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number, log_index",
622622
strings.Join(defaultLogFields, ", "),
623623
config.Cfg.CommitterClickhouseDatabase,
624624
chainId,
@@ -647,7 +647,7 @@ func getTracesFromV2(chainId uint64, startBlockNumber uint64, endBlockNumber uin
647647
length := endBlockNumber - startBlockNumber + 1
648648
tracesRaw := make([][]common.Trace, length)
649649

650-
query := fmt.Sprintf("SELECT %s FROM %s.traces FINAL WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number",
650+
query := fmt.Sprintf("SELECT %s FROM %s.traces WHERE chain_id = %d AND block_number BETWEEN %d AND %d order by block_number",
651651
strings.Join(defaultTraceFields, ", "),
652652
config.Cfg.CommitterClickhouseDatabase,
653653
chainId,

0 commit comments

Comments
 (0)