db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Vergnaud (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-3296) Importing to table in default schema fails when another table with the same name exists in a different schema
Date Sat, 31 Mar 2012 07:59:09 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3296?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243076#comment-13243076
] 

Eric Vergnaud commented on DERBY-3296:
--------------------------------------

Hi,

this is broken again in 10.8.2.2 using EmbeddedDriver40 and Java 1.6 on MacOSX, even when
specifying the schema

I have a simple unit test running this code:
	public void csvImport(String csvFilePath) throws SQLException {
		final String sql = "CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE ('PANDORA','COUNTRIES','" + csvFilePath
+ "',NULL,NULL,'UTF-8',0)";	
		Connection cn = ds.getConnection();
		try {
			Statement st = cn.createStatement();
			try {
				st.execute(sql);
			} finally {
				st.close();
			}
		} finally {
			cn.close();
		}
	}

which throws the following exception:

java.sql.SQLException: The exception 'java.sql.SQLException: Column 'COLUMN2' is either not
in any table in the FROM list or appears within a join specification and is outside the scope
of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If
this is a CREATE or ALTER TABLE  statement then 'COLUMN2' is not a column in the target table.'
was thrown while evaluating an expression.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
	at pandora.CountryDAO.csvImport(CountryDAO.java:313)
	at pandora.TestCountryDAO.testImport(TestCountryDAO.java:99)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.sql.SQLException: The exception 'java.sql.SQLException: Column 'COLUMN2' is
either not in any table in the FROM list or appears within a join specification and is outside
the scope of the join specification or appears in a HAVING clause and is not in the GROUP
BY list. If this is a CREATE or ALTER TABLE  statement then 'COLUMN2' is not a column in the
target table.' was thrown while evaluating an expression.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
	... 36 more
Caused by: java.sql.SQLException: Column 'COLUMN2' is either not in any table in the FROM
list or appears within a join specification and is outside the scope of the join specification
or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER
TABLE  statement then 'COLUMN2' is not a column in the target table.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
	at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
	at org.apache.derby.impl.load.Import.performImport(Unknown Source)
	at org.apache.derby.impl.load.Import.importTable(Unknown Source)
	at org.apache.derby.catalog.SystemProcedures.SYSCS_IMPORT_TABLE(Unknown Source)
	at org.apache.derby.exe.acdf1940dax0136x67bdx26aex0000041f37b01.g0(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(Unknown Source)
	at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(Unknown Source)
	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
	... 29 more
Caused by: ERROR 42X04: Column 'COLUMN2' is either not in any table in the FROM list or appears
within a join specification and is outside the scope of the join specification or appears
in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement
then 'COLUMN2' is not a column in the target table.
	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
	at org.apache.derby.impl.sql.compile.ColumnReference.bindExpression(Unknown Source)
	at org.apache.derby.impl.sql.compile.ResultColumn.bindExpression(Unknown Source)
	at org.apache.derby.impl.sql.compile.ResultColumnList.bindExpressions(Unknown Source)
	at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(Unknown Source)
	at org.apache.derby.impl.sql.compile.SelectNode.bindExpressionsWithTables(Unknown Source)
	at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressionsWithTables(Unknown Source)
	at org.apache.derby.impl.sql.compile.DMLStatementNode.bindResultSetsWithTables(Unknown Source)
	at org.apache.derby.impl.sql.compile.InsertNode.bindStatement(Unknown Source)
	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
Source)
	... 48 more




                
> Importing to table in default schema fails when another table with the same name exists
in a different schema
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3296
>                 URL: https://issues.apache.org/jira/browse/DERBY-3296
>             Project: Derby
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 10.4.1.3
>         Environment: java version "1.5.0_14"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
> Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)
> Linux 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:14:12 EST 2006 i686 athlon i386 GNU/Linux
>            Reporter: Vemund Østgaard
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.5.2.0, 10.6.1.0
>
>         Attachments: d3296-2.diff, d3296.diff
>
>
> I discovered this problem while trying to get suites.All to run on the phoneME advanced
platform, but it is easy to reproduce also with Java SE. 
> The problem is that importing a table fails if there exists a table with the same name
in a different schema. The error is:
> ERROR 42X04: Column 'COLUMN2' is either not in any table in the FROM list or appears
within a join specification and is outside the scope of the join specification or appears
in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement
then 'COLUMN2' is not a column in the target table.
> If the table in the other schema is removed, the import command succeeds. If the import
command is executed with an explicit schema name, instead of relying on "null" to give the
default schema, the command also succeeds.
> I believe this is a bug.
> The following sequence of commands reproduces the problem:
> ij version 10.4
> ij> connect 'jdbc:derby:MyDbTest;create=true';
> ij> create table t1 (a int);
> 0 rows inserted/updated/deleted
> ij> insert into t1 values 1,2,3;
> 3 rows inserted/updated/deleted
> ij> call SYSCS_UTIL.SYSCS_EXPORT_TABLE(null, 'T1', 't1.txt', null, null, null);
> 0 rows inserted/updated/deleted
> ij>  create schema iep;
> 0 rows inserted/updated/deleted
> ij> create table iep.t1 (b int);
> 0 rows inserted/updated/deleted
> ij> call SYSCS_UTIL.SYSCS_IMPORT_TABLE(null, 'T1', 't1.txt', null, null, null, 0);
> ERROR 38000: The exception 'java.sql.SQLException: Column 'COLUMN2' is either not in
any table in the FROM list or appears within a join specification and is outside the scope
of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If
this is a CREATE or ALTER TABLE  statement then 'COLUMN2' is not a column in the target table.'
was thrown while evaluating an expression.
> ERROR 42X04: Column 'COLUMN2' is either not in any table in the FROM list or appears
within a join specification and is outside the scope of the join specification or appears
in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement
then 'COLUMN2' is not a column in the target table.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message