Revision 31289

View differences:

trunk/extensions/extJDBC/src/com/iver/cit/gvsig/fmap/drivers/jdbc/postgis/PostgresReservedWords.java
1
package com.iver.cit.gvsig.fmap.drivers.jdbc.postgis;
2

  
3
import java.util.HashMap;
4

  
5
public class PostgresReservedWords {
6
	private static HashMap<String, Boolean> reserverdWords = new HashMap<String, Boolean>();
7
	
8
	static{
9
		Boolean bol = true;
10
		reserverdWords.put("ADD", bol);
11
		reserverdWords.put("ALL", bol);
12
		reserverdWords.put("ALTER", bol);
13
		reserverdWords.put("AND", bol);
14
		reserverdWords.put("ANY", bol);
15
		reserverdWords.put("AS", bol);
16
		reserverdWords.put("ASC", bol);
17
		reserverdWords.put("BEGIN", bol);
18
		reserverdWords.put("BETWEEN", bol);
19
		reserverdWords.put("BOTH BY", bol);
20
		reserverdWords.put("CASCADE", bol);
21
		reserverdWords.put("CAST", bol);
22
		reserverdWords.put("CHAR", bol);
23
		reserverdWords.put("CHARACTER", bol);
24
		reserverdWords.put("CHECK", bol);
25
		reserverdWords.put("CLOSE", bol);
26
		reserverdWords.put("COLLATE", bol);
27
		reserverdWords.put("COLUMN", bol);
28
		reserverdWords.put("COMMIT", bol);
29
		reserverdWords.put("CONSTRAINT", bol);
30
		reserverdWords.put("CREATE", bol);
31
		reserverdWords.put("CURRENT_DATE", bol);
32
		reserverdWords.put("CURRENT_TIME", bol);
33
		reserverdWords.put("CURRENT_TIMESTAMP", bol);
34
		reserverdWords.put("CURSOR", bol);
35
		reserverdWords.put("DECLARE", bol);
36
		reserverdWords.put("DEFAULT", bol);
37
		reserverdWords.put("DELETE", bol);
38
		reserverdWords.put("DESC", bol);
39
		reserverdWords.put("DISTINCT", bol);
40
		reserverdWords.put("DROP", bol);
41
		reserverdWords.put("EXECUTE", bol);
42
		reserverdWords.put("EXISTS", bol);
43
		reserverdWords.put("EXTRACT", bol);
44
		reserverdWords.put("FETCH", bol);
45
		reserverdWords.put("FLOAT", bol);
46
		reserverdWords.put("FOR", bol);
47
		reserverdWords.put("FROM", bol);
48
		reserverdWords.put("FULL", bol);
49
		reserverdWords.put("GRANT", bol);
50
		reserverdWords.put("HAVING", bol);
51
		reserverdWords.put("IN", bol);
52
		reserverdWords.put("INNER", bol);
53
		reserverdWords.put("INSERT", bol);
54
		reserverdWords.put("INTERVAL", bol);
55
		reserverdWords.put("INTO", bol);
56
		reserverdWords.put("IS", bol);
57
		reserverdWords.put("JOIN", bol);
58
		reserverdWords.put("LEADING", bol);
59
		reserverdWords.put("LEFT", bol);
60
		reserverdWords.put("LIKE", bol);
61
		reserverdWords.put("LOCAL", bol);
62
		reserverdWords.put("NAMES", bol);
63
		reserverdWords.put("NATIONAL", bol);
64
		reserverdWords.put("NATURAL", bol); 
65
		reserverdWords.put("NCHAR", bol);
66
		reserverdWords.put("NO", bol);
67
		reserverdWords.put("NOT", bol);
68
		reserverdWords.put("NULL", bol);
69
		reserverdWords.put("ON", bol);
70
		reserverdWords.put("OR", bol);
71
		reserverdWords.put("OUTER", bol);
72
		reserverdWords.put("PARTIAL", bol);
73
		reserverdWords.put("PRIMARY", bol);
74
		reserverdWords.put("PRIVILEGES", bol);
75
		reserverdWords.put("PROCEDURE", bol);
76
		reserverdWords.put("PUBLIC", bol);
77
		reserverdWords.put("REFERENCES", bol);
78
		reserverdWords.put("REVOKE", bol);
79
		reserverdWords.put("RIGHT", bol);
80
		reserverdWords.put("ROLLBACK", bol);
81
		reserverdWords.put("SELECT", bol);
82
		reserverdWords.put("SET", bol);
83
		reserverdWords.put("SUBSTRING", bol);
84
		reserverdWords.put("TO", bol);
85
		reserverdWords.put("TRAILING", bol);
86
		reserverdWords.put("TRIM", bol);
87
		reserverdWords.put("UNION", bol);
88
		reserverdWords.put("UNIQUE", bol);
89
		reserverdWords.put("UPDATE", bol);
90
		reserverdWords.put("USING", bol);
91
		reserverdWords.put("VALUES", bol);
92
		reserverdWords.put("VARCHAR", bol);
93
		reserverdWords.put("VARYING", bol);
94
		reserverdWords.put("VIEW", bol);
95
		reserverdWords.put("WHERE", bol);
96
		reserverdWords.put("WITH", bol);
97
		reserverdWords.put("WORK", bol);
98
		reserverdWords.put("CASE", bol);
99
		reserverdWords.put("COALESCE", bol);
100
		reserverdWords.put("CROSS", bol);
101
		reserverdWords.put("CURRENT", bol);
102
		reserverdWords.put("CURRENT_USER", bol);
103
		reserverdWords.put("DEC", bol);
104
		reserverdWords.put("DECIMAL", bol);
105
		reserverdWords.put("ELSE", bol);
106
		reserverdWords.put("END", bol);
107
		reserverdWords.put("FALSE", bol);
108
		reserverdWords.put("FOREIGN", bol);
109
		reserverdWords.put("GLOBAL", bol);
110
		reserverdWords.put("GROUP", bol);
111
		reserverdWords.put("LOCAL", bol);
112
		reserverdWords.put("NULLIF", bol);
113
		reserverdWords.put("NUMERIC", bol);
114
		reserverdWords.put("ORDER", bol);
115
		reserverdWords.put("POSITION", bol);
116
		reserverdWords.put("PRECISION", bol);
117
		reserverdWords.put("SESSION_USER", bol);
118
		reserverdWords.put("TABLE", bol);
119
		reserverdWords.put("THEN", bol);
120
		reserverdWords.put("TRANSACTION", bol);
121
		reserverdWords.put("TRUE", bol);
122
		reserverdWords.put("USER", bol);
123
		reserverdWords.put("WHEN", bol);
124
		reserverdWords.put("ABORT", bol);
125
		reserverdWords.put("ANALYZE", bol);
126
		reserverdWords.put("BINARY", bol);
127
		reserverdWords.put("CLUSTER", bol);
128
		reserverdWords.put("CONSTRAINT", bol);
129
		reserverdWords.put("COPY", bol);
130
		reserverdWords.put("DO", bol);
131
		reserverdWords.put("EXPLAIN", bol);
132
		reserverdWords.put("EXTEND", bol);
133
		reserverdWords.put("LISTEN", bol);
134
		reserverdWords.put("LOAD", bol);
135
		reserverdWords.put("LOCK", bol);
136
		reserverdWords.put("MOVE", bol);
137
		reserverdWords.put("NEW", bol);
138
		reserverdWords.put("NONE", bol);
139
		reserverdWords.put("NOTIFY", bol);
140
		reserverdWords.put("RESET", bol);
141
		reserverdWords.put("SETOF", bol);
142
		reserverdWords.put("SHOW", bol);
143
		reserverdWords.put("UNLISTEN", bol);
144
		reserverdWords.put("UNTIL", bol);
145
		reserverdWords.put("VACUUM", bol);
146
		reserverdWords.put("VERBOSE", bol);
147
	}
148
	
149
	public static boolean isReserved(String word){
150
		return reserverdWords.containsKey(word.toUpperCase());
151
	}
152
}
0 153

  
trunk/extensions/extJDBC/src/com/iver/cit/gvsig/fmap/drivers/jdbc/postgis/PostGIS.java
448 448
		if (!name.matches("[a-z][\\d\\S\\w]*")){
449 449
			return "\""+name.trim()+"\"";
450 450
		}
451
		if (name.indexOf(":")>0){
452
			return "\""+name.trim()+"\"";
453
		}
454
		//si es una palabra reservada lo escapamos
455
		if (PostgresReservedWords.isReserved(name)){
456
			return "\""+name.trim()+"\"";
457
		}
451 458
		return name;
452 459
	}
453 460
}

Also available in: Unified diff