Issue #2333 Updated upgrade script to only run against entries in satellite_spatial that have not already been updated. This is so the upgrade script won't break the satellite data if it has already been ran

Change-Id: Ibe2206e584e89a40d4cdd1a2b50e91e10c885ae0

Former-commit-id: a0abc34322 [formerly 06603cabe5] [formerly fbc06d81f7] [formerly a0abc34322 [formerly 06603cabe5] [formerly fbc06d81f7] [formerly 41b6f79c52 [formerly fbc06d81f7 [formerly 2957c9c40fe85cbe5bd90c5f6444fce1f9ffdcf1]]]]
Former-commit-id: 41b6f79c52
Former-commit-id: 0b80a9f69a [formerly 3aa9f8cc42] [formerly 2d15674f89c9b59567e7509f08ac8ada299b6ac8 [formerly dd99767050]]
Former-commit-id: 68356d2d826fc2f0b0e93b5ab0c894325565c849 [formerly 239d0e52ea]
Former-commit-id: 11980c92ae
This commit is contained in:
Max Schenkelberg 2013-10-11 12:14:21 -05:00
parent 445acd4997
commit 332c2d91a1
2 changed files with 60 additions and 41 deletions

View file

@ -82,6 +82,8 @@ public class UpdateSatSpatial {
private static final String SATELLITE_SPATIAL_MINY = "miny";
private static final String SATELLITE_SPATIAL_MINIMUMS = "minimums";
private static final String HOST_ARGUMENT = "-host";
private static final String DEFAULT_HOST = "localhost";
@ -158,12 +160,16 @@ public class UpdateSatSpatial {
Connection conn = openConnection();
Statement query = conn.createStatement();
ResultSet results = query.executeQuery("SELECT "
+ SATELLITE_SPATIAL_GID + ", " + SATELLITE_SPATIAL_CRSWKT
+ ", " + SATELLITE_SPATIAL_NX + ", " + SATELLITE_SPATIAL_NY
+ ", " + SATELLITE_SPATIAL_DX + ", " + SATELLITE_SPATIAL_DY
+ ", AsBinary(" + SATELLITE_SPATIAL_GEOM + ") as "
+ SATELLITE_SPATIAL_GEOM + " FROM " + SATELLITE_SPATIAL_TABLE);
ResultSet results = query.executeQuery("SELECT ("
+ SATELLITE_SPATIAL_MINX + " || '_' || "
+ SATELLITE_SPATIAL_MINY + ") as " + SATELLITE_SPATIAL_MINIMUMS
+ ", " + SATELLITE_SPATIAL_GID + ", "
+ SATELLITE_SPATIAL_CRSWKT + ", " + SATELLITE_SPATIAL_NX + ", "
+ SATELLITE_SPATIAL_NY + ", " + SATELLITE_SPATIAL_DX + ", "
+ SATELLITE_SPATIAL_DY + ", AsBinary(" + SATELLITE_SPATIAL_GEOM
+ ") as " + SATELLITE_SPATIAL_GEOM + " FROM "
+ SATELLITE_SPATIAL_TABLE);
String updateStatement = "UPDATE " + SATELLITE_SPATIAL_TABLE + " SET ("
+ SATELLITE_SPATIAL_MINX + ", " + SATELLITE_SPATIAL_MINY + ", "
@ -174,6 +180,11 @@ public class UpdateSatSpatial {
while (results.next()) {
int gid = results.getInt(SATELLITE_SPATIAL_GID);
String mins = results.getString(SATELLITE_SPATIAL_MINIMUMS);
if (mins == null || mins.isEmpty()) {
System.out
.println("Upgrading satellite_spatial record: " + gid);
// No minimum values set, continue with upgrade
Geometry geometry = new WKBReader().read(results
.getBytes(SATELLITE_SPATIAL_GEOM));
CoordinateReferenceSystem crs = CRS.parseWKT(results
@ -198,12 +209,15 @@ public class UpdateSatSpatial {
dy = env.getHeight() / grid.height;
}
Geometry newGeom = EnvelopeIntersection.createEnvelopeIntersection(
Geometry newGeom = EnvelopeIntersection
.createEnvelopeIntersection(
resultGeom.getEnvelope(),
new Envelope2D(DefaultGeographicCRS.WGS84, -180, -90, 360,
180), 1.0, 10, 10).getEnvelope();
new Envelope2D(DefaultGeographicCRS.WGS84,
-180, -90, 360, 180), 1.0, 10, 10)
.getEnvelope();
PreparedStatement update = conn.prepareStatement(updateStatement);
PreparedStatement update = conn
.prepareStatement(updateStatement);
int index = 1;
update.setDouble(index++, minX);
update.setDouble(index++, minY);
@ -213,6 +227,11 @@ public class UpdateSatSpatial {
update.setInt(index++, gid);
update.execute();
} else {
System.err
.println("Skipping update of satellite_spatial record: "
+ gid);
}
}
conn.close();