-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
H-3947: Implement higher precision when convert data types in the graph #6303
H-3947: Implement higher precision when convert data types in the graph #6303
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #6303 +/- ##
==========================================
- Coverage 21.03% 20.87% -0.16%
==========================================
Files 580 580
Lines 19832 19792 -40
Branches 2929 2929
==========================================
- Hits 4171 4132 -39
+ Misses 15609 15608 -1
Partials 52 52
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
How many number-related data types are we exposing to users as HASH "Data Types" in the ontology/entities UI? (Integer, 64 bit float, 128 bit float, etc.) |
Currently, we only expose |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, thanks @TimDiekmann!
…ues-when-converting-data-types # Conflicts: # Cargo.lock # Cargo.toml # libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/array.rs # libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/number.rs # libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/string.rs # tests/graph/integration/postgres/data_type.rs # tests/graph/integration/postgres/partial_updates.rs # tests/graph/integration/postgres/property_metadata.rs
Thanks! I need a re-approval due to merge conflicts due to changes in |
…ph (#6303)
Benchmark results
|
Function | Value | Mean | Flame graphs |
---|---|---|---|
entity_by_id | 25 entities | Flame Graph | |
entity_by_id | 1 entities | Flame Graph | |
entity_by_id | 5 entities | Flame Graph | |
entity_by_id | 10 entities | Flame Graph | |
entity_by_id | 50 entities | Flame Graph |
representative_read_entity
Function | Value | Mean | Flame graphs |
---|---|---|---|
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1
|
Flame Graph | |
entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1
|
Flame Graph |
representative_read_entity_type
Function | Value | Mean | Flame graphs |
---|---|---|---|
get_entity_type_by_id | Account ID: d4e16033-c281-4cde-aa35-9085bf2e7579
|
Flame Graph |
representative_read_multiple_entities
Function | Value | Mean | Flame graphs |
---|---|---|---|
link_by_source_by_property | depths: DT=0, PT=2, ET=2, E=2 | Flame Graph | |
link_by_source_by_property | depths: DT=0, PT=0, ET=2, E=2 | Flame Graph | |
link_by_source_by_property | depths: DT=0, PT=0, ET=0, E=2 | Flame Graph | |
link_by_source_by_property | depths: DT=2, PT=2, ET=2, E=2 | Flame Graph | |
link_by_source_by_property | depths: DT=255, PT=255, ET=255, E=255 | Flame Graph | |
link_by_source_by_property | depths: DT=0, PT=0, ET=0, E=0 | Flame Graph | |
entity_by_property | depths: DT=0, PT=2, ET=2, E=2 | Flame Graph | |
entity_by_property | depths: DT=0, PT=0, ET=2, E=2 | Flame Graph | |
entity_by_property | depths: DT=0, PT=0, ET=0, E=2 | Flame Graph | |
entity_by_property | depths: DT=2, PT=2, ET=2, E=2 | Flame Graph | |
entity_by_property | depths: DT=255, PT=255, ET=255, E=255 | Flame Graph | |
entity_by_property | depths: DT=0, PT=0, ET=0, E=0 | Flame Graph |
scaling_read_entity_complete_one_depth
Function | Value | Mean | Flame graphs |
---|---|---|---|
entity_by_id | 25 entities | Flame Graph | |
entity_by_id | 1 entities | Flame Graph | |
entity_by_id | 5 entities | Flame Graph | |
entity_by_id | 10 entities | Flame Graph | |
entity_by_id | 50 entities | Flame Graph |
scaling_read_entity_linkless
Function | Value | Mean | Flame graphs |
---|---|---|---|
entity_by_id | 100 entities | Flame Graph | |
entity_by_id | 1000 entities | Flame Graph | |
entity_by_id | 10000 entities | Flame Graph | |
entity_by_id | 1 entities | Flame Graph | |
entity_by_id | 10 entities | Flame Graph |
🌟 What is the purpose of this PR?
As a stop-gap solution to do math for any numbers, we're going to
serde_json::Value
)f64
🔍 What does this change?
Value
type which replacesserde_json::Value
to have more control over itReal
type which represents a decimal numberReal
type in the newly addedValue
Real
behavior:f32
andf64
fails if it'sNaN
FLOAT4
andFLOAT8
in PostgresValue
behavior:Number
from/asf64
f64
precision is retained, but internally, a higher precision is usedPre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR: