Algebra

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.

Algebra module

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 "";

Batalgebra module

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 "";