Sha256: 1216914ef1817af99053ee020944bbd2593c120a10077be7d3eb9020b63ccfcf
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 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.time.TimestampFormatter; import org.embulk.spi.type.Type; import org.joda.time.DateTimeZone; public class FilterColumnGetterFactory extends ColumnGetterFactory { private final DateTimeZone defaultTimeZone; public FilterColumnGetterFactory(PageBuilder to, DateTimeZone defaultTimeZone) { super(to, defaultTimeZone); this.defaultTimeZone = defaultTimeZone; // TODO make change super.defaultTimeZone field protected } @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 UTCTimestampColumnGetter(to, toType, newTimestampFormatter(option, "%Y-%m-%d")); } else { return super.newColumnGetter(con, task, column, option); } } private TimestampFormatter newTimestampFormatter(JdbcColumnOption option, String defaultTimestampFormat) { return new TimestampFormatter( option.getJRuby(), option.getTimestampFormat().isPresent() ? option.getTimestampFormat().get().getFormat() : defaultTimestampFormat, option.getTimeZone().or(defaultTimeZone)); } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
embulk-filter-calcite-0.1.0 | src/main/java/org/embulk/filter/calcite/getter/FilterColumnGetterFactory.java |