@@ -2115,50 +2115,14 @@ func (c *ClickHouseConnector) GetFullBlockData(chainId *big.Int, blockNumbers []
21152115}
21162116
21172117func (c * ClickHouseConnector ) DeleteOlderThan (chainId * big.Int , blockNumber * big.Int ) error {
2118- // First, get all the block numbers that need to be deleted
21192118 query := fmt .Sprintf (`
2120- SELECT DISTINCT chain_id, block_number
2121- FROM %s.block_data
2119+ INSERT INTO %s.block_data (chain_id, block_number, is_deleted)
2120+ SELECT chain_id, block_number, 1
2121+ FROM %s.block_data
21222122 WHERE chain_id = ? AND block_number <= ? AND is_deleted = 0
2123- ` , c .cfg .Database )
2124-
2125- rows , err := c .conn .Query (context .Background (), query , chainId , blockNumber )
2126- if err != nil {
2127- return err
2128- }
2129- defer rows .Close ()
2130-
2131- // Prepare batch for deletion
2132- deleteQuery := fmt .Sprintf (`
2133- INSERT INTO %s.block_data (
2134- chain_id, block_number, is_deleted
2135- ) VALUES (?, ?, ?)
2136- ` , c .cfg .Database )
2137-
2138- batch , err := c .conn .PrepareBatch (context .Background (), deleteQuery )
2139- if err != nil {
2140- return err
2141- }
2142- defer batch .Close ()
2143-
2144- // Add each block to the deletion batch
2145- for rows .Next () {
2146- var chainIdVal , blockNumberVal * big.Int
2147- if err := rows .Scan (& chainIdVal , & blockNumberVal ); err != nil {
2148- return err
2149- }
2150-
2151- err := batch .Append (
2152- chainIdVal ,
2153- blockNumberVal ,
2154- 1 , // is_deleted = 1
2155- )
2156- if err != nil {
2157- return err
2158- }
2159- }
2160-
2161- return batch .Send ()
2123+ GROUP BY chain_id, block_number
2124+ ` , c .cfg .Database , c .cfg .Database )
2125+ return c .conn .Exec (context .Background (), query , chainId , blockNumber )
21622126}
21632127
21642128// Helper function to test query generation
0 commit comments