Changeset: 055dd9264d46 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=055dd9264d46
Modified Files:
        src/main/java/org/monetdb/client/JdbcClient.java
        src/main/java/org/monetdb/util/MDBvalidator.java
Branch: default
Log Message:

Extend JdbcClient with command line options to silently (no header info 
printed) run validations of system catalog or schema or all user schemas.
These are intended only for use in the internal automated testing web.


diffs (194 lines):

diff --git a/src/main/java/org/monetdb/client/JdbcClient.java 
b/src/main/java/org/monetdb/client/JdbcClient.java
--- a/src/main/java/org/monetdb/client/JdbcClient.java
+++ b/src/main/java/org/monetdb/client/JdbcClient.java
@@ -792,15 +792,26 @@ public class JdbcClient { /* cannot (yet
                                                }
                                        } else if (command.equals("\\vsci")) {
                                                
MDBvalidator.validateSqlCatalogIntegrity(con);
+                                       } else if 
(command.equals("\\vsci_noheader")) { // used only for internal automated 
testing
+                                               
MDBvalidator.validateSqlCatalogIntegrity(con, false);
                                        } else if (command.equals("\\vsni")) {
                                                
MDBvalidator.validateSqlNetcdfTablesIntegrity(con);
+                                       } else if 
(command.equals("\\vsni_noheader")) { // used only for internal automated 
testing
+                                               
MDBvalidator.validateSqlNetcdfTablesIntegrity(con, false);
                                        } else if (command.equals("\\vsgi")) {
                                                
MDBvalidator.validateSqlGeomTablesIntegrity(con);
+                                       } else if 
(command.equals("\\vsgi_noheader")) { // used only for internal automated 
testing
+                                               
MDBvalidator.validateSqlGeomTablesIntegrity(con, false);
                                        } else if (command.startsWith("\\vsi 
")) {
                                                String schema_arg = 
command.substring(5);
                                                
MDBvalidator.validateSchemaIntegrity(con, schema_arg);
+                                       } else if 
(command.startsWith("\\vsi_noheader ")) {     // used only for internal 
automated testing
+                                               String schema_arg = 
command.substring(14);
+                                               
MDBvalidator.validateSchemaIntegrity(con, schema_arg, false);
                                        } else if (command.equals("\\vdbi")) {
                                                
MDBvalidator.validateDBIntegrity(con);
+                                       } else if 
(command.equals("\\vdbi_noheader")) { // used only for internal automated 
testing
+                                               
MDBvalidator.validateDBIntegrity(con, false);
                                        } else if (command.startsWith("\\l") || 
command.startsWith("\\i")) {
                                                String object = 
command.substring(2).trim();
                                                if (scolonterm && 
object.endsWith(";"))
diff --git a/src/main/java/org/monetdb/util/MDBvalidator.java 
b/src/main/java/org/monetdb/util/MDBvalidator.java
--- a/src/main/java/org/monetdb/util/MDBvalidator.java
+++ b/src/main/java/org/monetdb/util/MDBvalidator.java
@@ -60,6 +60,7 @@ public final class MDBvalidator {
        private int minorversion;
 
        private boolean verbose = false;        // set it to true for tracing 
all generated SQL queries, see validateQuery(qry, ...)
+       private boolean showValidationInfo = true;      // set it to false when 
no validation type header info should be written to stdout
 
        MDBvalidator(Connection conn) {
                con = conn;
@@ -107,8 +108,14 @@ public final class MDBvalidator {
        }
 */
 
+       // public class methods (called from JdbcClient.java)
        public static void validateSqlCatalogIntegrity(final Connection conn) {
+               validateSqlCatalogIntegrity(conn, true);
+       }
+
+       public static void validateSqlCatalogIntegrity(final Connection conn, 
boolean showValidationHeaderInfo) {
                final MDBvalidator mdbv = new MDBvalidator(conn);
+               mdbv.showValidationInfo = showValidationHeaderInfo;
                if (mdbv.checkMonetDBVersion()) {
                        mdbv.validateSchema("sys", null, sys_pkeys, sys_akeys, 
sys_fkeys, sys_notnull, true);
                        mdbv.validateSchema("tmp", null, tmp_pkeys, tmp_akeys, 
tmp_fkeys, tmp_notnull, true);
@@ -116,7 +123,12 @@ public final class MDBvalidator {
        }
 
        public static void validateSqlNetcdfTablesIntegrity(final Connection 
conn) {
+               validateSqlNetcdfTablesIntegrity(conn, true);
+       }
+
+       public static void validateSqlNetcdfTablesIntegrity(final Connection 
conn, boolean showValidationHeaderInfo) {
                final MDBvalidator mdbv = new MDBvalidator(conn);
+               mdbv.showValidationInfo = showValidationHeaderInfo;
                if (mdbv.checkMonetDBVersion()) {
                        // determine if the 5 netcdf tables exist in the sys 
schema
                        if (mdbv.checkTableExists("sys", "netcdf_files")
@@ -129,7 +141,12 @@ public final class MDBvalidator {
        }
 
        public static void validateSqlGeomTablesIntegrity(final Connection 
conn) {
+               validateSqlGeomTablesIntegrity(conn, true);
+       }
+
+       public static void validateSqlGeomTablesIntegrity(final Connection 
conn, boolean showValidationHeaderInfo) {
                final MDBvalidator mdbv = new MDBvalidator(conn);
+               mdbv.showValidationInfo = showValidationHeaderInfo;
                if (mdbv.checkMonetDBVersion()) {
                        if (mdbv.checkTableExists("sys", "spatial_ref_sys"))    
// No need to also test if view sys.geometry_columns exists
                                mdbv.validateSchema("sys", "geom", geom_pkeys, 
geom_akeys, geom_fkeys, geom_notnull, false);
@@ -137,15 +154,26 @@ public final class MDBvalidator {
        }
 
        public static void validateSchemaIntegrity(final Connection conn, final 
String schema) {
+               validateSchemaIntegrity(conn, schema, true);
+       }
+
+       public static void validateSchemaIntegrity(final Connection conn, final 
String schema, boolean showValidationHeaderInfo) {
                final MDBvalidator mdbv = new MDBvalidator(conn);
+               mdbv.showValidationInfo = showValidationHeaderInfo;
                if (mdbv.checkSchemaExists(schema))
                        mdbv.validateSchema(schema, null, null, null, null, 
null, true);
                else
-                       System.out.println("Schema: " + schema + " does not 
exist in this database.");
+                       if (mdbv.showValidationInfo)
+                               System.out.println("Schema: " + schema + " does 
not exist in this database.");
        }
 
        public static void validateDBIntegrity(final Connection conn) {
+               validateDBIntegrity(conn, true);
+       }
+
+       public static void validateDBIntegrity(final Connection conn, boolean 
showValidationHeaderInfo) {
                final MDBvalidator mdbv = new MDBvalidator(conn);
+               mdbv.showValidationInfo = showValidationHeaderInfo;
                final Statement stmt = 
mdbv.createStatement("validateDBIntegrity()");
                if (stmt == null)
                        return;
@@ -169,11 +197,11 @@ public final class MDBvalidator {
                        printExceptions(e);
                }
                freeStmtRs(stmt, rs);
-               if (!hasUserSchemas)
+               if (!hasUserSchemas && mdbv.showValidationInfo)
                        System.out.println("No user schemas found in this 
database.");
        }
 
-
+       // private object methods
        private void validateSchema(
                final String schema,
                final String group,
@@ -222,7 +250,8 @@ public final class MDBvalidator {
                final String checkType)
        {
                final int len = data.length;
-               System.out.println("Checking " + minimumWidth(len,6) + (group 
!= null ? " " + group : "") + " tables/keys  in schema " + schema + " for " + 
checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(len,6) + 
(group != null ? " " + group : "") + " tables/keys  in schema " + schema + " 
for " + checkType + " violations.");
 
                final StringBuilder sb = new StringBuilder(256);        // 
reusable buffer to compose SQL validation queries
                sb.append("SELECT COUNT(*) AS duplicates, ");
@@ -264,7 +293,8 @@ public final class MDBvalidator {
                        .append(" and s.name = '").append(schema).append("'");
                String qry = sb.toString();
                final int count = runCountQuery(qry);
-               System.out.println("Checking " + minimumWidth(count,6) + " keys 
        in schema " + schema + " for " + checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(count,6) 
+ " keys         in schema " + schema + " for " + checkType + " violations.");
 
                ResultSet rs = null;
                try {
@@ -338,7 +368,8 @@ public final class MDBvalidator {
                final String checkType)
        {
                final int len = data.length;
-               System.out.println("Checking " + minimumWidth(len,6) + (group 
!= null ? " " + group : "") + " foreign keys in schema " + schema + " for " + 
checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(len,6) + 
(group != null ? " " + group : "") + " foreign keys in schema " + schema + " 
for " + checkType + " violations.");
 
                final StringBuilder sb = new StringBuilder(400);        // 
reusable buffer to compose SQL validation queries
                sb.append("SELECT ");
@@ -390,7 +421,8 @@ public final class MDBvalidator {
                        .append(" and s.name = '").append(schema).append("'");
                String qry = sb.toString();
                final int count = runCountQuery(qry);
-               System.out.println("Checking " + minimumWidth(count,6) + " 
foreign keys in schema " + schema + " for " + checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(count,6) 
+ " foreign keys in schema " + schema + " for " + checkType + " violations.");
 
                ResultSet rs = null;
                try {
@@ -500,7 +532,8 @@ public final class MDBvalidator {
                final String checkType)
        {
                final int len = data.length;
-               System.out.println("Checking " + minimumWidth(len,6) + (group 
!= null ? " " + group : "") + " columns      in schema " + schema + " for " + 
checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(len,6) + 
(group != null ? " " + group : "") + " columns      in schema " + schema + " 
for " + checkType + " violations.");
 
                final StringBuilder sb = new StringBuilder(256);        // 
reusable buffer to compose SQL validation queries
                sb.append("SELECT ");
@@ -554,7 +587,8 @@ public final class MDBvalidator {
                        .append(" and s.name = '").append(schema).append("'");
                String qry = sb.toString();
                final int count = runCountQuery(qry);
-               System.out.println("Checking " + minimumWidth(count,6) + " 
columns      in schema " + schema + " for " + checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(count,6) 
+ " columns      in schema " + schema + " for " + checkType + " violations.");
 
                ResultSet rs = null;
                try {
@@ -605,7 +639,8 @@ public final class MDBvalidator {
                        .append(" and s.name = '").append(schema).append("'");
                String qry = sb.toString();
                final int count = runCountQuery(qry);
-               System.out.println("Checking " + minimumWidth(count,6) + " 
columns      in schema " + schema + " for " + checkType + " violations.");
+               if (showValidationInfo)
+                       System.out.println("Checking " + minimumWidth(count,6) 
+ " columns      in schema " + schema + " for " + checkType + " violations.");
 
                ResultSet rs = null;
                try {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to