-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
api:sqlIssues related to SQL APIIssues related to SQL APIquestionThe issue is a question. Please use Stack Overflow for questions.The issue is a question. Please use Stack Overflow for questions.
Description
Describe the bug
Unable to cross join two views that depend on the same cube starting with version 1.3.14.
To Reproduce
Steps to reproduce the behavior:
- Define cubes as shown in "Minimally reproducible Cube Schema"
- Run query against SQL API
select date, measure(view1.value) as measure1, measure(view2.value) as measure2 from view1, view2 group by 1
- Error
Arrow error: Compute error: Can't find join path to join 'view1,view2', 'cube1,cube1', 'cube1'
Expected behavior
The following result (screenshot from version 1.3.13)
Minimally reproducible Cube Schema
cubes:
- name: cube1
sql: |-
select 1 as measure1, 2 as measure2, '2025-01-01' as date UNION ALL
select 3 as measure1, 4 as measure2, '2025-01-02' as date UNION ALL
select 5 as measure1, 6 as measure2, '2025-01-03' as date
dimensions:
- name: date
type: time
sql: TIMESTAMP({CUBE}.date)
primary_key: true
measures:
- name: measure1
type: number
sql: sum({CUBE}.measure1)
- name: measure2
type: number
sql: sum({CUBE}.measure2)
views:
- name: view1
cubes:
- join_path: cube1
includes:
- name: measure1
alias: value
- date
- name: view2
cubes:
- join_path: cube1
includes:
- name: measure2
alias: value
- dateVersion:
Starting with 1.3.14
Additional notes:
If we explain the query we get the same plan for both versions, except that from version 1.3.14 we also get a joinHints key.
Either way, if we use the query plan in the playground, both plans work (we don't get the join error)
This is the plan for 1.3.14: {"measures":["view1.value","view2.value"],"dimensions":["view1.date"],"segments":[],"order":[],"joinHints":[["view1","view2"]]}
Metadata
Metadata
Assignees
Labels
api:sqlIssues related to SQL APIIssues related to SQL APIquestionThe issue is a question. Please use Stack Overflow for questions.The issue is a question. Please use Stack Overflow for questions.