Revision 445 trunk/org.gvsig.postgresql/org.gvsig.postgresql.provider/src/main/java/org/gvsig/postgresql/dal/PostgreSQLBuilder.java

View differences:

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