Columns
The orm.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 implement the Columns()
method that returns 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"