Context
#2495 makes each apply_wren_on_ctx call use a private top-level catalog-list snapshot so concurrent same-context transforms can't race on catalog registration. That fix is scoped to wren-core.
As noted in the review discussion, this shifts a wren-core-py consumer guarantee onto an implicit invariant. PySessionContext::register_parquet / register_csv document "Tables registered on base_ctx are visible to exec_ctx via shared catalog." After #2495, exec_ctx holds a private snapshot of the top-level catalog list, so that guarantee survives only because those methods register into base_ctx's default catalog — which exists at apply time and stays Arc-shared (Layer-2 shared internals). A physical table registered into a new top-level catalog after exec_ctx is built would silently not be visible.
This issue tracks the wren-core-py-side follow-up so that guarantee is documented and test-covered, and to carry the original same-context concurrency goal.
Follow-up items
Related
Context
#2495 makes each
apply_wren_on_ctxcall use a private top-level catalog-list snapshot so concurrent same-context transforms can't race on catalog registration. That fix is scoped towren-core.As noted in the review discussion, this shifts a
wren-core-pyconsumer guarantee onto an implicit invariant.PySessionContext::register_parquet/register_csvdocument "Tables registered on base_ctx are visible to exec_ctx via shared catalog." After #2495,exec_ctxholds a private snapshot of the top-level catalog list, so that guarantee survives only because those methods register intobase_ctx's default catalog — which exists at apply time and staysArc-shared (Layer-2 shared internals). A physical table registered into a new top-level catalog afterexec_ctxis built would silently not be visible.This issue tracks the
wren-core-py-side follow-up so that guarantee is documented and test-covered, and to carry the original same-context concurrency goal.Follow-up items
register_parquet/register_csv: physical tables register intobase_ctx's default catalog, and visibility throughexec_ctxrelies on that catalog already existing at apply time. State the precondition explicitly: complete top-level physical-catalog registration before starting a transform (mirroring the note now onapply_wren_on_ctx).wren-core-pyintegration coverage for physical-table visibility throughexec_ctx, including registration performed afterexec_ctxhas been created (register a parquet/csv, then resolve/query it viaexec_ctx).call_lockremoval — remove the per-contextcall_lockto enable true same-context concurrency; retain the same-context concurrency regression coverage and add throughput validation.Related
wren-corecatalog-list isolation).