Commit Graph

311 Commits

Author SHA1 Message Date
Simon Binder e9cada5e54
Api to globally override the default ValueSerializer
Closes #303
2019-12-27 18:17:45 +01:00
Simon Binder 72934d1b87
Check isRequired at compile time, save verification code 2019-12-25 22:26:32 +01:00
Simon Binder 5314520746
clientDefault values for columns #294 2019-12-25 22:22:46 +01:00
Simon Binder 9dbd737087
Integration test for fts5 queries 2019-12-25 14:00:47 +01:00
Simon Binder 633570257c
Fix moor tests for new column-$write behavior 2019-12-23 13:58:00 +01:00
Simon Binder 28e8421aba
Test to ensure hasMultipleTables has the correct effect 2019-12-21 22:59:44 +01:00
Simon Binder 1f0ede967b
Add missing call to shutdownAll in test case 2019-12-21 18:10:55 +01:00
Simon Binder 8987da453b
Test that streams synchronize over multiple isolates 2019-12-21 18:04:01 +01:00
Simon Binder c07ca12273
Set hasMultipleTables: true when appropriate 2019-12-21 14:57:36 +01:00
Simon Binder 2c57a80771
Revert using mapFromRow() for matched tables in queries 2019-12-21 14:51:22 +01:00
Simon Binder 0d4cf13001
Factories for easier ordering terms (#284) 2019-12-18 15:59:28 +01:00
Simon Binder 76ac7c7ab3
Support batches in transactions (#271) 2019-12-16 15:50:12 +01:00
Simon Binder 94634bd48b
Support custom fts5 queries 2019-12-12 18:56:37 +01:00
Simon Binder 8ee3029ed0
Save database after opening (fixes #273) 2019-12-11 11:18:59 +01:00
Simon Binder 2c97373bdd
Support implicit-dynamic: false
Closes #268
2019-12-10 20:38:08 +01:00
Simon Binder 74ebb8a9ab
Ability to create fts5 tables in moor files (#196) 2019-12-10 20:24:08 +01:00
Simon Binder 67c3715768
Fix another test regarding Dart components in sql 2019-12-07 18:06:42 +01:00
Simon Binder 4ee228d5a6
Write table name for columns in components (#269) 2019-12-07 13:38:33 +01:00
Simon Binder 3c74a20f56
Enable more recent lints and enforce them 2019-12-04 21:45:09 +01:00
Simon Binder 092f64d7cf
Escape column names during insert 2019-12-02 21:40:41 +01:00
Simon Binder a0ce3421c9
Resolve json functions when option is set (#235) 2019-11-28 21:50:55 +01:00
Simon Binder 59f408229b
Dart apis for the json1 extension (#235) 2019-11-28 19:13:51 +01:00
Simon Binder 925d28c080
Always run batches inside a transaction 2019-11-27 12:06:19 +01:00
Simon Binder bb1fcc1590
Fix analyzer crash at CTE (#255) 2019-11-24 14:46:20 +01:00
Simon Binder 8819245685
Resolve Dart expressions in moor files 2019-11-18 13:59:10 +01:00
Simon Binder 0a96769dcb
Override hashCode and operator == in common expressions 2019-11-16 20:54:34 +01:00
Simon Binder 7609df34f0
Support selecting custom expressions 2019-11-16 16:38:02 +01:00
Simon Binder c0aa88f4d0
Warn when a database class isn't used as a singleton 2019-11-15 09:52:38 +01:00
Simon Binder bc3910cd86
Collect coverage for the MoorIsolate tests 2019-11-13 18:35:48 +01:00
Simon Binder bea001bb16
Improve test coverage for query generation 2019-11-12 21:16:48 +01:00
Simon Binder 85fa0d4764
Update docs to reflect the new extension-based API 2019-11-09 21:16:24 +01:00
Simon Binder ba6411e6f0
Expose UPPER, LOWER and LENGTH functions from the Dart API 2019-11-09 18:53:15 +01:00
Simon Binder 4a2b02782e
Make streams emit errors when they can't fetch data (#233) 2019-11-09 16:34:01 +01:00
Simon Binder 5b3bcb1916
Introduce extension for DateTime expressions 2019-11-09 13:07:49 +01:00
Simon Binder 17210f7bee
Don't write all parentheses (compare precedence, #231) 2019-11-08 21:49:23 +01:00
Simon Binder b211d68661
Arithmetic operators for sql expressions in Dart 2019-11-08 20:43:52 +01:00
Simon Binder 77cc6b2d88
Use extensions methods for Dart query api (#195) 2019-11-06 12:16:55 +01:00
Simon Binder e3d3bcd99e
Proper api to terminate a MoorIsolate 2019-11-05 21:36:51 +01:00
Simon Binder c7fdf44a6e
Support transactions and batches for the isolate api 2019-11-05 20:22:55 +01:00
Simon Binder 98470109cf
Remove built_value(_generator) dependency from generator 2019-11-04 17:09:21 +01:00
Simon Binder 9f1aafbcef
Expand batch api to update statements (#221) 2019-11-02 21:48:37 +01:00
Simon Binder f3221e09bc
Support stream queries across isolates 2019-10-30 21:10:53 +01:00
Simon Binder a2c7c11abf
Support executing queries over isolates 2019-10-30 20:32:08 +01:00
Simon Binder 5cc1f85441
Inject mock streams via .connect constructor 2019-10-30 19:25:26 +01:00
Simon Binder e8b4f8347c
Refactor: Put all query gen code into one compilation unit 2019-10-24 21:54:36 +02:00
Simon Binder cf671ac56b
Expand documentation, support DISTINCT selects (#205) 2019-10-24 21:12:31 +02:00
Simon Binder ddabf21d01
Verify that triggers can be created 2019-10-21 18:39:52 +02:00
Simon Binder 8a54fd4729
Generate code for CREATE TRIGGER statements 2019-10-21 18:13:28 +02:00
Simon Binder ccf208b329
Support additional insert modes 2019-10-21 17:14:58 +02:00
Simon Binder 1f8dfbe887
Call doWhenOpened for customStatement (#199) 2019-10-20 11:39:24 +02:00
Simon Binder fd27c878d4
Fix errors in sqlparser that were swallowed before 2019-10-19 16:41:30 +02:00
Simon Binder 263004fe7b
Option to use the column name as json key in moor files
Closes #176
2019-10-17 21:44:20 +02:00
Simon Binder 438f979ed1
Use a mixin for auto increment columns in test file 2019-10-11 22:12:28 +02:00
Simon Binder e66eaa6127
Merge pull request #181 from minia68/master
Make transaction return a value
2019-10-10 17:06:05 +02:00
Ryzhkov Sergey c0d75f1654 make transaction return value 2019-10-10 16:52:09 +03:00
Simon Binder 47f8dbb90d
Make streams emit cached data for multiple listeners
Fixes #178
2019-10-09 22:39:19 +02:00
Simon Binder 5510a90583
Fix warnings (2.6-dev SDK), escape \r, constant workaround 2019-10-09 19:48:52 +02:00
Simon Binder 6e32e37dd7
Remove unnecessary type parameter on createCompanion 2019-10-05 22:41:23 +02:00
Simon Binder ed03bff4c2
Recognize boolean and datetime column in moor 2019-10-05 21:24:41 +02:00
Simon Binder fb7c3c2a9a
Dart API for between expressions (closes #159) 2019-10-05 13:38:34 +02:00
Simon Binder b0d69f346f
Make StartWithValueTransformer subscribe in same microtask 2019-10-03 11:39:12 +02:00
Simon Binder c2845cb248
Invalidate cached stream data on update (#166) 2019-10-03 11:28:44 +02:00
Simon Binder 869aaada90
Unit tests for row.read* 2019-09-29 16:33:09 +02:00
Simon Binder 4137f6cffa
Write unit tests for DelegateDatabase 2019-09-29 16:21:09 +02:00
Simon Binder 308167dc12
Support mapping BLOBs to literals 2019-09-29 15:18:11 +02:00
Simon Binder b684a7be69
Replace imports of test_api with test 2019-09-26 22:52:20 +02:00
Simon Binder b62ed05a87
Make the lazy executor pass on the GeneratedDatabase 2019-09-20 20:46:54 +02:00
Simon Binder 87c50de1e1
Add LazyDatabase wrapper to create a database async 2019-09-20 20:23:35 +02:00
Simon Binder 161f7c0203
Optionally override hashCode and equals in result sets 2019-09-20 19:31:36 +02:00
Simon Binder 00b2956b35
Allow data class names to be overridden in sql
Closes #147
2019-09-17 15:23:24 +02:00
Simon Binder 25ceda3505
Report lints about invalid Dart Templates in SQL 2019-09-15 11:59:47 +02:00
Simon Binder 5b6bd1db37
Fix some queries with Dart templates not compiling 2019-09-15 10:51:35 +02:00
Simon Binder 928c9832b5
Move ffi bindings into new moor_ffi package 2019-09-14 20:54:13 +02:00
Simon Binder 9e498fb575
Merge branch 'ffi' into develop
# Conflicts:
#	moor/lib/src/runtime/executor/helpers/engines.dart
2019-09-14 19:23:37 +02:00
Simon Binder e89f9227ab
Don't write ResultSet classes for single-column queries
Fixes #148
2019-09-14 19:03:52 +02:00
Simon Binder 54c3dbc4b8
Write variables created in a dart template 2019-09-14 17:48:17 +02:00
Simon Binder 29c0cdaf3f
Write integration test for Dart templates 2019-09-14 16:48:51 +02:00
Simon Binder 349b245089
Write implementation for Dart placeholders 2019-09-14 16:42:24 +02:00
Simon Binder bf7c9feddf
Write parameter declarations for Dart placeholders 2019-09-14 12:26:58 +02:00
Simon Binder 7a8191fe7e
Fix moor queries not expanding array vars properly 2019-09-14 09:27:36 +02:00
Simon Binder 138652fdc4
Remove DiffUtil and MoorAnimatedList 2019-09-13 21:06:11 +02:00
Simon Binder c8ae99b52e
Breaking changes for the upcoming version
1. Removes transaction parameter in callbacks, custom queries
2. Removes MigrationStrategy.onFinished
2019-09-13 21:04:15 +02:00
Simon Binder 3097bb0591
Don't write get/watch methods for queries declared in moor 2019-09-13 20:23:48 +02:00
Simon Binder 1130101f1f
Support writing string literals from Constant<String>
Fixes #137
2019-09-06 22:37:15 +02:00
Simon Binder 867f953107
Merge branch 'develop' into refactor-generator
# Conflicts:
#	moor_generator/lib/src/analyzer/sql_queries/lints/linter.dart
2019-09-03 19:35:23 +02:00
Simon Binder 35fcdb2c0f
Implement error handling in the refactored builder 2019-09-03 19:30:05 +02:00
Simon Binder 4af370f0cb
Tests: Verify that an executor is open when used. 2019-08-30 19:32:44 +02:00
Simon Binder 3cb00a4b31
Remove unnecessary "this." in insert companion constructor 2019-08-29 16:33:15 +02:00
Simon Binder 241baed0c3
Generate query implementations for insert statements 2019-08-29 16:27:55 +02:00
Simon Binder a4b256f8a5
Support custom insert statements at runtime 2019-08-29 15:52:29 +02:00
Simon Binder 4e83c0275b
Generate constructor for companions with @required fields 2019-08-29 13:54:08 +02:00
Simon Binder b1e215b8d3
Merge branch 'develop' into ffi 2019-08-28 15:36:10 +02:00
Simon Binder 0860b6645a
Generate selectable for custom queries
This makes is easier to use getSingle() and watchSingle()
on them.
Fixes #120
2019-08-27 18:44:34 +02:00
Simon Binder 89f3987e6b
Fix generation of PRIMARY KEY constraint on int column 2019-08-23 23:07:31 +02:00
Simon Binder 77e444b13b
Verify that INTEGER PRIMARY KEY accepts absent values
Verifies that #112 is fixed
2019-08-23 22:57:16 +02:00
Simon Binder 397d3f2383
Support absent values on INTEGER PRIMARY KEY 2019-08-23 22:50:15 +02:00
Simon Binder 17aabbe446
Ensure BoolType maps null values correctly
Fixes #106
2019-08-19 16:16:34 +02:00
Simon Binder 8b28c957b8
Merge branch 'develop' into ffi 2019-08-16 15:20:41 +02:00
Simon Binder cdb231e1ae
Update test case for custom queries
We now use an explicit index when expanding arrays
2019-08-16 15:08:07 +02:00
Simon Binder 4ce9e12c0e
Write copyWith methods in companion classes
Fixes #102
2019-08-16 15:01:03 +02:00
Simon Binder 7d89f12aa7
Use explicit indices for array parameters 2019-08-15 21:26:27 +02:00
Simon Binder b58c200b21
Merge branch 'develop' into ffi 2019-08-08 19:22:54 +02:00
Simon Binder aa6fea6caa
Fix wrong double primary key on generated tables 2019-08-01 20:14:42 +02:00
Simon Binder 70033b0bde
Merge branch 'develop' into ffi
# Conflicts:
#	moor/lib/src/runtime/database.dart
#	moor/lib/src/runtime/executor/executor.dart
2019-07-31 20:49:15 +02:00
Simon Binder 635b902352
Add test case without any additional constraints 2019-07-30 10:33:32 +02:00
Simon Binder b1820ef5aa
Generate code to match default values for CREATE TABLE 2019-07-30 10:30:06 +02:00
Simon Binder aa3706ae9d
Support table constraints in CREATE TABLE 2019-07-30 10:13:47 +02:00
Simon Binder b48970d9ef
Fixes related to the new dialects feature 2019-07-29 15:46:00 +02:00
Simon Binder 634b1adb72
Support includes on the @UseDao annotation as well 2019-07-29 15:19:58 +02:00
Simon Binder e0a82b0e32
Finally generate table classes from sql 2019-07-29 14:22:39 +02:00
Simon Binder b4cdcf0431
Support type converters in compiled custom statements 2019-07-28 00:02:17 +02:00
Simon Binder dbda5dccc1
Cache type converters in static fields 2019-07-27 22:44:44 +02:00
Simon Binder 21956a6b48
Use variables instead of failing to write string literals
Fixes #88
2019-07-26 09:25:55 +02:00
Simon Binder 5b7ffb3dbf
Merge branch 'develop' into ffi 2019-07-23 09:36:11 +02:00
Simon Binder e46a8d84d5
Fix failing transaction test
Not completing is excepted behavior now
2019-07-23 09:13:31 +02:00
Simon Binder b3d381afe6
Rollback transactions when callback throws
Closes #83
2019-07-23 09:06:02 +02:00
Simon Binder 56f8e447bd
Migrate VM database to use the new delegate api 2019-07-22 12:11:38 +02:00
Simon Binder 7229002383
Integration test for the Dart VM 2019-07-20 20:50:09 +02:00
Simon Binder 35e6ed67df
Use new GeneratorSession for the writer 2019-07-20 10:18:41 +02:00
Simon Binder c5e9e8cfc8
Start generator refactoring
Remove global shared state in favor of sessions that are only valid for a single build step.
2019-07-18 18:01:27 +02:00
Simon Binder 33f1732ad1
Update schema test to reflect custom column 2019-07-18 12:56:48 +02:00
Simon Binder ff93af231c
Write correct mapping code for custom objects 2019-07-18 12:53:26 +02:00
Simon Binder bf4d16add6
Write verification and to-sql mapping for custom columns 2019-07-18 12:21:10 +02:00
Simon Binder c2bff3ae42
API and parser for custom types 2019-07-18 12:02:16 +02:00
Simon Binder 364570b0dc
More tests to verify behavior of cached streams 2019-07-12 21:23:28 +02:00
Simon Binder 3407c8e90e
Fix old stream references not emitting data 2019-07-12 20:50:09 +02:00
Simon Binder f0e5ed9a87
Make tables implement equals and hashCode
Fixes #74
2019-07-11 22:02:46 +02:00
Simon Binder 0e7ee6114b
Avoid writing duplicate mapping methods 2019-07-10 19:37:15 +02:00
Simon Binder 91c455d077
Fix (and then, use) the binary encoding to persist data 2019-07-10 19:14:55 +02:00
Simon Binder 02a8dabd63
Fix crash when variables appear more than once 2019-07-10 18:25:18 +02:00
Simon Binder df05e643e0
Migrate example to 1.6, update readme 2019-07-10 17:55:57 +02:00
Simon Binder d01b5c750f
Fix order in limit expressions with comma
Fixes #73
2019-07-10 17:29:03 +02:00
Simon Binder 3f8fb97b6c
Provide Dart api for COLLATE expressions
For #67
2019-07-08 22:37:13 +02:00
Simon Binder 809f239ca3
Generate code for array variables in compiled statements 2019-07-07 16:04:55 +02:00
Simon Binder 08c5cfd1a8
Make the parameter for the transaction unnecessary 2019-07-07 13:03:15 +02:00
Simon Binder da65f6e8a7
Merge branch 'web' into develop 2019-07-06 15:30:07 +02:00
Simon Binder 3b09d819f9
Make date time values comparable
Fixes #58
2019-07-05 18:47:29 +02:00
Simon Binder 306be497de
Also run tests on popular browsers 2019-07-05 10:22:33 +02:00
Simon Binder d98449407e
Don't always include identical streams 2019-07-05 07:58:23 +02:00
Simon Binder b9e9135ac3
Write "DEFAULT VALUES" in insert when appropriate 2019-07-02 22:42:49 +02:00
Simon Binder 316f9e1052
Only resolve columns declared in scope of a statement
Fixes #52
2019-07-02 12:28:54 +02:00
Simon Binder 3dddc6993a
Remove outdated todo entries 2019-07-01 21:37:08 +02:00
Simon Binder 44663d3648
Make `getSingle` and `watchSingle` return null when empty
Closes #47
2019-06-30 22:24:04 +02:00
Simon Binder 464754267e
Document new features for version 1.5 2019-06-30 22:16:58 +02:00
Simon Binder f5492b8bcb
Generate code for update and delete statements 2019-06-30 19:34:54 +02:00
Simon Binder f8834f0e15
More fluent api to define queries 2019-06-30 13:35:13 +02:00
Simon Binder b4de942915
Write query engine override param for generated queries
This allows them to be used in transactions and post-
migration callbacks.
2019-06-30 13:09:07 +02:00
Simon Binder 53ea5835a8
For custom queries, use a matching data class if possible 2019-06-30 12:01:46 +02:00
Simon Binder 22f78589db
Support custom queries in daos 2019-06-29 15:51:23 +02:00
Simon Binder 53d57d6a96
Refactor generator: Extract common operations 2019-06-29 15:23:14 +02:00