electric-sql / pglite

Lightweight WASM Postgres with real-time, reactive bindings.
https://pglite.dev
Apache License 2.0
8.48k stars 169 forks source link

"Error: column specified more than once in SELECT queries with joined tables" with livequeries #382

Open LeonAlvarez opened 2 hours ago

LeonAlvarez commented 2 hours ago

Issue Description

When using live queries, joins between tables that have columns with the same names fail. This issue occurs despite the query working correctly in PGLite itself, suggesting the problem may lie in the view creation process of the live plugin.

Example Query

The following query fails when used as a live query:

select "expense_shares"."id", "expense_shares"."expense_id", "expense_shares"."user_id", "expense_shares"."group_id", "expense_shares"."share_amount", "expense_shares"."created_at", "expense_shares"."updated_at", "expenses"."id", "expenses"."description", "expenses"."type", "expenses"."amount", "expenses"."payer_id", "expenses"."group_id", "expenses"."created_at", "expenses"."updated_at" from "expense_shares" inner join "expenses" on "expense_shares"."expense_id" = "expenses"."id" where "expense_shares"."user_id" = $1

Errors

error: column "id" specified more than once
error: column "group_d" specified more than once
error: column "created_at" specified more than once
error: column "updated_at" specified more than once
LeonAlvarez commented 2 hours ago

The workaround is to alias the columns with the clashing name, so that the columns names are unique