Skip to main content

Select Query Builder

PgSelectBuilder

Builds SELECT queries with PostgreSQL-specific features.

from()

Specifies which table or subquery to select from.
PgTable | Subquery | PgView
required
Table, view, or subquery to select from

where()

Adds WHERE clause conditions.
SQL | undefined
required
SQL condition expression

orderBy()

Adds ORDER BY clause.
(PgColumn | SQL)[]
required
Columns or SQL expressions to order by

limit()

Limits the number of returned rows.
number
required
Maximum number of rows to return

offset()

Skips a number of rows before returning results.
number
required
Number of rows to skip

groupBy()

Groups results by columns.
(PgColumn | SQL)[]
required
Columns to group by

having()

Filters grouped results.
SQL | (selected: SelectedFields) => SQL
required
Condition to filter groups

PostgreSQL-Specific Select Features

distinctOn()

PostgreSQL DISTINCT ON clause for selecting distinct rows based on specific columns.
(PgColumn | SQL)[]
required
Columns to determine uniqueness
Note: When using DISTINCT ON, the ORDER BY must start with the same columns.

for()

Adds locking clauses for concurrent access control.
'update' | 'no key update' | 'share' | 'key share'
required
Lock type:
  • 'update': Full row lock
  • 'no key update': Lock without blocking foreign key checks
  • 'share': Shared lock (prevents updates)
  • 'key share': Shared lock on key only
object
Lock options:
  • of: Table to lock (for joins)
  • noWait: Fail immediately if row is locked
  • skipLocked: Skip locked rows

Join Operations

innerJoin()

leftJoin()

rightJoin()

fullJoin()

All join methods accept:
PgTable | Subquery
required
Table or subquery to join
SQL
required
Join condition

Insert Query Builder

PgInsertBuilder

Builds INSERT queries with PostgreSQL-specific features.

values()

Specifies values to insert.
InferInsertModel | InferInsertModel[]
required
Single object or array of objects to insert

onConflictDoNothing()

PostgreSQL ON CONFLICT DO NOTHING clause.
PgColumn | PgColumn[]
Specific column(s) that trigger the conflict

onConflictDoUpdate()

PostgreSQL ON CONFLICT DO UPDATE clause for upserts.
PgColumn | PgColumn[]
required
Column(s) that trigger the conflict
object
required
Values to update on conflict
SQL
Condition for when to perform update

returning()

Returns inserted rows.
SelectedFields
Columns to return (returns all if omitted)

overridingSystemValue()

Allows inserting values into generated identity columns.

Update Query Builder

PgUpdateBuilder

Builds UPDATE queries.

set()

Specifies columns and values to update.
Partial<InferInsertModel>
required
Object with column names and new values

where()

Filters which rows to update.

returning()

Returns updated rows.

Delete Query Builder

PgDeleteBase

Builds DELETE queries.

where()

Specifies which rows to delete.
SQL
required
Condition for which rows to delete

returning()

Returns deleted rows.

Prepared Statements

All query builders support .prepare() for creating reusable prepared statements.
string
Name for the prepared statement

Batch Operations

Execute multiple queries in a single round trip.
Query[]
required
Array of queries to execute

Refresh Materialized View

PgRefreshMaterializedView

Refreshes PostgreSQL materialized views.

concurrently()

Enables concurrent refresh (PostgreSQL REFRESH MATERIALIZED VIEW CONCURRENTLY).
Note: Requires a unique index on the materialized view.

Raw SQL

Execute raw SQL queries.

Query Builder Utility

QueryBuilder

Low-level query builder used internally.
Generally not used directly - use database instance methods instead.