/** Checks whether the tableName corresponds to a view */ boolean isView(DatabaseMetaData metaData, String databaseSchema, String tableName) throws SQLException { ResultSet tables = null; try { tables = metaData.getTables( null, escapeNamePattern(metaData, databaseSchema), escapeNamePattern(metaData, tableName), new String[] {"VIEW"}); return tables.next(); } finally { closeSafe(tables); } }
/** Returns the database typename of the column by inspecting the metadata. */ public String lookupSqlTypeName( Connection cx, String schemaName, String tableName, String columnName) throws SQLException { ResultSet columns = null; try { DatabaseMetaData metaData = cx.getMetaData(); columns = metaData.getColumns( null, dataStore.escapeNamePattern(metaData, schemaName), dataStore.escapeNamePattern(metaData, tableName), dataStore.escapeNamePattern(metaData, columnName)); if (!columns.next()) { throw new SQLException("Could not find column metadata"); } return columns.getString("TYPE_NAME"); } finally { columns.close(); } }
Set<String> getColumnNames( JDBCDataStore store, DatabaseMetaData metaData, String schema, String table) throws SQLException { ResultSet rs = null; Set<String> result = new HashSet<String>(); try { rs = metaData.getColumns( null, store.escapeNamePattern(metaData, schema), store.escapeNamePattern(metaData, table), null); while (rs.next()) { result.add(rs.getString("COLUMN_NAME")); } } finally { rs.close(); } return result; }
/** * Returns the type of the column by inspecting the metadata, with the collaboration of the * dialect */ protected Class getColumnType( DatabaseMetaData metaData, String databaseSchema2, String tableName, String columnName) throws SQLException { ResultSet columns = null; try { columns = metaData.getColumns( null, escapeNamePattern(metaData, databaseSchema), escapeNamePattern(metaData, tableName), escapeNamePattern(metaData, columnName)); if (!columns.next()) { throw new SQLException("Could not find metadata for column"); } int binding = columns.getInt("DATA_TYPE"); Class columnType = getMapping(binding); if (columnType == null) { LOGGER.warning("No class for sql type " + binding); columnType = Object.class; } return columnType; } finally { columns.close(); } }
@Override public void postCreateFeatureType( SimpleFeatureType featureType, DatabaseMetaData metadata, String schemaName, Connection cx) throws SQLException { // figure out if the table has a spatial index and mark the feature type as so if (featureType.getGeometryDescriptor() == null) { return; } String idxTableName = featureType.getTypeName() + "_HATBOX"; ResultSet rs = metadata.getTables( null, dataStore.escapeNamePattern(metadata, schemaName), dataStore.escapeNamePattern(metadata, idxTableName), new String[] {"TABLE"}); try { if (rs.next()) { featureType .getGeometryDescriptor() .getUserData() .put(H2_SPATIAL_INDEX, idxTableName); } } finally { dataStore.closeSafe(rs); } }
metadata.getTables( null, escapeNamePattern(metadata, databaseSchema), escapeNamePattern(metadata, FEATURE_RELATIONSHIP_TABLE), null); metadata.getTables( null, escapeNamePattern(metadata, databaseSchema), escapeNamePattern(metadata, FEATURE_ASSOCIATION_TABLE), null); metadata.getTables( null, escapeNamePattern(metadata, databaseSchema), escapeNamePattern(metadata, GEOMETRY_TABLE), null); metadata.getTables( null, escapeNamePattern(metadata, databaseSchema), escapeNamePattern(metadata, MULTI_GEOMETRY_TABLE), null); metadata.getTables( null, escapeNamePattern(metadata, databaseSchema), escapeNamePattern(metadata, GEOMETRY_ASSOCIATION_TABLE), null);
metaData.getTables( null, escapeNamePattern(metaData, databaseSchema), "%", queryTypes.toArray(new String[0]));
metadata.getTables( null, dataStore.escapeNamePattern(metadata, "sysspatial"), dataStore.escapeNamePattern(metadata, TESSELLATION), new String[] {"TABLE"}); try { metadata.getTables( null, dataStore.escapeNamePattern(metadata, schemaName), dataStore.escapeNamePattern( metadata, tableName + "_" + columnName + "_idx"), new String[] {"TABLE", "VIEW"});
metaData.getColumns( null, store.escapeNamePattern(metaData, databaseSchema), store.escapeNamePattern(metaData, tableName), store.escapeNamePattern(metaData, columnName)); columns.next();
md.getTables( null, dataStore.escapeNamePattern(md, schemaName), dataStore.escapeNamePattern(md, "geometry_columns"), new String[] {"TABLE"}); try {
metaData.getColumns( cx.getCatalog(), getDataStore().escapeNamePattern(metaData, databaseSchema), getDataStore().escapeNamePattern(metaData, tableName), "%"); if (getDataStore().getFetchSize() > 0) {