[
https://issues.apache.org/jira/browse/DERBY-4284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748825#action_12748825
]
Knut Anders Hatlen commented on DERBY-4284:
-------------------------------------------
JoinNode.buildRCL() correctly makes all the columns from the right side of the
join nullable in a left outer join, and leaves the nullability of the columns
on the left side untouched. However, this code in
SelectNode.bindResultColumns() later marks all the columns as nullable:
/* Fix nullability in case of any outer joins in the fromList */
if (fromList.hasOuterJoins())
resultColumns.setNullability(true);
I'm running tests now to see if just removing the code causes any problems.
Removing it does give the expected nullability for the query in the description
(name non-nullable, model nullable, plat_no nullable).
> All Columns become Nullable when Using left join
> ------------------------------------------------
>
> Key: DERBY-4284
> URL: https://issues.apache.org/jira/browse/DERBY-4284
> Project: Derby
> Issue Type: Bug
> Components: JDBC, SQL
> Affects Versions: 10.5.1.1
> Environment: Microsoft Windows XP SP3, Sun JDK 6 Update 14
> Reporter: Chua Chee Seng
> Attachments: Main.java
>
>
> Consider following:-
> create table person (
> id varchar(20) not null,
> name varchar(100) not null
> );
> create table car (
> id varchar(20) not null,
> person_id varchar(20) not null,
> model varchar(100) not null,
> plat_no varchar(100) not null
> );
> When select :-
> select
> p.name,
> c.model,
> c.plat_no
> from person p
> left join car c on (p.id = c.person_id);
> From the ResultSet, get the ResultSetMetaData and inspect each column's
> isNullable() value, which is always = 1 (always nullable). Expected : column
> 'p.name' isNullable = 0 (not nullable), but I get 'p.name' isNullable = 1
> (nullable)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.