Commit Graph

687 Commits

Author SHA1 Message Date
Simon Binder f8635469d4
Emit direct imports in preprocess step 2023-08-13 11:10:31 +02:00
Simon Binder 7f6e22b892
Avoid using `findLibraryByName` 2023-08-12 23:28:47 +02:00
Simon Binder fb0533c204
Consistently normalize URLs in CLI tool 2023-08-12 22:28:48 +02:00
Simon Binder 92dd82f49c
Restore cache on a per-element basis 2023-08-12 22:03:58 +02:00
Simon Binder 90d8fdc61a
Also optimize looking up Dart references 2023-08-12 14:51:49 +02:00
Simon Binder 788420b614
Avoid resolving all transitive imports in build 2023-08-12 14:35:16 +02:00
Simon Binder f857cb17b5
Prepare 2.11.0 release 2023-08-11 15:20:22 +02:00
Simon Binder 29ba50a0ca
Merge pull request #2521 from BananaMasterz/develop
adding support for MariaDB dialect
2023-08-03 17:49:57 +02:00
Simon Binder 1a4ac27415
Find variables reliably 2023-08-01 11:20:05 +02:00
Simon Binder 2cca2f517e
Desugar duplicate variables 2023-07-31 23:47:41 +02:00
Simon Binder 525ab27006
Add `preamble` builder option 2023-07-30 23:14:32 +02:00
Simon Binder 28e44cbea8
First support for MariaDB in compiled queries 2023-07-27 11:16:58 +02:00
Simon Binder 1c5432026c
Merge branch 'develop' into Banana-develop 2023-07-27 10:29:25 +02:00
Simon Binder 5e32e549ea
Add changelog entry for`dialects` option 2023-07-27 10:22:37 +02:00
Simon Binder 8d3f490604
Add multi-dialect generation option 2023-07-26 23:59:06 +02:00
Simon Binder 94c4c1a8e0
Document #2537 better 2023-07-25 23:24:08 +02:00
Simon Binder e433cff932
Update docs for nested columns 2023-07-24 21:10:04 +02:00
Simon Binder 5ed6115b0d
Fix outdated tests in drift_dev 2023-07-24 20:54:32 +02:00
Simon Binder 6a36957a85
Don't generate async mapping if not needed 2023-07-24 20:50:43 +02:00
Simon Binder 941409381b
Tests for generalized nested columns 2023-07-24 20:08:49 +02:00
BananaMasterz 78d6064634 introduce SqlDialect.escape DO NOT MERGE until Column.escapedName is fixed (currently hardcoded for mariadb) 2023-07-24 16:32:35 +03:00
Simon Binder 5b7e011021
Fix generation in drift package 2023-07-24 00:14:40 +02:00
Simon Binder 3f74d65e69
Support nested columns for any result set 2023-07-23 23:57:00 +02:00
BananaMasterz d2c3532c3f using backticks instead of double quotes to escape and adding bool check constraint for mariadb
DO NOT MERGE THIS since Column.escapedName is hardcoded for mariadb dialect!
2023-07-19 18:17:48 +03:00
BananaMasterz 192472201f auto increment support for MariaDB 2023-07-19 11:42:44 +03:00
Simon Binder 625eacf5f1
Add parseMultiple API to sqlparser (#2519) 2023-07-16 00:29:29 +02:00
Simon Binder d0db9ac02f
Prepare 2.10 drift release 2023-07-13 16:53:51 +02:00
Simon Binder b0946df3b7
Warn about implicitly added Dart tables 2023-07-05 20:51:30 +02:00
Simon Binder 312fa3219f
Add docs for step-by-step migrations 2023-07-01 18:11:41 +02:00
Simon Binder ed9aeb866a
Add step-by-step migration API 2023-07-01 16:41:22 +02:00
Simon Binder 8b7872fc67
Start with generator for all schema versions 2023-06-28 15:54:32 +02:00
Simon Binder 81315c3d69
Migrate mentions of `flutter pub run` 2023-06-19 16:09:47 +02:00
Simon Binder 5fe28cbf37
Update dependency constraint to drift in drift_dev 2023-06-18 21:32:30 +02:00
Simon Binder af917b1f71
Prepare 2.9.0 release 2023-06-18 16:37:51 +02:00
Simon Binder d465776726
Merge branch 'web-v2' into develop 2023-06-17 22:51:49 +02:00
Simon Binder b7b1bcb99d
Add changelog entry for fatal warnings 2023-06-13 22:13:23 +02:00
Simon Binder 4411e0c459
Add `fatal_warnings` build option 2023-06-13 22:08:07 +02:00
Simon Binder 9f2405be26
Merge branch 'develop' into web-v2 2023-06-04 22:10:44 +02:00
Simon Binder 232140c083
Prepare minor release 2023-06-01 11:26:57 +02:00
Simon Binder e2fe4228ad
Make driver error fatal in tests 2023-05-30 13:53:03 +02:00
Simon Binder 054b91b507
Don't warn about unrecognized Dart imports 2023-05-23 16:18:01 +02:00
Simon Binder 451bc9c930
Load imports for Dart files too (#2433) 2023-05-23 15:58:15 +02:00
Simon Binder 5db8d58b72
Add some protocol messages for wasm init 2023-05-18 22:24:09 +02:00
Simon Binder f5ae390284
Better mechanism to determine table count 2023-05-16 11:09:29 +02:00
Simon Binder a3ca77b5f8
Always write qualified column references from SQL 2023-05-16 10:51:33 +02:00
Simon Binder f11d1bdd83
Prepare publishing drift_dev 2.8.1 2023-05-15 08:58:37 +02:00
Simon Binder 1d63ccb3f1
Fix annotating top-level types and extensions
By not using a `SimpleIdentifier` AST node for class and extension
names, the code used to detect imports for Dart code was broken.
Closes #2423
2023-05-14 21:54:51 +02:00
Simon Binder 78299f30d3
Fix expectation in record writer test 2023-05-12 22:45:43 +02:00
Simon Binder 28417c52af
Fix lints and warnings added in Dart 3.0 2023-05-12 22:42:21 +02:00
Simon Binder 20b75bd7e3
Use unifying type visitor instead of custom logic 2023-05-10 22:28:51 +02:00
Simon Binder 18868221d9
Support doc comments for columns in drift files 2023-05-10 12:00:44 +02:00
Simon Binder 1dad8a00d8
Prepare 2.8.0 release 2023-05-10 10:24:58 +02:00
Simon Binder 052abfbab2
Add safety fallback for new types being added 2023-05-10 10:18:24 +02:00
Simon Binder 45dc099440
Support analyzer 5.12 2023-05-10 10:13:16 +02:00
Simon Binder ceba4e3c1b
Remove unused imports 2023-05-03 19:01:41 +02:00
Simon Binder b2b37666bd
Add version for intermediate sources if needed 2023-05-03 17:45:39 +02:00
Simon Binder 6bb2c3d2c5
Support named constructors for rows in drift file 2023-04-23 16:21:31 +02:00
Simon Binder 5caa948243
Improve error handling for missing tables in query 2023-04-19 23:24:24 +02:00
Simon Binder f8e7d2335a
Raise minimum language version to 2.13
Drift uses generalized typdefs in generated code, which only became
available in Dart 2.13.
2023-04-12 21:27:06 +02:00
Simon Binder d7f1bfb61c
Prepare 2.7.0 release 2023-04-10 23:33:36 +02:00
Simon Binder d02343c8cc
Add regresion test for Dart component in having 2023-04-08 16:02:40 +02:00
Simon Binder a6549425ef
Serialize and restore file dependencies too 2023-03-25 16:29:07 +01:00
Simon Binder d6e074e704
Fix `validateDatabaseSchema` in schema tests 2023-03-23 17:56:50 +01:00
Simon Binder 9bebf4a81e
Prepare release 2023-03-20 21:39:41 +01:00
Simon Binder 023512cae3
Support latest cli_util in drift_dev 2023-03-20 17:18:50 +01:00
Simon Binder 0453988233
Remove client default code from schema tests again 2023-03-16 19:31:41 +01:00
Simon Binder ba86f1aa89
Use correct variable indexes around nested queries 2023-03-15 17:48:36 +01:00
Simon Binder 26434ca40b
Fix typo in test that is now an error 2023-03-13 22:46:43 +01:00
Simon Binder 849f245f53
Warn about invalid custom foreign key constraint 2023-03-13 22:30:14 +01:00
Simon Binder e0d5520ee1
Analyze foreign keys as custom constraint on cols 2023-03-13 21:51:16 +01:00
Simon Binder adc2e22c46
Ignore lints in generated schema code 2023-03-03 20:57:32 +01:00
Simon Binder cc16156c84
Merge branch 'postgres3' into develop 2023-02-25 13:16:33 +01:00
Simon Binder 5166e5d294
Add rowid parameter to companions 2023-02-19 13:46:58 +01:00
Fabian Freund dc9a9e2db3 fix parsing of nested cte's 2023-02-15 10:18:26 +01:00
Simon Binder 21ff422f19
Support `@create` queries in modular mode (#2313) 2023-02-12 12:44:47 +01:00
Simon Binder ca75323a6a
Fix postgres tests 2023-02-09 10:53:41 +01:00
Simon Binder c2c1b3c6ae
Merge `latest-release` into `develop` 2023-02-08 10:58:53 +01:00
Simon Binder 6b216c1683
Fix expected import for Uint8List in test 2023-02-07 22:38:33 +01:00
Simon Binder cd2cf1f3b3
Fix blob columns with modular code generation (#2306) 2023-02-07 22:27:53 +01:00
Simon Binder deb1b91d41
Escape postgres keywords in generated SQL 2023-02-05 14:28:19 +01:00
Simon Binder 94332a126f
Prepare to release drift_dev 2.5.1 2023-02-01 10:52:29 +01:00
Simon Binder ab10fd7f6f
Resolve columns sequentially 2023-02-01 10:50:20 +01:00
Simon Binder f9912d5455
Properly unify result classes with list columns 2023-01-31 22:58:30 +01:00
Simon Binder b935d27248
Add test for #2292 2023-01-31 22:25:58 +01:00
Simon Binder d35c8f07d4
Prepare drift_dev re-release 2023-01-30 08:58:59 +01:00
Paulis Gributs 1c282afe4f
Fix sqlparser error
SQL parser is set to a non-existent version in the publication specification and prevents drift_dev 2.5.0 from being used.
2023-01-29 17:58:49 +00:00
Simon Binder e42dd9155e
Prepare 2.5.0 release 2023-01-29 16:25:20 +01:00
Simon Binder 0d354b3bec
Deprecate special connect constructor 2023-01-28 16:53:35 +01:00
Simon Binder 83fad8426e
Make `generate_connect_constructor` the default 2023-01-28 16:14:27 +01:00
Simon Binder bff8d6c6a1
Fix nullability issues around record types 2023-01-27 17:12:49 +01:00
Simon Binder fe8611c5f4
Avoid unecessary async in lambda 2023-01-27 16:30:05 +01:00
Simon Binder b048ce44d4
Avoid writing suffix twice (#2281) 2023-01-27 16:15:44 +01:00
Simon Binder ef0cada32e
Merge queries with `LIST` columns 2023-01-23 21:46:51 +01:00
Simon Binder 2c63c1a64e
Update docs for Dart components in SQL
Scopes components are enabled by default, so the warning is no longer
necessary.
2023-01-22 22:53:45 +01:00
Simon Binder cd41eed105
Migrate away from `JsonKey.ignore` 2023-01-20 18:30:48 +01:00
Simon Binder 6e35abb9c9
Add `IS` operator to Dart query builder 2023-01-12 16:53:43 +01:00
Simon Binder 53c14cd1aa
Modular: Fix extends for data classes (#2263) 2023-01-11 11:29:44 +01:00
Simon Binder c3cd2f2eeb
Fix `DataClassName` annotation with extending 2023-01-10 17:38:25 +01:00
Simon Binder 6b4a186b15
Fix extending classes in modular mode (#2260) 2023-01-10 12:26:14 +01:00
Ignacio Torres Masdeu 8cbab9af24
Fix typo 2023-01-08 16:40:09 +01:00
Simon Binder bbb19d59bb
Ignore abstract tables (#1955) 2023-01-08 15:54:16 +01:00
Simon Binder a6bede2aaa
Generate type converters for views 2023-01-06 17:16:18 +01:00
Simon Binder 1d7e656e30
Support cast to enum types 2023-01-06 16:53:04 +01:00
Simon Binder bc325dd31c
Support cast to drift-specific types 2023-01-06 15:10:03 +01:00
Simon Binder 20e6b0d5fe
Fix crash, support type converters in views 2023-01-06 14:27:15 +01:00
Simon Binder 259e4cfdd3
Remove unused import 2023-01-05 23:13:45 +01:00
Simon Binder e562cb9d21
Support type converters in queries 2023-01-05 23:04:36 +01:00
Simon Binder fafcf114a3
Prepare new minor release 2023-01-02 23:56:28 +01:00
Simon Binder e52836694c
Fix view data class names for schema files 2023-01-02 23:22:50 +01:00
Simon Binder 9734aa56d1
Ignore existing row types on views for schema code 2023-01-02 23:02:14 +01:00
Simon Binder 4cd7616f24
Strip drift data class name from `CREATE VIEW` 2023-01-02 20:04:22 +01:00
Alexander Wilde 31d58fbf77 Sort schema versions 2023-01-01 23:22:31 +00:00
Alexander Wilde 624c145cfd companions flag shouldn't depend on data classes flag 2023-01-01 20:17:40 +00:00
Alexander Wilde 132d53fbb8 Only write toColumns mixin if `writeDataClasses` is enabled 2022-12-31 23:45:28 +00:00
Alexander Wilde 443759f02f Only write `toCompanion` if `writeCompanions` is enabled 2022-12-31 23:44:45 +00:00
Alexander Wilde 162f334330 Fix missing override when writing toColumns mixin 2022-12-31 23:44:02 +00:00
Simon Binder ebc1ba6899
Add test 2022-12-31 14:11:58 +01:00
Simon Binder 31e1312fc3
Extract columns override into shared method 2022-12-31 13:58:52 +01:00
Alexander Wilde 208055801f Move code to `table_writer.dart`
Use mixin in data class when enabled
2022-12-31 03:33:43 +00:00
Alexander Wilde 6e5b73deed rename mixin to TableToColumns 2022-12-30 20:46:12 +00:00
Alexander Wilde 459ec0cf4b Add writeToColumnsMixin 2022-12-30 02:07:57 +00:00
Simon Binder a98890b1c9
Prepare 2.4.0 release 2022-12-28 23:15:12 +01:00
Simon Binder 37101cf839
Add documentation and changelog 2022-12-27 22:26:31 +01:00
Simon Binder d02deca36b
Fix tests 2022-12-27 21:08:41 +01:00
Simon Binder a3fea1af04
Add integration test for existing types in drift 2022-12-27 20:58:15 +01:00
Simon Binder a463ee14cb
Support existing row classes in the generator 2022-12-27 18:14:02 +01:00
Simon Binder f13fb4e218
Analyze existing row types for queries 2022-12-27 17:04:38 +01:00
Simon Binder 1cbc02267d
Store existing analyzer type for tables and views 2022-12-27 12:49:24 +01:00
Simon Binder 649af15333
Analysis support for existing query row types 2022-12-27 00:15:47 +01:00
Simon Binder 44cae65170
Order all result columns syntactically 2022-12-26 22:45:35 +01:00
Simon Binder 20aff8a9db
Begin with existing types for queries 2022-12-26 19:17:17 +01:00
Simon Binder 338dd1316e
Support records as existing row types 2022-12-26 00:23:04 +01:00
Simon Binder 96572d5833
Fix asset id collision 2022-12-25 20:36:28 +01:00
Simon Binder c4fc5b8ada
Fix running post-process builder in test 2022-12-25 19:29:33 +01:00
Simon Binder 86b21029fd
Remove unused import 2022-12-25 19:14:41 +01:00
Simon Binder 7b639f837a
Generate helper Dart file to serialize types 2022-12-25 19:10:48 +01:00
Alexander Wilde 32c34b511a Fix DriftSqlType.deserialize for double, dateTime and any 2022-12-22 02:08:04 +00:00
Simon Binder 22a3d3965c
Allow `autoIncrement` on `int64` columns (#2223) 2022-12-20 18:52:08 +01:00
Simon Binder 344d5611c6
Merge pull request #2220 from North101/develop
Validate enum default value in drift files
2022-12-20 00:11:47 +01:00
Simon Binder 056fdac8cb
Remove unused import, add changelog 2022-12-19 23:58:08 +01:00
Simon Binder 1497d719b5
Extend check to all literal uses 2022-12-19 23:55:13 +01:00
Alexander Wilde bdfa8124fe Allow referencing enum value for default 2022-12-19 12:27:46 +00:00
Simon Binder e2265eb597
Add `DriftAny` type to wrap `ANY` in strit tables 2022-12-18 18:55:17 +01:00
Simon Binder b520568984
Ignore internal tables when reading schema from db 2022-12-18 15:26:40 +01:00
Simon Binder 0e395bbef3
Fix `JSON KEY` not working 2022-12-17 21:36:24 +01:00
Simon Binder 425878b712
Fix tests around custom constraints 2022-12-16 16:03:34 +01:00
Simon Binder 657b68ab76
Extract custom Dart table constraints into schema 2022-12-16 15:34:07 +01:00
Simon Binder add680b8bf
Move `SchemaInstantiationHelper` to drift package 2022-12-16 14:09:54 +01:00
Simon Binder 5f8b1e3358
Recognize database files when dumping schema data 2022-12-15 16:47:44 +01:00
Simon Binder 597d84db26
Fix import expectation 2022-12-13 22:04:35 +01:00
Simon Binder 00dbc2f886
Avoid nested codes, add tests 2022-12-13 21:53:17 +01:00
Peter Leibiger a5f184857d
Fix duplicate result classes in modular mode 2022-12-13 01:41:03 +01:00
Peter Leibiger a3ce27f4e0
Fix typos 2022-12-13 01:40:21 +01:00
Peter Leibiger bf3f15909c
Fix converter import prefixes missing in modular mode 2022-12-13 01:39:46 +01:00
Simon Binder 16e6aaf4fe
Use extension for all tables in modular generation 2022-12-12 23:50:11 +01:00
Simon Binder 5f2d52ccc5
Merge branch 'latest-release' into develop 2022-12-12 22:45:11 +01:00
Simon Binder 44e7aea043
Prepare drift_dev 2.3.3 release 2022-12-12 22:39:00 +01:00
Simon Binder 4bc6dfe834
Fox crash when serializing simple queries 2022-12-12 22:37:49 +01:00
Simon Binder ec2b564611
Fox crash when serializing simple queries 2022-12-12 22:18:10 +01:00
Simon Binder b6cff50135
Parse custom constraints applied to columns 2022-12-11 00:06:45 +01:00
Simon Binder 1c06873403
Fix reading triggers in old schema files (#2191) 2022-12-10 22:57:45 +01:00
Simon Binder fb3d832f0f
Fix modular accessors sometimes not being generated 2022-12-07 21:27:45 +01:00
Simon Binder a3d755ca19
Merge pull request #2184 from North101/develop
Various fixes for modular code gen
2022-12-07 11:20:26 +01:00
Simon Binder 6659d78ca7
Oops, fix compilation errors 2022-12-07 11:05:22 +01:00
Simon Binder c0c1810bcf
Don't generate empty drift accessors 2022-12-07 10:55:20 +01:00
Simon Binder a637708591
Generate getters for DAO as well 2022-12-06 22:10:21 +01:00
Simon Binder 5a8dd923d6
Add more examples to modular project 2022-12-06 21:19:20 +01:00
Simon Binder 7f5e671939
Support older `string_scanner` versions as well 2022-12-06 18:19:20 +01:00
Alexander Wilde ec01ad275a Various fixes for modular code gen 2022-12-05 17:16:06 +00:00
Simon Binder dafa07a88a
Don't further analyze part files (#2185) 2022-12-05 17:59:51 +01:00
Simon Binder c0d5188c18
Fix generating modular type converter code (#2183) 2022-12-04 19:14:24 +01:00
Simon Binder d60c775435
Merge pull request #2181 from ValentinVignal/column-name-case
Add the `column_name_case` option
2022-12-03 14:13:16 +01:00
Simon Binder d366cff9ee
Write utils for function stubs 2022-12-03 14:05:58 +01:00
ValentinVignal 5b7a9f487a
Update the tests 2022-12-03 16:16:25 +08:00
ValentinVignal 8a34a41fba
♻️ apply the recase option to table name 2022-12-03 16:16:13 +08:00
ValentinVignal 496635afb5
🚚 Rename column_name_case into case_from_dart_to_sql 2022-12-03 15:55:58 +08:00
ValentinVignal b08088ab1b
Merge remote-tracking branch 'upstream/develop' into column-name-case 2022-12-03 14:56:51 +08:00
Simon Binder 387a21c580
Relax constraints on element order in drift files 2022-12-03 00:06:05 +01:00
Simon Binder 1a51dbf4d6
Static analysis support for custom functions 2022-12-02 23:34:42 +01:00
ValentinVignal 604db99801
Revert upgrade of version number 2022-12-01 23:56:08 +08:00
ValentinVignal 2a8e9d7af0
✏️ Fix typo for camelCase 2022-12-01 23:41:32 +08:00
ValentinVignal ce0568e70c
📦 Re-run build runner 2022-12-01 23:34:00 +08:00
ValentinVignal 8548ff4423
⬆️ Upgrade version number 2022-12-01 23:27:46 +08:00
ValentinVignal d719b9598a
Test on column_name_case option 2022-12-01 23:26:51 +08:00
ValentinVignal 3835e0aae4
Adds column_name_case option 2022-12-01 23:26:33 +08:00
Alexander Wilde c80e6b6cbe Fix tests 2022-12-01 04:43:27 +00:00
Alexander Wilde c1ee1f7274 Add JsonTypeConverter support to enums 2022-12-01 04:43:20 +00:00
Simon Binder 6503624ff1
Merge pull request #2168 from ValentinVignal/textEnum
Add `textEnum` column builder and `EnumNameConverter`
2022-11-30 22:07:54 +01:00
Simon Binder 061d9b2008
Use indirect import for test 2022-11-30 21:29:44 +01:00
ValentinVignal 3cfa69c9d9
:sparkles Add ENUMNAME type 2022-12-01 00:40:13 +08:00
ValentinVignal 0c35d30dcb
💡 Better test description 2022-12-01 00:00:54 +08:00
ValentinVignal 89aec378af
Merge remote-tracking branch 'upstream/develop' into textEnum 2022-11-30 23:55:25 +08:00
ValentinVignal b9892ece5c
Verify the EnumNameConverter is used 2022-11-30 23:55:04 +08:00
ValentinVignal 99affe3fac
🐛 Use correct type for enum converter 2022-11-30 23:53:46 +08:00
Simon Binder 267821804e
Add generator unit test for #2178 2022-11-30 16:26:22 +01:00
ValentinVignal 197a3862e7
Merge remote-tracking branch 'upstream/develop' into textEnum
# Conflicts:
#	drift_dev/CHANGELOG.md
#	drift_dev/pubspec.yaml
2022-11-30 22:47:58 +08:00
Simon Binder 0ee8a6a7f9
Fix code generation for triggers and indices 2022-11-29 10:39:45 +01:00
Simon Binder d24644113a
Fix generating schema test code 2022-11-28 21:59:17 +01:00
ValentinVignal a993d433c5
Merge remote-tracking branch 'upstream/develop' into textEnum
# Conflicts:
#	drift/CHANGELOG.md
#	drift_dev/CHANGELOG.md
2022-11-28 19:09:36 +08:00
ValentinVignal d7ef374677
⬆️ Upgrade version number 2022-11-28 18:59:00 +08:00