Query

open class Query(var set: FieldSet, where: Op<Boolean>?) : AbstractQuery<Query>

Class representing an SQL SELECT statement on which query clauses can be built.

Constructors

Link copied to clipboard
constructor(set: FieldSet, where: Op<Boolean>?)

Types

Link copied to clipboard

Represents the position at which an SQL comment will be added in a SELECT query.

Properties

Link copied to clipboard

The stored comments and their CommentPositions in this SELECT query.

Link copied to clipboard

Whether only distinct results should be retrieved by this SELECT query.

Link copied to clipboard

List of columns on which the query should be distinct.

Link copied to clipboard

The number of results that should be fetched when this query is executed.

Link copied to clipboard

The stored list of columns for a GROUP BY clause in this SELECT query.

Link copied to clipboard

The stored condition for a HAVING clause in this SELECT query.

Link copied to clipboard

Whether the SQL statement is meant to be performed as part of a batch execution.

Link copied to clipboard
var limit: Int?

The stored value for a LIMIT clause in this query.

Link copied to clipboard

The stored value for an OFFSET clause in this query.

Link copied to clipboard

The stored list of columns and their SortOrder for an ORDER BY clause in this query.

Link copied to clipboard
open override var set: FieldSet

The set of columns on which a query should be executed, contained by a ColumnSet.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The stored condition for a WHERE clause in this SELECT query.

Functions

Link copied to clipboard
inline fun adjustColumnSet(body: ColumnSet.() -> ColumnSet): Query

Assigns a new column set, either a Table or a Join, by changing the source property of this query's set, while preserving its fields property.

Link copied to clipboard
fun adjustComments(position: Query.CommentPosition, content: String? = null): Query

Changes the content of the comments field at the specified position in this query.

Link copied to clipboard
fun adjustHaving(body: Op<Boolean>?.() -> Op<Boolean>): Query

Changes the having field of this query.

Link copied to clipboard
inline fun adjustSelect(body: ColumnSet.(FieldSet) -> Query): Query

Assigns a new selection of columns, by changing the fields property of this query's set, while preserving its source property.

Link copied to clipboard
Link copied to clipboard
fun adjustWhere(body: Op<Boolean>?.() -> Op<Boolean>): Query

Changes the where field of this query.

Link copied to clipboard

Mutate Query instance and add andPart to having condition with and operator.

Link copied to clipboard

Mutate Query instance and add andPart to where condition with and operator.

Link copied to clipboard
fun <T> Iterable<T>.appendTo(builder: QueryBuilder, separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", transform: QueryBuilder.(T) -> Unit): QueryBuilder

Appends all the elements separated using separator and using the given prefix and postfix if supplied.

Link copied to clipboard
open override fun arguments(): List<List<Pair<IColumnType<*>, Any?>>>

Returns all mappings of columns and expression types to their values needed to prepare an SQL statement.

Link copied to clipboard
fun comment(content: String, position: Query.CommentPosition = CommentPosition.FRONT): Query

Appends an SQL comment, with content wrapped by /* */, at the specified CommentPosition in this SELECT query.

Link copied to clipboard
open override fun copy(): Query

Creates a new Query instance using all stored properties of this SELECT query.

Link copied to clipboard
open override fun copyTo(other: Query)

Copies all stored properties of this SELECT query into the properties of other.

Link copied to clipboard
open override fun count(): Long

Returns the number of results retrieved after query execution.

Link copied to clipboard
open override fun empty(): Boolean

Returns whether any results were retrieved by query execution.

Link copied to clipboard

Returns only distinct results from this query that are NOT common to the results of other.

Link copied to clipboard
fun execute(transaction: Transaction): ResultSet?

Executes the SQL statement directly in the provided transaction and returns the generated result, or null if either no result was retrieved or if the transaction blocked statement execution.

Link copied to clipboard
open override fun PreparedStatementApi.executeInternal(transaction: Transaction): ResultSet?

Determines the exact way that an SQL statement is executed in a transaction and applies any necessary logic before returning the result generated by the executed statement.

Link copied to clipboard
fun fetchBatchedResults(batchSize: Int = 1000, sortOrder: SortOrder = SortOrder.ASC): Iterable<Iterable<ResultRow>>

Iterates over multiple executions of this SELECT query with its LIMIT clause set to batchSize until the amount of results retrieved from the database is less than batchSize.

Link copied to clipboard

Modifies the number of results that should be fetched when this query is executed.

Link copied to clipboard
open fun forEach(p0: Consumer<in ResultRow>)
Link copied to clipboard
open override fun forUpdate(option: ForUpdateOption): Query

Returns a new SizedIterable with a locking read for the elements according to the rules specified by option.

Link copied to clipboard
fun groupBy(vararg columns: Expression<*>): Query

Appends a GROUP BY clause with the specified columns to this SELECT query.

Link copied to clipboard

Whether this SELECT query already has a stored value option for performing locking reads.

Link copied to clipboard

Appends a HAVING clause with the specified op condition to this SELECT query.

Link copied to clipboard

Returns only results from this query that are common to the results of other, WITHOUT including any duplicates.

Link copied to clipboard

Whether this SELECT query will perform a locking read.

Link copied to clipboard
open operator override fun iterator(): Iterator<ResultRow>
Link copied to clipboard
open override fun limit(count: Int): Query

Modifies this query to return only count results.

open override fun limit(n: Int, offset: Long): Query
Link copied to clipboard
infix fun <T, R> SizedIterable<T>.mapLazy(f: (T) -> R): SizedIterable<R>

Returns a SizedIterable containing the lazily evaluated results of applying the function f to each original element.

Link copied to clipboard
open override fun notForUpdate(): Query

Returns a new SizedIterable without any locking read for the elements.

Link copied to clipboard
open override fun offset(start: Long): Query

Modifies this query to return only results starting after the specified start.

Link copied to clipboard
open override fun orderBy(vararg order: Pair<Expression<*>, SortOrder>): Query

Modifies this query to sort results according to the provided order of expressions.

fun orderBy(column: Expression<*>, order: SortOrder = SortOrder.ASC): Query

Modifies this query to sort results by the specified column, according to the provided order.

Link copied to clipboard

Mutate Query instance and add orPart to having condition with or operator.

Link copied to clipboard

Mutate Query instance and add orPart to where condition with or operator.

Link copied to clipboard
open fun prepared(transaction: Transaction, sql: String): PreparedStatementApi

Uses a transaction connection and an sql string representation to return a precompiled SQL statement, stored as an implementation of PreparedStatementApi.

Link copied to clipboard
open override fun prepareSQL(transaction: Transaction, prepared: Boolean): String

Returns the string representation of an SQL statement.

open override fun prepareSQL(builder: QueryBuilder): String

Returns the string representation of an SQL query, generated by appending SQL expressions to a QueryBuilder.

Link copied to clipboard
inline fun Query.select(where: SqlExpressionBuilder.() -> Op<Boolean>): Query
fun Query.select(where: Op<Boolean>): Query
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun AbstractQuery<*>.union(other: Query): Union

Combines all results from this query with the results of other, WITHOUT including duplicates.

Link copied to clipboard

Combines all results from this query with the results of other, WITH duplicates included.

Link copied to clipboard
fun where(predicate: SqlExpressionBuilder.() -> Op<Boolean>): Query
fun where(predicate: Op<Boolean>): Query

Appends a WHERE clause with the specified predicate to this SELECT query.

Link copied to clipboard
open override fun withDistinct(value: Boolean): Query

Modifies this query to retrieve only distinct results if value is set to true.

Link copied to clipboard
fun withDistinctOn(vararg columns: Pair<Column<*>, SortOrder>): Query

Specifies that the SELECT query should retrieve distinct results based on the given list of columns with sort orders. This method sets a DISTINCT ON clause and may reorder the results as indicated.

fun withDistinctOn(vararg columns: Column<*>): Query

Specifies that the SELECT query should retrieve distinct results based on the given list of columns.