MssqlQuery class

An immutable SELECT. Every method returns a new instance, so a base query can be shared between the page and its count without the two drifting.

Implemented types
Available extensions
Annotations
  • @immutable

Constructors

MssqlQuery.from(String identifier, {String? as, MssqlSourceRef? ref})
Starts a query against identifier, such as dbo.Orders.
factory
MssqlQuery.fromParts(List<String> parts, {String? as, MssqlSourceRef? ref})
Starts a query against a source whose parts are already separated; see MssqlSource.parts.
factory
MssqlQuery.fromSource(MssqlSource source)
Starts a query against an already-built source.
factory
MssqlQuery.fromSub(MssqlSelectQuery query, {required String as})
Starts a query from a derived table. SQL Server requires its alias.
factory

Properties

conditions → List<MssqlCondition>
final
ctes → List<MssqlCte>
The WITH clause, in the order it is written.
final
distinct → bool
final
grouping → List<MssqlExpression>
final
hashCode → int
The hash code for this object.
no setterinherited
having → MssqlCondition?
final
joins → List<MssqlJoin>
final
lockHint → String?
A table hint on the source, such as WITH (UPDLOCK, ROWLOCK).
final
maxRecursion → int?
OPTION (MAXRECURSION n). Null leaves SQL Server's default of 100, which stops a runaway recursion with an error rather than a hang.
final
offset → int?
final
ordering → List<MssqlOrder>
final
projection → List<MssqlExpression>
final
projectionCount → int?
Known number of selected expressions, or null when it cannot be proven.
no setteroverride
rows → int?
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
source → MssqlSource
final
topRows → int?
SELECT TOP (n), which is not paging: no offset and no ordering needed.
final

Methods

aggregateRows(MssqlExpression aggregate) → MssqlQuery
An aggregate over the rows this query returns.
avg<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012}) → Future<T?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

AVG of column over the rows this query returns, or null for none.
chunk(MssqlSession session, int size, Future<bool> handle(List<MssqlRow> rows), {MssqlDialect dialect = MssqlDialect.sql2012}) → Future<void>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

Walks the whole result in keyset pages of size, without holding it all in memory.
compile({MssqlDialect dialect = MssqlDialect.sql2012}) → MssqlStatement
Compiles to SQL and its bound values.
override
compileInto(MssqlParameterAllocator parameters, MssqlDialect dialect, {bool nested = false}) → String
override
count(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout, MssqlCancellationToken? cancellationToken, MssqlQueryOptions options = MssqlQueryOptions.defaults}) → Future<int>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

How many rows this query returns.
countDistinct(Iterable<MssqlExpression> expressions) → MssqlQuery
The number of distinct values of expressions among the rows this query matches.
countDistinctColumns(MssqlSession session, Iterable<String> columns, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<int>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

How many distinct values of columns the matched rows hold.
countRows() → MssqlQuery
SELECT COUNT_BIG(*) over the rows this query returns.
crossJoin(String identifier, {String? as}) → MssqlQuery
doesntExist(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<bool>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

exists(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<bool>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

Whether the query matches anything.
first(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout, MssqlCancellationToken? cancellationToken, MssqlQueryOptions options = MssqlQueryOptions.defaults}) → Future<MssqlRow?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

The first row, or null.
firstOrFail(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<MssqlRow>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

The first row, or StateError.
fullJoin(String identifier, {String? as, required MssqlCondition on}) → MssqlQuery
get(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout, MssqlCancellationToken? cancellationToken, MssqlQueryOptions options = MssqlQueryOptions.defaults}) → Future<List<MssqlRow>>

Available on MssqlSelectQuery, provided by the MssqlSelectQueryExecution extension

Every row, as the driver's own typed rows.
getAs<T>(MssqlSession session, T map(MssqlRow row), {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<List<T>>

Available on MssqlSelectQuery, provided by the MssqlSelectQueryExecution extension

Every row, mapped by map.
groupBy(Iterable<MssqlExpression> expressions) → MssqlQuery
havingCondition(MssqlCondition condition) → MssqlQuery
innerJoin(String identifier, {String? as, required MssqlCondition on}) → MssqlQuery
join(MssqlJoinKind kind, String identifier, {String? as, MssqlCondition? on}) → MssqlQuery
joinSub(MssqlJoinKind kind, MssqlSelectQuery query, {required String as, MssqlCondition? on}) → MssqlQuery
lazy(MssqlSession session, {int size = 500, MssqlDialect dialect = MssqlDialect.sql2012}) → Stream<MssqlRow>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

chunk as a stream, for a caller that would rather iterate than pass a callback.
leftJoin(String identifier, {String? as, required MssqlCondition on}) → MssqlQuery
lockForUpdate() → MssqlQuery
Locks the rows read against other readers that also intend to write: WITH (UPDLOCK, ROWLOCK).
max<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012}) → Future<T?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

min<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012}) → Future<T?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
orderBy(Iterable<MssqlOrder> terms) → MssqlQuery
paged({required int offset, required int rows}) → MssqlQuery
Takes rows rows starting at offset.
pluck<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<List<T?>>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

One column of every row.
rightJoin(String identifier, {String? as, required MssqlCondition on}) → MssqlQuery
select(Iterable<MssqlExpression> expressions) → MssqlQuery
selectDistinct(Iterable<MssqlExpression> expressions) → MssqlQuery
sharedLock() → MssqlQuery
Holds a shared lock on the rows read until the transaction ends: WITH (HOLDLOCK, ROWLOCK).
stream(MssqlSession session, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout, MssqlCancellationToken? cancellationToken, MssqlQueryOptions options = MssqlQueryOptions.defaults}) → Stream<MssqlRow>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

Maps the native row stream without buffering the whole result.
sum<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012}) → Future<T?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

SUM of column over the rows this query returns, or null for none.
top(int rows) → MssqlQuery
The first rows rows, with no offset: SELECT TOP (n).
toString() → String
A string representation of this object.
inherited
union(MssqlSelectQuery other) → MssqlSetQuery
override
unionAll(MssqlSelectQuery other) → MssqlSetQuery
override
unless(bool condition, MssqlQuery build(MssqlQuery query), {MssqlQuery otherwise(MssqlQuery query)?}) → MssqlQuery
when, inverted.
value<T>(MssqlSession session, String column, {MssqlDialect dialect = MssqlDialect.sql2012, Duration? timeout}) → Future<T?>

Available on MssqlQuery, provided by the MssqlQueryExecution extension

One column of the first row.
when(bool condition, MssqlQuery build(MssqlQuery query), {MssqlQuery otherwise(MssqlQuery query)?}) → MssqlQuery
Applies build only when condition holds.
whenNotNull<T extends Object>(T? value, MssqlQuery build(MssqlQuery query, T value)) → MssqlQuery
Applies build when value is not null, handing it to the callback already promoted to its non-nullable type.
where(MssqlCondition condition) → MssqlQuery
Adds a condition. Repeated calls are combined with AND.
whereExists(MssqlSelectQuery query) → MssqlQuery

Available on MssqlQuery, provided by the MssqlSubqueryClauses extension

whereNotExists(MssqlSelectQuery query) → MssqlQuery

Available on MssqlQuery, provided by the MssqlSubqueryClauses extension

withCte(String name, MssqlSelectQuery query, {List<String> columns = const <String>[]}) → MssqlQuery
Prefixes the query with a common table expression.
withExpression(MssqlCte cte, {int? maxRecursion}) → MssqlQuery
Prefixes the query with an expression already built.
withHint(String hint) → MssqlQuery
An arbitrary table hint, for the ones this does not name.
withRecursiveCte(String name, {required MssqlSelectQuery anchor, required MssqlSelectQuery recursive, required List<String> columns, int? maxRecursion}) → MssqlQuery
Prefixes the query with a recursive expression.
withTypedCte(MssqlTypedCte cte) → MssqlQuery

Available on MssqlQuery, provided by the MssqlTypedCteClauses extension

Adds cte to the WITH clause, carrying its recursion ceiling with it.

Operators

operator ==(Object other) → bool
The equality operator.
inherited