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