Exclude internal-API functions from a class's OO method list#72
Merged
estebanzimanyi merged 1 commit intoJul 23, 2026
Merged
Conversation
The object model classifies every function whose name matches a class prefix into classes[<class>].methods, including the ones the catalog marks internal: the _p peeks, the bbox and skiplist plumbing, the raw _in/_out. For the Temporal class that is 59 of 162 entries. A binding that generates its object layer from this list would emit methods it cannot call, so each binding would re-derive the public/internal split the catalog already records in the api field. Treat a non-public function as internal machinery in _oo_excluded, alongside the aggregate transition helpers and the SQL-less comparators it already excludes. The function stays in the list with ooExclude set, so the reverse index remains complete and a binding keeps only the entries without the flag. The Temporal public method count goes from a list mixing 59 internal entries to 97 clean ones, with none leaking through.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The object model classifies every function whose name matches a class prefix into
objectModel.classes[<class>].methods— including the ones the catalog marksapi: internal: the_ppeeks (temporal_inst_n,temporal_start_inst), the bboxand skiplist plumbing, the raw
*_in/*_out. For theTemporalclass that is 59 of162 entries.
A binding that generates its object layer from that list would emit 59 methods it cannot
call — they are not public exports — so every binding has to re-derive the public/internal
split the catalog already records in the
apifield.This treats a non-public function as internal machinery in
_oo_excluded, alongside theaggregate transition helpers and the SQL-less comparators it already excludes. The function
stays classified (so
functionToClassand the reverse index remain complete) but carriesooExclude, exactly as those other internal entries do, and a binding keeps onlynot m['ooExclude'].Against MobilityDB master the
Temporallist goes from mixing 59 internal entries to 97clean public methods, with none leaking through. Full suite: 186 passed, plus a new test
asserting a public method is kept and an internal one is flagged. (
test_struct_layout'sone failure is the pre-existing source-tree-parse approximation — it fails identically on
master and passes on the installed-header CI path.)