Imprints are a novel secondary index structure to speed up scans over large tables described in the ACM SIGMOD paper "Column imprints: a secondary index structure". They are automatically created over columns of fixed type and carry a maximal storage overhead of 12%. An effective compression scheme brings this often down to much less storage.
command bat.imprints(b:bat[:oid,:bte]) :void address CMDBATimprints; command bat.imprints(b:bat[:oid,:sht]) :void address CMDBATimprints; command bat.imprints(b:bat[:oid,:int]) :void address CMDBATimprints; command bat.imprints(b:bat[:oid,:lng]) :void address CMDBATimprints; command bat.imprints(b:bat[:oid,:flt]) :void address CMDBATimprints; command bat.imprints(b:bat[:oid,:dbl]) :void address CMDBATimprints comment "Check for existence or create an imprint index on the BAT."; command bat.imprintsize(b:bat[:oid,:bte]):lng address CMDBATimprintsize; command bat.imprintsize(b:bat[:oid,:sht]):lng address CMDBATimprintsize; command bat.imprintsize(b:bat[:oid,:int]):lng address CMDBATimprintsize; command bat.imprintsize(b:bat[:oid,:lng]):lng address CMDBATimprintsize; command bat.imprintsize(b:bat[:oid,:flt]):lng address CMDBATimprintsize; command bat.imprintsize(b:bat[:oid,:dbl]):lng address CMDBATimprintsize comment "Return the storage size of the imprints index structure.";