Fix nullability check for inner joins in postgres (#1863)

This commit is contained in:
Oskar Persson 2022-06-01 02:58:38 +02:00 committed by GitHub
parent 5d91ffc81c
commit 63291d677f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 6 deletions

View file

@ -466,10 +466,8 @@ fn visit_plan(plan: &Plan, outputs: &[String], nullables: &mut Vec<Option<bool>>
if let Some(plan_outputs) = &plan.output {
// all outputs of a Full Join must be marked nullable
// otherwise, all outputs of the inner half of an outer join must be marked nullable
if let Some("Full") | Some("Inner") = plan
.join_type
.as_deref()
.or(plan.parent_relation.as_deref())
if plan.join_type.as_deref() == Some("Full")
|| plan.parent_relation.as_deref() == Some("Inner")
{
for output in plan_outputs {
if let Some(i) = outputs.iter().position(|o| o == output) {

View file

@ -841,8 +841,8 @@ async fn test_describe_outer_join_nullable() -> anyhow::Result<()> {
let describe = conn
.describe(
"select tweet.id
from (values (null)) vals(val)
inner join tweet on false",
from tweet
inner join products on products.name = tweet.text",
)
.await?;