public ColumnGetter newColumnGetter(JdbcInputConnection con, PluginTask task, JdbcColumn column, JdbcColumnOption option) { return newColumnGetter(con, task, column, option, option.getValueType()); }
@Override public ColumnGetter newColumnGetter(JdbcInputConnection con, AbstractJdbcInputPlugin.PluginTask task, JdbcColumn column, JdbcColumnOption option) { ColumnGetter getter = super.newColumnGetter(con, task, column, option); switch (column.getTypeName()) { case "datetime": return new TimestampWithoutTimeZoneIncrementalHandler(getter); default: return getter; } }
@Override public ColumnGetter newColumnGetter(JdbcInputConnection con, AbstractJdbcInputPlugin.PluginTask task, JdbcColumn column, JdbcColumnOption option) { ColumnGetter getter = super.newColumnGetter(con, task, column, option); switch (column.getTypeName()) { case "DATE": return new TimestampWithoutTimeZoneIncrementalHandler(getter); case "TIMESTAMP": return new TimestampWithoutTimeZoneIncrementalHandler(getter); default: return getter; } }
@Override public ColumnGetter newColumnGetter(JdbcInputConnection con, PluginTask task, JdbcColumn column, JdbcColumnOption option) { ColumnGetter getter = super.newColumnGetter(con, task, column, option); // incremental loading wrapper switch (column.getTypeName()) { case "timestamptz": return new TimestampWithTimeZoneIncrementalHandler(getter); case "timestamp": return new TimestampWithoutTimeZoneIncrementalHandler(getter); default: return getter; } } }
private List<ColumnGetter> newColumnGetters(JdbcInputConnection con, PluginTask task, JdbcSchema querySchema, PageBuilder pageBuilder) throws SQLException { ColumnGetterFactory factory = newColumnGetterFactory(pageBuilder, task.getDefaultTimeZone()); ImmutableList.Builder<ColumnGetter> getters = ImmutableList.builder(); for (JdbcColumn c : querySchema.getColumns()) { JdbcColumnOption columnOption = columnOptionOf(task.getColumnOptions(), task.getDefaultColumnOptions(), c, factory.getJdbcType(c.getSqlType())); getters.add(factory.newColumnGetter(con, task, c, columnOption)); } return getters.build(); }
@Override public ColumnGetter newColumnGetter(JdbcInputConnection con, PluginTask task, JdbcColumn column, JdbcColumnOption option) { if (column.getTypeName().equals("hstore") && getToType(option) == Types.JSON) { // converting hstore to json needs a special handling return new HstoreToJsonColumnGetter(to, Types.JSON); } if (column.getSqlType() == java.sql.Types.ARRAY) { return new ArrayColumnGetter(to, getToType(option)); } if ("uuid".equals(column.getTypeName())) { return new StringColumnGetter(to, getToType(option)); } ColumnGetter getter = super.newColumnGetter(con, task, column, option); // incremental loading wrapper switch (column.getTypeName()) { case "timestamptz": return new TimestampWithTimeZoneIncrementalHandler(getter); case "timestamp": return new TimestampWithoutTimeZoneIncrementalHandler(getter); default: return getter; } }
@Override public ColumnGetter newColumnGetter(JdbcInputConnection con, PluginTask task, JdbcColumn column, JdbcColumnOption option) ColumnGetter getter = super.newColumnGetter(con, task, column, option);
columns.add(new Column(i, column.getName(), factory.newColumnGetter(con, task, column, columnOption).getToType()));
assertThat(fac.newColumnGetter(null, null, jsonColumn, mockColumnOption), instanceOf(JsonColumnGetter.class)); assertThat(fac.newColumnGetter(null, null, jsonColumn, mockColumnOption), instanceOf(StringColumnGetter.class));
case "coalesce": return newColumnGetter(con, task, column, option, sqlTypeToValueType(column, column.getSqlType())); case "long": return new LongColumnGetter(to, toType);