Skip to content

Rewrite the "Encode metadata, not a handle to a live object" section #1726

Description

@timsaucer

Blocked on the two sub-issues above — this describes the state they produce.

#1721 corrected the factually wrong attribution in extension-guide/codecs.md (it named datafusion-ffi-query-planner-example, which has no registry) and connected the broad claim at line 185 to the registry it forces. That was deliberately minimal, because the underlying facts were about to change.

Once the logical codec encodes durable metadata and the greedy arm is quarantined, the section should be rewritten rather than patched again:

  • Lead with the positive example. Two paragraphs of what-not-to-do before the reader sees a correct codec is the wrong order.
  • State the registry as a consequence, not a choice. A codec that downcasts to its own concrete types is never handed something it cannot describe. The cause is already explained under extension_codec_order, 100 lines further down; the two should link to each other.
  • Name the one remaining offender precisely — the ForeignExecutionPlan arm, with the upstream issue and the delete-when condition, so a reader can tell a marked workaround from sloppiness.
  • datafusion-ffi-example's logical codec moves from the counter-example list to the example list, alongside examples/distributed/storage-library.

Also check extension-guide/checklist.md:109, which says "the examples in this repository use tokens to make ownership observable" — that becomes true of one arm of one codec rather than of the examples generally.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions