mirror of
https://github.com/NexVeridian/wikidata-to-surrealdb.git
synced 2025-09-02 01:49: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)
|
||||
|
||||
# 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
|
||||
```
|
||||
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(())
|
||||
}
|
||||
|
||||
#[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> {
|
||||
let x: Option<f32> = db
|
||||
.query("return count(select * from Property);")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue