///|
fn main raise {
let schema = @orc.Schema::new([
{ name: "id", kind: Long, },
{ name: "status", kind: String, },
])
let batch = @orc.Batch::new(schema, [
[Integer(10L), Integer(20L), Integer(30L)],
[Text("ok"), Text("bad"), Text("ok")],
])
let file = @orc.OrcFile::open(@orc.write(batch))
let consumer = @orc.Schema::new([{ name: "status", kind: String, }])
assert_true(file.schema().check_contract(consumer).compatible())
let scan = file.scan(
columns=Some(["status"]),
predicate=Compare("id", Greater, Integer(10L)),
batch_rows=1,
)
assert_eq(scan.next_positioned().unwrap().source_rows, [1])
assert_eq(scan.next_positioned().unwrap().source_rows, [2])
assert_true(scan.next_positioned() is None)
println(
"ORC consumer contract and source row evidence survive predicate filtering and column projection",
)
}