A method comprising: based on a first predicate included in a set of predicates of a query that targets a table, configuring a programmable logic device - PLD -, such as a field programmable gate array - FPGA - or another type of gate array or reconfigurable circuit, of a filtering unit to apply a first filtering criterion dictated by the first predicate; wherein the first predicate specifies a first condition for a first column of the table; generating a first predicate result by loading values from the first column into a memory cache and causing the filtering unit to apply the first predicate to the values; wherein the first predicate result identifies rows of the table that have values, within the first column, that satisfy the first condition specified by the first predicate; after the first predicate result has been generated, and based on a second predicate included in the set of predicates of the query that targets the table, configuring the PLD of the filtering unit to apply a second filtering criterion dictated by the second predicate; wherein the second predicate specifies a second condition for a second column of the table; generating a second predicate result by loading values from the second column into the memory cache and causing the filtering unit to apply the second predicate to the values; wherein the second predicate result identifies rows of the table that have values, within the second column, that satisfy the second condition specified by the second predicate; selecting rows to return, as results of the query, based at least in part on the first predicate result and the second predicate result; and returning the selected rows as results to the query; wherein the method is performed by one or more computing devices. based on a first predicate included in a set of predicates of a query that targets a table, configuring a programmable logic device - PLD -, such as a field programmable gate array - FPGA - or another type of gate array or reconfigurable circuit, of a filtering unit to apply a first filtering criterion dictated by the first predicate; wherein the first predicate specifies a first condition for a first column of the table; generating a first predicate result by loading values from the first column into a memory cache and causing the filtering unit to apply the first predicate to the values; wherein the first predicate result identifies rows of the table that have values, within the first column, that satisfy the first condition specified by the first predicate; after the first predicate result has been generated, and based on a second predicate included in the set of predicates of the query that targets the table, configuring the PLD of the filtering unit to apply a second filtering criterion dictated by the second predicate; wherein the second predicate specifies a second condition for a second column of the table; generating a second predicate result by loading values from the second column into the memory cache and causing the filtering unit to apply the second predicate to the values; wherein the second predicate result identifies rows of the table that have values, within the second column, that satisfy the second condition specified by the second predicate; selecting rows to return, as results of the query, based at least in part on the first predicate result and the second predicate result; and returning the selected rows as results to the query; wherein the method is performed by one or more computing devices.