INNER CODE UNIT · Python

rewrite_schema

Altinity/clickhouse-operator · tools/restore_shared_to_replicated.py:342

def rewrite_schema(sql: str, kind: str, args: argparse.Namespace) -> str:
    out = sql
    if kind == "table":
        out = SHARED_MERGETREE_RE.sub(r"Replicated\1MergeTree", out)
        args_sql = f"({args.replicated_zk_path}, {args.replicated_replica})"
        out = REPLICATED_MISSING_ARGS_RE.sub(rf"\1{args_sql}", out)
    elif kind == "database":
        out = SHARED_DATABASE_ENGINE_RE.sub(r"\1Atomic", out)
    if CREATE_KIND_RE.search(out) and not IF_NOT_EXISTS_RE.search(out):
        out = CREATE_KIND_RE.sub(lambda m: m.group(0) + " IF NOT EXISTS", out, count=1)
    return out


def apply_order(kind: str, sql: str) -> int:
    m = CREATE_KIND_RE.search(sql)
    token = (m.group(1) if m else kind).upper().replace("  ", " ")
    order = {
        "DATABASE": 0,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…