Skip to content

Commit 3b9f694

Browse files
committed
Fix schema
1 parent 4fd141d commit 3b9f694

10 files changed

+106
-17
lines changed

internal/tools/clickhouse/0000_clickhouse_create_blocks_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS blocks (
2323
`base_fee_per_gas` Nullable(UInt64),
2424

2525
`insert_timestamp` DateTime DEFAULT now(),
26-
`is_deleted` Int8 DEFAULT 0,
26+
`is_deleted` UInt8 DEFAULT 0,
2727

2828
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
2929
INDEX idx_hash hash TYPE bloom_filter GRANULARITY 2,

internal/tools/clickhouse/0001_clickhouse_create_transactions_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS transactions (
3333
`status` Nullable(UInt64),
3434

3535
`insert_timestamp` DateTime DEFAULT now(),
36-
`is_deleted` Int8 DEFAULT 0,
36+
`is_deleted` UInt8 DEFAULT 0,
3737

3838
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
3939
INDEX idx_block_hash block_hash TYPE bloom_filter GRANULARITY 3,

internal/tools/clickhouse/0002_clickhouse_create_logs_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS logs (
1414
`topic_3` String,
1515

1616
`insert_timestamp` DateTime DEFAULT now(),
17-
`is_deleted` Int8 DEFAULT 0,
17+
`is_deleted` UInt8 DEFAULT 0,
1818

1919
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
2020
INDEX idx_block_hash block_hash TYPE bloom_filter GRANULARITY 3,

internal/tools/clickhouse/0003_clickhouse_create_traces_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ CREATE TABLE IF NOT EXISTS traces (
2222
`refund_address` Nullable(FixedString(42)),
2323

2424
`insert_timestamp` DateTime DEFAULT now(),
25-
`is_deleted` Int8 DEFAULT 0,
25+
`is_deleted` UInt8 DEFAULT 0,
2626

2727
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
2828
INDEX idx_block_hash block_hash TYPE bloom_filter GRANULARITY 2,

internal/tools/clickhouse/0004_clickhouse_create_insert_null_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@ CREATE TABLE IF NOT EXISTS insert_null_block_data (
9595
)),
9696

9797
insert_timestamp DateTime DEFAULT now(),
98-
is_deleted Int8 DEFAULT 0
98+
is_deleted UInt8 DEFAULT 0
9999
) ENGINE = Null;

internal/tools/clickhouse/0005_clickhouse_create_insert_data_mv.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ SELECT
2525
block.20 AS withdrawals_root,
2626
block.21 AS base_fee_per_gas,
2727
insert_timestamp,
28-
sign
28+
is_deleted
2929
FROM insert_null_block_data;
3030

3131
CREATE MATERIALIZED VIEW IF NOT EXISTS insert_transactions_mv

internal/tools/clickhouse/0006_clickhouse_create_token_transfers.sql

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS token_transfers
1515
`batch_index` Nullable(UInt16) DEFAULT NULL,
1616

1717
`insert_timestamp` DateTime DEFAULT now(),
18-
`is_deleted` Int8 DEFAULT 0,
18+
`is_deleted` UInt8 DEFAULT 0,
1919

2020
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
2121
INDEX idx_from_address from_address TYPE bloom_filter GRANULARITY 3,
@@ -52,6 +52,60 @@ CREATE TABLE IF NOT EXISTS token_transfers
5252
block_number,
5353
transaction_index,
5454
log_index
55+
),
56+
PROJECTION from_address_state_projection (
57+
SELECT
58+
chain_id,
59+
from_address,
60+
token_address,
61+
token_type,
62+
countState() AS transfer_count_state,
63+
sumState(toInt256(amount)) AS total_amount_state,
64+
minState(block_number) AS min_block_number_state,
65+
minState(block_timestamp) AS min_block_timestamp_state,
66+
maxState(block_number) AS max_block_number_state,
67+
maxState(block_timestamp) AS max_block_timestamp_state
68+
GROUP BY
69+
chain_id,
70+
from_address,
71+
token_address,
72+
token_type
73+
),
74+
PROJECTION to_address_state_projection (
75+
SELECT
76+
chain_id,
77+
to_address,
78+
token_address,
79+
token_type,
80+
countState() AS transfer_count_state,
81+
sumState(toInt256(amount)) AS total_amount_state,
82+
minState(block_number) AS min_block_number_state,
83+
minState(block_timestamp) AS min_block_timestamp_state,
84+
maxState(block_number) AS max_block_number_state,
85+
maxState(block_timestamp) AS max_block_timestamp_state
86+
GROUP BY
87+
chain_id,
88+
to_address,
89+
token_address,
90+
token_type
91+
),
92+
PROJECTION token_state_projection (
93+
SELECT
94+
chain_id,
95+
token_address,
96+
token_id,
97+
token_type,
98+
countState() AS transfer_count_state,
99+
sumState(toInt256(amount)) AS total_volume_state,
100+
minState(block_number) AS min_block_number_state,
101+
minState(block_timestamp) AS min_block_timestamp_state,
102+
maxState(block_number) AS max_block_number_state,
103+
maxState(block_timestamp) AS max_block_timestamp_state
104+
GROUP BY
105+
chain_id,
106+
token_address,
107+
token_id,
108+
token_type
55109
)
56110
)
57111
ENGINE = ReplacingMergeTree(insert_timestamp, is_deleted)

internal/tools/clickhouse/0008_clickhouse_create_token_balances.sql

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,44 +18,40 @@ CREATE TABLE IF NOT EXISTS token_balances
1818
`direction` Enum8('from' = 1, 'to' = 2), -- To make each transfer create 2 unique rows
1919

2020
`insert_timestamp` DateTime DEFAULT now(),
21-
`is_deleted` Int8 DEFAULT 0,
21+
`is_deleted` UInt8 DEFAULT 0,
2222

2323
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
2424
INDEX idx_token_address token_address TYPE bloom_filter GRANULARITY 3,
2525
INDEX idx_owner_address owner_address TYPE bloom_filter GRANULARITY 3,
2626

27-
-- Projection for efficient balance queries by owner
2827
PROJECTION owner_balances_projection
2928
(
3029
SELECT
3130
chain_id,
3231
owner_address,
3332
token_address,
3433
token_id,
35-
sumState(balance_delta * if(is_deleted = 0, 1, -1)) AS balance_state
34+
sumState(balance_delta * if(is_deleted = 0, 1, -1)) AS balance_state,
3635
minState(block_number) AS min_block_number_state,
3736
minState(block_timestamp) AS min_block_timestamp_state,
3837
maxState(block_number) AS max_block_number_state,
3938
maxState(block_timestamp) AS max_block_timestamp_state
4039
GROUP BY chain_id, owner_address, token_address, token_id
41-
ORDER BY chain_id, owner_address, token_address, token_id
4240
),
4341

44-
-- Projection for efficient balance queries by token
4542
PROJECTION token_balances_projection
4643
(
4744
SELECT
4845
chain_id,
4946
token_address,
5047
token_id,
5148
owner_address,
52-
sumState(balance_delta * if(is_deleted = 0, 1, -1)) AS balance_state
49+
sumState(balance_delta * if(is_deleted = 0, 1, -1)) AS balance_state,
5350
minState(block_number) AS min_block_number_state,
5451
minState(block_timestamp) AS min_block_timestamp_state,
5552
maxState(block_number) AS max_block_number_state,
5653
maxState(block_timestamp) AS max_block_timestamp_state
5754
GROUP BY chain_id, token_address, token_id, owner_address
58-
ORDER BY chain_id, token_address, token_id, owner_address
5955
)
6056
)
6157
ENGINE = ReplacingMergeTree(insert_timestamp, is_deleted)

internal/tools/clickhouse/0010_clickhouse_create_address_transactions.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS address_transactions (
3333
`status` Nullable(UInt64),
3434

3535
`insert_timestamp` DateTime DEFAULT now(),
36-
`is_deleted` Int8 DEFAULT 0,
36+
`is_deleted` UInt8 DEFAULT 0,
3737

3838
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
3939
INDEX idx_address_type address_type TYPE bloom_filter GRANULARITY 3,

internal/tools/clickhouse/0012_clickhouse_create_address_transfers.sql

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,49 @@ CREATE TABLE IF NOT EXISTS address_transfers (
1414
`batch_index` Nullable(UInt16) DEFAULT NULL,
1515

1616
`insert_timestamp` DateTime DEFAULT now(),
17-
`is_deleted` Int8 DEFAULT 0,
17+
`is_deleted` UInt8 DEFAULT 0,
1818

1919
INDEX idx_block_timestamp block_timestamp TYPE minmax GRANULARITY 1,
20-
INDEX idx_address_type address_type TYPE bloom_filter GRANULARITY 3
20+
INDEX idx_address_type address_type TYPE bloom_filter GRANULARITY 3,
21+
22+
PROJECTION address_state_projection (
23+
SELECT
24+
chain_id,
25+
address,
26+
address_type,
27+
token_address,
28+
token_type,
29+
countState() AS transfer_count_state,
30+
sumState(toInt256(amount)) AS total_amount_state,
31+
minState(block_number) AS min_block_number_state,
32+
minState(block_timestamp) AS min_block_timestamp_state,
33+
maxState(block_number) AS max_block_number_state,
34+
maxState(block_timestamp) AS max_block_timestamp_state
35+
GROUP BY
36+
chain_id,
37+
address,
38+
address_type,
39+
token_address,
40+
token_type
41+
),
42+
PROJECTION address_total_state_projection (
43+
SELECT
44+
chain_id,
45+
address,
46+
token_address,
47+
token_type,
48+
countState() AS transfer_count_state,
49+
sumState(toInt256(amount)) AS total_amount_state,
50+
minState(block_number) AS min_block_number_state,
51+
minState(block_timestamp) AS min_block_timestamp_state,
52+
maxState(block_number) AS max_block_number_state,
53+
maxState(block_timestamp) AS max_block_timestamp_state
54+
GROUP BY
55+
chain_id,
56+
address,
57+
token_address,
58+
token_type
59+
)
2160
) ENGINE = ReplacingMergeTree(insert_timestamp, is_deleted)
2261
ORDER BY (chain_id, address, block_number, transaction_hash, transaction_index)
2362
PARTITION BY (chain_id, toStartOfQuarter(block_timestamp))

0 commit comments

Comments
 (0)