Revision 464

View differences:

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

  
25 25
package org.gvsig.postgresql.dal;
26 26

  
27
import java.sql.Connection;
28
import java.sql.DatabaseMetaData;
27 29
import java.text.MessageFormat;
28 30
import java.util.ArrayList;
29 31
import java.util.List;
......
33 35

  
34 36
public class PostgreSQLBuilder extends JDBCSQLBuilderBase {
35 37

  
38
    private int[] databaseVersion = null;
39
    
40
    protected int[] getDatabaseVersion() {
41
        if( databaseVersion == null ) {
42
            Connection conn;
43
            try {
44
                conn = this.getHelper().getConnection();
45
                DatabaseMetaData metadata = conn.getMetaData();
46
                databaseVersion =  new int[] {
47
                    metadata.getDatabaseMajorVersion(),
48
                    metadata.getDatabaseMinorVersion()
49
                };
50
            } catch (Exception ex) {
51
                databaseVersion = new int[] { 0,0 };
52
            }
53
        }
54
        return databaseVersion;
55
    }
56
    
36 57
    public PostgreSQLBuilder(JDBCHelper helper) {
37 58
        super(helper);
38 59
              
......
95 116
//            }
96 117
            builder.append("INDEX ");
97 118
            if( this.ifNotExist ) {
98
                builder.append("IF NOT EXISTS ");
119
                int[] version = getDatabaseVersion();
120
                if( version[0]>=9 && version[1]>=5 ) {
121
                    builder.append("IF NOT EXISTS ");
122
                }
99 123
            }
100 124
            builder.append(identifier(this.indexName));
101 125
            builder.append(" ON ");

Also available in: Unified diff