Skip to content

Commit ef16bcd

Browse files
committed
fix table renaming and from address query filter
1 parent 29109f2 commit ef16bcd

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

internal/storage/clickhouse.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,10 @@ func (c *ClickHouseConnector) GetAggregations(table string, qf QueryFilter) (Que
469469
if contractAddressClause != "" {
470470
whereClauses = append(whereClauses, contractAddressClause)
471471
}
472+
fromAddressClause := createFromAddressClause(table, qf.FromAddress)
473+
if fromAddressClause != "" {
474+
whereClauses = append(whereClauses, fromAddressClause)
475+
}
472476
signatureClause := createSignatureClause(table, qf.Signature)
473477
if signatureClause != "" {
474478
whereClauses = append(whereClauses, signatureClause)
@@ -545,8 +549,7 @@ func (c *ClickHouseConnector) GetAggregations(table string, qf QueryFilter) (Que
545549
}
546550

547551
func executeQuery[T any](c *ClickHouseConnector, table, columns string, qf QueryFilter, scanFunc func(driver.Rows) (T, error)) (QueryResult[T], error) {
548-
tableName := c.getTableName(qf.ChainId, table)
549-
query := c.buildQuery(tableName, columns, qf)
552+
query := c.buildQuery(table, columns, qf)
550553

551554
if err := common.ValidateQuery(query); err != nil {
552555
return QueryResult[T]{}, err
@@ -573,7 +576,8 @@ func executeQuery[T any](c *ClickHouseConnector, table, columns string, qf Query
573576
}
574577

575578
func (c *ClickHouseConnector) buildQuery(table, columns string, qf QueryFilter) string {
576-
query := fmt.Sprintf("SELECT %s FROM %s.%s", columns, c.cfg.Database, table)
579+
tableName := c.getTableName(qf.ChainId, table)
580+
query := fmt.Sprintf("SELECT %s FROM %s.%s", columns, c.cfg.Database, tableName)
577581
if qf.ForceConsistentData {
578582
query += " FINAL"
579583
}
@@ -590,6 +594,10 @@ func (c *ClickHouseConnector) buildQuery(table, columns string, qf QueryFilter)
590594
if contractAddressClause != "" {
591595
whereClauses = append(whereClauses, contractAddressClause)
592596
}
597+
fromAddressClause := createFromAddressClause(table, qf.FromAddress)
598+
if fromAddressClause != "" {
599+
whereClauses = append(whereClauses, fromAddressClause)
600+
}
593601
signatureClause := createSignatureClause(table, qf.Signature)
594602
if signatureClause != "" {
595603
whereClauses = append(whereClauses, signatureClause)
@@ -660,6 +668,17 @@ func createContractAddressClause(table, contractAddress string) string {
660668
return ""
661669
}
662670

671+
func createFromAddressClause(table, fromAddress string) string {
672+
if fromAddress == "" {
673+
return ""
674+
}
675+
fromAddress = strings.ToLower(fromAddress)
676+
if table == "transactions" {
677+
return fmt.Sprintf("from_address = '%s'", fromAddress)
678+
}
679+
return ""
680+
}
681+
663682
func createBlockNumbersClause(blockNumbers []*big.Int) string {
664683
if len(blockNumbers) > 0 {
665684
return fmt.Sprintf("block_number IN (%s)", getBlockNumbersStringArray(blockNumbers))

0 commit comments

Comments
 (0)