DatumRawQuery class
An adapter-aware raw query for projections, aggregations, and joins that bypass full entity hydration (#11).
Unlike DatumQuery (which returns hydrated entities), a raw query returns
raw rows (List<Map<String, dynamic>>) so screens can select specific
columns or compute COUNT/SUM/GROUP BY without materializing models.
It carries fields for both worlds; each adapter reads the ones it supports:
// Local SQL adapter (e.g. Drift/SQLite):
final rows = await manager.rawQuery(
const DatumRawQuery(sql: 'SELECT id, name FROM users WHERE age > ?', args: [18]),
source: DataSource.local,
);
// Remote adapter (e.g. Supabase/REST):
final rows = await manager.rawQuery(
const DatumRawQuery(table: 'users', select: 'id, name', filters: {'age': {'gt': 18}}),
source: DataSource.remote,
);
Constructors
Properties
-
args
→ List<
Object?> -
Positional arguments bound to sql placeholders.
final
- count → bool
-
Whether this is a count aggregation (adapters return a single row).
final
-
filters
→ Map<
String, dynamic> ? -
Structured filters for remote adapters (e.g.
{'age': {'gt': 18}}).final - hashCode → int
-
The hash code for this object.
no setterinherited
-
metadata
→ Map<
String, dynamic> -
Adapter-specific extra options (grouping, ordering, limits, …).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- select → String?
-
Column projection for remote adapters (e.g.
'id, name').final - sql → String?
-
Raw SQL for local SQL adapters. Ignored by non-SQL adapters.
final
- table → String?
-
Target table/collection for remote adapters.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited