Skip to content

graflo.db.tigergraph.gsql_literals

GSQL literal formatting for schema DDL (e.g. DEFAULT clauses).

gsql_default_literal(value)

Format a manifest/JSON-friendly value as a GSQL literal for DEFAULT.

Source code in graflo/db/tigergraph/gsql_literals.py
def gsql_default_literal(value: Any) -> str:
    """Format a manifest/JSON-friendly value as a GSQL literal for ``DEFAULT``."""
    if isinstance(value, bool):
        return "true" if value else "false"
    if isinstance(value, int):
        return str(value)
    if isinstance(value, float):
        if value != value:  # NaN
            raise ValueError("NaN is not a valid GSQL default literal")
        return json.dumps(value)
    if isinstance(value, Decimal):
        return format(value, "f")
    if isinstance(value, str):
        escaped = value.replace("\\", "\\\\").replace('"', '\\"')
        return f'"{escaped}"'
    raise TypeError(
        f"Unsupported type for GSQL DEFAULT literal: {type(value).__name__}. "
        "Use bool, int, float, Decimal, or str."
    )