Skip to content

Commit 352852e

Browse files
author
Zoran Cvetkov
committed
fixes
1 parent 65c1557 commit 352852e

File tree

6 files changed

+38
-54
lines changed

6 files changed

+38
-54
lines changed

graph/src/components/store/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ use std::sync::atomic::{AtomicUsize, Ordering};
2525
use std::sync::{Arc, RwLock};
2626
use std::time::Duration;
2727

28-
use crate::blockchain::block_stream::EntityWithType;
2928
use crate::blockchain::{Block, BlockHash, BlockPtr};
3029
use crate::cheap_clone::CheapClone;
3130
use crate::components::store::write::EntityModification;

graph/src/components/store/traits.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -298,19 +298,21 @@ pub trait SourceableStore: DeploymentCursorTracker {
298298
/// changed in the given block_range.
299299
fn get_range(
300300
&self,
301-
entity_type: &EntityType,
301+
entity_types: Vec<EntityType>,
302+
causality_region: CausalityRegion,
302303
block_range: Range<BlockNumber>,
303-
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError>;
304+
) -> Result<BTreeMap<BlockNumber, Vec<EntityWithType>>, StoreError>;
304305
}
305306

306307
// This silly impl is needed until https://github.com/rust-lang/rust/issues/65991 is stable.
307308
impl<T: ?Sized + SourceableStore> SourceableStore for Arc<T> {
308309
fn get_range(
309310
&self,
310-
entity_type: &EntityType,
311+
entity_types: Vec<EntityType>,
312+
causality_region: CausalityRegion,
311313
block_range: Range<BlockNumber>,
312-
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError> {
313-
(**self).get_range(entity_type, block_range)
314+
) -> Result<BTreeMap<BlockNumber, Vec<EntityWithType>>, StoreError> {
315+
(**self).get_range(entity_types, causality_region, block_range)
314316
}
315317
}
316318

store/postgres/src/block_range.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ impl EntityBlockRange {
148148
let start: Bound<BlockNumber> = Bound::Included(block_range.start);
149149
let end: Bound<BlockNumber> = Bound::Excluded(block_range.end);
150150
let block_range: BlockRange = BlockRange(start, end);
151-
if table.immutable {
151+
if immutable {
152152
Self::Immutable(block_range)
153153
} else {
154154
Self::Mutable((block_range, is_uppper_range))

store/postgres/src/writable.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,11 +1598,16 @@ impl SourceableStore {
15981598
impl store::SourceableStore for SourceableStore {
15991599
fn get_range(
16001600
&self,
1601-
entity_type: &EntityType,
1601+
entity_types: Vec<EntityType>,
1602+
causality_region: CausalityRegion,
16021603
block_range: Range<BlockNumber>,
1603-
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError> {
1604-
self.store
1605-
.get_range(self.site.clone(), entity_type, block_range)
1604+
) -> Result<BTreeMap<BlockNumber, Vec<EntityWithType>>, StoreError> {
1605+
self.store.get_range(
1606+
self.site.clone(),
1607+
entity_types,
1608+
causality_region,
1609+
block_range,
1610+
)
16061611
}
16071612
}
16081613
impl DeploymentCursorTracker for SourceableStore {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use graph::blockchain::block_stream::{EntityWithType, FirehoseCursor};
1+
use graph::blockchain::block_stream::FirehoseCursor;
22
use graph::blockchain::BlockTime;
33
use graph::components::store::{
44
DeploymentCursorTracker, DerivedEntityQuery, GetScope, LoadRelatedRequest, ReadStore,

store/test-store/tests/postgres/writable.rs

Lines changed: 20 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -333,52 +333,30 @@ fn restart() {
333333
})
334334
}
335335

336-
async fn read_range(
337-
store: Arc<Store>,
338-
writable: Arc<dyn WritableStore>,
339-
sourceable: Arc<dyn SourceableStore>,
340-
deployment: DeploymentLocator,
341-
mutable: bool,
342-
) -> usize {
343-
let subgraph_store = store.subgraph_store();
344-
writable.deployment_synced().unwrap();
345-
346-
for count in 1..=7 {
347-
insert_count_mutable(&subgraph_store, &deployment, 2 * count, 4 * count).await;
348-
insert_count_immutable(&subgraph_store, &deployment, 2 * count + 1, 4 * count).await;
349-
}
350-
writable.flush().await.unwrap();
351-
352-
let br: Range<BlockNumber> = 4..8;
353-
let et: &EntityType = if mutable {
354-
&COUNTER_TYPE
355-
} else {
356-
&COUNTER2_TYPE
357-
};
358-
let e = sourceable.get_range(et, br).unwrap();
359-
e.iter().map(|(_, v)| v.iter()).flatten().count()
360-
}
361-
362336
#[test]
363337
fn read_range_test() {
364-
let result_entities = vec![
365-
r#"(1, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(2), id: String("1") }, vid: 1 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(2), id: String("1") }, vid: 1 }])"#,
366-
r#"(2, [EntityWithType { entity_op: Modify, entity_type: EntityType(Counter), entity: Entity { count: Int(4), id: String("1") }, vid: 2 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(4), id: String("2") }, vid: 2 }])"#,
367-
r#"(3, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(4), id: String("1") }, vid: 2 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(6), id: String("3") }, vid: 3 }])"#,
368-
r#"(4, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(8), id: String("1") }, vid: 3 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(8), id: String("4") }, vid: 4 }])"#,
369-
r#"(5, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(8), id: String("1") }, vid: 3 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(10), id: String("5") }, vid: 5 }])"#,
370-
r#"(6, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(12), id: String("1") }, vid: 4 }])"#,
371-
r#"(7, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(12), id: String("1") }, vid: 4 }])"#,
372-
];
373-
374-
run_test(
375-
|store, writable, sourceable: Arc<dyn SourceableStore>, deployment| async move {
376-
let subgraph_store = store.subgraph_store();
377-
writable.deployment_synced().unwrap();
338+
run_test(|store, writable, sourceable, deployment| async move {
339+
let result_entities = vec![
340+
r#"(1, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(2), id: String("1") }, vid: 1 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(2), id: String("1") }, vid: 1 }])"#,
341+
r#"(2, [EntityWithType { entity_op: Modify, entity_type: EntityType(Counter), entity: Entity { count: Int(4), id: String("1") }, vid: 2 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(4), id: String("2") }, vid: 2 }])"#,
342+
r#"(3, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(4), id: String("1") }, vid: 2 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(6), id: String("3") }, vid: 3 }])"#,
343+
r#"(4, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(8), id: String("1") }, vid: 3 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(8), id: String("4") }, vid: 4 }])"#,
344+
r#"(5, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(8), id: String("1") }, vid: 3 }, EntityWithType { entity_op: Create, entity_type: EntityType(Counter2), entity: Entity { count: Int(10), id: String("5") }, vid: 5 }])"#,
345+
r#"(6, [EntityWithType { entity_op: Create, entity_type: EntityType(Counter), entity: Entity { count: Int(12), id: String("1") }, vid: 4 }])"#,
346+
r#"(7, [EntityWithType { entity_op: Delete, entity_type: EntityType(Counter), entity: Entity { count: Int(12), id: String("1") }, vid: 4 }])"#,
347+
];
348+
let subgraph_store = store.subgraph_store();
349+
writable.deployment_synced().unwrap();
350+
351+
for count in 1..=5 {
352+
insert_count(&subgraph_store, &deployment, count, 2 * count, true).await;
353+
}
354+
writable.flush().await.unwrap();
355+
writable.deployment_synced().unwrap();
378356

379357
let br: Range<BlockNumber> = 0..18;
380358
let entity_types = vec![COUNTER_TYPE.clone(), COUNTER2_TYPE.clone()];
381-
let e: BTreeMap<i32, Vec<EntityWithType>> = writable
359+
let e: BTreeMap<i32, Vec<EntityWithType>> = sourceable
382360
.get_range(entity_types.clone(), CausalityRegion::ONCHAIN, br.clone())
383361
.unwrap();
384362
assert_eq!(e.len(), 5);
@@ -392,7 +370,7 @@ fn read_range_test() {
392370
}
393371
writable.flush().await.unwrap();
394372
writable.deployment_synced().unwrap();
395-
let e: BTreeMap<i32, Vec<EntityWithType>> = writable
373+
let e: BTreeMap<i32, Vec<EntityWithType>> = sourceable
396374
.get_range(entity_types, CausalityRegion::ONCHAIN, br)
397375
.unwrap();
398376
assert_eq!(e.len(), 7);

0 commit comments

Comments
 (0)