mirror of
https://github.com/NexVeridian/wikidata-to-surrealdb.git
synced 2025-09-02 09:59:13 +00:00
tests for BulkFilter
This commit is contained in:
parent
057dcb3308
commit
7624d7209d
5 changed files with 53 additions and 0 deletions
|
@ -68,6 +68,8 @@ pub enum CreateMode {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### [filter.surql examples](./Useful%20queries.md#filter.surql-examples)
|
||||||
|
|
||||||
# [Dev Install](./CONTRIBUTING.md#dev-install)
|
# [Dev Install](./CONTRIBUTING.md#dev-install)
|
||||||
|
|
||||||
# How to Query
|
# How to Query
|
||||||
|
|
|
@ -1,3 +1,16 @@
|
||||||
|
# filter.surql examples
|
||||||
|
## Delete entity and related claims, if entity doesn't have the claim, number of episodes property (P1113)
|
||||||
|
```
|
||||||
|
let $del = select claims, id from Entity
|
||||||
|
where claims.claims[where id = Property:1113].value.Thing == [];
|
||||||
|
|
||||||
|
let $entity = return (select id from $del).id;
|
||||||
|
let $claims = return (select claims from $del).claims;
|
||||||
|
|
||||||
|
delete $claims;
|
||||||
|
delete $entity;
|
||||||
|
```
|
||||||
|
|
||||||
# Get number of episodes
|
# Get number of episodes
|
||||||
```
|
```
|
||||||
let $number_of_episodes = (select claims.claims[where id = Property:1113][0].value.ClaimValueData.Quantity.amount as number_of_episodes from Entity where label = "Black Clover, season 1")[0].number_of_episodes;
|
let $number_of_episodes = (select claims.claims[where id = Property:1113][0].value.ClaimValueData.Quantity.amount as number_of_episodes from Entity where label = "Black Clover, season 1")[0].number_of_episodes;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,8 @@
|
||||||
|
let $delete = select claims, id from Entity
|
||||||
|
where claims.claims[where id = Property:1113].value.Thing == [];
|
||||||
|
|
||||||
|
let $entity = return (select id from $delete).id;
|
||||||
|
let $claims = return (select claims from $delete).claims;
|
||||||
|
|
||||||
|
delete $claims;
|
||||||
|
delete $entity;
|
|
@ -62,6 +62,33 @@ async fn entity_threaded(#[case] version: CreateVersion) -> Result<(), Error> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn entity_threaded_filter() -> Result<(), Error> {
|
||||||
|
env::set_var("FILTER_PATH", "./tests/data/test_filter.surql");
|
||||||
|
let db = inti_db().await?;
|
||||||
|
let reader = init_reader("json", "bench");
|
||||||
|
|
||||||
|
create_db_entities_threaded(
|
||||||
|
Some(db.clone()),
|
||||||
|
reader,
|
||||||
|
None,
|
||||||
|
1_000,
|
||||||
|
100,
|
||||||
|
CreateVersion::BulkFilter,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
let count: Option<f32> = db
|
||||||
|
.query("return count(select * from Entity);")
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
.take(0)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(3.0, count.unwrap());
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
async fn property_query(db: &Surreal<Db>) -> Result<Option<f32>, Error> {
|
async fn property_query(db: &Surreal<Db>) -> Result<Option<f32>, Error> {
|
||||||
let x: Option<f32> = db
|
let x: Option<f32> = db
|
||||||
.query("return count(select * from Property);")
|
.query("return count(select * from Property);")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue