11part of 'postgrest_typed_builder.dart' ;
22
33/// Converts a single decoded PostgREST row into [Row] .
4+ @experimental
45typedef RowConverter <Row > = Row Function (Map <String , dynamic > json);
56
67/// Describes a database table (or view) together with the Dart type its rows
@@ -31,6 +32,7 @@ typedef RowConverter<Row> = Row Function(Map<String, dynamic> json);
3132/// row representation since they carry no conversion cost and tolerate
3233/// partial selects, but any converter works, for example `Book.fromJson` on a
3334/// regular data class.
35+ @experimental
3436class PostgrestTable <Row > {
3537 const PostgrestTable (this .name, this .rowFromJson);
3638
@@ -48,6 +50,7 @@ class PostgrestTable<Row> {
4850///
4951/// [Value] is always the non-nullable value type of the column. Null checks
5052/// are expressed with [isNull] and [isNotNull] instead of nullable values.
53+ @experimental
5154class TableColumn <Value extends Object > {
5255 const TableColumn (this .name);
5356
@@ -123,6 +126,7 @@ class TableColumn<Value extends Object> {
123126}
124127
125128/// Filters that only apply to text columns.
129+ @experimental
126130extension TextTableColumnFilters on TableColumn <String > {
127131 /// Only rows whose value matches [pattern] case-sensitively.
128132 LikeFilter like (String pattern) => LikeFilter ._(name, pattern);
@@ -173,6 +177,7 @@ extension TextTableColumnFilters on TableColumn<String> {
173177/// hierarchy is sealed with one class per operator, so consumers can switch
174178/// on the filter itself instead of comparing operator values; realtime
175179/// streams for example only accept [ComparisonFilter] s and [InListFilter] .
180+ @experimental
176181sealed class ColumnFilter {
177182 const ColumnFilter ._();
178183
@@ -202,6 +207,7 @@ sealed class ColumnFilter {
202207///
203208/// Besides regular queries, these are the filters that realtime streams
204209/// support, together with [InListFilter] .
210+ @experimental
205211sealed class ComparisonFilter extends ColumnFilter {
206212 const ComparisonFilter ._(this .column, this .value) : super ._();
207213
@@ -213,6 +219,7 @@ sealed class ComparisonFilter extends ColumnFilter {
213219}
214220
215221/// Only rows where the column equals [value] ; created by [TableColumn.eq] .
222+ @experimental
216223final class EqFilter extends ComparisonFilter {
217224 const EqFilter ._(super .column, super .value) : super ._();
218225
@@ -227,6 +234,7 @@ final class EqFilter extends ComparisonFilter {
227234
228235/// Only rows where the column does not equal [value] ; created by
229236/// [TableColumn.neq] .
237+ @experimental
230238final class NeqFilter extends ComparisonFilter {
231239 const NeqFilter ._(super .column, super .value) : super ._();
232240
@@ -241,6 +249,7 @@ final class NeqFilter extends ComparisonFilter {
241249
242250/// Only rows where the column is greater than [value] ; created by
243251/// [TableColumn.gt] .
252+ @experimental
244253final class GtFilter extends ComparisonFilter {
245254 const GtFilter ._(super .column, super .value) : super ._();
246255
@@ -255,6 +264,7 @@ final class GtFilter extends ComparisonFilter {
255264
256265/// Only rows where the column is greater than or equal to [value] ; created
257266/// by [TableColumn.gte] .
267+ @experimental
258268final class GteFilter extends ComparisonFilter {
259269 const GteFilter ._(super .column, super .value) : super ._();
260270
@@ -269,6 +279,7 @@ final class GteFilter extends ComparisonFilter {
269279
270280/// Only rows where the column is less than [value] ; created by
271281/// [TableColumn.lt] .
282+ @experimental
272283final class LtFilter extends ComparisonFilter {
273284 const LtFilter ._(super .column, super .value) : super ._();
274285
@@ -283,6 +294,7 @@ final class LtFilter extends ComparisonFilter {
283294
284295/// Only rows where the column is less than or equal to [value] ; created by
285296/// [TableColumn.lte] .
297+ @experimental
286298final class LteFilter extends ComparisonFilter {
287299 const LteFilter ._(super .column, super .value) : super ._();
288300
@@ -300,6 +312,7 @@ final class LteFilter extends ComparisonFilter {
300312///
301313/// Besides regular queries, this filter is supported by realtime streams,
302314/// together with [ComparisonFilter] s.
315+ @experimental
303316final class InListFilter extends ColumnFilter {
304317 const InListFilter ._(this .column, this .values) : super ._();
305318
@@ -325,6 +338,7 @@ final class InListFilter extends ColumnFilter {
325338
326339/// A filter matching rows whose column value is `null` ; created by
327340/// [TableColumn.isNull] .
341+ @experimental
328342final class IsNullFilter extends ColumnFilter {
329343 const IsNullFilter ._(this .column) : super ._();
330344
@@ -346,6 +360,7 @@ final class IsNullFilter extends ColumnFilter {
346360/// A filter matching rows whose column value is distinct from [value] ,
347361/// treating `null` as a comparable value; created by
348362/// [TableColumn.isDistinctFrom] .
363+ @experimental
349364final class IsDistinctFilter extends ColumnFilter {
350365 const IsDistinctFilter ._(this .column, this .value) : super ._();
351366
@@ -365,6 +380,7 @@ final class IsDistinctFilter extends ColumnFilter {
365380}
366381
367382/// A containment or overlap filter on a json, array, or range column.
383+ @experimental
368384sealed class ContainmentFilter extends ColumnFilter {
369385 const ContainmentFilter ._(this .column, this .value) : super ._();
370386
@@ -376,6 +392,7 @@ sealed class ContainmentFilter extends ColumnFilter {
376392}
377393
378394/// Only rows whose value contains [value] ; created by [TableColumn.contains] .
395+ @experimental
379396final class ContainsFilter extends ContainmentFilter {
380397 const ContainsFilter ._(super .column, super .value) : super ._();
381398
@@ -390,6 +407,7 @@ final class ContainsFilter extends ContainmentFilter {
390407
391408/// Only rows whose value is contained by [value] ; created by
392409/// [TableColumn.containedBy] .
410+ @experimental
393411final class ContainedByFilter extends ContainmentFilter {
394412 const ContainedByFilter ._(super .column, super .value) : super ._();
395413
@@ -404,6 +422,7 @@ final class ContainedByFilter extends ContainmentFilter {
404422
405423/// Only rows whose value overlaps with [value] ; created by
406424/// [TableColumn.overlaps] .
425+ @experimental
407426final class OverlapsFilter extends ContainmentFilter {
408427 const OverlapsFilter ._(super .column, super .value) : super ._();
409428
@@ -417,6 +436,7 @@ final class OverlapsFilter extends ContainmentFilter {
417436}
418437
419438/// A filter comparing a range column against the range literal [range] .
439+ @experimental
420440sealed class RangeFilter extends ColumnFilter {
421441 const RangeFilter ._(this .column, this .range) : super ._();
422442
@@ -434,6 +454,7 @@ sealed class RangeFilter extends ColumnFilter {
434454
435455/// Only rows whose range is strictly to the left of [range] ; created by
436456/// [TableColumn.rangeLt] .
457+ @experimental
437458final class RangeLtFilter extends RangeFilter {
438459 const RangeLtFilter ._(super .column, super .range) : super ._();
439460
@@ -448,6 +469,7 @@ final class RangeLtFilter extends RangeFilter {
448469
449470/// Only rows whose range is strictly to the right of [range] ; created by
450471/// [TableColumn.rangeGt] .
472+ @experimental
451473final class RangeGtFilter extends RangeFilter {
452474 const RangeGtFilter ._(super .column, super .range) : super ._();
453475
@@ -462,6 +484,7 @@ final class RangeGtFilter extends RangeFilter {
462484
463485/// Only rows whose range does not extend to the left of [range] ; created by
464486/// [TableColumn.rangeGte] .
487+ @experimental
465488final class RangeGteFilter extends RangeFilter {
466489 const RangeGteFilter ._(super .column, super .range) : super ._();
467490
@@ -476,6 +499,7 @@ final class RangeGteFilter extends RangeFilter {
476499
477500/// Only rows whose range does not extend to the right of [range] ; created by
478501/// [TableColumn.rangeLte] .
502+ @experimental
479503final class RangeLteFilter extends RangeFilter {
480504 const RangeLteFilter ._(super .column, super .range) : super ._();
481505
@@ -490,6 +514,7 @@ final class RangeLteFilter extends RangeFilter {
490514
491515/// Only rows whose range is adjacent to [range] ; created by
492516/// [TableColumn.rangeAdjacent] .
517+ @experimental
493518final class RangeAdjacentFilter extends RangeFilter {
494519 const RangeAdjacentFilter ._(super .column, super .range) : super ._();
495520
@@ -503,6 +528,7 @@ final class RangeAdjacentFilter extends RangeFilter {
503528}
504529
505530/// A filter matching a text column against a single [pattern] .
531+ @experimental
506532sealed class PatternFilter extends ColumnFilter {
507533 const PatternFilter ._(this .column, this .pattern) : super ._();
508534
@@ -520,6 +546,7 @@ sealed class PatternFilter extends ColumnFilter {
520546
521547/// Only rows matching [pattern] case-sensitively; created by
522548/// [TextTableColumnFilters.like] .
549+ @experimental
523550final class LikeFilter extends PatternFilter {
524551 const LikeFilter ._(super .column, super .pattern) : super ._();
525552
@@ -534,6 +561,7 @@ final class LikeFilter extends PatternFilter {
534561
535562/// Only rows matching [pattern] case-insensitively; created by
536563/// [TextTableColumnFilters.ilike] .
564+ @experimental
537565final class IlikeFilter extends PatternFilter {
538566 const IlikeFilter ._(super .column, super .pattern) : super ._();
539567
@@ -548,6 +576,7 @@ final class IlikeFilter extends PatternFilter {
548576
549577/// Only rows matching the regular expression [pattern] case-sensitively;
550578/// created by [TextTableColumnFilters.matchRegex] .
579+ @experimental
551580final class MatchRegexFilter extends PatternFilter {
552581 const MatchRegexFilter ._(super .column, super .pattern) : super ._();
553582
@@ -562,6 +591,7 @@ final class MatchRegexFilter extends PatternFilter {
562591
563592/// Only rows matching the regular expression [pattern] case-insensitively;
564593/// created by [TextTableColumnFilters.imatchRegex] .
594+ @experimental
565595final class ImatchRegexFilter extends PatternFilter {
566596 const ImatchRegexFilter ._(super .column, super .pattern) : super ._();
567597
@@ -575,6 +605,7 @@ final class ImatchRegexFilter extends PatternFilter {
575605}
576606
577607/// A filter matching a text column against several [patterns] at once.
608+ @experimental
578609sealed class PatternListFilter extends ColumnFilter {
579610 const PatternListFilter ._(this .column, this .patterns) : super ._();
580611
@@ -592,6 +623,7 @@ sealed class PatternListFilter extends ColumnFilter {
592623
593624/// Only rows matching all of [patterns] case-sensitively; created by
594625/// [TextTableColumnFilters.likeAllOf] .
626+ @experimental
595627final class LikeAllOfFilter extends PatternListFilter {
596628 const LikeAllOfFilter ._(super .column, super .patterns) : super ._();
597629
@@ -606,6 +638,7 @@ final class LikeAllOfFilter extends PatternListFilter {
606638
607639/// Only rows matching any of [patterns] case-sensitively; created by
608640/// [TextTableColumnFilters.likeAnyOf] .
641+ @experimental
609642final class LikeAnyOfFilter extends PatternListFilter {
610643 const LikeAnyOfFilter ._(super .column, super .patterns) : super ._();
611644
@@ -620,6 +653,7 @@ final class LikeAnyOfFilter extends PatternListFilter {
620653
621654/// Only rows matching all of [patterns] case-insensitively; created by
622655/// [TextTableColumnFilters.ilikeAllOf] .
656+ @experimental
623657final class IlikeAllOfFilter extends PatternListFilter {
624658 const IlikeAllOfFilter ._(super .column, super .patterns) : super ._();
625659
@@ -634,6 +668,7 @@ final class IlikeAllOfFilter extends PatternListFilter {
634668
635669/// Only rows matching any of [patterns] case-insensitively; created by
636670/// [TextTableColumnFilters.ilikeAnyOf] .
671+ @experimental
637672final class IlikeAnyOfFilter extends PatternListFilter {
638673 const IlikeAnyOfFilter ._(super .column, super .patterns) : super ._();
639674
@@ -648,6 +683,7 @@ final class IlikeAnyOfFilter extends PatternListFilter {
648683
649684/// A full text search filter on a text or tsvector column; created by
650685/// [TextTableColumnFilters.textSearch] .
686+ @experimental
651687final class TextSearchFilter extends ColumnFilter {
652688 const TextSearchFilter ._(this .column, this .query, {this .config, this .type})
653689 : super ._();
@@ -689,6 +725,7 @@ final class TextSearchFilter extends ColumnFilter {
689725
690726/// The negation of another [ColumnFilter] , created through
691727/// [ColumnFilter.not] .
728+ @experimental
692729final class NegatedFilter extends ColumnFilter {
693730 const NegatedFilter ._(this .inner) : super ._();
694731
0 commit comments