db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepa Remesh (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-452) Import/export fails for DECIMAL type in J2ME/Foundation
Date Thu, 14 Jul 2005 01:33:13 GMT
     [ http://issues.apache.org/jira/browse/DERBY-452?page=all ]

Deepa Remesh updated DERBY-452:
-------------------------------

    Attachment: derby-452.diff
                derby-452.status
                derbyall_report_j2me.txt

This patch handles export of DECIMAL type in J2ME/Foundation. 

The code snippet which was throwing the exception is below:
	 //convert resultset data to string array
	  public String[] getOneRowAtATime(ResultSet rs) throws Exception {
	    int columnCount = exportResultSetForObject.getColumnCount();

		ResultSetMetaData rsm=rs.getMetaData();
	    if (rs.next()){
	       String[] rowObjects = new String[columnCount];
	       for (int colNum = 0; colNum < columnCount; colNum++) {
		   if (rs.getObject(colNum + 1) != null)
				{
					rowObjects[colNum]=rs.getString(colNum + 1);
				}
	       }
	       return rowObjects;
	    }
     
In J2ME/Foundation, this was throwing an exception because getObject on DECIMAL types is not
supported.  I removed the call to getObject since it was a redundant check. getString internally
checks for null values. The new code is below:
      	 //convert resultset data to string array
	  public String[] getOneRowAtATime(ResultSet rs) throws Exception {
	    int columnCount = exportResultSetForObject.getColumnCount();

		ResultSetMetaData rsm=rs.getMetaData();
	    if (rs.next()){
	       String[] rowObjects = new String[columnCount];
	       for (int colNum = 0; colNum < columnCount; colNum++) {
		   rowObjects[colNum]=rs.getString(colNum + 1);
	       }
	       return rowObjects;
	    }    
     
The following tests now pass in J2ME/FP.  I have removed the excludes for them:
tools/importExport.java
tools/importExportThruIJ.sql
tools/ieptests.sql

Ran derbyall with Sun Java 1.4.2 and IBM WCTME 5.7 Foundation Profile. One testcase failed
in the latter. The failure is not related to this change. 
     
Please review this patch and commit it.     

Thanks,
Deepa     

> Import/export fails for DECIMAL type in J2ME/Foundation
> -------------------------------------------------------
>
>          Key: DERBY-452
>          URL: http://issues.apache.org/jira/browse/DERBY-452
>      Project: Derby
>         Type: Improvement
>   Components: Tools
>  Environment: J2ME/CDC/Foundation using IBM's WCTME 5.7
>     Reporter: Deepa Remesh
>     Assignee: Deepa Remesh
>  Attachments: derby-452.diff, derby-452.status, derbyall_report_j2me.txt
>
> Derby import/export tool has to be modified to work in J2ME/Foundation.
> I tried running the testcase importExport.java and it fails with following exception:
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Test importExport starting
> testing non-existing data file
> Data file not found: extinout/Z.dat
> testing null data file
> Data file cannot be null. 
> testing empty table
> testing empty table with Delimited format
> testing empty table import Field/Char Delimiters
> PASS: setup complete
> testing import/export with default options
> FAIL: exception thrown:
> ERROR 38000: The exception 'SQL Exception: An attempt was made to get a data value of
type 'java.lang.Object' from a data value of type 'DECIMAL'.' was thrown while evaluating
an expression.
> ERROR 22005: An attempt was made to get a data value of type 'java.lang.Object' from
a data value of type 'DECIMAL'.
> Test importExport finished
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> The exception is thrown because Derby system procedure for export calls getObject() on
a DECIMAL type. This is not supported in J2ME/Foundation. Derby Embedded JSR 169 Functional
Spec asks to use alternate JDBC getXXX and setXXX methods (like getString and setString) for
DECIMAL type. I think the Derby import/export utility can be modified to call getString and
setString for DECIMAL type when using J2ME/Foundation.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message