# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0.  If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.

module mat;

pattern new(b:bat[:any_2]...):bat[:any_2]
address MATpack
comment "Define a Merge Association Table (MAT). Fall back to the pack operation
when this is called ";

pattern pack(:any_2...):bat[:any_2]
address MATpackValues
comment "Materialize the MAT (of values) into a BAT";

pattern pack(b:bat[:any_2]...):bat[:any_2]
address MATpack
comment "Materialize the MAT into a BAT";

pattern packIncrement(b:bat[:any_2],pieces:int):bat[:any_2]
address MATpackIncrement
comment "Prepare incremental mat pack";

pattern packIncrement(b:bat[:any_2],c:bat[:any_2]):bat[:any_2]
address MATpackIncrement
comment "Prepare incremental mat pack";
