mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-12-28 11:39:07 +00:00
Fix nullability check for inner joins in postgres (#1863)
This commit is contained in:
parent
5d91ffc81c
commit
63291d677f
@ -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) {
|
||||
|
||||
@ -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?;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user