Revision 913 org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/SpatialIndexUtils.java

View differences:

SpatialIndexUtils.java
181 181
        return sql;
182 182
    }
183 183
    
184
    public static String getSQLCreateSpatialIndex(String table, String geomColumn, int geomType) {
184
    public static String getSQLCreateSpatialIndex(String table, String geomColumn, int geomType, int geomsubtype) {
185 185
        table = table.toUpperCase();
186 186
        String oracleGeomTypeName = GeometryTypeUtils.toOracleGeometryTypeName(geomType);
187
        int dimensions = GeometryTypeUtils.getDimensions(geomsubtype);
187 188
        String indexName = SpatialIndexUtils.getSpatialIndexName(table, geomColumn);
188
        String createIndexSql = "CREATE INDEX \"{0}\" ON \"{1}\" (\"{2}\") INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS (''LAYER_GTYPE={3}'')"; // SDO_LEVEL=8
189
        String createIndexSql = "CREATE INDEX \"{0}\" ON \"{1}\" (\"{2}\") INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS (''SDO_INDX_DIMS={3},LAYER_GTYPE={4}'')"; // SDO_LEVEL=8
189 190
        String sql = MessageFormat.format(
190 191
                createIndexSql,
191 192
                indexName,
192 193
                table,
193 194
                geomColumn,
195
                dimensions,
194 196
                oracleGeomTypeName
195 197
        );
196 198
        return sql;
197 199
    }
198 200

  
199
    public static String getSQLRebuildSpatialIndex(String table, String geomColumn, int geomType) {
201
    public static String getSQLRebuildSpatialIndex(String table, String geomColumn, int geomType, int geomsubtype) {
200 202
        table = table.toUpperCase();
201 203
        String indexName = SpatialIndexUtils.getSpatialIndexName(table, geomColumn);
202 204
        String oracleGeomTypeName = GeometryTypeUtils.toOracleGeometryTypeName(geomType);
203
        String rebuildIndexSql = "ALTER INDEX \"{0}\" REBUILD PARAMETERS (''LAYER_GTYPE={1}'')";
205
        int dimensions = GeometryTypeUtils.getDimensions(geomsubtype);
206
        String rebuildIndexSql = "ALTER INDEX \"{0}\" REBUILD PARAMETERS (''SDO_INDX_DIMS={1},LAYER_GTYPE={2}'')";
204 207
        String sql = MessageFormat.format(
205 208
                    rebuildIndexSql,
206 209
                    indexName,
210
                    dimensions,
207 211
                    oracleGeomTypeName
208 212
        );
209 213
        return sql;

Also available in: Unified diff