long tableNumber = deleted.getTableId(); BitSet includedColumns = deleted.getIncludedColumns(); RecordsForTable recordMaker = recordMakers.forTable(tableNumber, includedColumns, super::enqueueRecord); if (recordMaker != null) { List<Serializable[]> rows = deleted.getRows(); Long ts = context.getClock().currentTimeInMillis(); int count = 0;
@Override public DeleteRowsEventData deserialize(ByteArrayInputStream inputStream) throws IOException { DeleteRowsEventData eventData = new DeleteRowsEventData(); eventData.setTableId(inputStream.readLong(6)); inputStream.readInteger(2); // reserved if (mayContainExtraInformation) { int extraInfoLength = inputStream.readInteger(2); inputStream.skip(extraInfoLength - 2); } int numberOfColumns = inputStream.readPackedInteger(); eventData.setIncludedColumns(inputStream.readBitSet(numberOfColumns, true)); eventData.setRows(deserializeRows(eventData.getTableId(), eventData.getIncludedColumns(), inputStream)); return eventData; }
public DeleteRowsEventInfo(TableInfo tableInfo, Long timestamp, String binlogFilename, Long binlogPosition, DeleteRowsEventData data) { super(tableInfo, DELETE_EVENT, timestamp, binlogFilename, binlogPosition, data.getIncludedColumns(), data.getRows()); } }
private void processDeleteEvent(Event event) { DeleteRowsEventData data = event.getData(); Long tableId = data.getTableId(); List<Serializable[]> list = data.getRows(); for (Serializable[] row : list) { addRow("DELETE", tableId, row); } }
public Long getTableID() { EventData data = event.getData(); switch ( event.getHeader().getEventType() ) { case EXT_WRITE_ROWS: case WRITE_ROWS: return ((WriteRowsEventData) data).getTableId(); case EXT_UPDATE_ROWS: case UPDATE_ROWS: return ((UpdateRowsEventData) data).getTableId(); case EXT_DELETE_ROWS: case DELETE_ROWS: return ((DeleteRowsEventData) data).getTableId(); case TABLE_MAP: return ((TableMapEventData) data).getTableId(); } return null; }
case DELETE_ROWS: case EXT_DELETE_ROWS: for ( Serializable[] data : deleteRowsData().getRows() ) { list.add(buildRowMap("delete", position, nextPosition, data, table, deleteRowsData().getIncludedColumns(), rowQuery));
DeleteRowsEventData d = (DeleteRowsEventData) eventData; if (d.getTableId() == recordTableId) { d.getRows().forEach(row -> { if (LOGGER.isInfoEnabled()) { LOGGER.debug("Pending delete: {}", StringUtils.hex((byte[]) row[0]));
tableId = ((UpdateRowsEventData) eventData).getTableId(); } else if (EventType.isDelete(eventType)) { tableId = ((DeleteRowsEventData) eventData).getTableId(); } else { LOGGER.info("[{}] event type isn't valid!", eventType);
@Override public DeleteRowsEventData deserialize(ByteArrayInputStream inputStream) throws IOException { DeleteRowsEventData eventData = new DeleteRowsEventData(); eventData.setTableId(inputStream.readLong(6)); inputStream.readInteger(2); // reserved if (mayContainExtraInformation) { int extraInfoLength = inputStream.readInteger(2); inputStream.skip(extraInfoLength - 2); } int numberOfColumns = inputStream.readPackedInteger(); eventData.setIncludedColumns(inputStream.readBitSet(numberOfColumns, true)); eventData.setRows(deserializeRows(eventData.getTableId(), eventData.getIncludedColumns(), inputStream)); return eventData; }
public DeleteRowsEventInfo(TableInfo tableInfo, Long timestamp, String binlogFilename, Long binlogPosition, DeleteRowsEventData data) { super(tableInfo, DELETE_EVENT, timestamp, binlogFilename, binlogPosition, data.getIncludedColumns(), data.getRows()); } }
for (Serializable[] row : ((DeleteRowsEventData) eventData).getRows()) { invalidateCache((byte[]) row[0]);