📄 semijoin.mal
字号:
a:=bat.new(:oid,:int);bat.append(a,0);bat.append(a,1);bat.append(a,nil:int);b:=bat.new(:int,:int);bat.insert(b,0,0);bat.insert(b,0,1);bat.insert(b,0,2);bat.insert(b,0,3);bat.insert(b,0,4);bat.insert(b,0,5);bat.insert(b,0,6);bat.insert(b,0,7);bat.insert(b,0,8);bat.insert(b,0,9);bat.insert(b,0,nil:int);bat.insert(b,1,0);bat.insert(b,1,1);bat.insert(b,1,2);bat.insert(b,1,3);bat.insert(b,1,4);bat.insert(b,1,5);bat.insert(b,1,6);bat.insert(b,1,7);bat.insert(b,1,8);bat.insert(b,1,9);bat.insert(b,1,nil:int);bat.insert(b,nil:int,0);bat.insert(b,nil:int,1);bat.insert(b,nil:int,2);bat.insert(b,nil:int,3);bat.insert(b,nil:int,4);bat.insert(b,nil:int,5);bat.insert(b,nil:int,6);bat.insert(b,nil:int,7);bat.insert(b,nil:int,8);bat.insert(b,nil:int,9);bat.insert(b,nil:int,nil:int);c0:=bat.reverse(b);c1:= batcalc.oid(c0);c:= bat.reverse(c1);d:=bat.reverse(a);io.print(a);io.print(d);io.print(b);io.print(c);io.print("semijoin tests b,d");z1:= algebra.semijoin(b,d); io.print(z1);z2:= algebra.semijoin(d,b); io.print(z2);z3:= algebra.semijoin(c,a); io.print(z3);z4:= algebra.semijoin(a,c); io.print(z4);# (try to) force different semijoin implementationsa1:= bat.new(:int,:oid);bat.insert(a1,1,1@0);bat.insert(a1,2,2@0);bat.insert(a1,nil:int,nil:oid);a1s:= algebra.sort(a1);c1:= bat.new(:int,:oid);bat.insert(c1,nil:int,nil:oid);barrier (mloop,i):= language.newRange(1); oi:= calc.oid(i); bat.insert(c1,i, oi);redo (mloop,i):= language.nextElement(1,100);exit mloop;c1s:= algebra.sort(c1);io.print("slices");io.print(a1s);sl:= algebra.slice(c1s,0,1);io.print(sl);io.print("semijoin tests a1,c1");# binsemijoine:= algebra.semijoin(a1s,c1s);io.print(e);f:= algebra.semijoin(c1s,a1s);io.print(f);bat.setWriteMode(a1s);bat.insert(a1s,nil:int,nil:oid);bat.setReadMode(a1s);bat.setWriteMode(c1s);bat.insert(c1s,nil:int,nil:oid);bat.setReadMode(c1s);# hash => kinsertsect & revsemijoin#ah:=algebra.copy(a1);#bat.accbuild(ah,"hash");#ch:=algebra.copy(c);#bat.accbuild(ch,"hash");#k:=algebra.semijoin(ah,ch);io.print(k);#l:=algebra.semijoin(ch,ah);io.print(l);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -