Skip to content

Commit 78186ca

Browse files
author
Zoran Cvetkov
committed
try to remove optional vid fetch
1 parent 5493ecd commit 78186ca

File tree

7 files changed

+93
-64
lines changed

7 files changed

+93
-64
lines changed

graph/src/components/store/entity_cache.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ impl EntityCache {
461461
updates.remove_null_fields();
462462
let data = Arc::new(updates);
463463
self.current.insert(key.clone(), Some(data.cheap_clone()));
464-
let vid = data.vid_opt();
464+
let vid = data.vid();
465465
Some(Insert {
466466
key,
467467
data,
@@ -478,7 +478,7 @@ impl EntityCache {
478478
let data = Arc::new(data);
479479
self.current.insert(key.clone(), Some(data.cheap_clone()));
480480
if current != data {
481-
let vid = data.vid_opt();
481+
let vid = data.vid();
482482
Some(Overwrite {
483483
key,
484484
data,

graph/src/data/store/mod.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -920,14 +920,6 @@ impl Entity {
920920
.expect("the vid is set to a valid value")
921921
}
922922

923-
// TODO: try to remove it
924-
pub fn vid_opt(&self) -> i64 {
925-
self.get("vid")
926-
.map(|vid| vid.as_int8())
927-
.unwrap_or_default()
928-
.unwrap_or_default()
929-
}
930-
931923
/// Merges an entity update `update` into this entity.
932924
///
933925
/// If a key exists in both entities, the value from `update` is chosen.

store/test-store/tests/chain/ethereum/manifest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ specVersion: 0.0.2
272272
.unwrap();
273273

274274
// Adds an example entity.
275-
let thing = entity! { schema => id: "datthing" };
275+
let thing = entity! { schema => id: "datthing", vid : 0i64 };
276276
test_store::insert_entities(
277277
&deployment,
278278
vec![(schema.entity_type("Thing").unwrap(), thing)],
@@ -372,7 +372,7 @@ specVersion: 0.0.2
372372
msg
373373
);
374374

375-
let thing = entity! { schema => id: "datthing" };
375+
let thing = entity! { schema => id: "datthing", vid : 1i64 };
376376
test_store::insert_entities(
377377
&deployment,
378378
vec![(schema.entity_type("Thing").unwrap(), thing)],

store/test-store/tests/core/interfaces.rs

Lines changed: 70 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ async fn one_interface_one_entity() {
6969
type Animal implements Legged @entity { id: ID!, legs: Int }";
7070
let schema = InputSchema::raw(document, subgraph_id);
7171

72-
let entity = ("Animal", entity! { schema => id: "1", legs: 3 });
72+
let entity = ("Animal", entity! { schema => id: "1", legs: 3, vid: 0i64 });
7373

7474
// Collection query.
7575
let query = "query { leggeds(first: 100) { legs } }";
@@ -97,7 +97,7 @@ async fn one_interface_one_entity_typename() {
9797
type Animal implements Legged @entity { id: ID!, legs: Int }";
9898
let schema = InputSchema::raw(document, subgraph_id);
9999

100-
let entity = ("Animal", entity! { schema => id: "1", legs: 3 });
100+
let entity = ("Animal", entity! { schema => id: "1", legs: 3, vid: 0i64 });
101101

102102
let query = "query { leggeds(first: 100) { __typename } }";
103103

@@ -118,8 +118,11 @@ async fn one_interface_multiple_entities() {
118118
";
119119
let schema = InputSchema::raw(document, subgraph_id);
120120

121-
let animal = ("Animal", entity! { schema => id: "1", legs: 3 });
122-
let furniture = ("Furniture", entity! { schema => id: "2", legs: 4 });
121+
let animal = ("Animal", entity! { schema => id: "1", legs: 3, vid: 0i64 });
122+
let furniture = (
123+
"Furniture",
124+
entity! { schema => id: "2", legs: 4, vid: 0i64 },
125+
);
123126

124127
let query = "query { leggeds(first: 100, orderBy: legs) { legs } }";
125128

@@ -150,8 +153,8 @@ async fn reference_interface() {
150153

151154
let query = "query { leggeds(first: 100) { leg { id } } }";
152155

153-
let leg = ("Leg", entity! { schema => id: "1" });
154-
let animal = ("Animal", entity! { schema => id: "1", leg: 1 });
156+
let leg = ("Leg", entity! { schema => id: "1", vid: 0i64 });
157+
let animal = ("Animal", entity! { schema => id: "1", leg: 1, vid: 0i64 });
155158

156159
let res = insert_and_query(subgraph_id, document, vec![leg, animal], query)
157160
.await
@@ -201,16 +204,16 @@ async fn reference_interface_derived() {
201204

202205
let query = "query { events { id transaction { id } } }";
203206

204-
let buy = ("BuyEvent", entity! { schema => id: "buy" });
207+
let buy = ("BuyEvent", entity! { schema => id: "buy", vid: 0i64 });
205208
let sell1 = ("SellEvent", entity! { schema => id: "sell1", vid: 0i64 });
206209
let sell2 = ("SellEvent", entity! { schema => id: "sell2", vid: 1i64 });
207210
let gift = (
208211
"GiftEvent",
209-
entity! { schema => id: "gift", transaction: "txn" },
212+
entity! { schema => id: "gift", transaction: "txn", vid: 0i64 },
210213
);
211214
let txn = (
212215
"Transaction",
213-
entity! { schema => id: "txn", buyEvent: "buy", sellEvents: vec!["sell1", "sell2"] },
216+
entity! { schema => id: "txn", buyEvent: "buy", sellEvents: vec!["sell1", "sell2"], vid: 0i64 },
214217
);
215218

216219
let entities = vec![buy, sell1, sell2, gift, txn];
@@ -305,8 +308,11 @@ async fn conflicting_implementors_id() {
305308
";
306309
let schema = InputSchema::raw(document, subgraph_id);
307310

308-
let animal = ("Animal", entity! { schema => id: "1", legs: 3 });
309-
let furniture = ("Furniture", entity! { schema => id: "1", legs: 3 });
311+
let animal = ("Animal", entity! { schema => id: "1", legs: 3, vid: 0i64 });
312+
let furniture = (
313+
"Furniture",
314+
entity! { schema => id: "1", legs: 3, vid: 0i64 },
315+
);
310316

311317
let query = "query { leggeds(first: 100) { legs } }";
312318

@@ -334,8 +340,11 @@ async fn derived_interface_relationship() {
334340
";
335341
let schema = InputSchema::raw(document, subgraph_id);
336342

337-
let forest = ("Forest", entity! { schema => id: "1" });
338-
let animal = ("Animal", entity! { schema => id: "1", forest: "1" });
343+
let forest = ("Forest", entity! { schema => id: "1", vid: 0i64 });
344+
let animal = (
345+
"Animal",
346+
entity! { schema => id: "1", forest: "1", vid: 0i64 },
347+
);
339348

340349
let query = "query { forests(first: 100) { dwellers(first: 100) { id } } }";
341350

@@ -362,9 +371,12 @@ async fn two_interfaces() {
362371
";
363372
let schema = InputSchema::raw(document, subgraph_id);
364373

365-
let a = ("A", entity! { schema => id: "1", foo: "bla" });
366-
let b = ("B", entity! { schema => id: "1", bar: 100 });
367-
let ab = ("AB", entity! { schema => id: "2", foo: "ble", bar: 200 });
374+
let a = ("A", entity! { schema => id: "1", foo: "bla", vid: 0i64 });
375+
let b = ("B", entity! { schema => id: "1", bar: 100, vid: 0i64 });
376+
let ab = (
377+
"AB",
378+
entity! { schema => id: "2", foo: "ble", bar: 200, vid: 0i64 },
379+
);
368380

369381
let query = "query {
370382
ibars(first: 100, orderBy: bar) { bar }
@@ -390,7 +402,7 @@ async fn interface_non_inline_fragment() {
390402

391403
let entity = (
392404
"Animal",
393-
entity! { schema => id: "1", name: "cow", legs: 3 },
405+
entity! { schema => id: "1", name: "cow", legs: 3, vid: 0i64 },
394406
);
395407

396408
// Query only the fragment.
@@ -422,9 +434,12 @@ async fn interface_inline_fragment() {
422434

423435
let animal = (
424436
"Animal",
425-
entity! { schema => id: "1", name: "cow", legs: 4 },
437+
entity! { schema => id: "1", name: "cow", legs: 4, vid: 0i64 },
438+
);
439+
let bird = (
440+
"Bird",
441+
entity! { schema => id: "2", airspeed: 24, legs: 2, vid: 0i64 },
426442
);
427-
let bird = ("Bird", entity! { schema => id: "2", airspeed: 24, legs: 2 });
428443

429444
let query =
430445
"query { leggeds(orderBy: legs) { ... on Animal { name } ...on Bird { airspeed } } }";
@@ -616,7 +631,7 @@ async fn fragments_dont_panic() {
616631
"Parent",
617632
entity! { schema => id: "p2", child: Value::Null, vid: 1i64 },
618633
);
619-
let child = ("Child", entity! { schema => id:"c" });
634+
let child = ("Child", entity! { schema => id:"c", vid: 2i64 });
620635

621636
let res = insert_and_query(subgraph_id, document, vec![parent, parent2, child], query)
622637
.await
@@ -682,7 +697,7 @@ async fn fragments_dont_duplicate_data() {
682697
"Parent",
683698
entity! { schema => id: "b", children: Vec::<String>::new(), vid: 1i64 },
684699
);
685-
let child = ("Child", entity! { schema => id:"c" });
700+
let child = ("Child", entity! { schema => id:"c", vid: 2i64 });
686701

687702
let res = insert_and_query(subgraph_id, document, vec![parent, parent2, child], query)
688703
.await
@@ -792,8 +807,11 @@ async fn fragments_merge_selections() {
792807
}
793808
";
794809

795-
let parent = ("Parent", entity! { schema => id: "p", children: vec!["c"] });
796-
let child = ("Child", entity! { schema => id: "c", foo: 1 });
810+
let parent = (
811+
"Parent",
812+
entity! { schema => id: "p", children: vec!["c"], vid: 0i64 },
813+
);
814+
let child = ("Child", entity! { schema => id: "c", foo: 1, vid: 1i64 });
797815

798816
let res = insert_and_query(subgraph_id, document, vec![parent, child], query)
799817
.await
@@ -849,8 +867,14 @@ async fn merge_fields_not_in_interface() {
849867
}
850868
}";
851869

852-
let animal = ("Animal", entity! { schema => id: "cow", human: "fred" });
853-
let human = ("Human", entity! { schema => id: "fred", animal: "cow" });
870+
let animal = (
871+
"Animal",
872+
entity! { schema => id: "cow", human: "fred", vid: 0i64 },
873+
);
874+
let human = (
875+
"Human",
876+
entity! { schema => id: "fred", animal: "cow", vid: 0i64 },
877+
);
854878

855879
let res = insert_and_query(subgraph_id, document, vec![animal, human], query)
856880
.await
@@ -923,15 +947,15 @@ async fn nested_interface_fragments() {
923947
}
924948
}";
925949

926-
let foo = ("Foo", entity! { schema => id: "foo" });
927-
let one = ("One", entity! { schema => id: "1", foo1: "foo" });
950+
let foo = ("Foo", entity! { schema => id: "foo", vid: 0i64 });
951+
let one = ("One", entity! { schema => id: "1", foo1: "foo", vid: 0i64 });
928952
let two = (
929953
"Two",
930-
entity! { schema => id: "2", foo1: "foo", foo2: "foo" },
954+
entity! { schema => id: "2", foo1: "foo", foo2: "foo", vid: 0i64 },
931955
);
932956
let three = (
933957
"Three",
934-
entity! { schema => id: "3", foo1: "foo", foo2: "foo", foo3: "foo" },
958+
entity! { schema => id: "3", foo1: "foo", foo2: "foo", foo3: "foo", vid: 0i64 },
935959
);
936960

937961
let res = insert_and_query(subgraph_id, document, vec![foo, one, two, three], query)
@@ -1004,9 +1028,9 @@ async fn nested_interface_fragments_overlapping() {
10041028
}
10051029
}";
10061030

1007-
let foo = ("Foo", entity! { schema => id: "foo" });
1008-
let one = ("One", entity! { schema => id: "1", foo1: "foo" });
1009-
let two = ("Two", entity! { schema => id: "2", foo1: "foo" });
1031+
let foo = ("Foo", entity! { schema => id: "foo", vid: 0i64 });
1032+
let one = ("One", entity! { schema => id: "1", foo1: "foo", vid: 0i64 });
1033+
let two = ("Two", entity! { schema => id: "2", foo1: "foo", vid: 0i64 });
10101034
let res = insert_and_query(subgraph_id, document, vec![foo, one, two], query)
10111035
.await
10121036
.unwrap();
@@ -1281,10 +1305,13 @@ async fn mixed_mutability() {
12811305
let query = "query { events { id } }";
12821306

12831307
let entities = vec![
1284-
("Mutable", entity! { schema => id: "mut0", name: "mut0" }),
1308+
(
1309+
"Mutable",
1310+
entity! { schema => id: "mut0", name: "mut0", vid: 0i64 },
1311+
),
12851312
(
12861313
"Immutable",
1287-
entity! { schema => id: "immo0", name: "immo0" },
1314+
entity! { schema => id: "immo0", name: "immo0", vid: 0i64 },
12881315
),
12891316
];
12901317

@@ -1335,9 +1362,15 @@ async fn derived_interface_bytes() {
13351362
let query = "query { pools { trades { id } } }";
13361363

13371364
let entities = vec![
1338-
("Pool", entity! { schema => id: b("0xf001") }),
1339-
("Sell", entity! { schema => id: b("0xc0"), pool: "0xf001"}),
1340-
("Buy", entity! { schema => id: b("0xb0"), pool: "0xf001"}),
1365+
("Pool", entity! { schema => id: b("0xf001"), vid: 0i64 }),
1366+
(
1367+
"Sell",
1368+
entity! { schema => id: b("0xc0"), pool: "0xf001", vid: 0i64},
1369+
),
1370+
(
1371+
"Buy",
1372+
entity! { schema => id: b("0xb0"), pool: "0xf001", vid: 0i64},
1373+
),
13411374
];
13421375

13431376
let res = insert_and_query(subgraph_id, document, entities, query)

store/test-store/tests/graph/entity_cache.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,11 @@ fn insert_modifications() {
208208
let store = Arc::new(store);
209209
let mut cache = EntityCache::new(store);
210210

211-
let mogwai_data = entity! { SCHEMA => id: "mogwai", name: "Mogwai" };
211+
let mogwai_data = entity! { SCHEMA => id: "mogwai", name: "Mogwai", vid: 0i64 };
212212
let mogwai_key = make_band_key("mogwai");
213213
cache.set(mogwai_key.clone(), mogwai_data.clone()).unwrap();
214214

215-
let sigurros_data = entity! { SCHEMA => id: "sigurros", name: "Sigur Ros" };
215+
let sigurros_data = entity! { SCHEMA => id: "sigurros", name: "Sigur Ros", vid: 0i64 };
216216
let sigurros_key = make_band_key("sigurros");
217217
cache
218218
.set(sigurros_key.clone(), sigurros_data.clone())
@@ -243,20 +243,21 @@ fn overwrite_modifications() {
243243
// every set operation as an overwrite.
244244
let store = {
245245
let entities = vec![
246-
entity! { SCHEMA => id: "mogwai", name: "Mogwai" },
247-
entity! { SCHEMA => id: "sigurros", name: "Sigur Ros" },
246+
entity! { SCHEMA => id: "mogwai", name: "Mogwai", vid: 0i64 },
247+
entity! { SCHEMA => id: "sigurros", name: "Sigur Ros", vid: 0i64 },
248248
];
249249
MockStore::new(entity_version_map("Band", entities))
250250
};
251251

252252
let store = Arc::new(store);
253253
let mut cache = EntityCache::new(store);
254254

255-
let mogwai_data = entity! { SCHEMA => id: "mogwai", name: "Mogwai", founded: 1995 };
255+
let mogwai_data = entity! { SCHEMA => id: "mogwai", name: "Mogwai", founded: 1995, vid: 0i64 };
256256
let mogwai_key = make_band_key("mogwai");
257257
cache.set(mogwai_key.clone(), mogwai_data.clone()).unwrap();
258258

259-
let sigurros_data = entity! { SCHEMA => id: "sigurros", name: "Sigur Ros", founded: 1994 };
259+
let sigurros_data =
260+
entity! { SCHEMA => id: "sigurros", name: "Sigur Ros", founded: 1994, vid: 0i64 };
260261
let sigurros_key = make_band_key("sigurros");
261262
cache
262263
.set(sigurros_key.clone(), sigurros_data.clone())
@@ -277,8 +278,9 @@ fn consecutive_modifications() {
277278
// Pre-populate the store with data so that we can test setting a field to
278279
// `Value::Null`.
279280
let store = {
280-
let entities =
281-
vec![entity! { SCHEMA => id: "mogwai", name: "Mogwai", label: "Chemikal Underground" }];
281+
let entities = vec![
282+
entity! { SCHEMA => id: "mogwai", name: "Mogwai", label: "Chemikal Underground", vid: 0i64 },
283+
];
282284

283285
MockStore::new(entity_version_map("Band", entities))
284286
};
@@ -304,7 +306,7 @@ fn consecutive_modifications() {
304306
sort_by_entity_key(result.unwrap().modifications),
305307
sort_by_entity_key(vec![EntityModification::overwrite(
306308
update_key,
307-
entity! { SCHEMA => id: "mogwai", name: "Mogwai", founded: 1995 },
309+
entity! { SCHEMA => id: "mogwai", name: "Mogwai", founded: 1995, vid: 0i64 },
308310
0,
309311
0
310312
)])

store/test-store/tests/graphql/query.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ async fn insert_test_entities(
472472
entity! { is => id: "m2", name: "Lisa", mainBand: "b1", bands: vec!["b1"], favoriteCount: 100, birthDate: timestamp.clone(), vid: 1i64 },
473473
],
474474
),
475-
("Publisher", vec![entity! { is => id: pub1 }]),
475+
("Publisher", vec![entity! { is => id: pub1, vid: 0i64 }]),
476476
(
477477
"Band",
478478
vec![
@@ -492,7 +492,7 @@ async fn insert_test_entities(
492492
(
493493
"User",
494494
vec![
495-
entity! { is => id: "u1", name: "User 1", latestSongReview: "r3", latestBandReview: "r1", latestReview: "r3" },
495+
entity! { is => id: "u1", name: "User 1", latestSongReview: "r3", latestBandReview: "r1", latestReview: "r3", vid: 0i64 },
496496
],
497497
),
498498
(
@@ -528,7 +528,7 @@ async fn insert_test_entities(
528528
(
529529
"AnonymousUser",
530530
vec![
531-
entity! { is => id: "u3", name: "Anonymous 3", latestSongReview: "r6", latestBandReview: "r5", latestReview: "r5" },
531+
entity! { is => id: "u3", name: "Anonymous 3", latestSongReview: "r6", latestBandReview: "r5", latestReview: "r5", vid: 0i64 },
532532
],
533533
),
534534
(
@@ -549,7 +549,9 @@ async fn insert_test_entities(
549549
),
550550
(
551551
"Album",
552-
vec![entity! { is => id: "rl1", title: "Pop and Folk", songs: vec![s[3], s[4]] }],
552+
vec![
553+
entity! { is => id: "rl1", title: "Pop and Folk", songs: vec![s[3], s[4]], vid: 0i64 },
554+
],
553555
),
554556
(
555557
"Single",

0 commit comments

Comments
 (0)