@Override public Schema schema() throws IOException { return Features.schema(this).orElse(null); }
public Optional<String> schema() { return Optional.of(opts.schema()); }
@Override protected List<Handle<Dataset>> doRun(Connection cx) throws Exception { DatabaseMetaData md = cx.getMetaData(); ResultSet tables = open(md.getTables(null, schema().orElse(null), null, new String[]{"TABLE", "VIEW"})); //TODO: avoid pulling all into list List<Handle<Dataset>> l = new ArrayList<Handle<Dataset>>(); while(tables.next()) { String tbl = tables.getString("TABLE_NAME"); String schema = tables.getString("TABLE_SCHEM"); if (includeTable(tbl, schema)) { l.add(new Handle<Dataset>(datasetName(tbl, schema), Dataset.class, driver()) { @Override protected Dataset doResolve() throws IOException { return get(name); } }); } } return l; } });
schema = schema().orElse("public");
@Override protected Object doRun(Connection cx) throws Exception { cx.setAutoCommit(false); SQL sql = new SQL("DROP TABLE ").name(schema().orElse(null), name); LOG.debug(sql.toString()); Statement st = open(cx.createStatement()); st.execute(sql.toString()); if (!info.isAtLeastVersion2()) { //de-registry geometry columns sql = new SQL("DELETE FROM geometry_columns ") .add(" WHERE f_table_schema = ? ") .add(" AND f_table_name = ?"); List<Pair<Object,Integer>> values = new ArrayList<Pair<Object,Integer>>(); values.add(new Pair(schema().orElse("public"), Types.VARCHAR)); values.add(new Pair(name, Types.VARCHAR)); logQuery(sql, values); open(prepareStatement(sql, values, cx)).execute(); } cx.commit(); return null; } });
SQL sql = new SQL("CREATE TABLE ").name(schema().orElse(null), schema.name()) .add(" (").name(findIdColumnName(schema)).add(" SERIAL PRIMARY KEY, "); values.add(new Pair(schema().orElse("public"), Types.VARCHAR)); values.add(new Pair(schema.name(), Types.VARCHAR)); values.add(new Pair(fld.name(), Types.VARCHAR));