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,