docs: describe the composed-codec test in install order The docstring for test_composed_codecs_with_query_planner said the extra codecs decline everything and encoding falls through to the provider codecs, which describes the reverse of what happens. The provider codecs are installed first and chain_encode walks in install order, so they claim their objects before the extra codecs are consulted; decoding dispatches by id and does not consult them at all. Say that, and say what the test asserts: the extra pair changes nothing, where replace semantics would have broken the round trip. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
diff --git a/examples/datafusion-ffi-query-planner-example/python/tests/_test_three_library_query_planner.py b/examples/datafusion-ffi-query-planner-example/python/tests/_test_three_library_query_planner.py index 97453b2..c6ef207 100644 --- a/examples/datafusion-ffi-query-planner-example/python/tests/_test_three_library_query_planner.py +++ b/examples/datafusion-ffi-query-planner-example/python/tests/_test_three_library_query_planner.py
@@ -690,10 +690,15 @@ def test_composed_codecs_with_query_planner(): """A second pair of codecs installed on top of the provider codecs - composes with them instead of replacing them. The extra codecs - (default-backed exports from a fresh session) decline everything, - so planner-driven encode/decode falls through to the provider - codecs and the query still succeeds end to end.""" + composes with them instead of replacing them. + + The provider codecs are installed first, so encoding consults them + first and they claim this library's tables and plans before the + extra codecs (default-backed exports from a fresh session) get a + turn; decoding goes straight to whichever codec wrote the bytes. + The extra pair therefore changes nothing observable here, which is + the assertion: under replace semantics it would have discarded the + provider codecs and the planner-driven round trip would fail.""" ctx, logical_codec, physical_codec = configured_context(max_rows=2) other = SessionContext() ctx = ctx.with_logical_extension_codec(