From a457fd7ee8e95c653d86e063f11f57eceb7feabb Mon Sep 17 00:00:00 2001 From: Ryan Morton Date: Sat, 20 Apr 2024 10:26:28 -0400 Subject: [PATCH] feat(migrations): add indexes for ip, netblock, rir, and asn assets Closes: https://github.com/owasp-amass/asset-db/issues/29 --- migrations/postgres/010_asset_content_idx.sql | 11 +++++++++++ migrations/sqlite3/008_asset_content_idx.sql | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 migrations/postgres/010_asset_content_idx.sql create mode 100644 migrations/sqlite3/008_asset_content_idx.sql diff --git a/migrations/postgres/010_asset_content_idx.sql b/migrations/postgres/010_asset_content_idx.sql new file mode 100644 index 0000000..c8eaa7f --- /dev/null +++ b/migrations/postgres/010_asset_content_idx.sql @@ -0,0 +1,11 @@ +-- +migrate Up +CREATE INDEX IF NOT EXISTS idx_ip_content_address ON assets USING gin ((content->>'address') gin_trgm_ops) WHERE type = 'IPAddress'; +CREATE INDEX IF NOT EXISTS idx_net_content_cidr ON assets USING gin ((content->>'cidr') gin_trgm_ops) WHERE type = 'Netblock'; +CREATE INDEX IF NOT EXISTS idx_rir_content_name ON assets USING gin ((content->>'name') gin_trgm_ops) WHERE type = 'RIROrg'; +CREATE INDEX IF NOT EXISTS idx_asn_content_num ON assets USING gin ((content->>'number') gin_trgm_ops) WHERE type = 'ASN'; + +-- +migrate Down +DROP INDEX IF EXISTS idx_ip_content_address; +DROP INDEX IF EXISTS idx_net_content_cidr; +DROP INDEX IF EXISTS idx_rir_content_name; +DROP INDEX IF EXISTS idx_asn_content_num; \ No newline at end of file diff --git a/migrations/sqlite3/008_asset_content_idx.sql b/migrations/sqlite3/008_asset_content_idx.sql new file mode 100644 index 0000000..c94bae5 --- /dev/null +++ b/migrations/sqlite3/008_asset_content_idx.sql @@ -0,0 +1,11 @@ +-- +migrate Up +CREATE INDEX idx_ip_content_address ON assets (content->>'address' COLLATE NOCASE) WHERE type = 'IPAddress'; +CREATE INDEX idx_net_content_cidr ON assets (content->>'cidr' COLLATE NOCASE) WHERE type = 'Netblock'; +CREATE INDEX idx_rir_content_name ON assets (content->>'name' COLLATE NOCASE) WHERE type = 'RIROrg'; +CREATE INDEX idx_asn_content_num ON assets (content->>'number' COLLATE NOCASE) WHERE type = 'ASN'; + +-- +migrate Down +DROP INDEX IF EXISTS idx_ip_content_address; +DROP INDEX IF EXISTS idx_net_content_cidr; +DROP INDEX IF EXISTS idx_rir_content_name; +DROP INDEX IF EXISTS idx_asn_content_num; \ No newline at end of file