db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian d'Heureuse (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-7) Bug in NULLIF Function
Date Tue, 28 Dec 2004 17:01:09 GMT
     [ http://nagoya.apache.org/jira/browse/DERBY-7?page=comments#action_57093 ]
Christian d'Heureuse commented on DERBY-7:

I approve the fix and I agree that NULLIF(L,R) should return the data type of L (and does
so with the fix).

But the proposed fix also affects the CASE expression.

 CASE WHEN BooleanExpression THEN thenExpression ELSE elseExpression END

The effect of the fix is that CASE accepts values that are not "type compatible" (for thenExpression
and elseExpression), e.g. CHAR and INT.
CASE returns the "dominant" type of thenExpression and elseExpression (see DataTypeDescriptor.getDominantType()).
The "dominant" type is the one that comes first in the list {USER-defined, BLOB, LONGVARBIT,
... CHAR} (according to the typePrecedence constants in TypeId.java). For DECIMAL/NUMERIC
types, scale and precision are broadened to matche both input types.

The documentation of NULLIF and CASE in the reference manual should be complemented.
see http://incubator.apache.org/derby/manuals/reference/sqlj66.html
NULLIF is currently not explained at all.
For CASE, the formulation "a built-in broadening conversion must exist" should be extended
and the data type of the result should be documented.

> Bug in NULLIF Function
> ----------------------
>          Key: DERBY-7
>          URL: http://nagoya.apache.org/jira/browse/DERBY-7
>      Project: Derby
>         Type: Bug
>   Components: SQL
>     Versions:
>     Reporter: Tulika Agrawal
>     Priority: Minor

> Reporting for Christian d'Heureuse, filed on derby-dev list.
> The NULLIF built-in function of Cloudscape beta seems to accept
> only string values.
> Examples:
>  values nullif('a','b');
>  --> OK
>  values nullif(1,2);
>  --> Error message: "ERROR 42X89: Types 'CHAR' and
>      'INTEGER' are not type compatible. (Neither type
>      is assignable to the other type.)"

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
If you want more information on JIRA, or have a bug to report see:

View raw message