public class PostgresChangeRecordEmitter extends RelationalChangeRecordEmitter
ChangeRecordEmitter.Receiver| Modifier and Type | Field and Description |
|---|---|
private Map<String,Object> |
cachedOldToastedValues |
private PostgresConnection |
connection |
private PostgresConnectorConfig |
connectorConfig |
private ReplicationMessage |
message |
private boolean |
nullToastedValuesMissingFromOld |
private PostgresSchema |
schema |
private TableId |
tableId |
private boolean |
unchangedToastColumnMarkerMissing |
logger, PK_UPDATE_NEWKEY_FIELD, PK_UPDATE_OLDKEY_FIELD| Constructor and Description |
|---|
PostgresChangeRecordEmitter(OffsetContext offset,
Clock clock,
PostgresConnectorConfig connectorConfig,
PostgresSchema schema,
PostgresConnection connection,
ReplicationMessage message) |
emitCreateRecord, emitDeleteRecord, emitReadRecord, emitUpdateRecordgetClock, getOffsetprivate final ReplicationMessage message
private final PostgresSchema schema
private final PostgresConnectorConfig connectorConfig
private final PostgresConnection connection
private final TableId tableId
private final boolean unchangedToastColumnMarkerMissing
private final boolean nullToastedValuesMissingFromOld
public PostgresChangeRecordEmitter(OffsetContext offset, Clock clock, PostgresConnectorConfig connectorConfig, PostgresSchema schema, PostgresConnection connection, ReplicationMessage message)
protected Envelope.Operation getOperation()
getOperation in class RelationalChangeRecordEmitterpublic void emitChangeRecords(DataCollectionSchema schema, ChangeRecordEmitter.Receiver receiver) throws InterruptedException
emitChangeRecords in interface ChangeRecordEmitteremitChangeRecords in class RelationalChangeRecordEmitterInterruptedExceptionprotected void emitTruncateRecord(ChangeRecordEmitter.Receiver receiver, TableSchema tableSchema) throws InterruptedException
emitTruncateRecord in class RelationalChangeRecordEmitterInterruptedExceptionprotected Object[] getOldColumnValues()
getOldColumnValues in class RelationalChangeRecordEmitterprotected Object[] getNewColumnValues()
getNewColumnValues in class RelationalChangeRecordEmitterprivate DataCollectionSchema synchronizeTableSchema(DataCollectionSchema tableSchema)
private Object[] columnValues(List<ReplicationMessage.Column> columns, TableId tableId, boolean refreshSchemaIfChanged, boolean metadataInMessage, boolean sourceOfToasted, boolean oldValues) throws SQLException
SQLExceptionprivate Optional<DataCollectionSchema> newTable(TableId tableId)
private void refreshTableFromDatabase(TableId tableId)
static Optional<DataCollectionSchema> updateSchema(TableId tableId, ChangeRecordEmitter changeRecordEmitter)
private boolean schemaChanged(List<ReplicationMessage.Column> columns, Table table, boolean metadataInMessage)
private boolean hasMissingUntoastedColumns(Table table, List<ReplicationMessage.Column> columns)
private Table tableFromFromMessage(List<ReplicationMessage.Column> columns, Table table)
protected boolean skipEmptyMessages()
skipEmptyMessages in class RelationalChangeRecordEmitterCopyright © 2021 JBoss by Red Hat. All rights reserved.