fix: Database reserved keyword issue

The fix will use quotes to escape "key", which is column name in the metadata table. Should work for different database types.

Merge https://github.com/google/adk-python/pull/4106

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/4106 from DineshThumma9:fix/mysql-reserved-keyword-issue e39d0d02f3695d6890bc3267417b5dad58f7e8ee
PiperOrigin-RevId: 854411915
This commit is contained in:
Dinesh Thumma
2026-01-09 18:20:46 -08:00
committed by Copybara-Service
parent 2bd984adb3
commit 94d48fce32
2 changed files with 18 additions and 7 deletions
@@ -51,12 +51,18 @@ async def test_new_db_uses_latest_schema(tmp_path):
lambda sync_conn: inspect(sync_conn).has_table('adk_internal_metadata')
)
assert has_metadata_table
schema_version = await conn.run_sync(
lambda sync_conn: sync_conn.execute(
text('SELECT value FROM adk_internal_metadata WHERE key = :key'),
{'key': _schema_check_utils.SCHEMA_VERSION_KEY},
).scalar_one_or_none()
)
def get_schema_version(sync_conn):
inspector = inspect(sync_conn)
key_col = inspector.dialect.identifier_preparer.quote('key')
return sync_conn.execute(
text(
f'SELECT value FROM adk_internal_metadata WHERE {key_col} = :key'
),
{'key': _schema_check_utils.SCHEMA_VERSION_KEY},
).scalar_one_or_none()
schema_version = await conn.run_sync(get_schema_version)
assert schema_version == _schema_check_utils.LATEST_SCHEMA_VERSION
# Verify events table columns for v1