Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
10.1.3.1
-
None
-
Normal
-
High Value Fix, Repro attached, Workaround attached
Description
When preparing a "INSERT INTO table SELECT FROM (...)" statement,
Derby in some cases throw a NullPointerException or an
AssertFailure. This happens when a '?' occurs in a VALUES statement in
the from list. If one tries to access the table after the
NullPointerException, this exception is thrown:
ERROR 40XT0: An internal error was identified by RawStore module.
Example:
ij> create table t (text varchar(20), len int);
0 rows inserted/updated/deleted
ij> prepare p as 'insert into t select x, length from (values) as v';
ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
ij> select * from t;
ERROR 40XT0: An internal error was identified by RawStore module.
Replacing '?' with 'CAST (? AS VARCHAR(20))' fixes the problem, but
there is enough information in the query to determine the type of the
parameter even without the cast.