Sha256: d5fd636d7a7a38ef478a8bdd12acb5f0e337040a94e39e9f04b694682a03ce14
Contents?: true
Size: 1.89 KB
Versions: 3
Compression:
Stored size: 1.89 KB
Contents
package org.embulk.filter.calcite.getter; import org.embulk.input.jdbc.AbstractJdbcInputPlugin; import org.embulk.input.jdbc.JdbcColumn; import org.embulk.input.jdbc.JdbcColumnOption; import org.embulk.input.jdbc.JdbcInputConnection; import org.embulk.input.jdbc.getter.ColumnGetter; import org.embulk.input.jdbc.getter.ColumnGetterFactory; import org.embulk.spi.PageBuilder; import org.embulk.spi.type.Type; import org.joda.time.DateTimeZone; public class FilterColumnGetterFactory extends ColumnGetterFactory { private final DateTimeZone defaultTimeZone; /** * Creates a factory object to create {@code ColumnGetter}s for converting JdbcType to Embulk * type. * * @param to a {@code PageBuilder} object that is passed to column getters. * @param defaultTimeZone a {@code DateTimeZone} object passed to timestamp column getters as * default. */ public FilterColumnGetterFactory(PageBuilder to, DateTimeZone defaultTimeZone) { super(to, defaultTimeZone); // TODO make change super.defaultTimeZone field protected this.defaultTimeZone = defaultTimeZone; } @Override public ColumnGetter newColumnGetter(JdbcInputConnection con, AbstractJdbcInputPlugin.PluginTask task, JdbcColumn column, JdbcColumnOption option) { String valueType = option.getValueType(); Type toType = getToType(option); if (valueType.equals("coalesce") && sqlTypeToValueType(column, column.getSqlType()) .equals("timestamp")) { return new FilterTimestampColumnGetter(to, toType, option.getTimeZone().or(defaultTimeZone)); } else { return super.newColumnGetter(con, task, column, option); } } }
Version data entries
3 entries across 3 versions & 1 rubygems