Rick Hillegas created DERBY-6368:
------------------------------------
Summary: CHECK constraints should not be allowed to invoke
non-deterministic functions.
Key: DERBY-6368
URL: https://issues.apache.org/jira/browse/DERBY-6368
Project: Derby
Issue Type: Bug
Components: SQL
Affects Versions: 10.11.0.0
Reporter: Rick Hillegas
CHECK constraints must be deterministic expressions according to the 2011 SQL
Standard, part 2, section 11.9 (check constraint definition), syntax rule 5.
However, Derby allows CHECK constraints to invoke non-deterministic functions.
The following script shows this:
create function parseInt( a varchar( 10 ) ) returns int
language java parameter style java
external name 'java.lang.Integer.parseInt';
-- fails because parseInt() is not deterministic
create table t1( a varchar( 10 ), b generated always as ( parseInt( a ) ) );
-- succeeds but shouldn't
create table t2( a varchar( 10 ) check ( parseInt( a ) > 0 ) );
The fix for this is probably to mimic the treatment of generation clauses.
--
This message was sent by Atlassian JIRA
(v6.1#6144)