Revision 445 trunk/org.gvsig.postgresql/org.gvsig.postgresql.provider/src/main/java/org/gvsig/postgresql/dal/PostgreSQLBuilder.java
PostgreSQLBuilder.java | ||
---|---|---|
33 | 33 |
|
34 | 34 |
public class PostgreSQLBuilder extends JDBCSQLBuilderBase { |
35 | 35 |
|
36 |
private final JDBCHelper helper; |
|
37 |
|
|
38 | 36 |
public PostgreSQLBuilder(JDBCHelper helper) { |
39 |
super(); |
|
40 |
|
|
41 |
this.helper = helper; |
|
37 |
super(helper); |
|
42 | 38 |
|
43 | 39 |
config.set(SQLConfig.default_schema, "public"); |
44 | 40 |
config.set(SQLConfig.allowAutomaticValues, true); |
... | ... | |
88 | 84 |
return sqls; |
89 | 85 |
} |
90 | 86 |
} |
87 |
protected class PostgreSQLCreateIndexBuilder extends CreateIndexBuilderBase { |
|
88 |
|
|
89 |
@Override |
|
90 |
public List<String> toStrings() { |
|
91 |
StringBuilder builder = new StringBuilder(); |
|
92 |
builder.append("CREATE "); |
|
93 |
// if( this.isUnique ) { |
|
94 |
// builder.append("UNIQUE "); |
|
95 |
// } |
|
96 |
builder.append("INDEX "); |
|
97 |
if( this.ifNotExist ) { |
|
98 |
builder.append("IF NOT EXISTS "); |
|
99 |
} |
|
100 |
builder.append(identifier(this.indexName)); |
|
101 |
builder.append(" ON "); |
|
102 |
builder.append(this.table.toString()); |
|
103 |
if( this.isSpatial ) { |
|
104 |
builder.append(" USING GIST "); |
|
105 |
} |
|
106 |
builder.append(" ( "); |
|
107 |
boolean is_first_column = true; |
|
108 |
for( String column : this.columns) { |
|
109 |
if( is_first_column ) { |
|
110 |
is_first_column = false; |
|
111 |
} else { |
|
112 |
builder.append(", "); |
|
113 |
} |
|
114 |
builder.append(column); |
|
115 |
} |
|
116 |
builder.append(" )"); |
|
117 |
|
|
118 |
List<String> sqls = new ArrayList<>(); |
|
119 |
sqls.add(builder.toString()); |
|
120 |
return sqls; |
|
121 |
} |
|
122 |
|
|
123 |
} |
|
91 | 124 |
|
92 | 125 |
protected class PostgreSQLCreateTableBuilder extends CreateTableBuilderBase { |
93 | 126 |
|
... | ... | |
140 | 173 |
builder.append(" )"); |
141 | 174 |
sqls.add(builder.toString()); |
142 | 175 |
|
143 |
String AddGeometryColumn = "SELECT AddGeometryColumn({0} , {1} , {2}, {3,number,#######} , {4} , {5}, {6})";
|
|
176 |
String AddGeometryColumn = "SELECT AddGeometryColumn({0} , {1} , {2}, {3} , {4} , {5}, {6})"; |
|
144 | 177 |
for (ColumnDescriptorBuilderBase column : columns) { |
145 | 178 |
if( column.isGeometry() ) { |
146 | 179 |
String sql = MessageFormat.format( |
... | ... | |
156 | 189 |
sqls.add(sql); |
157 | 190 |
} |
158 | 191 |
} |
159 |
for (ColumnDescriptorBuilderBase column : columns) { |
|
160 |
if( column.isIndexed() ) { |
|
161 |
String sql; |
|
162 |
String name = "idx_" + this.table().getName() + "_" + column.getName(); |
|
163 |
if( column.isGeometry() ) { |
|
164 |
sql = MessageFormat.format( |
|
165 |
config.getString(SQLConfig.CREATE_INDEX_name_ON_table_USING_GIST_column), |
|
166 |
name, |
|
167 |
this.table().toString(), |
|
168 |
column.getName() |
|
169 |
); |
|
170 |
} else { |
|
171 |
sql = MessageFormat.format( |
|
172 |
config.getString(SQLConfig.CREATE_INDEX_name_ON_table_column), |
|
173 |
name, |
|
174 |
this.table().toString(), |
|
175 |
column.getName() |
|
176 |
); |
|
177 |
} |
|
178 |
sqls.add(sql); |
|
179 |
} |
|
180 |
} |
|
181 | 192 |
return sqls; |
182 | 193 |
} |
183 | 194 |
} |
... | ... | |
269 | 280 |
public String bytearray(byte[] data) { |
270 | 281 |
return "decode('"+bytearray_hex(data)+"','hex')"; |
271 | 282 |
} |
283 |
|
|
284 |
public PostgreSQLHelper getHelper() { |
|
285 |
return (PostgreSQLHelper) helper; |
|
286 |
} |
|
272 | 287 |
|
273 | 288 |
@Override |
274 | 289 |
protected CreateTableBuilder createCreateTableBuilder() { |
... | ... | |
276 | 291 |
} |
277 | 292 |
|
278 | 293 |
@Override |
294 |
protected CreateIndexBuilder createCreateIndexBuilder() { |
|
295 |
return new PostgreSQLCreateIndexBuilder(); |
|
296 |
} |
|
297 |
|
|
298 |
@Override |
|
279 | 299 |
protected SelectBuilder createSelectBuilder() { |
280 | 300 |
return new PostgreSQLSelectBuilderBase(); |
281 | 301 |
} |
... | ... | |
283 | 303 |
@Override |
284 | 304 |
protected UpdateTableStatisticsBuilder createUpdateTableStatisticsBuilder() { |
285 | 305 |
return new PostgreSQLUpdateTableStatisticsBuilderBase(); |
286 |
} |
|
306 |
} |
|
307 |
|
|
287 | 308 |
} |
Also available in: Unified diff