Skip to content

Instantly share code, notes, and snippets.

@jonathanGB
Created December 16, 2019 22:43
Show Gist options
  • Save jonathanGB/900ef88bdb8444e635c29659ca0c2ce7 to your computer and use it in GitHub Desktop.
Save jonathanGB/900ef88bdb8444e635c29659ca0c2ce7 to your computer and use it in GitHub Desktop.
Noria - 6-col insert script
use noria::{ControllerHandle, DataType};
#[tokio::main]
async fn main() {
let vote_sql = "CREATE TABLE Vote (aid int, bid int, cid int, did int, eid int, uid int);";
let range_sql = "QUERY VoteEquiAndInequality: \
SELECT * \
FROM Vote \
WHERE aid = ? AND bid = ? AND cid = ? AND did = ? AND eid = ? AND uid >= ? AND uid < ?;";
let mut db = ControllerHandle::from_zk("127.0.0.1:2181/testing63")
.await
.unwrap();
db.extend_recipe(vote_sql).await.unwrap();
db.extend_recipe(range_sql).await.unwrap();
let mut vote = db.table("Vote").await.unwrap();
let mut veai = db.view("VoteEquiAndInequality").await.unwrap();
let dt_0 : noria::DataType = 0.into();
let dt_1 : noria::DataType = 1.into();
let dt_2 : noria::DataType = 2.into();
let dt_3 : noria::DataType = 3.into();
let dt_4 : noria::DataType = 4.into();
let dt_5 : noria::DataType = 5.into();
let dt_6 : noria::DataType = 6.into();
// Inserts.
vote.insert(vec![dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_2.clone()]).await.unwrap();
vote.insert(vec![dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_3.clone()]).await.unwrap();
vote.insert(vec![dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_0.clone(), dt_4.clone()]).await.unwrap();
vote.insert(vec![dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_2.clone()]).await.unwrap();
vote.insert(vec![dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_3.clone()]).await.unwrap();
vote.insert(vec![dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_4.clone()]).await.unwrap();
vote.insert(vec![dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_5.clone()]).await.unwrap();
vote.insert(vec![dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_6.clone()]).await.unwrap();
vote.insert(vec![dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone()]).await.unwrap();
vote.insert(vec![dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_3.clone()]).await.unwrap();
vote.insert(vec![dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_2.clone(), dt_4.clone()]).await.unwrap();
// Lookups.
println!("{:?}", veai.lookup(&[dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_1.clone(), dt_2.clone(), dt_6.clone()], true).await.unwrap());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment