killbill-memoizeit

util: enlarge DefaultColumnInfo numeric fields This seems

4/18/2017 8:02:06 AM

Details

diff --git a/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java b/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
index e9007fb..78e6d0f 100644
--- a/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
+++ b/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
@@ -45,8 +45,8 @@ public interface DatabaseSchemaSqlDao {
         public DefaultColumnInfo map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException {
             final String tableName = r.getString("table_name");
             final String columnName = r.getString("column_name");
-            final Integer scale = r.getInt("numeric_scale");
-            final Integer precision = r.getInt("numeric_precision");
+            final Long scale = r.getLong("numeric_scale");
+            final Long precision = r.getLong("numeric_precision");
 
             // Special handling for PostgreSQL - the implementation of AbstractJdbc2ResultSet#getBoolean doesn't support YES/NO
             final String isNullableString = r.getString("is_nullable");
@@ -59,7 +59,7 @@ public interface DatabaseSchemaSqlDao {
                 isNullable = r.getBoolean("is_nullable");
             }
 
-            final Integer maximumLength = r.getInt("character_maximum_length");
+            final Long maximumLength = r.getLong("character_maximum_length");
             final String dataType = r.getString("data_type");
 
             return new DefaultColumnInfo(tableName, columnName, scale, precision, isNullable, maximumLength, dataType);
diff --git a/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java b/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
index 243e89a..44e0b5d 100644
--- a/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
+++ b/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
@@ -1,7 +1,9 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 The Billing Project, LLC
  *
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
  * (the "License"); you may not use this file except in compliance with the
  * License.  You may obtain a copy of the License at:
  *
@@ -22,14 +24,14 @@ public class DefaultColumnInfo implements ColumnInfo {
 
     private final String tableName;
     private final String columnName;
-    private final int scale;
-    private final int precision;
+    private final Long scale;
+    private final Long precision;
     private final boolean isNullable;
-    private final int maximumLength;
+    private final Long maximumLength;
     private final String dataType;
 
-    public DefaultColumnInfo(final String tableName, final String columnName, final int scale, final int precision,
-                             final boolean nullable, final int maximumLength, final String dataType) {
+    public DefaultColumnInfo(final String tableName, final String columnName, final Long scale, final Long precision,
+                             final boolean nullable, final Long maximumLength, final String dataType) {
         this.tableName = tableName;
         this.columnName = columnName;
         this.scale = scale;
@@ -49,11 +51,11 @@ public class DefaultColumnInfo implements ColumnInfo {
         return columnName;
     }
 
-    public int getScale() {
+    public Long getScale() {
         return scale;
     }
 
-    public int getPrecision() {
+    public Long getPrecision() {
         return precision;
     }
 
@@ -61,7 +63,7 @@ public class DefaultColumnInfo implements ColumnInfo {
         return isNullable;
     }
 
-    public int getMaximumLength() {
+    public Long getMaximumLength() {
         return maximumLength;
     }
 
diff --git a/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java b/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
index 90a96a4..d76554d 100644
--- a/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
+++ b/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
@@ -39,9 +39,9 @@ public class TestCSVExportOutputStream extends UtilTestSuiteNoDB {
         final String tableName = UUID.randomUUID().toString();
         out.newTable(tableName,
                      ImmutableList.<ColumnInfo>of(
-                             new DefaultColumnInfo(tableName, "first_name", 0, 0, true, 0, "varchar"),
-                             new DefaultColumnInfo(tableName, "last_name", 0, 0, true, 0, "varchar"),
-                             new DefaultColumnInfo(tableName, "age", 0, 0, true, 0, "tinyint"))
+                             new DefaultColumnInfo(tableName, "first_name", 0L, 0L, true, 0L, "varchar"),
+                             new DefaultColumnInfo(tableName, "last_name", 0L, 0L, true, 0L, "varchar"),
+                             new DefaultColumnInfo(tableName, "age", 0L, 0L, true, 0L, "tinyint"))
                     );
 
         // Write some data
diff --git a/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java b/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
index 064a22b..68f8773 100644
--- a/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
+++ b/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
@@ -56,8 +56,8 @@ public class TestValidationManager extends UtilTestSuiteWithEmbeddedDB {
 
         final DefaultColumnInfo numericColumnInfo = vm.getColumnInfo(TABLE_NAME, "column3");
         assertNotNull(numericColumnInfo);
-        assertEquals(numericColumnInfo.getScale(), 4);
-        assertEquals(numericColumnInfo.getPrecision(), 10);
+        assertEquals(numericColumnInfo.getScale(), (Long) 4L);
+        assertEquals(numericColumnInfo.getPrecision(), (Long) 10L);
     }
 
     @Test(groups = "slow")