Skip to main content

Columns

The expr.Columns type is a bob expression.

To create a new columns list, use orm.NewColumns(names ...string). You can then add the parent table with WithParent()

orm.NewColumns("id", "name", "email").WithParent("public.users")
-- table_alias.column_name
"public.users"."id" AS "id",
"public.users"."name" AS "name",
"public.users"."email" AS "email"

The View and Table models for a table also include a Columns field embeds a column list with all of the table's columns. In addition, there are several convenience methods to manipulate the columns list.

Only

Returns the column list with ONLY the given column names.

userView.Columns.Only("email")
"public.users"."email" AS "email",

Except

Returns the columns list without the given column names.

userView.Columns.Except("email")
"public.users"."id" AS "id",
"public.users"."name" AS "name",

WithParent

Changes the parent of the column list. For example if selecting with an alias.
Multiple strings are quoted and joined with a dot.

userView.Columns.WithParent("backup", "users_old")
"backup"."users_old"."id" AS "id",
"backup"."users_old"."name" AS "name",
"backup"."users_old"."email" AS "email"

WithPrefix

Sets a prefix for all columns, useful for joins with duplicate column names.

userView.Columns.WithPrefix("users.")
"public.users"."id" AS "users.id",
"public.users"."name" AS "users.name",
"public.users"."email" AS "users.email"