Aliasing Left Side of Join Breaks Derivation
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start with the PRQL input and expected-versus-actual BigQuery SQL in the issue; trace how an aliased derived relation is represented through join compilation, then find the related tests. Reproduce the missing profit derivation and use the expected SQL as the completion criterion. The issue names no source files or tests, so locating the relevant compiler path will take project familiarity.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
Aliasing the left side of a join magically erases any derivations in that left side.
Without alias (seems to work):
prql target:sql.bigquery
from sales
derive {profit = sell_price - buy_price}
join side:left details (this.item_id == that.item_id)
select !{details.item_id}
With alias (doesn't work):
prql target:sql.bigquery
sales_with_profit = (
from sales
derive {profit = sell_price - buy_price}
)
join side:left details (this.item_id == that.item_id)
select !{details.item_id}
With the aliasing, the "profit" derivation completely disappears. That should not happen.
PRQL input
prql target:sql.bigquery
sales_with_profit = (
from sales
derive {profit = sell_price - buy_price}
)
join side:left details (this.item_id == that.item_id)
select !{details.item_id}
SQL output
WITH table_0 AS (
SELECT
*
FROM
sales
)
SELECT
table_0.*,
details.*
EXCEPT
(item_id)
FROM
table_0
LEFT JOIN details ON table_0.item_id = details.item_id
-- Generated by PRQL compiler version:0.11.2 (https://prql-lang.org/)
Expected SQL output
WITH table_0 AS (
SELECT
*,
sell_price - buy_price AS profit
FROM
sales
)
SELECT
table_0.*
EXCEPT
(profit),
details.*
EXCEPT
(item_id),
table_0.profit
FROM
table_0
LEFT JOIN details ON table_0.item_id = details.item_id
MVCE confirmation
- Minimal example
- New issue
Anything else?
No response
- Lingua principale
- Rust
- Stelle
- 10.9k
- Fork
- 261
- Merge medio
- 3g 21h
- PR unite (30g)
- 84
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PRQL/prql
-
Underscore does not work as expectedForse già presa @prql-bot l’ha presa 1 giorno fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 3 giorni
-
prqlc Debug Report HTML Does Not Escape Source File Name, Enabling Stored XSS via PRQLC_DEBUG_LOGApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 3 giorni
-
Add `.prql` to linguistApertafriendliness integrations
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
PRQL/prql#1636 · 2 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 12/100
I maintainer di solito rispondono entro 3 giorni
-
review-runs-tracking
Difficoltà 3/5 Mezza giornata Idoneità per principianti 5/100
I maintainer di solito rispondono entro 3 giorni
Issue simili
-
parity priority: low
Difficoltà 2/5 Mezza giornata Idoneità per principianti 65/100
storytold/vectorcraft#5421 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug enchantments Java Edition protocol
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
Pumpkin-MC/Pumpkin#4465 ·
I maintainer di solito rispondono entro 1 giorno
-
docs(metrics): replace stale src/metrics.rs line anchors in dashboard-metrics.md with symbol namesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
vfarcic/dot-agent-deck#2079 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
fraiseql/fraisier-core#148 ·
I maintainer di solito rispondono entro 1 giorno