private void processQueryEvent(Event event) { QueryEventData data = event.getData(); String sql = data.getSql(); if (createTablePattern.matcher(sql).find()) { schema.reset(); } }
public boolean isCommitEvent() { EventType eventType = getType(); if (eventType == EventType.XID) { return true; } else if (eventType == EventType.QUERY) { // MyISAM will output a "COMMIT" QUERY_EVENT instead of a XID_EVENT. // There's no transaction ID but we can still set "commit: true" return COMMIT.equals(queryData().getSql()); } return false; }
QueryEventData command = unwrapData(event); logger.debug("Received query command: {}", event); String sql = command.getSql().trim(); if (sql.equalsIgnoreCase("BEGIN")) { MySqlConnectorConfig.BUFFER_SIZE_FOR_BINLOG_READER.name()); context.dbSchema().applyDdl(context.source(), command.getDatabase(), command.getSql(), (dbName, statements) -> { if (recordSchemaChangesInSourceRecords && recordMakers.schemaChanges(dbName, statements, super::enqueueRecord) > 0) { logger.debug("Recorded DDL statements for database '{}': {}", dbName, statements);
case QUERY: QueryEventData queryEventData = (QueryEventData) EventDataWrapper.internal(event.getData()); String sql = queryEventData.getSql(); if (sql == null) { break;
QueryEventData command = reader.unwrapData(event); LOGGER.debug("Received query command: {}", event); String sql = command.getSql().trim(); if (sql.equalsIgnoreCase("BEGIN")) { beginTransaction(event);
/** * Test case that is normally commented out since it is only useful to print out the DDL statements recorded by * the binlog during a MySQL server initialization and startup. * * @throws Exception if there are problems */ @Ignore @Test public void shouldCaptureQueryEventData() throws Exception { // Testing.Print.enable(); startClient(client -> { client.setBinlogFilename("mysql-bin.000001"); client.setBinlogPosition(4); }); counters.consumeAll(5, TimeUnit.SECONDS); List<QueryEventData> allQueryEvents = recordedEventData(QueryEventData.class, -1); allQueryEvents.forEach(event -> { String sql = event.getSql(); if (sql.equalsIgnoreCase("BEGIN") || sql.equalsIgnoreCase("COMMIT")) return; System.out.println(event.getSql()); }); }
currentDatabase = queryEventData.getDatabase(); String sql = queryEventData.getSql();
private void processQueryEvent(BinlogConnectorEvent event) throws Exception { QueryEventData data = event.queryData(); processQueryEvent( data.getDatabase(), data.getSql(), this.schemaStore, Position.valueOf(event.getPosition(), getLastHeartbeatRead()), Position.valueOf(event.getNextPosition(), getLastHeartbeatRead()), event.getEvent().getHeader().getTimestamp() ); }
case QUERY: QueryEventData qe = event.queryData(); String sql = qe.getSql(); String upperCaseSql = sql.toUpperCase();
case QUERY: QueryEventData qe = event.queryData(); String sql = qe.getSql(); if (BinlogConnectorEvent.BEGIN.equals(sql)) { try {
/** * Test case that is normally commented out since it is only useful to print out the DDL statements recorded by * the binlog during a MySQL server initialization and startup. * * @throws Exception if there are problems */ @Ignore @Test public void shouldCaptureQueryEventData() throws Exception { // Testing.Print.enable(); startClient(client -> { client.setBinlogFilename("mysql-bin.000001"); client.setBinlogPosition(4); }); counters.consumeAll(5, TimeUnit.SECONDS); List<QueryEventData> allQueryEvents = recordedEventData(QueryEventData.class, -1); allQueryEvents.forEach(event -> { String sql = event.getSql(); if (sql.equalsIgnoreCase("BEGIN") || sql.equalsIgnoreCase("COMMIT")) return; System.out.println(event.getSql()); }); }
currentDatabase = queryEventData.getDatabase(); String sql = queryEventData.getSql();