Commit Graph

648 Commits

Author SHA1 Message Date
Simon Binder 634d1318e0
Add empty Android plugin class to moor_ffi 2020-07-03 12:10:37 +02:00
Simon Binder 2332c58742
Override toString in result classes (#676) 2020-07-02 19:59:41 +02:00
Simon Binder ac20d9b324
Fix some pub warnings that appeared during publishing 2020-06-28 21:17:33 +02:00
Simon Binder 3923b815fd
Merge branch 'master' into develop
# Conflicts:
#	moor_generator/pubspec.yaml
2020-06-28 17:34:00 +02:00
Simon Binder 3a558c3d1d
Prepare moor 3.2, moor_ffi 0.7 release 2020-06-28 17:27:32 +02:00
Simon Binder 34e827b0b5
Escape column names in primary key (#661) 2020-06-25 20:03:05 +02:00
Simon Binder b4aeacdba3
Add tests for errors across isolates 2020-06-23 19:35:31 +02:00
Simon Binder d881659db6
Support flags in regexp (#644) 2020-06-22 22:20:43 +02:00
Simon Binder bccbb3e7a8
Don't require tables on UseMoor or UseDao 2020-06-21 18:19:59 +02:00
Ilya Beregovskiy 20137035be move docs links /kripken/sql.js ->/sql-js/sql.js 2020-06-19 16:28:14 +03:00
Simon Binder 374266b70b
Mark beforeOpen as nonVirtual 2020-06-16 14:25:59 +02:00
Till Friebe a846b6c425 Add another test 2020-06-08 18:36:06 +02:00
Till Friebe 7a652e5ac6 Apply feedback 2020-06-08 18:17:04 +02:00
Till Friebe 503f2e023e Add hashcode and equals to value
This simplifies testing, as now one can compare like this:
```dart
expect(Value(1), Value(1));
```
Or a realistic example:
```dart
final capturedArgument = verify(fooDao.insert(captureAny)).captured.first.createdAt;
expect(capturedArgument, Value(DateTime(0)));
```

A test is still missing which would look something like this:
```
test('values support hash and equals', () {
  const first = Value(0);
  final equalToFirst = Value(0);
  const different = Values.absent());

  expect(first.hashCode, equalToFirst.hashCode);
  expect(first, equals(equalToFirst));

  expect(first, isNot(equals(different)));
  expect(first, equals(first));
});
```
I'm not sure where the test is supposed to be.
2020-06-08 10:11:20 +02:00
Simon Binder 32cae11aa2
Better docs for useColumns in join 2020-06-07 11:22:48 +02:00
Simon Binder 835e31c8ed
Add `this.` prefix to avoid name clashes (#613) 2020-06-03 19:07:53 +02:00
Simon Binder 9f651b3ce9
Better support for changing analysis sessions 2020-06-02 11:48:16 +02:00
Till Friebe 1bab7f11d2 Add toString to companions
This is very useful for unit tests, because we can see directly what
values a companion has.
2020-05-28 18:52:32 +02:00
Simon Binder 9be0a9f79c
Fix result sets generating twice 2020-05-22 20:32:47 +02:00
Simon Binder b8335b1222
Mention custom result class names in changelog 2020-05-22 17:25:30 +02:00
Simon Binder 3955ae8eff
Generated code for custom table names 2020-05-21 20:42:50 +02:00
Simon Binder 8a98b42e62
Optimize row mapping when there is a matching table 2020-05-21 20:21:03 +02:00
Simon Binder 513881b13f
Always use a lambda for select mapping 2020-05-21 19:37:54 +02:00
Simon Binder f5f6cbeffe
Remove protected and visibleForTesting annotations from QueryEngine 2020-05-20 18:28:45 +02:00
Simon Binder 65f02cb22c
Prepare 3.1 release of moor, 0.6 or moor_ffi, 0.9 of sqlparser 2020-05-18 20:45:48 +02:00
Simon Binder df32408a7c
Add destructive migration feature (#576) 2020-05-16 13:22:09 +02:00
Simon Binder 5c3671b465
Fix booleans not working as expected in mapFromCompanion (#559) 2020-05-13 21:51:08 +02:00
Simon Binder cf830165e1
Support enum converters for moor files, add documentation 2020-05-13 21:43:58 +02:00
Simon Binder 7b9fa3d9ed
Simplify generation of enum type converters 2020-05-13 20:16:20 +02:00
Simon Binder 25ee06ab36
Don't attempt to close databases that have never been open (#560) 2020-05-13 11:12:17 +02:00
Simon Binder 0f2ff8c97a
Implicitly create type converters for enums, Dart api (#478) 2020-05-12 21:47:11 +02:00
Simon Binder 3dd682d522
Also log statements during migrations if desired 2020-05-12 13:38:02 +02:00
Simon Binder 0af49dd6df
Bring back the toCompanion method for data classes (#257) 2020-05-08 20:53:58 +02:00
Simon Binder e30bdd2acf
Support case sensitive contains (#527) 2020-05-07 18:59:12 +02:00
Simon Binder 9841c960d1
Parse row values, warn on misuse 2020-05-06 21:08:47 +02:00
Simon Binder ab66a3befd
Support equals and hashCode in companions (#545) 2020-05-06 18:34:49 +02:00
Simon Binder c5499eb6b5
Document that delete returns number of deleted rows (#544) 2020-05-05 18:46:13 +02:00
Simon Binder 79294e248a
Escape column names in updates 2020-05-04 20:15:23 +02:00
Simon Binder bb0461ccd2
Format, add to changelog 2020-05-03 21:20:52 +02:00
Simon Binder 1fdade7ac8
Merge branch 'map-from-row-or-null-without-prefix' of https://github.com/Mike278/moor into Mike278-map-from-row-or-null-without-prefix 2020-05-03 21:16:26 +02:00
Simon Binder bd250ee9e7
Support collate expression with new type inference (#533) 2020-05-03 21:13:29 +02:00
Mike278 7e3df823db Fix null table prefix 2020-05-03 13:00:28 -04:00
Simon Binder 0a30b8a12e
Upgrade integration tests, release sqlparser 0.8 2020-05-03 13:28:34 +02:00
Simon Binder d3c4eac166
First release preparation for moor 3.0 2020-05-02 14:50:04 +02:00
Simon Binder 10e8af433c
Explain that filter isn't available everywhere 2020-05-01 13:55:49 +02:00
Sebastian Roth e1c568ba16
Fixes a few typos 2020-05-01 10:03:13 +01:00
Simon Binder 5ad5cded30
Fix deprecated member usage in moor test 2020-04-30 21:30:21 +02:00
Simon Binder 195eb0b39b
Small docs improvements 2020-04-30 21:28:42 +02:00
Simon Binder 81a476662c
Support contains (#527) 2020-04-30 11:51:09 +02:00
Simon Binder e90d72f25f
Don't use _openedDbCount outside of debug builds 2020-04-28 18:53:17 +02:00
Simon Binder 91115311cf
Extension to support old db field in daos 2020-04-27 14:18:47 +02:00
Simon Binder 2a3ed3ea12
Fix transactions in migrations for isolates 2020-04-25 16:29:46 +02:00
Simon Binder 1546f323b2
Merge branch 'master' into develop
# Conflicts:
#	docs/content/en/docs/Getting started/advanced_dart_tables.md
#	docs/content/en/docs/Using SQL/moor_files.md
#	extras/integration_tests/flutter_db/lib/moor_flutter.dart
#	moor/CHANGELOG.md
#	moor/lib/src/runtime/isolate/client.dart
#	moor/lib/src/runtime/isolate/server.dart
#	moor/pubspec.yaml
#	moor_ffi/test/database/database_test.dart
2020-04-25 12:44:01 +02:00
Simon Binder 4140090270
Document upserts 2020-04-25 12:23:37 +02:00
Simon Binder 721d25ff3c
Make insertOnConflictUpdate return a Future<int> 2020-04-24 22:34:09 +02:00
Simon Binder 821d1620cd
Run batch statements in the right order 2020-04-24 20:09:46 +02:00
Simon Binder 9300010890
Only send primitive objects over isolates (#399) 2020-04-23 21:03:50 +02:00
Simon Binder 1fc38f8434
Expose underlying SendPort for moor isolate 2020-04-23 19:15:44 +02:00
Simon Binder 1da09e7357
Add small integration test for generated upserts 2020-04-20 22:03:45 +02:00
Simon Binder d2e455d66b
Write conflict target when using upserts 2020-04-20 21:58:37 +02:00
Simon Binder 398577ceab
Test for integrity with upserts 2020-04-19 21:16:01 +02:00
Simon Binder c3b0c95389
Support upserts for batches (#507) 2020-04-19 20:47:03 +02:00
Simon Binder 0220d01a54
Fix mapping of nulls in IntType 2020-04-18 17:35:26 +02:00
Simon Binder 4190c807c9
Fix analysis warnings 2020-04-17 22:35:27 +02:00
Simon Binder 86295536c7
Add insertOnConflictUpdate shorthand 2020-04-17 22:32:53 +02:00
Simon Binder ca0fe1ef55
Support upsert clauses from Dart DSL (#367) 2020-04-17 22:14:27 +02:00
Simon Binder a7ac6db55d
Support + and - operators on DateTime 2020-04-17 21:29:12 +02:00
Simon Binder 84bac1bf1d
Initial support for sql expressions in companions 2020-04-17 20:48:22 +02:00
Simon Binder 62a363105a
Refactor Insertables to avoid covariant parameters 2020-04-17 18:02:05 +02:00
Simon Binder a553dcf10e
Fix query streams with rxdart 0.24 (#500) 2020-04-17 12:16:28 +02:00
Simon Binder 9a78604d98
Fix issues with new inference, enable it by default 2020-04-16 19:07:30 +02:00
Simon Binder 49f7dc059f
Test to ensure failing migration throws 2020-04-16 17:32:20 +02:00
Simon Binder 424c2febda
Support async batch callbacks (#483) 2020-04-10 12:42:09 +02:00
Simon Binder 72e65611a7
Respect transitive imports when resolving moor converters
Might fix an error discovered in #482
2020-04-09 22:28:40 +02:00
Simon Binder 606d11d589
Merge pull request #469 from marcgraub/develop
Basic support for Web Workers
2020-04-06 11:21:19 +02:00
Marc Grau Benaiges c59b96c9bf Added some documentation and fixes code format 2020-04-05 23:12:40 +02:00
Simon Binder ba28211e21
Document nested results in moor files 2020-04-04 12:22:19 +02:00
Simon Binder eac461486e
Tests for nested results 2020-04-03 21:41:16 +02:00
Simon Binder 1340e9291c
Generate code for nested results (#288) 2020-04-03 21:31:27 +02:00
Marc Grau Benaiges e0c3f4b647 Basic support for Web Workers (#468) 2020-04-03 12:24:26 +02:00
Simon Binder aed9b40c30
Improve table updates issued by batches
Fixes #460
2020-03-29 21:57:55 +02:00
Simon Binder 5ec5a4933c
Fix parsing Uint8Lists from json (#459) 2020-03-27 11:52:00 +01:00
Simon Binder cdd57f340d
Automatically migrate from local storage to IndexedDb 2020-03-23 13:36:08 +01:00
Simon Binder 5b675a811b
Don't consider rowid aliases required (#445) 2020-03-16 20:36:03 +01:00
Simon Binder dd74948e1a
Properly support transactions in migrations 2020-03-15 21:42:22 +01:00
Simon Binder d1332ff1be
moor_ffi: Only update schema version after migrations 2020-03-15 15:20:44 +01:00
Simon Binder bc1f347498
Test transactions in migrations (#430) 2020-03-15 15:16:22 +01:00
Simon Binder 60d3bf05e1
Remove coupling between QueryExecutor and generated db
Closes #372
2020-03-15 14:55:02 +01:00
Simon Binder b2285e04ef
Fix limit clause not being copied to join (#433) 2020-03-08 12:03:34 +01:00
Simon Binder e773adab59
Fix beforeOpen on background isolate (#431) 2020-03-07 17:54:36 +01:00
Simon Binder 3002d87bcb
New tableUpdates stream method on QueryEngine (#394) 2020-03-04 22:43:41 +01:00
Simon Binder 2811d91fa1
Migrate stream store to table updates 2020-03-04 22:08:58 +01:00
Simon Binder b823f534c8
Write update kind for compiled update and delete queries 2020-03-04 21:28:08 +01:00
Simon Binder b0b9a0ed47
Generate more accurate update rules for triggers 2020-03-04 20:59:03 +01:00
Simon Binder 0b0d5792fd
Allow more specific updates in stream queries 2020-03-04 20:28:31 +01:00
Simon Binder 2650b7a24b
Add simple test for runtime rule propagation 2020-03-04 16:57:51 +01:00
Simon Binder 545fbcc86a
Find and generate update rules during builds 2020-03-04 16:34:16 +01:00
Simon Binder 3fe6fbfc99
Support table-update propagation at runtime 2020-03-04 16:09:01 +01:00
Simon Binder c8f4f739e9
Support for REGEXP (#410) 2020-03-04 13:48:25 +01:00
David Martos 4a1a3a805c Add docs to the onUpgrade callback about handling schema version downgrades 2020-03-03 23:28:21 +01:00
Simon Binder d7bb4f51e6
Merge branch 'dont-use-double-quoted-strings' into develop 2020-02-25 14:17:38 +01:00
Simon Binder aa98774eae
Don't generate double-quoted string literals 2020-02-25 14:15:31 +01:00
Simon Binder 23585ad920
Don't await StreamController.close() when closing streams 2020-02-19 20:01:24 +01:00
Simon Binder 36bf6524df
Some more unit tests for the core moor package 2020-02-19 15:01:33 +01:00
Simon Binder 11d5a78606
Document how to use the new moor_ffi functions 2020-02-19 12:45:15 +01:00
Simon Binder e536761295
Add Dart apis for mathematical functions in moor_ffi 2020-02-18 22:36:08 +01:00
Simon Binder 33faf4e962
Fix tests in moor 2020-02-18 22:21:09 +01:00
Simon Binder 10b12a5976
Remove two more tiny deprecated members 2020-02-17 21:22:43 +01:00
Simon Binder 64bbbde689
Remove deprecated members of CustomSelectStatement 2020-02-17 21:17:51 +01:00
Simon Binder ad5ef7e66b
Remove top-level isIn and isNotIn methods 2020-02-17 21:15:31 +01:00
Simon Binder d43e227757
Make eager ast resolving behavior opt-in 2020-02-17 21:05:56 +01:00
Simon Binder e2b65e968a
Rename customSelectQuery to just customSelect
Also fix a crash in the builder
2020-02-17 20:43:42 +01:00
Simon Binder 8c4c6cd8cd
Remove insertAll and orReplace 2020-02-17 18:11:01 +01:00
Simon Binder 11af414551
Remove the second type parameter on expressions 2020-02-17 18:05:24 +01:00
Simon Binder f15f004ba8
Remove top-level boolean and datetime functions 2020-02-17 17:17:46 +01:00
Simon Binder 9e1a12432a
Don't export core moor from moor_web 2020-02-17 17:11:34 +01:00
Simon Binder 7c62d6cdd1
Provide IndexedDB backend on the web (#390) 2020-02-16 13:26:25 +01:00
Simon Binder 57fa1d50c6
Release moor and moor_generator 2.4.0, sqlparser 0.7.0 2020-02-12 21:01:41 +01:00
Simon Binder b295542a07
Prepare release for 2.4 2020-02-10 19:46:27 +01:00
Simon Binder b30c21e577
Mention non-shared builder in changelog 2020-02-08 20:43:57 +01:00
Simon Binder 4002898f26
Remove outdated web example 2020-02-06 22:24:48 +01:00
Simon Binder aa52c4ba3d
Analysis for upsert clauses 2020-02-05 12:26:14 +01:00
Simon Binder 2b96100480
Isolates: Throw error when using in closed state 2020-02-04 19:38:45 +01:00
Simon Binder a5451104a0
Map companions back to models 2020-02-03 19:35:39 +01:00
Simon Binder a43f6bdb91
Tests for pooled connections, move to main lib 2020-02-03 19:13:51 +01:00
Simon Binder 9494768a32
Start work on pooled connections 2020-02-01 15:56:30 +01:00
Simon Binder f9424470a5
Support int -> double conversion in the default serializer 2020-01-31 10:28:01 +01:00
Simon Binder 48aebc0b54
Fix closing behavior of stream queries in isolates 2020-01-30 23:07:45 +01:00
Simon Binder 68e2b716fe
Support stream queries in transactions (#365) 2020-01-30 22:08:18 +01:00
Simon Binder 01326deb7b
Fix crash when using a no-op transaction (#361) 2020-01-29 22:03:29 +01:00
Simon Binder a37a653e43
Support calling join on a JoinedSelectStatement 2020-01-28 21:32:30 +01:00
Simon Binder c3219de989
Tests: Start firefox in headless mode 2020-01-27 19:42:11 +01:00
Simon Binder d4cf9c26eb
Also run tests for moor on chrome and firefox 2020-01-27 16:58:48 +01:00
Simon Binder 80a10c73d8
Test case to ensure legacy updates with data classes work 2020-01-27 14:22:03 +01:00
Simon Binder 75e48303e8
Add changelog entry for table-valued functions 2020-01-26 15:40:09 +01:00
Simon Binder 27430cbb07
Add table-valued query to test moor file 2020-01-26 15:37:46 +01:00
Simon Binder 80ced55d32
Improve api for "group by" statements, documentation 2020-01-25 21:56:09 +01:00
Simon Binder 4685059b14
Documentation for type converters in moor files 2020-01-25 16:17:56 +01:00
Simon Binder 5f91667a24
Update moor file integration test for type converters 2020-01-25 16:03:46 +01:00
Simon Binder de38761db9
Support type converters in moor files (#103) 2020-01-25 15:43:55 +01:00
Simon Binder 9acef7a678
Support aggregate expressions in the Dart api 2020-01-24 22:09:09 +01:00
Simon Binder 59134e42db
Merge branch 'master' into develop 2020-01-21 21:09:53 +01:00
Simon Binder 257cfaca2e
Finish changelog and pubspec for 2.3 release 2020-01-21 17:55:41 +01:00
Simon Binder 064a57d381
Fix clientDefaults logic, some more tests for core pkg 2020-01-21 11:07:05 +01:00
Simon Binder 83a3344719
Initializer for web databases (#328) 2020-01-18 12:26:47 +01:00
Simon Binder d0cb2eec37
Add analyze command to moor cli tool, documentation site 2020-01-16 23:10:05 +01:00
Simon Binder 4a2184110f
Run tests for types1 for types2 resolver 2020-01-16 22:07:02 +01:00
Simon Binder 8ae68707f8
Smarter many-to-one propagation in types2 2020-01-15 22:10:18 +01:00
Simon Binder ddda6797e1
types: Analyze functions 2020-01-13 20:40:46 +01:00
Simon Binder 5d8040554f
CLI tool to export a moor schema to json 2020-01-12 10:38:03 +01:00