Skip to content

Commit 66151e5

Browse files
author
Zoran Cvetkov
committed
fixes
1 parent 6b1e765 commit 66151e5

File tree

6 files changed

+37
-53
lines changed

6 files changed

+37
-53
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: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,8 @@ pub trait SourceableStore: Sync + Send + 'static {
299299
/// changed in the given block_range.
300300
fn get_range(
301301
&self,
302-
entity_type: &EntityType,
302+
entity_types: Vec<EntityType>,
303+
causality_region: CausalityRegion,
303304
block_range: Range<BlockNumber>,
304305
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError>;
305306

@@ -314,10 +315,11 @@ pub trait SourceableStore: Sync + Send + 'static {
314315
impl<T: ?Sized + SourceableStore> SourceableStore for Arc<T> {
315316
fn get_range(
316317
&self,
317-
entity_type: &EntityType,
318+
entity_types: Vec<EntityType>,
319+
causality_region: CausalityRegion,
318320
block_range: Range<BlockNumber>,
319-
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError> {
320-
(**self).get_range(entity_type, block_range)
321+
) -> Result<BTreeMap<BlockNumber, Vec<EntityWithType>>, StoreError> {
322+
(**self).get_range(entity_types, causality_region, block_range)
321323
}
322324

323325
fn input_schema(&self) -> InputSchema {

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
@@ -1590,11 +1590,16 @@ impl SourceableStore {
15901590
impl store::SourceableStore for SourceableStore {
15911591
fn get_range(
15921592
&self,
1593-
entity_type: &EntityType,
1593+
entity_types: Vec<EntityType>,
1594+
causality_region: CausalityRegion,
15941595
block_range: Range<BlockNumber>,
1595-
) -> Result<BTreeMap<BlockNumber, Vec<Entity>>, StoreError> {
1596-
self.store
1597-
.get_range(self.site.clone(), entity_type, block_range)
1596+
) -> Result<BTreeMap<BlockNumber, Vec<EntityWithType>>, StoreError> {
1597+
self.store.get_range(
1598+
self.site.clone(),
1599+
entity_types,
1600+
causality_region,
1601+
block_range,
1602+
)
15981603
}
15991604

16001605
fn input_schema(&self) -> InputSchema {

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)