-
Notifications
You must be signed in to change notification settings - Fork 311
Open
Description
I've a columns variable in which I'm conditionally adding column name based on whether field is enable or not. There is one field createdBy
which I want to select as creator.email AS creatorEmail
where creator
is an alias of the users
table. Following is the sample code.
let columns = [];
if (view.field === "id") {
columns.push("companies.id");
}
// ... other fields condition
if (view.field === "createdBy") {
columns.push("creator.email AS creatorEmail");
}
Then following the query I'm trying to run.
sql`
select
${sql(columns)}
from
companies
join
users as creator
on
companies."createdBy" = creator.id`
But, it throw error as
PostgresError: column creator.email AS creatorEmail does not exist
Postgres condering complete string as column name and not As
as keyword of Postgres.
Note: I saw one issue where someone suggested to use fragment. But, can I've an example of it? I tried with many different syntax and it doesn't work.
sumarlidason
Metadata
Metadata
Assignees
Labels
No labels
Projects
Milestone
Relationships
Development
Select code repository
Activity
sumarlidason commentedon Jun 21, 2024
@chauhankiran did you find a workaround?
chauhankiran commentedon Jun 22, 2024
Not exactly per se. But, I've use
.unsafe()
as a workaround.I've replaced
columns
array to string and then concatenating the columns instead of pushing in it.I'm using
sql.unsafe()
withinSELECT
.