Class SnapshotChunkQueryBuilder
java.lang.Object
io.debezium.pipeline.source.snapshot.chunked.SnapshotChunkQueryBuilder
Builds SQL queries for snapshot chunks with boundary conditions.
- Author:
- Chris Cranford
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddLowerBound(List<Column> keyColumns, StringBuilder sql) Add lower bound condition: (k1, k2, ...) >= (?protected voidaddUpperBound(List<Column> keyColumns, StringBuilder sql, boolean inclusive) Add upper bound condition: (k1, k2, ...)buildChunkQuery(SnapshotChunk chunk, List<Column> keyColumns, String baseSelect) Build a SELECT query for a chunk with appropriate WHERE clause.private StringinjectWhereClause(String baseSelect, String whereClause, List<Column> keyColumns) Inject WHERE clause into base select, adding ORDER BY for key columns.prepareChunkStatement(SnapshotChunk chunk, List<Column> keyColumns, String sql) Prepare a statement and bind chunk boundary parameters.
-
Field Details
-
jdbcConnection
-
-
Constructor Details
-
SnapshotChunkQueryBuilder
-
-
Method Details
-
buildChunkQuery
Build a SELECT query for a chunk with appropriate WHERE clause.- Parameters:
chunk- The snapshot chunkkeyColumns- The key columns used for chunkingbaseSelect- The base select statement (without WHERE for boundaries)- Returns:
- Complete SELECT statement with chunk boundary conditions
-
addLowerBound
Add lower bound condition: (k1, k2, ...) >= (?, ?, ...) For composite keys, uses cascading OR conditions. -
addUpperBound
Add upper bound condition: (k1, k2, ...) invalid input: '<' (?, ?, ...) -
injectWhereClause
Inject WHERE clause into base select, adding ORDER BY for key columns. -
prepareChunkStatement
public PreparedStatement prepareChunkStatement(SnapshotChunk chunk, List<Column> keyColumns, String sql) throws SQLException Prepare a statement and bind chunk boundary parameters.- Throws:
SQLException
-