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

View differences:

CreateTableOperation.java
27 27
import java.sql.Statement;
28 28
import java.util.ArrayList;
29 29
import java.util.List;
30
import org.apache.commons.lang3.StringUtils;
30 31
import org.apache.commons.lang3.tuple.Pair;
31 32
import org.gvsig.expressionevaluator.ExpressionUtils;
32 33
import org.gvsig.fmap.dal.exception.DataException;
......
45 46

  
46 47
    protected final TableReference table;
47 48
    protected FeatureType type;
48
    private final List<Pair<String, SQLBuilder.Privilege>> userAndPrivileges;
49
    private final List<String> additionalSQLs;
49
    protected final List<Pair<String, SQLBuilder.Privilege>> userAndPrivileges;
50
    protected final List<String> additionalSQLs;
50 51

  
51 52
    public CreateTableOperation(
52 53
            JDBCHelper helper
......
86 87
        for (FeatureAttributeDescriptor attr : type) {
87 88
            if( attr.isIndexed() && !attr.isPrimaryKey() ) {
88 89
                JDBCSQLBuilderBase sqlbuilder = createSQLBuilder();
90
                SQLBuilder.CreateIndexBuilder createIndex = sqlbuilder.create_index();
91
                createIndex.setFeatureType(type);
89 92
                if( attr.getType()==org.gvsig.fmap.dal.DataTypes.GEOMETRY ) {
90
                    sqlbuilder.create_index().spatial();
93
                    createIndex.spatial();
91 94
                }
92
                sqlbuilder.create_index().if_not_exist();
93
                sqlbuilder.create_index().name("idx_" + table.toString().replace(".", "_") + "_" + attr.getName());
94
                sqlbuilder.create_index().column(attr.getName());
95
                sqlbuilder.create_index().table()
95
                createIndex.if_not_exist();
96
                createIndex.name("idx_" + table.toString().replace(".", "_") + "_" + attr.getName());
97
                createIndex.column(attr.getName());
98
                createIndex.table()
96 99
                        .database(this.table.getDatabase())
97 100
                        .schema(this.table.getSchema())
98 101
                        .name(this.table.getTable()
99 102
                );
100 103
                if(!attr.allowIndexDuplicateds()){
101
                    sqlbuilder.create_index().unique();
104
                    createIndex.unique();
102 105
                }
103
                sqls.addAll(sqlbuilder.create_index().toStrings());
106
                sqls.addAll(createIndex.toStrings());
104 107
            }
105 108
        }
106 109
        return sqls;
......
170 173
        List<String> sqls = this.getSQLs();
171 174
        Statement st = null; String currsql = null;
172 175
        try {
173
            st = conn.createStatement();
176
            st = conn.createStatement(StringUtils.join(sqls, "; "));
174 177
            for (String sql : sqls) {
175 178
                currsql = sql; JDBCUtils.execute(st, sql);
176 179
            }

Also available in: Unified diff