File tree Expand file tree Collapse file tree
lib/src/runtime/query_builder
test/database/expressions
query_builder/expressions
test/query_builder/expressions Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ## 2.33.0-dev
2+
3+ - Add ` length ` extension for blob expressions.
4+
15## 2.32.1
26
37- DevTools extension: Make error messages selectable.
Original file line number Diff line number Diff line change 1+ import 'dart:typed_data' ;
2+
3+ import '../query_builder.dart' ;
4+
5+ /// Defines methods that operate on a column storing [Uint8List] values.
6+ extension BlobExpressionOperators on Expression <Uint8List > {
7+ /// The length of this blob, in bytes.
8+ Expression <int > get length {
9+ return FunctionCallExpression ('LENGTH' , [this ]);
10+ }
11+ }
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ import 'expressions/internal.dart';
3030import 'helpers.dart' ;
3131
3232export 'components/table_valued_function.dart' ;
33+ export 'expressions/binary.dart' ;
3334export 'expressions/bitwise.dart' ;
3435export 'expressions/case_when.dart' ;
3536export 'on_table.dart' ;
Original file line number Diff line number Diff line change @@ -188,6 +188,11 @@ void main() {
188188 });
189189 });
190190
191+ test ('blob length' , () async {
192+ expect (await eval (Constant (Uint8List (0 )).length), 0 );
193+ expect (await eval (Variable (Uint8List (12 )).length), 12 );
194+ });
195+
191196 test ('coalesce' , () async {
192197 final expr = coalesce <int >([const Constant (null ), const Constant (3 )]);
193198
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ export 'query_builder/clauses/where.dart';
99export 'query_builder/expressions/aggregate.dart' ;
1010export 'query_builder/expressions/algebra.dart' ;
1111export 'query_builder/expressions/bitwise.dart' ;
12+ export 'query_builder/expressions/blob.dart' ;
1213export 'query_builder/expressions/boolean.dart' ;
1314export 'query_builder/expressions/case_when.dart' ;
1415export 'query_builder/expressions/comparable.dart' ;
Original file line number Diff line number Diff line change 1+ import 'dart:typed_data' ;
2+
3+ import 'expression.dart' ;
4+ import 'functions.dart' ;
5+
6+ /// Defines operations on blob ([Uint8List] ) values.
7+ extension BlobExpressionOperators on Expression <Uint8List > {
8+ /// The length of this blob, in bytes.
9+ Expression <int > get length => FunctionCallExpression ('LENGTH' , [this ]);
10+ }
Original file line number Diff line number Diff line change @@ -236,6 +236,11 @@ void main() {
236236 });
237237 });
238238
239+ test ('blob length' , () async {
240+ expect (await eval (Literal (Uint8List (0 )).length), 0 );
241+ expect (await eval (Variable (Uint8List (12 )).length), 12 );
242+ });
243+
239244 test ('coalesce' , () async {
240245 final expr = coalesce <int >([const Literal (null ), const Literal (3 )]);
241246
You can’t perform that action at this time.
0 commit comments