Skip to content

Rename CLI_ASYNC_DDL to DDL_EXECUTION_MODE enum variable #485

@apstndb

Description

@apstndb

Rename CLI_ASYNC_DDL to DDL_EXECUTION_MODE enum variable

Context

Part of #47 (java-spanner/go-sql-spanner compatibility). Currently CLI_ASYNC_DDL is a boolean variable that doesn't match upstream naming or behavior.

Upstream References

  • go-sql-spanner v1.24.0 (connection_properties.go:328-389): ddl_execution_mode enum (SYNC/ASYNC/ASYNC_WAIT) + ddl_async_wait_timeout (default 10s)
  • java-spanner: ddlExecutionMode connection-time property

Changes Required

Variable Rename and Type Change

  • Rename CLI_ASYNC_DDL (bool) → DDL_EXECUTION_MODE (enum: SYNC, ASYNC, ASYNC_WAIT)
  • SYNC = current false (default)
  • ASYNC = current true
  • ASYNC_WAIT = new mode (wait for DDL completion with timeout)

New Companion Variable

  • Add DDL_ASYNC_WAIT_TIMEOUT duration variable (default 10s, per go-sql-spanner)
  • Only effective when DDL_EXECUTION_MODE = ASYNC_WAIT

CLI Flag Update

  • Update --async CLI flag to map to DDL_EXECUTION_MODE = ASYNC

Backward Compatibility

  • No backward compatibility required per project philosophy

Acceptance Criteria

  • SET DDL_EXECUTION_MODE = 'SYNC' / 'ASYNC' / 'ASYNC_WAIT' works
  • SHOW VARIABLE DDL_EXECUTION_MODE works
  • SET DDL_ASYNC_WAIT_TIMEOUT = '30s' works
  • SHOW VARIABLE DDL_ASYNC_WAIT_TIMEOUT works
  • --async CLI flag sets mode to ASYNC
  • ASYNC_WAIT mode waits for DDL completion with configurable timeout
  • CLI_ASYNC_DDL is fully removed
  • make check passes

Metadata

Metadata

Assignees

No one assigned

    Labels

    statement-compatibilityClient-side statement and system variable compatibility with java-spanner/go-sql-spanner

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions