private List<ColumnGetter> newColumnGetters( 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(), c); getters.add(factory.newColumnGetter(c, columnOption)); } return getters.build(); }
private Schema setupTask(JdbcInputConnection con, PluginTask task) throws SQLException { // build SELECT query and gets schema of its result String query = getQuery(task, con); logger.info("SQL: " + query); JdbcSchema querySchema = con.getSchemaOfQuery(query); task.setQuerySchema(querySchema); // validate column_options newColumnGetters(task, querySchema, null); ColumnGetterFactory factory = newColumnGetterFactory(null, task.getDefaultTimeZone()); ImmutableList.Builder<Column> columns = ImmutableList.builder(); for (int i = 0; i < querySchema.getCount(); i++) { JdbcColumn column = querySchema.getColumn(i); JdbcColumnOption columnOption = columnOptionOf(task.getColumnOptions(), column); columns.add( new Column( i, column.getName(), factory.newColumnGetter(column, columnOption).getToType())); } return new Schema(columns.build()); }