Class FilterDriver

All Implemented Interfaces:
Driver

@DriverCapability(prefix="filter", description="Transforms SQL statements using built-in or custom transformers", capabilities={"transformation","filtering"}) @DriverParameter(name="class",type=STRING,description="Fully qualified class name of custom JdbcTransformer implementation") @DriverParameter(name="schema",type=STRING,description="Schema prefix to add to unqualified table names") @DriverParameter(name="where",type=STRING,description="Condition to append to WHERE clauses (e.g., deleted=false)") @DriverParameter(name="rename.*",type=STRING,description="Rename identifiers: rename.OLD_NAME=NEW_NAME") public class FilterDriver extends AbstractProxyDriver
FilterDriver transforms SQL statements using configurable transformers.

Built-in Transformers

URL-configurable transformers for common use cases:

Schema Prefix

Add schema prefix to unqualified table names:

 jdbc:filter[schema=tenant_123]:jdbc:postgresql://localhost/db
 -- SELECT * FROM users → SELECT * FROM tenant_123.users
 

WHERE Clause

Append condition to all SELECT/UPDATE/DELETE statements:

 jdbc:filter[where=deleted=false]:jdbc:mysql://localhost/db
 -- SELECT * FROM users → SELECT * FROM users WHERE deleted=false
 -- SELECT * FROM users WHERE active=true → SELECT * FROM users WHERE active=true AND deleted=false
 

Rename Identifiers

Rename table or column names (case-insensitive):

 jdbc:filter[rename.old_table=new_table]:jdbc:h2:mem:test
 jdbc:filter[rename.users=customers,rename.created=created_at]:jdbc:...
 

Combining Transformers

Multiple transformers are applied in order:

 jdbc:filter[schema=acme,where=active=true,rename.old=new]:jdbc:...
 

Custom Transformer Class

For complex transformations, specify a custom transformer class:

 jdbc:filter[class=com.example.MyTransformer]:jdbc:postgresql://localhost/db
 

The transformer class must implement JdbcTransformer and have a no-argument constructor.

Per-Connection Transformers

Each connection gets its own transformer instance. This ensures thread-safety and predictable behavior in connection-pooled environments.

See Also: