Filter Passdown

The Simba Neo4j JDBC Driver can pass down filters to the Neo4j server for execution. This improves the performance of the connector. Queries that are not passed down are executed by the connector.

The filter pass down supports conditions that operate on single columns.

For example, the following queries can be passed down to the server:

  • SELECT * FROM table WHERE col1 = 'value'
  • SELECT * FROM table WHERE col1 > 2000 AND col2 LIKE '%sale%'
  • SELECT * FROM table WHERE col1 <> 'value' OR col2 IS NULL

The following queries are not supported for filter passdown:

  • SELECT * FROM table WHERE col1 + col2 < 200
  • SELECT * FROM table WHERE col1 = CONCAT('this', ' value')

Important:

When comparing strings with different lengths, the connector handles the "=" condition on strings differently from the Neo4j server. The connector pads the value with whitespaces, while the Neo4j server does not.

For example, when resolving "col1=col2", if the value of col1 is 'ValueTest     ' and col2 is 'ValueTest', the connector reports a match, but the Neo4j server does not.