Skip to content

Commit dd297c9

Browse files
timsaucerclaude
andcommitted
docs: add catalogs to the commit-order contract
Catalogs resolve alongside everything else and commit with the rest; register_catalog replaces rather than refuses, so their commit step cannot fail and needs no exception of its own. Co-Authored-By: Claude Fable 5 <[email protected]>
1 parent 175ad7f commit dd297c9

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

docs/source/contributor-guide/ffi-internals.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,13 @@ A call therefore splits into a part that may fail and a part that may not:
129129
even though it can fail on a bad capsule or a duplicate id.
130130
3. **Resolve.** Every declared function is wrapped and every name is checked,
131131
every declared table has its provider imported and its destination schema
132-
resolved, every declared physical optimizer rule has its capsule imported,
133-
and every `__datafusion_session_planner__` runs against the completed
134-
chains.
132+
resolved, every declared catalog has its provider imported, every declared
133+
physical optimizer rule has its capsule imported, and every
134+
`__datafusion_session_planner__` runs against the completed chains.
135135
4. **Commit.** The tables are inserted, the planner is bound, the functions
136-
are registered, and the optimizer rules are installed in a single
137-
`SessionState` rebuild.
136+
are registered, the catalogs are registered — `register_catalog` replaces
137+
rather than refuses, so it cannot fail — and the optimizer rules are
138+
installed in a single `SessionState` rebuild.
138139

139140
Only step 4 touches the session, and every step that can fail happens before
140141
it — with one honest exception: a table insert goes through a

0 commit comments

Comments
 (0)