Author: desruisseaux Date: Fri Sep 20 11:07:01 2019 New Revision: 1867212 URL: http://svn.apache.org/viewvc?rev=1867212&view=rev Log: Compress EPSG database after generation.
Modified: sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/Generator.java sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/package-info.java Modified: sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/Generator.java URL: http://svn.apache.org/viewvc/sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/Generator.java?rev=1867212&r1=1867211&r2=1867212&view=diff ============================================================================== --- sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/Generator.java [UTF-8] (original) +++ sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/Generator.java [UTF-8] Fri Sep 20 11:07:01 2019 @@ -16,6 +16,8 @@ */ package org.apache.sis.resources.embedded; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import java.util.Locale; @@ -28,6 +30,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.FileAlreadyExistsException; +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; import java.sql.SQLException; import org.opengis.util.FactoryException; import org.opengis.referencing.crs.GeographicCRS; @@ -53,7 +58,7 @@ import org.apache.sis.referencing.factor * Instead we write the files right in their final destination, {@code target/classes}.</div> * * @author Martin Desruisseaux (Geomatys) - * @version 0.8 + * @version 1.0 * @since 0.8 */ final class Generator { @@ -77,6 +82,7 @@ final class Generator { gen.copyLicenseFiles(); gen.createMetadata(); gen.createEPSG(); + gen.compress(); gen.shutdown(); Shutdown.stop(Generator.class); } @@ -180,6 +186,30 @@ final class Generator { } } + /** + * Compresses all tables in the EPSG schema. Compression can save space if there was many update + * or delete operations in the database. In the case of the database generated by this class, + * the benefit is very small because the database is fresh. But it is still non-zero. + */ + private void compress() throws SQLException { + try (Connection c = dataSource.getConnection()) { + List<String> tables = new ArrayList<>(); + try (ResultSet r = c.getMetaData().getTables(null, Constants.EPSG, null, null)) { + while (r.next()) { + tables.add(r.getString("TABLE_NAME")); + } + } + try (CallableStatement cs = c.prepareCall("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?)")) { + for (final String table : tables) { + cs.setString(1, Constants.EPSG); + cs.setString(2, table); + cs.setShort (3, (short) 1); + cs.execute(); + } + } + } + } + /** * Shutdowns the Derby database. */ Modified: sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/package-info.java URL: http://svn.apache.org/viewvc/sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/package-info.java?rev=1867212&r1=1867211&r2=1867212&view=diff ============================================================================== --- sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/package-info.java [UTF-8] (original) +++ sis/data/non-free/sis-embedded-data/src/main/java/org/apache/sis/resources/embedded/package-info.java [UTF-8] Fri Sep 20 11:07:01 2019 @@ -35,7 +35,7 @@ * {@code org.apache.sis:non-free} Maven group. * * @author Martin Desruisseaux (Geomatys) - * @version 0.8 + * @version 1.0 * @since 0.8 */ package org.apache.sis.resources.embedded;