diff --git a/.changeset/rich-jars-flow.md b/.changeset/rich-jars-flow.md new file mode 100644 index 00000000000..cb72503fe0d --- /dev/null +++ b/.changeset/rich-jars-flow.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +Narrowing topic, data_word indexes by adding (evm_chain_id, address, event_sig) to the index definition #db_update diff --git a/core/store/migrate/migrations/0233_log_poller_word_topic_indexes.sql b/core/store/migrate/migrations/0233_log_poller_word_topic_indexes.sql new file mode 100644 index 00000000000..e155e207996 --- /dev/null +++ b/core/store/migrate/migrations/0233_log_poller_word_topic_indexes.sql @@ -0,0 +1,65 @@ +-- +goose Up + +drop index if exists evm.evm_logs_idx_data_word_one; +drop index if exists evm.evm_logs_idx_data_word_two; +drop index if exists evm.evm_logs_idx_data_word_three; +drop index if exists evm.evm_logs_idx_data_word_four; +drop index if exists evm.evm_logs_idx_topic_two; +drop index if exists evm.evm_logs_idx_topic_three; +drop index if exists evm.evm_logs_idx_topic_four; + +create index evm_logs_idx_data_word_one + on evm.logs (address, event_sig, evm_chain_id, "substring"(data, 1, 32)); + +create index evm_logs_idx_data_word_two + on evm.logs (address, event_sig, evm_chain_id, "substring"(data, 33, 32)); + +create index evm_logs_idx_data_word_three + on evm.logs (address, event_sig, evm_chain_id, "substring"(data, 65, 32)); + +create index evm_logs_idx_data_word_four + on evm.logs (address, event_sig, evm_chain_id, "substring"(data, 97, 32)); + +create index evm_logs_idx_data_word_five + on evm.logs (address, event_sig, evm_chain_id, "substring"(data, 129, 32)); + +create index evm_logs_idx_topic_two + on evm.logs (address, event_sig, evm_chain_id, (topics[2])); + +create index evm_logs_idx_topic_three + on evm.logs (address, event_sig, evm_chain_id, (topics[3])); + +create index evm_logs_idx_topic_four + on evm.logs (address, event_sig, evm_chain_id, (topics[4])); + +-- +goose Down + +drop index if exists evm.evm_logs_idx_data_word_one; +drop index if exists evm.evm_logs_idx_data_word_two; +drop index if exists evm.evm_logs_idx_data_word_three; +drop index if exists evm.evm_logs_idx_data_word_four; +drop index if exists evm.evm_logs_idx_data_word_five; +drop index if exists evm.evm_logs_idx_topic_two; +drop index if exists evm.evm_logs_idx_topic_three; +drop index if exists evm.evm_logs_idx_topic_four; + +create index evm_logs_idx_data_word_one + on evm.logs ("substring"(data, 1, 32)); + +create index evm_logs_idx_data_word_two + on evm.logs ("substring"(data, 33, 32)); + +create index evm_logs_idx_data_word_three + on evm.logs ("substring"(data, 65, 32)); + +create index evm_logs_idx_data_word_four + on evm.logs ("substring"(data, 97, 32)); + +create index evm_logs_idx_topic_two + on evm.logs ((topics[2])); + +create index evm_logs_idx_topic_three + on evm.logs ((topics[3])); + +create index evm_logs_idx_topic_four + on evm.logs ((topics[4])); \ No newline at end of file