Revision 44353
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 | ||
---|---|---|
325 | 325 |
String sql; |
326 | 326 |
String constraint_name = "constraint_" + this.table().getName() + "_" + column.getName()+"_dim"; |
327 | 327 |
sql = MessageFormat.format( |
328 |
"ALTER TABLE \"{0}\" ADD CONSTRAINT IF NOT EXISTS \"{1}\" CHECK ST_CoordDim(\"{2}\") = {3}",
|
|
328 |
"ALTER TABLE \"{0}\" ADD CONSTRAINT IF NOT EXISTS \"{1}\" CHECK NVL2(\"{2}\", ST_CoordDim(\"{2}\") = {3}, TRUE)",
|
|
329 | 329 |
this.table().getName(), |
330 | 330 |
constraint_name, |
331 | 331 |
column.getName(), |
... | ... | |
335 | 335 |
String sql2; |
336 | 336 |
String constraint_name2 = "constraint_" + this.table().getName() + "_" + column.getName()+"_srid"; |
337 | 337 |
sql2 = MessageFormat.format( |
338 |
"ALTER TABLE \"{0}\" ADD CONSTRAINT IF NOT EXISTS \"{1}\" CHECK ST_SRID(\"{2}\") = {3,number,#####}",
|
|
339 |
this.table().getName(), |
|
340 |
constraint_name2, |
|
341 |
column.getName(), |
|
342 |
column.getGeometrySRSId() |
|
338 |
"ALTER TABLE \"{0}\" ADD CONSTRAINT IF NOT EXISTS \"{1}\" CHECK NVL2(\"{2}\", ST_SRID(\"{2}\") = {3,number,#####}, TRUE)",
|
|
339 |
this.table().getName(), // 0
|
|
340 |
constraint_name2, // 1
|
|
341 |
column.getName(), // 2
|
|
342 |
column.getGeometrySRSId() // 3
|
|
343 | 343 |
); |
344 | 344 |
sqls.add(sql2); |
345 | 345 |
} |
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/expressionbuilderformatter/ST_AsBinary.java | ||
---|---|---|
1 |
package org.gvsig.fmap.dal.store.h2.expressionbuilderformatter; |
|
2 |
|
|
3 |
import java.text.MessageFormat; |
|
4 |
import java.util.List; |
|
5 |
import org.apache.commons.lang3.StringUtils; |
|
6 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_ST_ASBINARY; |
|
7 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Function; |
|
8 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Value; |
|
9 |
import org.gvsig.expressionevaluator.Formatter; |
|
10 |
import org.gvsig.fmap.dal.SQLBuilder; |
|
11 |
|
|
12 |
/** |
|
13 |
* |
|
14 |
* @author jjdelcerro |
|
15 |
*/ |
|
16 |
class ST_AsBinary implements Formatter<Value> { |
|
17 |
|
|
18 |
private final Formatter<Value> formatter; |
|
19 |
private final SQLBuilder builder; |
|
20 |
|
|
21 |
public ST_AsBinary(SQLBuilder builder, Formatter<Value> formatter) { |
|
22 |
this.builder = builder; |
|
23 |
this.formatter = formatter; |
|
24 |
} |
|
25 |
|
|
26 |
@Override |
|
27 |
public boolean canApply(Value value) { |
|
28 |
if (value instanceof Function) { |
|
29 |
return StringUtils.equalsIgnoreCase(FUNCTION_ST_ASBINARY, ((Function) value).name()); |
|
30 |
} |
|
31 |
return false; |
|
32 |
} |
|
33 |
|
|
34 |
@Override |
|
35 |
public String format(Value function) { |
|
36 |
List<Value> parameters = ((Function) function).parameters(); |
|
37 |
String p1 = parameters.get(0).toString(formatter); |
|
38 |
String r = MessageFormat.format("NVL2({0},ST_AsBinary({0}),NULL)", p1); |
|
39 |
return r; |
|
40 |
} |
|
41 |
|
|
42 |
} |
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/expressionbuilderformatter/H2SpatialFormatter.java | ||
---|---|---|
27 | 27 |
new ST_ExtentAggregate(this.builder, this), |
28 | 28 |
new Decode(this.builder, this), |
29 | 29 |
new ILike(this.builder, this), |
30 |
new Constant(this.builder, this) |
|
30 |
new Constant(this.builder, this), |
|
31 |
new ST_AsBinary(this.builder, this) |
|
31 | 32 |
}; |
32 | 33 |
} |
33 | 34 |
|
Also available in: Unified diff