diff --git a/prisma/rsk-explorer-database.sql b/prisma/rsk-explorer-database.sql index 6e3adbc0..145c1242 100644 --- a/prisma/rsk-explorer-database.sql +++ b/prisma/rsk-explorer-database.sql @@ -1,6 +1,9 @@ --- RSK Explorer Database Schema V1.2.3 +-- RSK Explorer Database Schema V1.2.4 /* +V1.2.4 Notes: +- Added indexes for NFT support in event table + V1.2.3 Notes: - Normalized SQL schema across environments @@ -483,6 +486,13 @@ CREATE INDEX idx_event_transaction_hash_log_index ON event(transaction_hash, log CREATE INDEX idx_event_address_event_event_id ON event(address, event, event_id DESC); CREATE INDEX idx_event_event ON event(event); CREATE INDEX idx_event_lowercase_event ON event(lower((event)::text)); +CREATE INDEX idx_event_addr_t0_t3 ON event(address, topic0, topic3, block_number DESC, transaction_index DESC, log_index DESC); +CREATE INDEX idx_event_addr_t0_block_log_desc ON event(address, topic0, block_number DESC, transaction_index DESC, log_index DESC); +CREATE INDEX idx_event_t0_t1 ON event(topic0, topic1); +CREATE INDEX idx_event_t0_t2 ON event(topic0, topic2); +CREATE INDEX idx_event_t0_t3 ON event(topic0, topic3); +CREATE INDEX idx_event_addr_t0_t1_block_log ON event(address, topic0, topic1, block_number DESC, transaction_index DESC, log_index DESC); +CREATE INDEX idx_event_addr_t0_t2_block_log ON event(address, topic0, topic2, block_number DESC, transaction_index DESC, log_index DESC); CREATE TABLE address_in_event ( event_id VARCHAR, @@ -652,4 +662,4 @@ CREATE TABLE bo_active_addresses_daily_aggregated ( CREATE TABLE bo_number_transactions_daily_aggregated ( date_1 DATE PRIMARY KEY, number_of_transactions INT -); \ No newline at end of file +); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ccaf1f6a..45a56a67 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -191,6 +191,13 @@ model event { @@index([transactionHash, logIndex], map: "idx_event_transaction_hash_log_index") @@index([address, event, eventId(sort: Desc)], map: "idx_event_address_event_event_id") @@index([event], map: "idx_event_event") + @@index([address, topic0, topic3, blockNumber(sort: Desc), transactionIndex(sort: Desc), logIndex(sort: Desc)], map: "idx_event_addr_t0_t3") + @@index([topic0, topic1], map: "idx_event_t0_t1") + @@index([topic0, topic2], map: "idx_event_t0_t2") + @@index([address, topic0, blockNumber(sort: Desc), transactionIndex(sort: Desc), logIndex(sort: Desc)], map: "idx_event_addr_t0_block_log_desc") + @@index([address, topic0, topic1, blockNumber(sort: Desc), transactionIndex(sort: Desc), logIndex(sort: Desc)], map: "idx_event_addr_t0_t1_block_log") + @@index([address, topic0, topic2, blockNumber(sort: Desc), transactionIndex(sort: Desc), logIndex(sort: Desc)], map: "idx_event_addr_t0_t2_block_log") + @@index([topic0, topic3], map: "idx_event_t0_t3") } model internal_transaction {