Pull enhancements #230
Labels
No labels
A-build
A-cli
A-core
A-design
A-edn
A-ffi
A-query
A-sdk
A-sdk-android
A-sdk-ios
A-sync
A-transact
A-views
A-vocab
P-Android
P-desktop
P-iOS
bug
correctness
dependencies
dev-ergonomics
discussion
documentation
duplicate
enhancement
enquiry
good first bug
good first issue
help wanted
hygiene
in progress
invalid
question
ready
size
speed
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: greg/mentat#230
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implement pulling
:db/id
, which means we can avoid using rel results in some cases. Rather than[:find [?person (pull ?person [:person/name])] …]
we can do[:find [(pull ?person [:db/id :as :person/id :person/name]) ...] …]
and handle the returned maps.Implement aliases.
Allow for non-namespaced keywords in
StructuredMap
. This would allow:as :id
instead of:as :something/id
.Consider whether it's better to return
TypedValue::Ref(12345)
or{:db/id 12345}
— the former is an advantage of our type system, and simplifies extraction of values, but the latter might be more regular when considering fetching more values, and is the way Datomic represents an entity in pull.Single-step pull execution. A query like
can be executed in a single SQL query. The in-progress implementation will take two.
Full prepared statement support. This probably looks like inserting the results of the prepared query into a temporary table, and running the pull from there. That makes both queries fixed and allows us to prepare both the 'front' and 'back' of the query.