Create indexes on materialized tables
(self, table_name: str, source: str)
| 154 | self._create_indexes(table_name, source) |
| 155 | |
| 156 | def _create_indexes(self, table_name: str, source: str): |
| 157 | """Create indexes on materialized tables""" |
| 158 | if source == 'samples': |
| 159 | # Index on join columns and commonly filtered columns |
| 160 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_tid ON {table_name}(tid)") |
| 161 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_timestamp ON {table_name}(timestamp)") |
| 162 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_sysc_seq ON {table_name}(sysc_seq_num)") |
| 163 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_iorq_seq ON {table_name}(iorq_seq_num)") |
| 164 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_kstack ON {table_name}(kstack_hash)") |
| 165 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_ustack ON {table_name}(ustack_hash)") |
| 166 | elif source == 'syscend': |
| 167 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_tid ON {table_name}(tid, sysc_seq_num)") |
| 168 | elif source == 'iorqend': |
| 169 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_tid ON {table_name}(insert_tid, iorq_seq_num)") |
| 170 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_dev ON {table_name}(dev_maj, dev_min)") |
| 171 | elif source == 'kstacks': |
| 172 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_hash ON {table_name}(KSTACK_HASH)") |
| 173 | elif source == 'ustacks': |
| 174 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_hash ON {table_name}(USTACK_HASH)") |
| 175 | elif source == 'partitions': |
| 176 | self.conn.execute(f"CREATE INDEX IF NOT EXISTS idx_{table_name}_dev ON {table_name}(dev_maj, dev_min)") |
| 177 | |
| 178 | def drop_all(self): |
| 179 | """Drop all materialized tables""" |
no test coverage detected