@Override public Tables clone() { return new Tables(this, tableIdCaseInsensitive); }
public SnapshotContext(String catalogName) throws SQLException { this.catalogName = catalogName; this.tables = new Tables(); }
public Tables subset(TableFilter filter) { if (filter == null) return this; return lock.read(() -> { Tables result = new Tables(tableIdCaseInsensitive); tablesByTableId.forEach((tableId, table) -> { if (filter.isIncluded(tableId)) { result.overwriteTable(table); } }); return result; }); }
@Setup(Level.Trial) public void doSetup() { legacyParser = new MySqlDdlParser(); antlrParser = new MySqlAntlrDdlParser(); tables = new Tables(); ddl = testStatement(); }
@Before public void beforeEach() { converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE, TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG); parser = parserProducer.apply(converters); tables = new Tables(); }
@Override public void beforeEach() { listener = new SimpleDdlParserListener(); parser = new MysqlDdlParserWithSimpleTestListener(listener); tables = new Tables(); }
@Before public void beforeEach() { parser = new DdlParserSql2003(); tables = new Tables(); }
protected Tables recover(long pos, int entry) { Tables result = new Tables(); history.recover(source1, position("a.log", pos, entry), result, parser); return result; }
protected RelationalDatabaseSchema(CommonConnectorConfig config, TopicSelector<TableId> topicSelector, TableFilter tableFilter, Predicate<ColumnId> columnFilter, TableSchemaBuilder schemaBuilder, boolean tableIdCaseInsensitive) { this.topicSelector = topicSelector; this.schemaBuilder = schemaBuilder; this.tableFilter = tableFilter; this.columnFilter = columnFilter; this.columnMappers = ColumnMappers.create(config.getConfig()); this.schemaPrefix = getSchemaPrefix(config.getLogicalName()); this.schemasByTableId = new SchemasByTableId(tableIdCaseInsensitive); this.tables = new Tables(tableIdCaseInsensitive); }
@Before public void beforeEach() { listener = new SimpleDdlParserListener(); parser = new MysqlDdlParserWithSimpleTestListener(listener); tables = new Tables(); }
/** * Refreshes this schema's content for a particular table * * @param connection a {@link JdbcConnection} instance, never {@code null} * @param tableId the table identifier; may not be null * @param refreshToastableColumns refreshes the cache of toastable columns for `tableId`, if {@code true} * @throws SQLException if there is a problem refreshing the schema from the database server */ protected void refresh(PostgresConnection connection, TableId tableId, boolean refreshToastableColumns) throws SQLException { Tables temp = new Tables(); connection.readSchema(temp, null, null, tableId::equals, null, true); // the table could be deleted before the event was processed if (temp.size() == 0) { LOGGER.warn("Refresh of {} was requested but the table no longer exists", tableId); return; } // overwrite (add or update) or views of the tables tables().overwriteTable(temp.forTable(tableId)); // refresh the schema refreshSchema(tableId); if (refreshToastableColumns) { // and refresh toastable columns info refreshToastableColumnsMap(connection, tableId); } }
@Before public void beforeEach() { changes = new DdlChanges(); parser = new DdlParserSql2003(); parser.addListener(changes); tables = new Tables(); }
LegacyDdlParser ddlParser = new DdlParserSql2003(); ddlParser.setCurrentSchema("db1"); // recover does this, so we need to as well Tables tables1 = new Tables(); Tables tables2 = new Tables(); Tables tables3 = new Tables(); Tables recoveredTables = new Tables(); setLogPosition(15); history.recover(source, position, recoveredTables, recoveryParser); recoveredTables = new Tables(); setLogPosition(50); history.recover(source, position, recoveredTables, recoveryParser); recoveredTables = new Tables(); setLogPosition(10010); history.recover(source, position, recoveredTables, recoveryParser); recoveredTables = new Tables(); setLogPosition(100000010); history.recover(source, position, recoveredTables, recoveryParser);
@Override public Tables clone() { return new Tables(this, tableIdCaseInsensitive); }
@Test public void testJsonValues() { String sql = "CREATE TABLE JSON_TABLE (" + " A JSON," + " B JSON NOT NULL" + ");"; MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE, TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG); DdlParser parser = new MySqlAntlrDdlParser(); Tables tables = new Tables(); parser.parse(sql, tables); Table table = tables.forTable(new TableId(null, null, "JSON_TABLE")); // ColA - Nullable column Column colA= table.columnWithName("A"); Field fieldA = new Field(colA.name(), -1, converters.schemaBuilder(colA).optional().build()); assertThat(converters.converter(colA, fieldA).convert("{}")).isEqualTo("{}"); assertThat(converters.converter(colA, fieldA).convert("[]")).isEqualTo("[]"); assertThat(converters.converter(colA, fieldA).convert(new byte[0])).isNull(); assertThat(converters.converter(colA, fieldA).convert(null)).isNull(); assertThat(converters.converter(colA, fieldA).convert("{ \"key1\": \"val1\", \"key2\": {\"key3\":\"val3\"} }")).isEqualTo("{ \"key1\": \"val1\", \"key2\": {\"key3\":\"val3\"} }"); // ColB - NOT NUll column Column colB= table.columnWithName("B"); Field fieldB = new Field(colB.name(), -1, converters.schemaBuilder(colB).build()); assertThat(converters.converter(colB, fieldB).convert("{}")).isEqualTo("{}"); assertThat(converters.converter(colB, fieldB).convert("[]")).isEqualTo("[]"); assertThat(converters.converter(colB, fieldB).convert(new byte[0])).isEqualTo("{}"); assertThat(converters.converter(colB, fieldB).convert(null)).isEqualTo("{}"); assertThat(converters.converter(colB, fieldB).convert("{ \"key1\": \"val1\", \"key2\": {\"key3\":\"val3\"} }")).isEqualTo("{ \"key1\": \"val1\", \"key2\": {\"key3\":\"val3\"} }"); }
+ ")"); conn.execute("SELECT * FROM person"); Tables tables = new Tables(); conn.readSchema(tables, DATABASE.getDatabaseName(), null, null, null, true); + ")"); conn.execute("SELECT * FROM product"); tables = new Tables(); conn.readSchema(tables, DATABASE.getDatabaseName(), null, null, null, true); + ")"); conn.execute("SELECT * FROM purchased"); tables = new Tables(); conn.readSchema(tables, DATABASE.getDatabaseName(), null, null, null, true);
protected RelationalDatabaseSchema(CommonConnectorConfig config, TopicSelector<TableId> topicSelector, TableFilter tableFilter, Predicate<ColumnId> columnFilter, TableSchemaBuilder schemaBuilder, boolean tableIdCaseInsensitive) { this.topicSelector = topicSelector; this.schemaBuilder = schemaBuilder; this.tableFilter = tableFilter; this.columnFilter = columnFilter; this.columnMappers = ColumnMappers.create(config.getConfig()); this.schemaPrefix = getSchemaPrefix(config.getLogicalName()); this.schemasByTableId = new SchemasByTableId(tableIdCaseInsensitive); this.tables = new Tables(tableIdCaseInsensitive); }
@Override public void beforeEach() { listener = new SimpleDdlParserListener(); parser = new MysqlDdlParserWithSimpleTestListener(listener); tables = new Tables(); }
@Before public void beforeEach() { listener = new SimpleDdlParserListener(); parser = new MysqlDdlParserWithSimpleTestListener(listener); tables = new Tables(); }