Revision 38055
branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleValues.java | ||
---|---|---|
54 | 54 |
public static final String ORACLE_EPSG_FILE_NAME = "ORA_EPSG.DBF"; |
55 | 55 |
public static final String DEFAULT_GEO_FIELD = "GEOMETRY"; |
56 | 56 |
|
57 |
public static final String DEFAULT_CARTOCIUDAD_GEO_FIELD = "GEOM"; |
|
58 |
|
|
57 | 59 |
public static final String ORACLE_ID_FIELD = "ROWID"; |
58 | 60 |
public static final String DEFAULT_ID_FIELD_CASE_SENSITIVE = "GID"; |
59 | 61 |
public static final String ORACLE_GEO_SCHEMA = "MDSYS"; |
branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleUtils.java | ||
---|---|---|
4126 | 4126 |
isrs = new Integer(Math.round((float) feat.getDouble("EPSG"))); |
4127 | 4127 |
} |
4128 | 4128 |
} else { |
4129 |
logger.warn("Did not find Oracle SRID code: " + oraSRID + ". We'll assume it's an EPSG code."); |
|
4129 |
// logger.warn("Did not find Oracle SRID code: " + oraSRID + ". We'll assume it's an EPSG code.");
|
|
4130 | 4130 |
isrs = new Integer(Integer.parseInt(oraSRID)); |
4131 | 4131 |
} |
4132 | 4132 |
} catch (Exception e) { |
branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleSetProvider.java | ||
---|---|---|
35 | 35 |
import org.gvsig.fmap.dal.exception.DataException; |
36 | 36 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
37 | 37 |
import org.gvsig.fmap.dal.feature.FeatureType; |
38 |
import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProvider; |
|
38 | 39 |
import org.gvsig.fmap.dal.store.jdbc.JDBCIterator; |
39 | 40 |
import org.gvsig.fmap.dal.store.jdbc.JDBCSetProvider; |
40 | 41 |
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider; |
... | ... | |
90 | 91 |
|
91 | 92 |
return new OracleJdbcFastIterator((JDBCStoreProvider) getStore(), this, |
92 | 93 |
getFeatureType(), resultSetID); |
93 |
} |
|
94 | 94 |
|
95 |
} |
|
96 |
|
|
95 | 97 |
|
96 | 98 |
protected String getSqlForEvaluator(Evaluator filter) { |
97 | 99 |
|
98 | 100 |
String gfld = getFeatureType().getDefaultGeometryAttributeName(); |
101 |
if (gfld == null) { |
|
102 |
try { |
|
103 |
gfld = findGeometryName(getStore()); |
|
104 |
} catch (Exception ex) { |
|
105 |
logger.error("While getting geom field name: " |
|
106 |
+ ex.getMessage() + ". Assumed: " + OracleValues.DEFAULT_CARTOCIUDAD_GEO_FIELD); |
|
107 |
gfld = OracleValues.DEFAULT_CARTOCIUDAD_GEO_FIELD; |
|
108 |
} |
|
109 |
} |
|
110 |
|
|
99 | 111 |
Object envGeoOrNull = null; |
100 | 112 |
|
101 | 113 |
boolean isFilterApplicable = false; |
... | ... | |
127 | 139 |
is_geo = OracleUtils.getIsGCS(srs, srs != null && srs.length() > 0); |
128 | 140 |
env = (Envelope) envGeoOrNull; |
129 | 141 |
filterString = OracleUtils.getIntersectsEnvelopeSelect( |
130 |
getFeatureType().getDefaultGeometryAttributeName(), |
|
131 |
env, srs, is_geo); |
|
142 |
gfld, env, srs, is_geo); |
|
132 | 143 |
|
133 | 144 |
} else { |
134 | 145 |
if (envGeoOrNull instanceof Geometry) { |
... | ... | |
143 | 154 |
srs = (String) getStore().getDynValue(OracleStoreParameters.ORA_TABLE_SRID_KEY); |
144 | 155 |
is_geo = OracleUtils.getIsGCS(srs, srs != null && srs.length() > 0); |
145 | 156 |
filterString = OracleUtils.getIntersectsEnvelopeSelect( |
146 |
getFeatureType().getDefaultGeometryAttributeName(), |
|
147 |
env, srs, is_geo); |
|
157 |
gfld, env, srs, is_geo); |
|
148 | 158 |
|
149 | 159 |
} else { |
150 | 160 |
|
... | ... | |
159 | 169 |
srs = (String) getStore().getDynValue(OracleStoreParameters.ORA_TABLE_SRID_KEY); |
160 | 170 |
is_geo = OracleUtils.getIsGCS(srs, srs != null && srs.length() > 0); |
161 | 171 |
filterString = OracleUtils.getIntersectsMultiRectSelect( |
162 |
getFeatureType().getDefaultGeometryAttributeName(), |
|
163 |
geom, srs, is_geo, conn); |
|
172 |
gfld, geom, srs, is_geo, conn); |
|
164 | 173 |
} |
165 | 174 |
} |
166 | 175 |
} else { |
... | ... | |
170 | 179 |
} |
171 | 180 |
} |
172 | 181 |
} |
173 |
|
|
182 |
|
|
174 | 183 |
//If the filter has not been completely applied |
175 | 184 |
if (!isFilterApplicable) { |
176 | 185 |
if (filterString == null) { |
... | ... | |
183 | 192 |
return filterString; |
184 | 193 |
} |
185 | 194 |
|
186 |
/** |
|
195 |
private String findGeometryName(AbstractFeatureStoreProvider store) throws Exception { |
|
196 |
|
|
197 |
if (store instanceof OracleStoreProvider) { |
|
198 |
|
|
199 |
OracleStoreProvider osp = (OracleStoreProvider) store; |
|
200 |
FeatureType ft = osp.getFeatureStore().getDefaultFeatureType(); |
|
201 |
return ft.getDefaultGeometryAttributeName(); |
|
202 |
|
|
203 |
} else { |
|
204 |
logger.error("Unable to get geometry field name! Assumed: " + |
|
205 |
OracleValues.DEFAULT_CARTOCIUDAD_GEO_FIELD); |
|
206 |
return OracleValues.DEFAULT_CARTOCIUDAD_GEO_FIELD; |
|
207 |
} |
|
208 |
|
|
209 |
} |
|
210 |
|
|
211 |
/** |
|
187 | 212 |
* @param filter |
188 | 213 |
* @param parameters |
189 | 214 |
* @return |
branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleStoreProvider.java | ||
---|---|---|
782 | 782 |
*/ |
783 | 783 |
} |
784 | 784 |
// limit offset |
785 |
|
|
786 |
if (System.currentTimeMillis() - lastPrint > 2000) { |
|
787 |
logger.info("Executing SQL: " + sql.toString()); |
|
785 |
|
|
786 |
sqlCount++; |
|
787 |
|
|
788 |
if (System.currentTimeMillis() - lastPrint > 5000) { |
|
789 |
logger.info("Executing SQL # " + sqlCount + ": " + sql.toString()); |
|
788 | 790 |
lastPrint = System.currentTimeMillis(); |
789 | 791 |
} |
790 | 792 |
|
... | ... | |
792 | 794 |
} |
793 | 795 |
|
794 | 796 |
private static long lastPrint = 0; |
797 |
private static long sqlCount = 0; |
|
795 | 798 |
|
796 | 799 |
private Object coerce(FeatureAttributeDescriptor att, Object v) throws CoercionException { |
797 | 800 |
|
Also available in: Unified diff