Repository navigation
Conversation
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.
Recursive association queries assumed every containment accessor returned a collection. A SQL view's scalar
sqlQuerytherefore raisedInstances of FmxSQLSelectQuery are not indexable, including when querying an enclosing schema.Traversal now uses the existing
containedEntitiesDo:protocol, which handles scalar, collection and absent children. An identity-based visited set is reset for each query execution and prevents duplicate traversal of shared children and infinite traversal of cycles. Boolean dependency queries use the same traversal contract. Local-only queries still inspect only their receiver.Three new tests use the real containment trait and isolate traversal from association filtering. They cover scalar/nil children, collection/shared/cyclic containment, local-only behavior, and repeated boolean execution. There is no dependency on the SQL metamodel in the upstream package.
Validation in an isolated Pharo 13 / Moose 13 image: 71 upstream query tests passed, plus 1 actual FAMIX SQL view-to-table fixture passed. The SQL fixture verifies association collection, provider direction, incoming clients, and recursive versus local existence queries.
git diff --checkpassed.Addresses deem0n/FAMIXNGSQL#13. The full SQL DSM/Butterfly acceptance matrix remains part of the integrated v3.0.0 gate. This PR targets the deem0n fork first.
Updated CI evidence
Full fork CI test job passed: https://github.com/deem0n/Famix/actions/runs/35524462186. Combined SQL qualification is tracked in deem0n/FAMIXNGSQL#32. Release acceptance stays open until reviews and final integrated checks.