in src/databao_context_engine/plugins/databases/table_builder.py [0:0]
def apply_indexes(self, idx_cols: list[dict] | None) -> None:
idx_groups = group_rows(idx_cols, ("table_name", "index_name"))
by_table: dict[str, list[Index]] = defaultdict(list)
for (table_name, idx_name), grp in idx_groups.items():
grp.sort(key=lambda r: sort_position_by_key(r, "position"))
first = grp[0]
by_table[table_name].append(
Index(
name=idx_name,
columns=[cast(str, r.get("expr")) for r in grp if r.get("expr") is not None],
unique=bool(coerce_bool(first.get("is_unique"), default=False)),
method=first.get("method"),
predicate=first.get("predicate"),
)
)
for table_name, idxs in by_table.items():
self.get_or_create_table(table_name).indexes = idxs