OpenMS
Loading...
Searching...
No Matches
ParquetFilter Class Reference

Typed filter builder for parquet-backed datasets. More...

#include <OpenMS/FORMAT/ParquetFilter.h>

Collaboration diagram for ParquetFilter:
[legend]

Public Member Functions

 ParquetFilter ()=default
 
 ParquetFilter (const ParquetFilter &)=default
 
ParquetFilterandNext ()
 Combine the next condition with logical AND.
 
ParquetFilterorNext ()
 Combine the next condition with logical OR.
 
ParquetFiltereq (const String &column, Int64 value)
 Add an equality condition for an integer column.
 
ParquetFilterne (const String &column, Int64 value)
 Add an inequality condition for an integer column.
 
ParquetFilterlt (const String &column, Int64 value)
 Add a less-than condition for an integer column.
 
ParquetFilterle (const String &column, Int64 value)
 Add a less-than-or-equal condition for an integer column.
 
ParquetFiltergt (const String &column, Int64 value)
 Add a greater-than condition for an integer column.
 
ParquetFilterge (const String &column, Int64 value)
 Add a greater-than-or-equal condition for an integer column.
 
ParquetFilterin (const String &column, const std::vector< Int64 > &values)
 Add an IN condition for an integer column.
 
ParquetFiltereq (const String &column, const String &value)
 Add an equality condition for a string column.
 
ParquetFilterne (const String &column, const String &value)
 Add an inequality condition for a string column.
 
ParquetFilterlt (const String &column, const String &value)
 Add a less-than condition for a string column.
 
ParquetFilterle (const String &column, const String &value)
 Add a less-than-or-equal condition for a string column.
 
ParquetFiltergt (const String &column, const String &value)
 Add a greater-than condition for a string column.
 
ParquetFilterge (const String &column, const String &value)
 Add a greater-than-or-equal condition for a string column.
 
ParquetFilterin (const String &column, const std::vector< String > &values)
 Add an IN condition for a string column.
 
const FilterExpressionexpression () const
 Return the filter expression.
 
bool empty () const
 Check if the filter is empty (has no conditions).
 

Static Public Member Functions

static FilterExpression merge (const FilterExpression &lhs, const FilterExpression &rhs, const String &connector="AND")
 Merge two filter expressions with a connector.
 

Private Member Functions

ParquetFilteraddCondition_ (const String &column, const String &op, ColumnType type, const std::vector< String > &values)
 

Private Attributes

FilterExpression expr_
 
String next_connector_ {"AND"}
 

Detailed Description

Typed filter builder for parquet-backed datasets.

This builder provides a structured alternative to string-encoded filters. It is intended for use in Parquet-backed readers (e.g., XICParquetFile) to construct filter expressions that can be pushed down to Arrow Dataset scanners or evaluated in-memory if pushdown is unavailable.

Conditions are combined left-to-right. Use andNext()/orNext() to control how consecutive conditions are connected (default is AND).

Example

using namespace OpenMS;
f.eq("PRECURSOR_ID", 1318)
.eq("ANNOTATION", "y3^1");
// Use f.expression() to pass into a parquet reader, or pass the builder
// directly when supported.
Typed filter builder for parquet-backed datasets.
Definition ParquetFilter.h:74
ParquetFilter & eq(const String &column, Int64 value)
Add an equality condition for an integer column.
ParquetFilter & andNext()
Combine the next condition with logical AND.
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19

Constructor & Destructor Documentation

◆ ParquetFilter() [1/2]

ParquetFilter ( )
default

◆ ParquetFilter() [2/2]

Member Function Documentation

◆ addCondition_()

ParquetFilter & addCondition_ ( const String column,
const String op,
ColumnType  type,
const std::vector< String > &  values 
)
private

◆ andNext()

ParquetFilter & andNext ( )

Combine the next condition with logical AND.

◆ empty()

bool empty ( ) const

Check if the filter is empty (has no conditions).

Returns
True if the filter has no conditions.

◆ eq() [1/2]

ParquetFilter & eq ( const String column,
const String value 
)

Add an equality condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ eq() [2/2]

ParquetFilter & eq ( const String column,
Int64  value 
)

Add an equality condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ expression()

const FilterExpression & expression ( ) const

Return the filter expression.

Returns
The constructed filter expression.

◆ ge() [1/2]

ParquetFilter & ge ( const String column,
const String value 
)

Add a greater-than-or-equal condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ ge() [2/2]

ParquetFilter & ge ( const String column,
Int64  value 
)

Add a greater-than-or-equal condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ gt() [1/2]

ParquetFilter & gt ( const String column,
const String value 
)

Add a greater-than condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ gt() [2/2]

ParquetFilter & gt ( const String column,
Int64  value 
)

Add a greater-than condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ in() [1/2]

ParquetFilter & in ( const String column,
const std::vector< Int64 > &  values 
)

Add an IN condition for an integer column.

Parameters
columnColumn name.
valuesInteger values to compare.

◆ in() [2/2]

ParquetFilter & in ( const String column,
const std::vector< String > &  values 
)

Add an IN condition for a string column.

Parameters
columnColumn name.
valuesString values to compare.

◆ le() [1/2]

ParquetFilter & le ( const String column,
const String value 
)

Add a less-than-or-equal condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ le() [2/2]

ParquetFilter & le ( const String column,
Int64  value 
)

Add a less-than-or-equal condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ lt() [1/2]

ParquetFilter & lt ( const String column,
const String value 
)

Add a less-than condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ lt() [2/2]

ParquetFilter & lt ( const String column,
Int64  value 
)

Add a less-than condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ merge()

static FilterExpression merge ( const FilterExpression lhs,
const FilterExpression rhs,
const String connector = "AND" 
)
static

Merge two filter expressions with a connector.

Parameters
[in]lhsLeft-hand side filter expression.
[in]rhsRight-hand side filter expression.
[in]connectorLogical connector ("AND" or "OR").
Returns
Combined filter expression.

◆ ne() [1/2]

ParquetFilter & ne ( const String column,
const String value 
)

Add an inequality condition for a string column.

Parameters
columnColumn name.
valueString value to compare.

◆ ne() [2/2]

ParquetFilter & ne ( const String column,
Int64  value 
)

Add an inequality condition for an integer column.

Parameters
columnColumn name.
valueInteger value to compare.

◆ orNext()

ParquetFilter & orNext ( )

Combine the next condition with logical OR.

Member Data Documentation

◆ expr_

FilterExpression expr_
private

◆ next_connector_

String next_connector_ {"AND"}
private