Author: aadamchik
Date: Thu Aug 10 10:45:09 2006
New Revision: 430459

URL: http://svn.apache.org/viewvc?rev=430459&view=rev
Log:
CAY-625

Modified:
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/DbAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DbAttribute.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DerivedDbAttribute.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/MapLoader.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/access/DbLoaderTst.java

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java
 Thu Aug 10 10:45:09 2006
@@ -82,7 +82,7 @@
         this.label = name;
         this.jdbcType = attribute.getType();
         this.javaClass = getDefaultJavaClass(attribute.getMaxLength(), 
attribute
-                .getPrecision());
+                .getScale());
 
         if (attribute.getEntity() != null) {
             this.tableName = attribute.getEntity().getName();

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
 Thu Aug 10 10:45:09 2006
@@ -103,7 +103,7 @@
             Object value = query.getValue(i);
             DbAttribute attribute = (DbAttribute) dbAttributes.get(i);
             adapter.bindParameter(statement, value, i + 1, 
attribute.getType(), attribute
-                    .getPrecision());
+                    .getScale());
 
         }
     }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
 Thu Aug 10 10:45:09 2006
@@ -89,7 +89,7 @@
                     value,
                     parameterIndex++,
                     attribute.getType(),
-                    attribute.getPrecision());
+                    attribute.getScale());
         }
     }
 }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
 Thu Aug 10 10:45:09 2006
@@ -61,7 +61,7 @@
                 j++;
                 Object value = query.getValue(i);
                 adapter.bindParameter(statement, value, j, 
attribute.getType(), attribute
-                        .getPrecision());
+                        .getScale());
             }
         }
     }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
 Thu Aug 10 10:45:09 2006
@@ -136,7 +136,7 @@
             if (isUpdateableColumn(value, type)) {
                 adapter
                         .bindParameter(statement, value, j, type, attribute
-                                .getPrecision());
+                                .getScale());
 
                 j++;
             }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
 Thu Aug 10 10:45:09 2006
@@ -119,9 +119,8 @@
                     stmt.setObject(i + 1, val);
                 }
                 else {
-                    int type = attr.getType();
-                    int precision = attr.getPrecision();
-                    adapter.bindParameter(stmt, val, i + 1, type, precision);
+                    adapter.bindParameter(stmt, val, i + 1, attr.getType(), 
attr
+                            .getScale());
                 }
             }
         }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
 Thu Aug 10 10:45:09 2006
@@ -98,7 +98,7 @@
                     value,
                     parameterIndex++,
                     attribute.getType(),
-                    attribute.getPrecision());
+                    attribute.getScale());
         }
 
         for (int i = 0; i < qualifierAttributes.size(); i++) {
@@ -115,7 +115,7 @@
                     value,
                     parameterIndex++,
                     attribute.getType(),
-                    attribute.getPrecision());
+                    attribute.getScale());
         }
     }
 }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/DbAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/DbAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/DbAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/DbAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -141,7 +141,8 @@
      *            right JDBC type.
      * @param type JDBC column type
      * @param size database column size (ignored if less than zero)
-     * @param precision database column precision (ignored if less than zero)
+     * @param scale database column scale, i.e. the number of decimal digits 
(ignored if
+     *            less than zero)
      * @param allowNulls database column nullable parameter
      */
     public DbAttribute buildAttribute(
@@ -149,7 +150,7 @@
             String typeName,
             int type,
             int size,
-            int precision,
+            int scale,
             boolean allowNulls);
 
     /**
@@ -160,7 +161,7 @@
             Object object,
             int pos,
             int sqlType,
-            int precision) throws SQLException, Exception;
+            int scale) throws SQLException, Exception;
 
     /**
      * Returns the name of the table type (as returned by

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -291,20 +291,20 @@
         // append size and precision (if applicable)
         if (TypesMapping.supportsLength(column.getType())) {
             int len = column.getMaxLength();
-            int prec = TypesMapping.isDecimal(column.getType())
-                    ? column.getPrecision()
+            int scale = TypesMapping.isDecimal(column.getType())
+                    ? column.getScale()
                     : -1;
 
             // sanity check
-            if (prec > len) {
-                prec = -1;
+            if (scale > len) {
+                scale = -1;
             }
 
             if (len > 0) {
                 sqlBuffer.append('(').append(len);
 
-                if (prec >= 0) {
-                    sqlBuffer.append(", ").append(prec);
+                if (scale >= 0) {
+                    sqlBuffer.append(", ").append(scale);
                 }
 
                 sqlBuffer.append(')');
@@ -394,7 +394,7 @@
             String typeName,
             int type,
             int size,
-            int precision,
+            int scale,
             boolean allowNulls) {
 
         DbAttribute attr = new DbAttribute();
@@ -406,8 +406,8 @@
             attr.setMaxLength(size);
         }
 
-        if (precision >= 0) {
-            attr.setPrecision(precision);
+        if (scale >= 0) {
+            attr.setScale(scale);
         }
 
         return attr;
@@ -443,7 +443,7 @@
             Object object,
             int pos,
             int sqlType,
-            int precision) throws SQLException, Exception {
+            int scale) throws SQLException, Exception {
 
         if (object == null) {
             statement.setNull(pos, sqlType);
@@ -451,7 +451,7 @@
         else {
             ExtendedType typeProcessor = getExtendedTypes().getRegisteredType(
                     object.getClass());
-            typeProcessor.setJdbcObject(statement, object, pos, sqlType, 
precision);
+            typeProcessor.setJdbcObject(statement, object, pos, sqlType, 
scale);
         }
     }
 

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
 Thu Aug 10 10:45:09 2006
@@ -142,18 +142,18 @@
             // append size and precision (if applicable)
             if (TypesMapping.supportsLength(at.getType())) {
                 int len = at.getMaxLength();
-                int prec = TypesMapping.isDecimal(at.getType()) ? 
at.getPrecision() : -1;
+                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
 
                 // sanity check
-                if (prec > len) {
-                    prec = -1;
+                if (scale > len) {
+                    scale = -1;
                 }
 
                 if (len > 0) {
                     buf.append('(').append(len);
 
-                    if (prec >= 0) {
-                        buf.append(", ").append(prec);
+                    if (scale >= 0) {
+                        buf.append(", ").append(scale);
                     }
 
                     buf.append(')');

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -111,20 +111,20 @@
         String length = "";
         if (typeSupportsLength(column.getType())) {
             int len = column.getMaxLength();
-            int prec = TypesMapping.isDecimal(column.getType())
-                    ? column.getPrecision()
+            int scale = TypesMapping.isDecimal(column.getType())
+                    ? column.getScale()
                     : -1;
 
             // sanity check
-            if (prec > len) {
-                prec = -1;
+            if (scale > len) {
+                scale = -1;
             }
 
             if (len > 0) {
                 length = " (" + len;
 
-                if (prec >= 0) {
-                    length += ", " + prec;
+                if (scale >= 0) {
+                    length += ", " + scale;
                 }
 
                 length += ")";

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -151,18 +151,18 @@
             }
             else if (TypesMapping.supportsLength(at.getType())) {
                 int len = at.getMaxLength();
-                int prec = TypesMapping.isDecimal(at.getType()) ? 
at.getPrecision() : -1;
+                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
 
                 // sanity check
-                if (prec > len) {
-                    prec = -1;
+                if (scale > len) {
+                    scale = -1;
                 }
 
                 if (len > 0) {
                     buf.append('(').append(len);
 
-                    if (prec >= 0) {
-                        buf.append(", ").append(prec);
+                    if (scale >= 0) {
+                        buf.append(", ").append(scale);
                     }
 
                     buf.append(')');

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -109,18 +109,18 @@
             // append size and precision (if applicable)
             if (TypesMapping.supportsLength(at.getType())) {
                 int len = at.getMaxLength();
-                int prec = TypesMapping.isDecimal(at.getType()) ? 
at.getPrecision() : -1;
+                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
 
                 // sanity check
-                if (prec > len) {
-                    prec = -1;
+                if (scale > len) {
+                    scale = -1;
                 }
 
                 if (len > 0) {
                     buf.append('(').append(len);
 
-                    if (prec >= 0) {
-                        buf.append(", ").append(prec);
+                    if (scale >= 0) {
+                        buf.append(", ").append(scale);
                     }
 
                     buf.append(')');

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -94,7 +94,7 @@
         String typeName,
         int type,
         int size,
-        int precision,
+        int scale,
         boolean allowNulls) {
 
         // OpenBase makes no distinction between CHAR and VARCHAR
@@ -103,7 +103,7 @@
             type = Types.VARCHAR;
         }
 
-        return super.buildAttribute(name, typeName, type, size, precision, 
allowNulls);
+        return super.buildAttribute(name, typeName, type, size, scale, 
allowNulls);
     }
 
     /**
@@ -192,18 +192,18 @@
             // append size and precision (if applicable)
             if (TypesMapping.supportsLength(at.getType())) {
                 int len = at.getMaxLength();
-                int prec = TypesMapping.isDecimal(at.getType()) ? 
at.getPrecision() : -1;
+                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
 
                 // sanity check
-                if (prec > len) {
-                    prec = -1;
+                if (scale > len) {
+                    scale = -1;
                 }
 
                 if (len > 0) {
                     buf.append('(').append(len);
 
-                    if (prec >= 0) {
-                        buf.append(", ").append(prec);
+                    if (scale >= 0) {
+                        buf.append(", ").append(scale);
                     }
 
                     buf.append(')');

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -238,7 +238,7 @@
             String typeName,
             int type,
             int size,
-            int precision,
+            int scale,
             boolean allowNulls) {
 
         DbAttribute attr = super.buildAttribute(
@@ -246,12 +246,12 @@
                 typeName,
                 type,
                 size,
-                precision,
+                scale,
                 allowNulls);
 
-        if (type == Types.DECIMAL && precision <= 0) {
+        if (type == Types.DECIMAL && scale <= 0) {
             attr.setType(Types.INTEGER);
-            attr.setPrecision(-1);
+            attr.setScale(-1);
         }
         else if (type == Types.OTHER) {
             // in this case we need to guess the attribute type

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
 Thu Aug 10 10:45:09 2006
@@ -170,7 +170,7 @@
                         value,
                         i + 1,
                         attribute.getType(),
-                        attribute.getPrecision());
+                        attribute.getScale());
             }
 
             ResultSet result = selectStatement.executeQuery();

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
 Thu Aug 10 10:45:09 2006
@@ -90,7 +90,7 @@
             String typeName,
             int type,
             int size,
-            int precision,
+            int scale,
             boolean allowNulls) {
 
         // "bytea" maps to pretty much any binary type, so
@@ -108,7 +108,7 @@
             type = Types.CLOB;
         }
 
-        return super.buildAttribute(name, typeName, type, size, precision, 
allowNulls);
+        return super.buildAttribute(name, typeName, type, size, scale, 
allowNulls);
     }
 
     /**
@@ -169,18 +169,18 @@
             // append size and precision (if applicable)
             if (typeSupportsLength(at.getType())) {
                 int len = at.getMaxLength();
-                int prec = TypesMapping.isDecimal(at.getType()) ? 
at.getPrecision() : -1;
+                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
 
                 // sanity check
-                if (prec > len) {
-                    prec = -1;
+                if (scale > len) {
+                    scale = -1;
                 }
 
                 if (len > 0) {
                     buf.append('(').append(len);
 
-                    if (prec >= 0) {
-                        buf.append(", ").append(prec);
+                    if (scale >= 0) {
+                        buf.append(", ").append(scale);
                     }
 
                     buf.append(')');

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DbAttribute.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DbAttribute.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DbAttribute.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DbAttribute.java
 Thu Aug 10 10:45:09 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.map;
 
 import java.util.Iterator;
@@ -62,8 +61,16 @@
     // The length of CHAR or VARCHAr or max num of digits for DECIMAL.
     protected int maxLength = -1;
 
-    // The number of digits after period for DECIMAL.
-    protected int precision = -1;
+    /**
+     * @since 3.0
+     */
+    protected int scale = -1;
+
+    /**
+     * @since 3.0
+     */
+    // must call it 'attributePrecison' as 'precision' in 1.2 really meant 
'scale'
+    protected int attributePrecision = -1;
 
     public DbAttribute() {
         super();
@@ -114,9 +121,15 @@
             encoder.print('\"');
         }
 
-        if (getPrecision() > 0) {
-            encoder.print(" precision=\"");
-            encoder.print(getPrecision());
+        if (getScale() > 0) {
+            encoder.print(" scale=\"");
+            encoder.print(getScale());
+            encoder.print('\"');
+        }
+
+        if (getAttributePrecision() > 0) {
+            encoder.print(" attributePrecision=\"");
+            encoder.print(getAttributePrecision());
             encoder.print('\"');
         }
 
@@ -222,14 +235,20 @@
 
     /**
      * Returns the number of digits after period for DECIMAL.
+     * 
+     * @deprecated since 3.0 as this property really referred to 'scale'. Use
+     *             [EMAIL PROTECTED] #getScale()} instead.
      */
     public int getPrecision() {
-        return precision;
+        return getScale();
     }
 
-    /** Sets the number of digits after period for DECIMAL. */
-    public void setPrecision(int precision) {
-        this.precision = precision;
+    /**
+     * @deprecated since 3.0 as this property really referred to 'scale'. Use
+     *             [EMAIL PROTECTED] #setScale(int)} instead.
+     */
+    public void setPrecision(int i) {
+        setScale(i);
     }
 
     /**
@@ -259,5 +278,36 @@
                         e));
             }
         }
+    }
+
+    /**
+     * @since 3.0
+     */
+    public int getAttributePrecision() {
+        return attributePrecision;
+    }
+
+    /**
+     * @since 3.0
+     */
+    public void setAttributePrecision(int attributePrecision) {
+        this.attributePrecision = attributePrecision;
+    }
+
+    /**
+     * Returns the number of digits after period for decimal attributes. 
Returns "-1" if
+     * not set.
+     * 
+     * @since 3.0
+     */
+    public int getScale() {
+        return scale;
+    }
+
+    /**
+     * @since 3.0
+     */
+    public void setScale(int scale) {
+        this.scale = scale;
     }
 }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DerivedDbAttribute.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DerivedDbAttribute.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DerivedDbAttribute.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/DerivedDbAttribute.java
 Thu Aug 10 10:45:09 2006
@@ -81,7 +81,8 @@
         setType(parentProto.getType());
         setMandatory(parentProto.isMandatory());
         setMaxLength(parentProto.getMaxLength());
-        setPrecision(parentProto.getPrecision());
+        setAttributePrecision(parentProto.getAttributePrecision());
+        setScale(parentProto.getScale());
         setPrimaryKey(parentProto.isPrimaryKey());
 
         setExpressionSpec(ATTRIBUTE_TOKEN);
@@ -118,9 +119,15 @@
             encoder.print('\"');
         }
 
-        if (getPrecision() > 0) {
-            encoder.print(" precision=\"");
-            encoder.print(getPrecision());
+        if (getScale() > 0) {
+            encoder.print(" scale=\"");
+            encoder.print(getScale());
+            encoder.print('\"');
+        }
+        
+        if (getAttributePrecision() > 0) {
+            encoder.print(" attributePrecision=\"");
+            encoder.print(getAttributePrecision());
             encoder.print('\"');
         }
 

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/MapLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/MapLoader.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/MapLoader.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/map/MapLoader.java
 Thu Aug 10 10:45:09 2006
@@ -393,9 +393,20 @@
             attrib.setMaxLength(Integer.parseInt(length));
         }
 
-        String precision = atts.getValue("", "precision");
+        // this is an obsolete 1.2 'precision' attribute that really meant 
'scale'
+        String pseudoPrecision = atts.getValue("", "precision");
+        if (pseudoPrecision != null) {
+            attrib.setScale(Integer.parseInt(pseudoPrecision));
+        }
+        
+        String precision = atts.getValue("", "attributePrecision");
         if (precision != null) {
-            attrib.setPrecision(Integer.parseInt(precision));
+            attrib.setAttributePrecision(Integer.parseInt(precision));
+        }
+        
+        String scale = atts.getValue("", "scale");
+        if (scale != null) {
+            attrib.setScale(Integer.parseInt(scale));
         }
 
         attrib.setPrimaryKey(TRUE.equalsIgnoreCase(atts.getValue("", 
"isPrimaryKey")));
@@ -413,15 +424,28 @@
         ((DerivedDbAttribute) attrib).setExpressionSpec(spec);
         dbEntity.addAttribute(attrib);
 
-        String temp = atts.getValue("", "length");
-        if (temp != null) {
-            attrib.setMaxLength(Integer.parseInt(temp));
-        }
-        temp = atts.getValue("", "precision");
-        if (temp != null) {
-            attrib.setPrecision(Integer.parseInt(temp));
+        String length = atts.getValue("", "length");
+        if (length != null) {
+            attrib.setMaxLength(Integer.parseInt(length));
+        }
+        
+        // this is an obsolete 1.2 'precision' attribute that really meant 
'scale'
+        String pseudoPrecision = atts.getValue("", "precision");
+        if (pseudoPrecision != null) {
+            attrib.setScale(Integer.parseInt(pseudoPrecision));
+        }
+        
+        String precision = atts.getValue("", "attributePrecision");
+        if (precision != null) {
+            attrib.setAttributePrecision(Integer.parseInt(precision));
+        }
+        
+        String scale = atts.getValue("", "scale");
+        if (scale != null) {
+            attrib.setScale(Integer.parseInt(scale));
         }
-        temp = atts.getValue("", "isPrimaryKey");
+        
+        String temp = atts.getValue("", "isPrimaryKey");
         if (temp != null && temp.equalsIgnoreCase(TRUE)) {
             attrib.setPrimaryKey(true);
         }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
 Thu Aug 10 10:45:09 2006
@@ -435,7 +435,7 @@
                         scale = (Integer) prototypeAttrMap.get("scale");
 
                     if (scale != null)
-                        dbAttr.setPrecision(scale.intValue());
+                        dbAttr.setScale(scale.intValue());
 
                     if (primaryKeys.contains(attrName))
                         dbAttr.setPrimaryKey(true);

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/access/DbLoaderTst.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/access/DbLoaderTst.java?rev=430459&r1=430458&r2=430459&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/access/DbLoaderTst.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/access/DbLoaderTst.java
 Thu Aug 10 10:45:09 2006
@@ -280,7 +280,7 @@
                 msgForTypeMismatch(Types.DECIMAL, decimalAttr),
                 Types.DECIMAL == decimalAttr.getType()
                         || Types.NUMERIC == decimalAttr.getType());
-        assertEquals(2, decimalAttr.getPrecision());
+        assertEquals(2, decimalAttr.getScale());
 
         // check varchar
         assertEquals(
@@ -326,7 +326,7 @@
                 // length and precision doesn't have to be the same
                 // it must be greater or equal
                 assertTrue(origAttr.getMaxLength() <= newAttr.getMaxLength());
-                assertTrue(origAttr.getPrecision() <= newAttr.getPrecision());
+                assertTrue(origAttr.getScale() <= newAttr.getScale());
             }
         }
     }


Reply via email to