This module contains the most common algebraic BAT manipulation commands including joins, selections, grouping, sorting and projections.
Most of the commands support optional candidate list arguments.
MODULE algebra;
COMMAND algebra.bandjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:any_1, X_5:any_1, X_6:bit, X_7:bit, X_8:lng):bat[:oid];
COMMENT "";
COMMAND algebra.bandjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:any_1, X_5:any_1, X_6:bit, X_7:bit, X_8:lng) (X_9:bat[:oid], X_10:bat[:oid]);
COMMENT "";
COMMAND algebra.copy(X_0:bat[:any_1]):bat[:any_1];
COMMENT "";
COMMAND algebra.crossproduct(X_0:bat[:any_1], X_1:bat[:any_2], X_2:bit):bat[:oid];
COMMENT "";
COMMAND algebra.crossproduct(X_0:bat[:any_1], X_1:bat[:any_2], X_2:bit) (X_3:bat[:oid], X_4:bat[:oid]);
COMMENT "";
COMMAND algebra.crossproduct(X_0:bat[:any_1], X_1:bat[:any_2], X_2:bat[:oid], X_3:bat[:oid], X_4:bit) (X_5:bat[:oid], X_6:bat[:oid]);
COMMENT "";
COMMAND algebra.crossproduct(X_0:bat[:any_1], X_1:bat[:any_2], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:oid];
COMMENT "";
COMMAND algebra.difference(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng):bat[:oid];
COMMENT "";
COMMAND algebra.exist(X_0:bat[:any_1], X_1:any_1):bit;
COMMENT "";
COMMAND algebra.fetch(X_0:bat[:any_1], X_1:oid):any_1;
COMMENT "";
COMMAND algebra.find(X_0:bat[:any_1], X_1:any_1):oid;
COMMENT "";
PATTERN algebra.firstn(X_0:bat[:any], X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit) (X_7:bat[:oid], X_8:bat[:oid]);
COMMENT "";
PATTERN algebra.firstn(X_0:bat[:any], X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit):bat[:oid];
COMMENT "";
COMMAND algebra.groupby(X_0:bat[:oid], X_1:bat[:lng]):bat[:oid];
COMMENT "";
COMMAND algebra.intersect(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng):bat[:oid];
COMMENT "";
COMMAND algebra.join(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid];
COMMENT "";
COMMAND algebra.join(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:oid]);
COMMENT "";
COMMAND algebra.leftjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid];
COMMENT "";
COMMAND algebra.leftjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:oid]);
COMMENT "";
COMMAND algebra.like(X_0:str, X_1:str, X_2:str, X_3:bit):bit;
COMMENT "";
COMMAND algebra.likejoin(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid];
COMMENT "";
COMMAND algebra.likejoin(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit) (X_9:bat[:oid], X_10:bat[:oid]);
COMMENT "";
COMMAND algebra.likeselect(X_0:bat[:str], X_1:bat[:oid], X_2:str, X_3:str, X_4:bit, X_5:bit):bat[:oid];
COMMENT "";
COMMAND algebra.not_like(X_0:str, X_1:str, X_2:str, X_3:bit):bit;
COMMENT "";
COMMAND algebra.orderidx(X_0:bat[:any_1], X_1:bit):bat[:any_1];
COMMENT "";
COMMAND algebra.outerjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng):bat[:oid];
COMMENT "";
COMMAND algebra.outerjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng) (X_7:bat[:oid], X_8:bat[:oid]);
COMMENT "";
PATTERN algebra.project(X_0:bat[:any_1], X_1:any_3):bat[:any_3];
COMMENT "";
COMMAND algebra.projection(X_0:bat[:oid], X_1:bat[:any_3], X_2:bat[:any_3]):bat[:any_3];
COMMENT "";
COMMAND algebra.projection(X_0:bat[:oid], X_1:bat[:any_3]):bat[:any_3];
COMMENT "";
PATTERN algebra.projectionpath(X_0:bat[:any]...):bat[:any];
COMMENT "";
COMMAND algebra.rangejoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:bit, X_8:bit, X_9:lng):bat[:oid];
COMMENT "";
COMMAND algebra.rangejoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:bit, X_8:bit, X_9:lng) (X_10:bat[:oid], X_11:bat[:oid]);
COMMENT "";
COMMAND algebra.reuse(X_0:bat[:any_1]):bat[:any_1];
COMMENT "";
COMMAND algebra.select(X_0:bat[:any_1], X_1:any_1, X_2:any_1, X_3:bit, X_4:bit, X_5:bit):bat[:oid];
COMMENT "";
COMMAND algebra.select(X_0:bat[:any_1], X_1:any_1, X_2:any_1, X_3:bit, X_4:bit, X_5:bit, X_6:bit):bat[:oid];
COMMENT "";
COMMAND algebra.select(X_0:bat[:any_1], X_1:bat[:oid], X_2:any_1, X_3:any_1, X_4:bit, X_5:bit, X_6:bit):bat[:oid];
COMMENT "";
COMMAND algebra.select(X_0:bat[:any_1], X_1:bat[:oid], X_2:any_1, X_3:any_1, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bat[:oid];
COMMENT "";
COMMAND algebra.selectNotNil(X_0:bat[:any_2]):bat[:any_2];
COMMENT "";
COMMAND algebra.semijoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng) (X_7:bat[:oid], X_8:bat[:oid]);
COMMENT "";
COMMAND algebra.slice(X_0:bat[:any_1], X_1:lng, X_2:lng):bat[:any_1];
COMMENT "";
COMMAND algebra.slice(X_0:bat[:any_1], X_1:int, X_2:int):bat[:any_1];
COMMENT "";
COMMAND algebra.slice(X_0:bat[:any_1], X_1:lng, X_2:lng):bat[:any_1];
COMMENT "";
COMMAND algebra.slice(X_0:bat[:any_1], X_1:oid, X_2:oid):bat[:any_1];
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bit, X_2:bit, X_3:bit):bat[:any_1];
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bit, X_2:bit, X_3:bit) (X_4:bat[:any_1], X_5:bat[:oid]);
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bit, X_2:bit, X_3:bit) (X_4:bat[:any_1], X_5:bat[:oid], X_6:bat[:oid]);
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bit, X_3:bit, X_4:bit):bat[:any_1];
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bit, X_3:bit, X_4:bit) (X_5:bat[:any_1], X_6:bat[:oid]);
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bit, X_3:bit, X_4:bit) (X_5:bat[:any_1], X_6:bat[:oid], X_7:bat[:oid]);
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bat[:oid], X_3:bit, X_4:bit, X_5:bit):bat[:any_1];
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bat[:oid], X_3:bit, X_4:bit, X_5:bit) (X_6:bat[:any_1], X_7:bat[:oid]);
COMMENT "";
COMMAND algebra.sort(X_0:bat[:any_1], X_1:bat[:oid], X_2:bat[:oid], X_3:bit, X_4:bit, X_5:bit) (X_6:bat[:any_1], X_7:bat[:oid], X_8:bat[:oid]);
COMMENT "";
COMMAND algebra.subslice(X_0:bat[:any_1], X_1:lng, X_2:lng):bat[:oid];
COMMENT "";
COMMAND algebra.thetajoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:bit, X_6:lng):bat[:oid];
COMMENT "";
COMMAND algebra.thetajoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:bit, X_6:lng) (X_7:bat[:oid], X_8:bat[:oid]);
COMMENT "";
COMMAND algebra.thetaselect(X_0:bat[:any_1], X_1:bat[:oid], X_2:any_1, X_3:str):bat[:oid];
COMMENT "";
COMMAND algebra.unique(X_0:bat[:any_1], X_1:bat[:oid]):bat[:oid];
COMMENT "";
MODULE batalgebra;
PATTERN batalgebra.like(X_0:bat[:str], X_1:bat[:str], X_2:str, X_3:bit):bat[:bit];
COMMENT "";
PATTERN batalgebra.like(X_0:bat[:str], X_1:str, X_2:str, X_3:bit):bat[:bit];
COMMENT "";
PATTERN batalgebra.like(X_0:str, X_1:bat[:str], X_2:str, X_3:bit):bat[:bit];
COMMENT "";
PATTERN batalgebra.not_like(X_0:bat[:str], X_1:bat[:str], X_2:str, X_3:bit):bat[:bit];
COMMENT "";
PATTERN batalgebra.not_like(X_0:bat[:str], X_1:str, X_2:str, X_3:bit):bat[:bit];
COMMENT "";
PATTERN batalgebra.not_like(X_0:str, X_1:bat[:str], X_2:str, X_3:bit):bat[:bit];
COMMENT "";