Extract

class Extract<T>(val expression: Expression<*>, val path: String, val toScalar: Boolean, val jsonType: IColumnType<*>, columnType: IColumnType<T & Any>) : Function<T>

Represents an SQL function that returns extracted data from a JSON object at the specified path, either as a JSON representation or as a scalar value.

Constructors

Link copied to clipboard
constructor(expression: Expression<*>, vararg path: String, toScalar: Boolean, jsonType: IColumnType<*>, columnType: IColumnType<T & Any>)

Properties

Link copied to clipboard
open override val columnType: IColumnType<T & Any>
Link copied to clipboard

The expression from which to extract JSON subcomponents matched by path.

Link copied to clipboard

The column type of expression to check, if casting to JSONB is required.

Link copied to clipboard
val path: Array<out String>

Array of Strings representing JSON path/keys that match fields to be extracted.

Link copied to clipboard

Whether the extracted result should be a scalar or text value; if false, result will be a JSON object.

Functions

Link copied to clipboard
fun <T> ExpressionWithColumnType<*>.contains(candidate: T, path: String? = null): Contains

Checks whether a candidate value is contained within this JSON expression.

fun ExpressionWithColumnType<*>.contains(candidate: Expression<*>, path: String? = null): Contains

Checks whether a candidate expression is contained within this JSON expression.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
fun ExpressionWithColumnType<*>.exists(vararg path: String, optional: String? = null): Exists

Checks whether data exists within this JSON expression at the specified path.

Link copied to clipboard
inline fun <T : Any> ExpressionWithColumnType<*>.extract(vararg path: String, toScalar: Boolean = true): Extract<T>

Returns the extracted data from a JSON object at the specified path, either as a JSON representation or as a scalar value.

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun toQueryBuilder(queryBuilder: QueryBuilder)
Link copied to clipboard
open override fun toString(): String