package org.embulk.input.postgresql.getter; import org.embulk.input.jdbc.JdbcColumn; import org.embulk.input.jdbc.JdbcColumnOption; import org.embulk.input.jdbc.getter.ColumnGetter; import org.embulk.input.jdbc.getter.ColumnGetterFactory; import org.embulk.spi.PageBuilder; import org.joda.time.DateTimeZone; public class PostgreSQLColumnGetterFactory extends ColumnGetterFactory { public PostgreSQLColumnGetterFactory(PageBuilder to, DateTimeZone defaultTimeZone) { super(to, defaultTimeZone); } @Override public ColumnGetter newColumnGetter(JdbcColumn column, JdbcColumnOption option) { if (column.getTypeName().equals("hstore")) { return new HstoreColumnGetter(to, getToType(option)); } else { return super.newColumnGetter(column, option); } } @Override protected String sqlTypeToValueType(JdbcColumn column, int sqlType) { if (column.getTypeName().equals("json") || column.getTypeName().equals("jsonb")) { return "json"; } else { return super.sqlTypeToValueType(column, sqlType); } } }