Revision 44320

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/CreateTableOperation.java
88 88
                .schema(this.table.getSchema())
89 89
                .name(this.table.getTable());
90 90
        for (FeatureAttributeDescriptor attr : type) {
91
            if( attr.isComputed() ) {
92
                continue;
93
            }
91 94
            if( attr.getType()==DataTypes.GEOMETRY ) {
92 95
                sqlbuilder.create_table().add_geometry_column(
93 96
                        attr.getName(),
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.h2/src/main/java/org/gvsig/fmap/dal/store/h2/operations/H2SpatialFetchFeatureTypeOperation.java
10 10
import java.util.List;
11 11
import java.util.Map;
12 12
import org.cresques.cts.IProjection;
13
import org.gvsig.expressionevaluator.ExpressionBuilder;
13 14
import org.gvsig.fmap.dal.DataTypes;
14 15
import org.gvsig.fmap.dal.exception.DataException;
15 16
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
......
17 18
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
18 19
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
19 20
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
21
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
20 22
import org.gvsig.fmap.dal.store.jdbc2.spi.SRSSolver;
21 23
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.FetchFeatureTypeOperation;
22 24
import org.gvsig.fmap.geom.Geometry;
......
201 203
        }
202 204
        return h2spatialGeometryTypes.get(typeName);
203 205
    }
206

  
207
    @Override
208
    protected String getSQLToRetrievePrimaryKeysFromInformationSchema(
209
            String catalog,
210
            String schema,
211
            String table
212
        ) throws SQLException {
213
        JDBCSQLBuilderBase sqlbuilder = this.createSQLBuilder();
214
        ExpressionBuilder expbuilder = sqlbuilder.expression();
215

  
216
        sqlbuilder.select().column().name("COLUMN_LIST");
217
        sqlbuilder.select().column().name("CONSTRAINT_TYPE");
218
        sqlbuilder.select().from().table().schema("INFORMATION_SCHEMA").name("CONSTRAINTS");
219
        sqlbuilder.select().where().set(
220
                expbuilder.like(
221
                        expbuilder.column("TABLE_NAME"), 
222
                        expbuilder.constant(table)
223
                )
224
        );
225
        if (schema != null) {
226
            sqlbuilder.select().where().and(
227
                    expbuilder.like(
228
                            expbuilder.column("TABLE_SCHEMA"),
229
                            expbuilder.constant(schema)
230
                    )
231
            );
232
        }
233
        if (catalog != null) {
234
            sqlbuilder.select().where().and(
235
                    expbuilder.like(
236
                            expbuilder.column("CONSTRAINT_CATALOG"),
237
                            expbuilder.constant(catalog)
238
                    )
239
            );
240
        }
241
        sqlbuilder.select().where().and(
242
                expbuilder.eq(
243
                        expbuilder.column("CONSTRAINT_TYPE"),
244
                        expbuilder.constant("PRIMARY KEY")
245
                )
246
        );
247
        return sqlbuilder.toString();
248
    }
204 249
    
250
    
205 251
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.h2/src/main/java/org/gvsig/fmap/dal/store/h2/H2SpatialSQLBuilder.java
41 41

  
42 42
        
43 43
        this.defaultSchema = "";
44
        this.supportSchemas = false;
44
        this.supportSchemas = true;
45 45
        this.allowAutomaticValues = true;
46 46
        this.geometrySupportType = this.helper.getGeometrySupportType();
47 47
        this.hasSpatialFunctions = this.helper.hasSpatialFunctions();
......
60 60
        this.type_char = "CHAR";
61 61
        this.type_date = "DATE";
62 62
        this.type_double = "DOUBLE"; 
63
        this.type_numeric_p = "DECIMAL({0})";
64
        this.type_numeric_ps = "DECIMAL({0},{1})";
63
        this.type_numeric_p = "DECIMAL({0,Number,#######})";
64
        this.type_numeric_ps = "DECIMAL({0,Number,#######},{1,Number,#######})";
65 65
        this.type_bigdecimal = "DOUBLE";
66 66
        this.type_float = "REAL";
67 67
        this.type_int = "INTEGER";
68 68
        this.type_long = "BIGINT";
69 69
        this.type_string = "VARCHAR";
70
        this.type_string_p = "VARCHAR({0})";
70
        this.type_string_p = "VARCHAR({0,Number,#######})";
71 71
        this.type_time = "TIME";
72 72
        this.type_timestamp = "TIMESTAMP";
73 73
        this.type_version = "VARCHAR";
......
88 88
    public class H2SpatialTableNameBuilderBase extends TableNameBuilderBase {
89 89

  
90 90
        @Override
91
        public boolean has_schema() {
92
            return false;
93
        }
94

  
95
        @Override
96 91
        public boolean has_database() {
97 92
            return false;
98 93
        }
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/SQLBuilderBase.java
2254 2254
    protected String type_char = "CHARACTER(1)";
2255 2255
    protected String type_date = "DATE";
2256 2256
    protected String type_double = "DOUBLE PRECISION"; //float con 53 bits de mantisa, float(54)
2257
    protected String type_numeric_p = "NUMERIC({0})";
2258
    protected String type_numeric_ps = "NUMERIC({0},{1})";
2259
    protected String type_bigdecimal = "NUMERIC({0},{1})";
2257
    protected String type_numeric_p = "NUMERIC({0,Number,#######})";
2258
    protected String type_numeric_ps = "NUMERIC({0,Number,#######},{1,Number,#######})";
2259
    protected String type_bigdecimal = "NUMERIC({0,Number,#######},{1,Number,#######})";
2260 2260
    protected String type_float = "REAL"; //float con 24 bits de mantisa, float(24)
2261 2261
    protected String type_int = "INT";
2262 2262
    protected String type_long = "BIGINT";
2263 2263
    protected String type_string = "TEXT";
2264
    protected String type_string_p = "VARCHAR({0})";
2264
    protected String type_string_p = "VARCHAR({0,Number,#######})";
2265 2265
    protected String type_time = "TIME";
2266 2266
    protected String type_timestamp = "TIMESTAMP";
2267 2267
    protected String type_version = "VARCHAR(30)";

Also available in: Unified diff