[
https://issues.apache.org/jira/browse/DERBY-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Matrigali updated DERBY-6566:
----------------------------------
Labels: derby_backport_reject_10_10 (was: )
due to behavior change and possible application changes necessary for change
marking that this should not be backported to 10.10.
review of list of issues fixed in 10.11 but not in 10.10 for possible
compatibility issues in upcoming release.
This change does present a possible incompatibility, and possible
application changes are highlighted in the release note.
> Simplify handling of untyped nulls in CASE and NULLIF expressions
> -----------------------------------------------------------------
>
> Key: DERBY-6566
> URL: https://issues.apache.org/jira/browse/DERBY-6566
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 11.0.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Labels: derby_backport_reject_10_10
> Fix For: 10.11.0.0
>
> Attachments: d6566-1a.diff, releaseNote.html
>
>
> The parser translates both CASE and NULLIF expressions into ConditionalNodes,
> but it represents untyped NULLs differently in the two cases.
> In a CASE expression, any branch that is an untyped NULL, is translated into
> an UntypedNullConstantNode that's wrapped in a CastNode that casts the value
> to CHAR(1). The CastNode is replaced with a cast to the correct type during
> the bind phase.
> A NULLIF expression is turned into a CASE expression that has a THEN NULL
> clause. The parser simply creates an UntypedNullConstantNode for that clause,
> without wrapping it in a CastNode. A CastNode is instead added during the
> bind phase.
> This slight difference in how NULLs are represented by the parser in the two
> cases, means that ConditionalNode needs to handle the two cases differently
> during the bind phase. It would be better if the parser generated NULLs in
> the same way for the two cases, so that ConditionalNode didn't need to know
> if it was generated for a CASE expression or a NULLIF expression.
--
This message was sent by Atlassian JIRA
(v6.2#6252)