mirror of
https://github.com/launchbadge/sqlx
synced 2024-11-10 14:34:19 +00:00
Fix nullability check for inner joins in postgres (#1863)
This commit is contained in:
parent
5d91ffc81c
commit
63291d677f
2 changed files with 4 additions and 6 deletions
|
@ -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…
Reference in a new issue