You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(arrow-odbc): SQL Server event store index guard never matches #816
The SQL Server event queue store in the arrow-odbc adapter wraps CREATE INDEX in an existence check that never matches. The index DDL runs again every time the store's DDL is applied, and fails if the index already exists.
For CREATE INDEX idx_app_events_channel_status ON app_events(channel, status, available_at), the second \S+ captures app_events(channel, as the table name. The rendered guard is:
IF NOT EXISTS (SELECT1FROMsys.indexesWHERE name = N'idx_app_events_channel_status'AND object_id = OBJECT_ID(N'[dbo].[app_events(channel,]')) BEGIN CREATE INDEX ... END
OBJECT_ID(N'[dbo].[app_events(channel,]') is always NULL, so NOT EXISTS is always true.
Expected
OBJECT_ID(N'[dbo].[app_events]'). Stop the table-name capture at ( or whitespace, for example ON\s+([^\s(]+).
Note
tests/unit/adapters/test_arrow_odbc/test_tsql_stores.py currently asserts the rendered SQL as it is today, including OBJECT_ID(N'[dbo].[app_events(channel,]'). Update that assertion along with the fix.
Activity
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(arrow,duckdb): fix arrow streaming exception handling, adbc postg…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(arrow,duckdb): fix arrow streaming exception handling, adbc postg…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(arrow,duckdb): fix arrow streaming exception handling, adbc postg…
fix(arrow,duckdb): fix arrow streaming exception handling, adbc postg…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(arrow,duckdb): fix arrow streaming exception handling, adbc postg…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
fix(mssql): fix event index regex (#816), encapsulate _bulk_copy, and…
cofin commentedon Oct 7, 2026
Fixed in #819: SQL Server event store index guards use the configured table name and generated index names directly instead of regex extraction.