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