From 1ab1a9cc384c1b5da78f71e96a9d6bd9e3f8175d Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 6 Jun 2024 12:53:00 +0300 Subject: [PATCH 1/3] Add address selector index. --- ...61e59cdcd85_logs_address_selector_index.py | 36 +++++++++++++++++++ .../moonstreamdbv3/models_indexes.py | 1 + 2 files changed, 37 insertions(+) create mode 100644 moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py new file mode 100644 index 00000000..7cd61005 --- /dev/null +++ b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py @@ -0,0 +1,36 @@ +"""Logs address selector index + +Revision ID: 361e59cdcd85 +Revises: a4ef4f9031e4 +Create Date: 2024-06-06 12:33:11.672367 + +""" + +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = "361e59cdcd85" +down_revision: Union[str, None] = "a4ef4f9031e4" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_index( + "idx_polygon_logs_address_selector", + "polygon_logs", + ["address", "selector"], + unique=False, + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index("idx_polygon_logs_address_selector", table_name="polygon_logs") + # ### end Alembic commands ### diff --git a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py index 220dce98..c1095f96 100644 --- a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py +++ b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py @@ -172,6 +172,7 @@ class PolygonLogIndex(EvmBasedLogs): __tablename__ = "polygon_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector"), UniqueConstraint( "transaction_hash", "log_index", From 0f61a486bc3b3752d466668ab3363aedd88356d6 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 6 Jun 2024 13:04:51 +0300 Subject: [PATCH 2/3] Added indexes on another tables. --- ...61e59cdcd85_logs_address_selector_index.py | 36 ------- ...0169529a544_logs_address_selector_index.py | 97 +++++++++++++++++++ .../moonstreamdbv3/models_indexes.py | 10 +- 3 files changed, 106 insertions(+), 37 deletions(-) delete mode 100644 moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py create mode 100644 moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py deleted file mode 100644 index 7cd61005..00000000 --- a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/361e59cdcd85_logs_address_selector_index.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Logs address selector index - -Revision ID: 361e59cdcd85 -Revises: a4ef4f9031e4 -Create Date: 2024-06-06 12:33:11.672367 - -""" - -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = "361e59cdcd85" -down_revision: Union[str, None] = "a4ef4f9031e4" -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.create_index( - "idx_polygon_logs_address_selector", - "polygon_logs", - ["address", "selector"], - unique=False, - ) - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index("idx_polygon_logs_address_selector", table_name="polygon_logs") - # ### end Alembic commands ### diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py new file mode 100644 index 00000000..e6710195 --- /dev/null +++ b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py @@ -0,0 +1,97 @@ +"""Logs address selector index + +Revision ID: f0169529a544 +Revises: a4ef4f9031e4 +Create Date: 2024-06-06 13:01:56.457667 + +""" + +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = "f0169529a544" +down_revision: Union[str, None] = "a4ef4f9031e4" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_index( + "idx_polygon_logs_address_selector", + "arbitrum_one_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "arbitrum_sepolia_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "ethereum_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "game7_orbit_arbitrum_sepolia_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "mantle_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "mantle_sepolia_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "polygon_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "xai_logs", + ["address", "selector"], + unique=False, + ) + op.create_index( + "idx_polygon_logs_address_selector", + "xai_sepolia_logs", + ["address", "selector"], + unique=False, + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index("idx_polygon_logs_address_selector", table_name="xai_sepolia_logs") + op.drop_index("idx_polygon_logs_address_selector", table_name="xai_logs") + op.drop_index("idx_polygon_logs_address_selector", table_name="polygon_logs") + op.drop_index("idx_polygon_logs_address_selector", table_name="mantle_sepolia_logs") + op.drop_index("idx_polygon_logs_address_selector", table_name="mantle_logs") + op.drop_index( + "idx_polygon_logs_address_selector", + table_name="game7_orbit_arbitrum_sepolia_logs", + ) + op.drop_index("idx_polygon_logs_address_selector", table_name="ethereum_logs") + op.drop_index( + "idx_polygon_logs_address_selector", table_name="arbitrum_sepolia_logs" + ) + op.drop_index("idx_polygon_logs_address_selector", table_name="arbitrum_one_logs") + # ### end Alembic commands ### diff --git a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py index c1095f96..d531bac7 100644 --- a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py +++ b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py @@ -122,6 +122,7 @@ class EthereumLogIndex(EvmBasedLogs): __tablename__ = "ethereum_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), Index( "idx_ethereum_logs_block_hash_log_index", "block_hash", @@ -172,7 +173,7 @@ class PolygonLogIndex(EvmBasedLogs): __tablename__ = "polygon_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector"), + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -219,6 +220,7 @@ class XaiLogIndex(EvmBasedLogs): __tablename__ = "xai_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -263,6 +265,7 @@ class XaiSepoliaLogIndex(EvmBasedLogs): __tablename__ = "xai_sepolia_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -309,6 +312,7 @@ class ArbitrumOneLogIndex(EvmBasedLogs): __tablename__ = "arbitrum_one_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -355,6 +359,7 @@ class ArbitrumSepoliaLogIndex(EvmBasedLogs): __tablename__ = "arbitrum_sepolia_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -403,6 +408,7 @@ class Game7OrbitArbitrumSepoliaLogIndex(EvmBasedLogs): __tablename__ = "game7_orbit_arbitrum_sepolia_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -450,6 +456,7 @@ class MantleLogIndex(EvmBasedLogs): __tablename__ = "mantle_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), Index( "idx_mantle_logs_block_hash_log_index", "block_hash", @@ -499,6 +506,7 @@ class MantleSepoliaLogIndex(EvmBasedLogs): __tablename__ = "mantle_sepolia_logs" __table_args__ = ( + Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), Index( "idx_mantle_sepolia_logs_block_hash_log_index", "block_hash", From c9319cdbebe65e1ce7033cce8abba4ef0c4684e7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 6 Jun 2024 13:17:35 +0300 Subject: [PATCH 3/3] Fix duplicates. --- ...2c90ea67bb_logs_address_selector_index.py} | 46 +++++++++++-------- .../moonstreamdbv3/models_indexes.py | 40 ++++++++++++---- 2 files changed, 58 insertions(+), 28 deletions(-) rename moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/{f0169529a544_logs_address_selector_index.py => e02c90ea67bb_logs_address_selector_index.py} (60%) diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/e02c90ea67bb_logs_address_selector_index.py similarity index 60% rename from moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py rename to moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/e02c90ea67bb_logs_address_selector_index.py index e6710195..5e4928bf 100644 --- a/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/f0169529a544_logs_address_selector_index.py +++ b/moonstreamdb-v3/moonstreamdbv3/alembic_indexes/versions/e02c90ea67bb_logs_address_selector_index.py @@ -1,8 +1,8 @@ """Logs address selector index -Revision ID: f0169529a544 +Revision ID: e02c90ea67bb Revises: a4ef4f9031e4 -Create Date: 2024-06-06 13:01:56.457667 +Create Date: 2024-06-06 13:12:14.594600 """ @@ -13,7 +13,7 @@ import sqlalchemy as sa # revision identifiers, used by Alembic. -revision: str = "f0169529a544" +revision: str = "e02c90ea67bb" down_revision: Union[str, None] = "a4ef4f9031e4" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None @@ -22,37 +22,37 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.create_index( - "idx_polygon_logs_address_selector", + "idx_arbitrum_one_logs_address_selector", "arbitrum_one_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_arbitrum_sepolia_logs_address_selector", "arbitrum_sepolia_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_ethereum_logs_address_selector", "ethereum_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_game7_orbit_arbitrum_sepolia_logs_address_selector", "game7_orbit_arbitrum_sepolia_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_mantle_logs_address_selector", "mantle_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_mantle_sepolia_logs_address_selector", "mantle_sepolia_logs", ["address", "selector"], unique=False, @@ -64,13 +64,13 @@ def upgrade() -> None: unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_xai_logs_address_selector", "xai_logs", ["address", "selector"], unique=False, ) op.create_index( - "idx_polygon_logs_address_selector", + "idx_xai_sepolia_logs_address_selector", "xai_sepolia_logs", ["address", "selector"], unique=False, @@ -80,18 +80,24 @@ def upgrade() -> None: def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - op.drop_index("idx_polygon_logs_address_selector", table_name="xai_sepolia_logs") - op.drop_index("idx_polygon_logs_address_selector", table_name="xai_logs") - op.drop_index("idx_polygon_logs_address_selector", table_name="polygon_logs") - op.drop_index("idx_polygon_logs_address_selector", table_name="mantle_sepolia_logs") - op.drop_index("idx_polygon_logs_address_selector", table_name="mantle_logs") op.drop_index( - "idx_polygon_logs_address_selector", + "idx_xai_sepolia_logs_address_selector", table_name="xai_sepolia_logs" + ) + op.drop_index("idx_xai_logs_address_selector", table_name="xai_logs") + op.drop_index("idx_polygon_logs_address_selector", table_name="polygon_logs") + op.drop_index( + "idx_mantle_sepolia_logs_address_selector", table_name="mantle_sepolia_logs" + ) + op.drop_index("idx_mantle_logs_address_selector", table_name="mantle_logs") + op.drop_index( + "idx_game7_orbit_arbitrum_sepolia_logs_address_selector", table_name="game7_orbit_arbitrum_sepolia_logs", ) - op.drop_index("idx_polygon_logs_address_selector", table_name="ethereum_logs") + op.drop_index("idx_ethereum_logs_address_selector", table_name="ethereum_logs") op.drop_index( - "idx_polygon_logs_address_selector", table_name="arbitrum_sepolia_logs" + "idx_arbitrum_sepolia_logs_address_selector", table_name="arbitrum_sepolia_logs" + ) + op.drop_index( + "idx_arbitrum_one_logs_address_selector", table_name="arbitrum_one_logs" ) - op.drop_index("idx_polygon_logs_address_selector", table_name="arbitrum_one_logs") # ### end Alembic commands ### diff --git a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py index d531bac7..3ac1bcfe 100644 --- a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py +++ b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py @@ -122,7 +122,9 @@ class EthereumLogIndex(EvmBasedLogs): __tablename__ = "ethereum_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_ethereum_logs_address_selector", "address", "selector", unique=False + ), Index( "idx_ethereum_logs_block_hash_log_index", "block_hash", @@ -220,7 +222,7 @@ class XaiLogIndex(EvmBasedLogs): __tablename__ = "xai_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index("idx_xai_logs_address_selector", "address", "selector", unique=False), UniqueConstraint( "transaction_hash", "log_index", @@ -265,7 +267,9 @@ class XaiSepoliaLogIndex(EvmBasedLogs): __tablename__ = "xai_sepolia_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_xai_sepolia_logs_address_selector", "address", "selector", unique=False + ), UniqueConstraint( "transaction_hash", "log_index", @@ -312,7 +316,12 @@ class ArbitrumOneLogIndex(EvmBasedLogs): __tablename__ = "arbitrum_one_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_arbitrum_one_logs_address_selector", + "address", + "selector", + unique=False, + ), UniqueConstraint( "transaction_hash", "log_index", @@ -359,7 +368,12 @@ class ArbitrumSepoliaLogIndex(EvmBasedLogs): __tablename__ = "arbitrum_sepolia_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_arbitrum_sepolia_logs_address_selector", + "address", + "selector", + unique=False, + ), UniqueConstraint( "transaction_hash", "log_index", @@ -408,7 +422,12 @@ class Game7OrbitArbitrumSepoliaLogIndex(EvmBasedLogs): __tablename__ = "game7_orbit_arbitrum_sepolia_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_game7_orbit_arbitrum_sepolia_logs_address_selector", + "address", + "selector", + unique=False, + ), UniqueConstraint( "transaction_hash", "log_index", @@ -456,7 +475,7 @@ class MantleLogIndex(EvmBasedLogs): __tablename__ = "mantle_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index("idx_mantle_logs_address_selector", "address", "selector", unique=False), Index( "idx_mantle_logs_block_hash_log_index", "block_hash", @@ -506,7 +525,12 @@ class MantleSepoliaLogIndex(EvmBasedLogs): __tablename__ = "mantle_sepolia_logs" __table_args__ = ( - Index("idx_polygon_logs_address_selector", "address", "selector", unique=False), + Index( + "idx_mantle_sepolia_logs_address_selector", + "address", + "selector", + unique=False, + ), Index( "idx_mantle_sepolia_logs_block_hash_log_index", "block_hash",