Revision 45425 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

View differences:

H2SpatialSQLBuilder.java
2 2

  
3 3
import java.sql.PreparedStatement;
4 4
import java.sql.SQLException;
5
import java.sql.Time;
6
import java.sql.Timestamp;
5 7
import java.text.MessageFormat;
6 8
import java.util.ArrayList;
7 9
import java.util.Date;
......
9 11
import java.util.Objects;
10 12
import org.apache.commons.lang3.tuple.Pair;
11 13
import org.gvsig.expressionevaluator.ExpressionBuilder.Parameter;
14
import org.gvsig.expressionevaluator.ExpressionUtils;
12 15
import org.gvsig.expressionevaluator.Formatter;
13 16
import org.gvsig.fmap.dal.DataTypes;
14 17
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
......
18 21
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
19 22
import org.gvsig.fmap.geom.Geometry;
20 23
import org.gvsig.fmap.geom.exception.CreateGeometryException;
24
import org.gvsig.tools.dataTypes.DataTypeUtils;
21 25
import org.gvsig.tools.dispose.Disposable;
22 26

  
23 27
public class H2SpatialSQLBuilder extends JDBCSQLBuilderBase {
......
337 341
                        if( column.isAutomatic() ) {
338 342
                            builder.append(" AUTO_INCREMENT");
339 343
                        }
340
                        if (column.getDefaultValue() == null) {
344
                        if (column.getDefaultValue() == null || 
345
                                ExpressionUtils.isDynamicText(Objects.toString(column.getDefaultValue(), null))) {
341 346
                            if (column.allowNulls()) {
342 347
                                builder.append(" DEFAULT NULL");
343 348
                            }
344 349
                        } else {
345
                            if( column.getType() == DataTypes.DATE ) {
346
                                builder.append(" DEFAULT ( TIMESTAMP '");
347
                                Date d = (Date) column.getDefaultValue();
348
                                builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd HH:mm:ss.S}",d));
349
                                builder.append("' )");
350
                            } else {
351
                                builder.append(" DEFAULT '");
352
                                builder.append(Objects.toString(column.getDefaultValue(),""));
353
                                builder.append("'");
350
                            switch(column.getType()) {
351
                                case DataTypes.TIMESTAMP:
352
                                    builder.append(" DEFAULT ( TIMESTAMP '");
353
                                    Timestamp dtimestamp = (Timestamp) DataTypeUtils.toTimestamp(column.getDefaultValue());
354
                                    builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd HH:mm:ss.S}",dtimestamp));
355
                                    builder.append("' )");
356
                                    break;
357
                                case DataTypes.TIME:
358
                                    builder.append(" DEFAULT ( TIME '");
359
                                    Time dtime = (Time) DataTypeUtils.toTime(column.getDefaultValue());
360
                                    builder.append(MessageFormat.format( "{0,date,HH:mm:ss}",dtime));
361
                                    builder.append("' )");
362
                                    break;
363
                                case DataTypes.DATE:
364
                                    builder.append(" DEFAULT ( DATE '");
365
                                    java.sql.Date ddate = (java.sql.Date) DataTypeUtils.toDate(column.getDefaultValue());
366
                                    builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd}",ddate));
367
                                    builder.append("' )");
368
                                    break;
369
                                default:
370
                                    builder.append(" DEFAULT '");
371
                                    builder.append(Objects.toString(column.getDefaultValue(),""));
372
                                    builder.append("'");
354 373
                            }
355 374
                        }
356 375
                    }

Also available in: Unified diff