Skip to content

Experimental analyzer and join_use_nulls are incompatible #59067

@phantom943

Description

@phantom943

join_use_nulls is incompatible with allow_experimental_analyzer.

Sample query:

with d1 as (
    select
        1 as a,
        2 as b
),
d2 as (
    select
        1 as a,
        3 as c
),
joined as (
    select
        d1.*,
        d2.c
    from d1
    inner join d2
        on (d1.a = d2.a)
)
select c 
from joined
SETTINGS 
  allow_experimental_analyzer=1, 
  join_use_nulls=1

(fiddle)

Actual behaviour

Received exception from server (version 23.12.2):
Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Unknown expression identifier 'c' in scope

Expected behaviour
Returns the number 3.

Additional info
The query works correctly with at most one of the settings being equal to 1, so

SETTINGS 
  allow_experimental_analyzer=1, 
  join_use_nulls=0

returns 3 as expected, same as the other way around and

SETTINGS 
  allow_experimental_analyzer=0, 
  join_use_nulls=0

Related issues
Related to, but is not a duplicate of this issue

Metadata

Metadata

Assignees

Labels

analyzerIssues and pull-requests related to new analyzerexperimental featureBug in the feature that should not be used in production

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions