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;


Reply via email to