Simon Binder
de67ca6e7b
Parse ISNULL and NOTNULL postfix expressions
2020-01-03 17:39:35 +01:00
Simon Binder
6924543a47
sqlparser: Parse CREATE INDEX statements
2020-01-03 17:14:42 +01:00
Simon Binder
75cbe74b53
Make "new" and "old" table available for triggers
2020-01-01 20:37:34 +01:00
Simon Binder
8b86143ebb
Generate code for triggers
2019-12-31 16:03:03 +01:00
Simon Binder
a3697c6f38
Find references of a trigger
2019-12-31 15:07:08 +01:00
Simon Binder
04f75d11d3
Migrate some trigger code to refactorings on develop
2019-12-30 21:38:24 +01:00
Simon Binder
ba603f22cc
Merge branch 'develop' into views-triggers-indexes
...
# Conflicts:
# moor/lib/moor.dart
# moor/lib/src/runtime/api/query_engine.dart
# moor/lib/src/runtime/query_builder/schema/entities.dart
# moor/test/data/tables/custom_tables.g.dart
# moor/test/data/tables/tables.moor
# moor/test/parsed_sql/moor_files_integration_test.dart
# moor_generator/lib/src/analyzer/moor/parser.dart
# moor_generator/lib/src/analyzer/runner/steps.dart
# moor_generator/lib/src/analyzer/runner/steps/analyze_dart.dart
# moor_generator/lib/src/model/specified_db_classes.dart
# moor_generator/lib/src/writer/database_writer.dart
# sqlparser/lib/src/ast/ast.dart
# sqlparser/lib/src/ast/statements/create_table.dart
# sqlparser/lib/src/ast/statements/statement.dart
# sqlparser/lib/src/reader/parser/schema.dart
# sqlparser/lib/src/reader/tokenizer/token.dart
# sqlparser/test/engine/autocomplete/static_test.dart
2019-12-30 21:08:32 +01:00
Simon Binder
757abf3b34
Fix typo in test description
2019-12-30 20:58:41 +01:00
Simon Binder
c54a62120d
sqlparser: Support CAST expressions
2019-12-30 20:46:54 +01:00
Simon Binder
4484890609
Types2: Initial support for binary expressions
2019-12-30 20:14:29 +01:00
Simon Binder
927fbf561b
Begin architecture of a new type resolver in sqlparser
2019-12-26 21:55:02 +01:00
Simon Binder
7abda32ac4
Add argument to sql visitor class
2019-12-26 12:35:29 +01:00
Simon Binder
d2b70e69dc
Support explicit type arguments in moor_generator
2019-12-25 21:07:08 +01:00
Simon Binder
868dde358f
Parse variable type hints in queries
2019-12-25 20:24:03 +01:00
Simon Binder
412e8b4c83
Ability to override variable types in the sqlparser
2019-12-25 19:50:32 +01:00
Simon Binder
4a2273c1e8
Show available columns when failing to resolve a reference
2019-12-24 14:07:12 +01:00
Simon Binder
e01b7a1b88
Remove author from pubspec, bump version for next release
2019-12-23 12:52:46 +01:00
Simon Binder
3f0c35abff
Improve changelog, error description for columns
2019-12-23 12:24:22 +01:00
Simon Binder
cb38590ee4
Parse special `@`-queries (not analyzed yet), #280
2019-12-17 22:03:59 +01:00
Simon Binder
0335e2482b
Scan @-variable tokens (not used yet)
2019-12-17 20:48:18 +01:00
Simon Binder
ffe4bb8c82
Don't crash when trying to resolve variables
2019-12-16 13:24:29 +01:00
Simon Binder
8661e0a28a
Refactoring on the model classes in moor_generator
2019-12-14 21:43:04 +01:00
Simon Binder
c9f29fab5b
Support detailed analysis for fts5 functions
2019-12-13 22:30:36 +01:00
Simon Binder
94634bd48b
Support custom fts5 queries
2019-12-12 18:56:37 +01:00
Simon Binder
a23ff772fa
Improve syntax highlighting in the sql IDE
2019-12-11 21:14:33 +01:00
Simon Binder
99cf31bb61
Don't attempt to type unresolved references
2019-12-11 10:12:30 +01:00
Simon Binder
74ebb8a9ab
Ability to create fts5 tables in moor files ( #196 )
2019-12-10 20:24:08 +01:00
Simon Binder
54f4fd73e8
Revert analyzer workaround, a fixed version is out
2019-12-09 12:16:18 +01:00
Simon Binder
013a28564b
Temporary fix for CI failures: Don't use latest analyzer
2019-12-07 13:13:50 +01:00
Simon Binder
28b1e19145
Test that dart components can be used from UseMoor/Dao
...
Fixes #267
2019-12-05 19:23:52 +01:00
Simon Binder
3c74a20f56
Enable more recent lints and enforce them
2019-12-04 21:45:09 +01:00
Simon Binder
f4c05f44c7
sqlparser: Read table schemas for fts5 tables
2019-12-04 19:55:23 +01:00
Simon Binder
325820af80
Parse CREATE VIRTUAL TABLE statements
2019-12-04 15:36:23 +01:00
Simon Binder
a0ce3421c9
Resolve json functions when option is set ( #235 )
2019-11-28 21:50:55 +01:00
Simon Binder
bb1fcc1590
Fix analyzer crash at CTE ( #255 )
2019-11-24 14:46:20 +01:00
Simon Binder
598fef750e
RELEASE
...
- moor 2.1.0
- moor_generator 2.1.0
- sqlparser 0.4.0
- moor_ffi 0.2.0
2019-11-16 11:23:11 +01:00
Simon Binder
e83464df28
Prepare 2.1.0 release
2019-11-13 21:14:38 +01:00
Simon Binder
623f3212a1
Use builtin coverage collection from test package
2019-11-08 22:51:53 +01:00
Simon Binder
a304d13927
Use enforceHasSpan on all parse results in tests
2019-10-27 11:51:09 +01:00
Simon Binder
591e1b2bff
Support WITH clause for inner select statements
2019-10-27 10:47:21 +01:00
Simon Binder
9372178204
INSERT INTO SELECT: Support with clause
2019-10-25 23:18:21 +02:00
Simon Binder
d43a23eb88
Don't crash when a table wasn't resolved
2019-10-24 22:26:27 +02:00
Simon Binder
b8af08919a
Handle recursive CTEs in analyzer
2019-10-23 18:03:24 +02:00
Simon Binder
d55e1de66d
Handle common table expressions in the analyzer
2019-10-23 17:07:44 +02:00
Simon Binder
29a7b4853d
Parse common table expressions (no analysis yet)
2019-10-21 22:10:19 +02:00
Simon Binder
8a54fd4729
Generate code for CREATE TRIGGER statements
2019-10-21 18:13:28 +02:00
Simon Binder
e553d37de6
Fix autocomplete tests
2019-10-21 17:27:38 +02:00
Simon Binder
8de2b141a9
Parse CREATE TRIGGER statements
2019-10-20 17:48:17 +02:00
Simon Binder
8a8b811643
Fix more sqlparser crashes in the resolver
2019-10-20 11:28:05 +02:00
Simon Binder
a69f469444
Support sqlite_master, sqlite_sequence tables ( #197 )
2019-10-19 16:56:36 +02:00
Simon Binder
fd27c878d4
Fix errors in sqlparser that were swallowed before
2019-10-19 16:41:30 +02:00
Simon Binder
d8226aeb23
Handle aliases references to rowid ( #197 )
2019-10-19 16:09:44 +02:00
Simon Binder
4c090af98c
Ability to override json keys in moor files ( #176 )
2019-10-14 19:59:52 +02:00
Simon Binder
5ae3d7c2af
Prepare pubspec and changelog for 2.0.1 release
2019-10-11 13:17:50 +02:00
Simon Binder
ed03bff4c2
Recognize boolean and datetime column in moor
2019-10-05 21:24:41 +02:00
Simon Binder
ef1dd8d2c5
Scan \r as whitespace ( #170 )
2019-10-04 22:21:17 +02:00
Simon Binder
1ba687696f
Plugin: Navigation support for table references
2019-09-28 23:15:23 +02:00
Simon Binder
b9f934c1d4
Report information about where a column was declared
2019-09-28 22:01:28 +02:00
Simon Binder
ab787b82be
Use existing parser code for auto-complete
...
This works very well when the user is typing at the end of a statement, but won't provide accurate results when editing in the middle.
2019-09-27 22:06:14 +02:00
Simon Binder
b684a7be69
Replace imports of test_api with test
2019-09-26 22:52:20 +02:00
Simon Binder
a6cfc5fdd8
Better types for nested expressions, more 2.0 docs
2019-09-26 22:46:19 +02:00
Simon Binder
c4f321748a
Prepare release for sqlparser 0.3.0
2019-09-25 20:19:39 +02:00
Simon Binder
2a782a010e
Resolve types of columns in compound select statements
2019-09-25 19:46:39 +02:00
Simon Binder
f6a5009380
Report errors when ORDER or LIMIT is used in compound stmt
2019-09-25 18:08:24 +02:00
Simon Binder
0cbac2ee37
Parse compound select statements
2019-09-25 14:58:44 +02:00
Simon Binder
d9c2b5f342
Parse JOIN and INDEXED as identifiers when appropriate
2019-09-25 11:37:03 +02:00
Simon Binder
bf6d60b170
Fix column parser not accepting columns without type
2019-09-24 22:45:18 +02:00
Simon Binder
ba21a594af
Fix autocomplete and suggestions in the analyzer plugin
2019-09-24 20:50:23 +02:00
Simon Binder
1bdfa0289b
Make the parser set a span on each AST node.
2019-09-18 21:36:25 +02:00
Simon Binder
1bd856e9c5
Fix scanner crashing when the last line contains a comment
2019-09-18 20:53:49 +02:00
Simon Binder
7121bac866
More work on the analyzer plugin
...
- finish migration to refactored generator
- document how to use the analysis plugin
- better error reporting without redundant messages
2019-09-18 20:48:44 +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
746b8401ec
Scan comments in sql
2019-09-16 22:33:36 +02:00
Simon Binder
5f2d5d3258
Parse <expression> IN (<select-stmt>) again
2019-09-15 21:41:32 +02:00
Simon Binder
25ceda3505
Report lints about invalid Dart Templates in SQL
2019-09-15 11:59:47 +02:00
Simon Binder
3abfbd5963
Don't parse tuples as expressions
2019-09-15 11:19:32 +02:00
Simon Binder
c95a3badb2
Infer types for dart placeholder expressions
...
Also, infer where clauses to have a bool type
2019-09-14 22:44:20 +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
f171098789
Parse Dart placeholders based on their context
2019-09-14 11:44:15 +02:00
Simon Binder
7a8191fe7e
Fix moor queries not expanding array vars properly
2019-09-14 09:27:36 +02:00
Simon Binder
4c250c8f40
Parse dart template expressions and limit clauses
2019-09-13 23:08:29 +02:00
Simon Binder
44a2319bba
Improve variable tokenization for easier parsing logic
2019-09-13 22:48:55 +02:00
Simon Binder
6a0716daaf
Handle import statements and declared queries in .moor
2019-09-12 19:51:15 +02:00
Simon Binder
a5cecd3ba6
Support moor file AST in the plugin
2019-09-09 20:34:14 +02:00
Simon Binder
1b7721a98f
Plugin: Import assists for column nullability
2019-09-08 21:36:26 +02:00
Simon Binder
e807822f3f
Make plugin operate on the new MoorFile AST node
2019-09-08 10:29:59 +02:00
Simon Binder
7354b56712
Merge branch 'develop' into analyzer-plugin
...
# Conflicts:
# moor_generator/lib/src/analyzer/moor/parser.dart
# sqlparser/lib/src/engine/sql_engine.dart
2019-09-07 23:05:36 +02:00
Simon Binder
a62c076c4c
Suggest CREATE TABLE statements in moor files
2019-09-07 22:49:23 +02:00
Simon Binder
ee9b413e5d
Start experimenting with auto-completion features
2019-09-07 22:18:45 +02:00
Simon Binder
35e5bdb317
Introduce new top-level ast node for moor files
2019-09-07 21:33:56 +02:00
Simon Binder
1ed1e3ba94
Parse declared statements in moor files
2019-09-07 20:26:51 +02:00
Simon Binder
8268867369
Fix analyzer errors, re-run build_runner
2019-09-07 20:01:33 +02:00
Simon Binder
1fcc6facee
Implement basic functionality of the analyzer plugin
2019-09-07 18:49:11 +02:00
Simon Binder
b550afd68f
Merge branch 'develop' into analyzer-plugin
...
# Conflicts:
# moor_generator/lib/src/parser/moor/moor_analyzer.dart
2019-09-07 11:31:34 +02:00
Simon Binder
6ccaad866b
Parse import statements in moor files
2019-09-05 10:52:33 +02:00
Simon Binder
ba772ef07f
Better error handling when parsing multiple sql statements
2019-09-03 21:24:59 +02:00
Simon Binder
fcdbc309b7
Fix resolver not finding window expressions
2019-08-30 19:36:23 +02:00
Simon Binder
4af370f0cb
Tests: Verify that an executor is open when used.
2019-08-30 19:32:44 +02:00
Simon Binder
876db0671e
Provide lints on insert statements that will fail
2019-08-29 21:09:20 +02:00
Simon Binder
241baed0c3
Generate query implementations for insert statements
2019-08-29 16:27:55 +02:00
Simon Binder
dd8b4ab03a
Infer types for insert statements
2019-08-29 15:32:45 +02:00
Simon Binder
2f8dc6d68e
Parse insert statements
2019-08-29 15:04:39 +02:00
Simon Binder
5d2149d727
Parse MAPPED BY constraints for moor files
2019-08-27 12:33:48 +02:00
Simon Binder
aa13aad276
Introduce moor-specific tokens for type converters
2019-08-27 12:15:32 +02:00
Simon Binder
3612c78241
Introduce special token class for keywords
2019-08-27 11:54:56 +02:00
Simon Binder
4b0add64de
Provide better error messages at unknown tables
2019-08-26 22:26:38 +02:00
Simon Binder
a3f6f1e326
Merge branch 'develop' into analyzer-plugin
...
# Conflicts:
# moor_generator/pubspec.yaml
2019-08-26 15:32:28 +02:00
Simon Binder
e38719a194
Write changelogs, prepare release 1.7
2019-08-22 12:27:39 +02:00
Simon Binder
26e28e9ddc
Fix AggregateExpression not reporting content equality
2019-08-19 20:51:10 +02:00
Simon Binder
e911e74af2
Support window declarations on select statements
2019-08-19 18:06:25 +02:00
Simon Binder
3dcf59af63
Fix some bugs in the sql parser, another integration test
2019-08-17 22:21:34 +02:00
Simon Binder
7d89f12aa7
Use explicit indices for array parameters
2019-08-15 21:26:27 +02:00
Simon Binder
7ba89c099f
Resolve and infer types for window expressions
2019-08-14 18:00:41 +02:00
Simon Binder
1d3d68fb54
Parse aggregate functions and window definitions
2019-08-13 14:11:13 +02:00
Simon Binder
515b95acfe
Add AST classes to model windowing in sql
2019-08-12 16:50:13 +02:00
Simon Binder
4210c0c836
Start some work on the analyzer plugin
...
Of course it's not working at all
2019-07-30 18:34:33 +02:00
Simon Binder
5df5e3cacc
Fix typename parsing, set span on default constraint
2019-07-30 09:35:19 +02:00
Simon Binder
4798d0a7e5
Parse specified tables from .moor files
2019-07-29 12:54:49 +02:00
Simon Binder
a550a49705
Export table structure from CREATE TABLE statements
2019-07-28 22:09:20 +02:00
Simon Binder
3a2646e837
Only use the current analysis steps for CRUD statements
2019-07-28 21:22:18 +02:00
Simon Binder
0bad842735
Parse table constraints
2019-07-28 21:01:48 +02:00
Simon Binder
7e0bfa9cf9
Parse foreign clauses as column constraints
2019-07-28 20:18:22 +02:00
Simon Binder
7cddf6f5d7
Provide coverage upload token variable
2019-07-28 11:08:39 +02:00
Simon Binder
4c7874dd91
Test and coverage the sql parser
2019-07-28 09:49:14 +02:00
Simon Binder
7b6802e1c5
Split parser implementation into multiple files
2019-07-27 20:47:11 +02:00
Simon Binder
1766bb3f77
Fix tests that used "table" as a table name
...
(we now recognize that as a keyword)
2019-07-26 13:49:25 +02:00
Simon Binder
dee9993c83
Parse CREATE TABLE statements
2019-07-26 13:35:49 +02:00
Simon Binder
888e429467
Write model classes to represent CREATE TABLE statements
2019-07-26 11:35:53 +02:00
Simon Binder
6c84013cfa
Correctly find references to aliased columns
2019-07-25 17:44:59 +02:00
Simon Binder
82f84732d0
Resolve aliased columns
2019-07-25 17:33:01 +02:00
Simon Binder
f21021a6e9
Final preparations for the 1.6 release
...
Short summary of updates
- web support
- using zones to resolve the current transaction
- comparable date time values
- collate expressions
- many bug fixes
2019-07-12 10:52:42 +02:00
Simon Binder
d01b5c750f
Fix order in limit expressions with comma
...
Fixes #73
2019-07-10 17:29:03 +02:00
Simon Binder
aeb9b6ba41
Parse COLLATE expressions in the sql parser
...
For #67
2019-07-08 23:03:03 +02:00
Simon Binder
01db5e2afc
Release moor version 1.5.1, sqlparser 0.1.1
2019-07-03 20:04:09 +02:00
Simon Binder
b0ca66bc06
Parse empty tuples
...
Closes #54
2019-07-02 22:30:54 +02:00
Simon Binder
1654193af4
Make parser assert it's at end after finishing
2019-07-02 22:21:20 +02:00
Simon Binder
c5d46adcb5
Parse JOIN clauses without additional operators
...
Fixes #56
2019-07-02 22:07:30 +02:00
Simon Binder
3024157ec9
Parse and analyze tuples, rework type resolution for `IN`
2019-07-02 14:38:28 +02:00
Simon Binder
285113717f
Parse tuples
2019-07-02 12:48:08 +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
a45d73a6cf
Update documentation, fix multiline parsing
2019-07-01 21:20:59 +02:00
Simon Binder
b2f79e97e6
Update docs of sqlparser library
2019-07-01 15:04:17 +02:00
Simon Binder
da07be2da4
Parse exists expressions
2019-07-01 14:27:08 +02:00
Simon Binder
3e910123d2
Resolve and infer types related to like expressions
2019-07-01 13:59:52 +02:00
Simon Binder
791afdb6bf
Support ESCAPE clause for LIKE and similar expressions
2019-07-01 13:52:46 +02:00
Simon Binder
464754267e
Document new features for version 1.5
2019-06-30 22:16:58 +02:00
Simon Binder
baf3c9ce88
Parse update statements
2019-06-30 15:25:39 +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
3f0776faf8
Fix tests, parse delete statements
2019-06-29 22:47:40 +02:00
Simon Binder
ff530dd4ea
Improve documentation of the sqlparser library
2019-06-29 22:29:16 +02:00
Simon Binder
d9f5cf0e69
Resolve types for case expressions
2019-06-29 18:02:44 +02:00
Simon Binder
9c07eaa465
Parse case expressions
2019-06-29 17:59:18 +02:00
Simon Binder
5e1ec15caa
Resolve types for between expression
2019-06-29 17:36:33 +02:00
Simon Binder
7ef904d053
Parse between expressions
2019-06-29 17:32:06 +02:00
Simon Binder
7a07a1ae78
Handle function calls in type resolution
2019-06-29 17:02:38 +02:00
Simon Binder
74257e0c83
Don't resolve functions.
...
It adds too much complication at the moment, so it's not
worth it for our simple purposes.
2019-06-29 16:14:59 +02:00
Simon Binder
807d1ddff0
Resolve index of sql parameters, documentation
2019-06-29 12:48:09 +02:00
Simon Binder
40a4ebdadf
Started to integrate the sqlparser into moor generator
2019-06-28 23:41:27 +02:00
Simon Binder
1479a0d850
Start resolving variables
2019-06-28 20:50:36 +02:00
Simon Binder
1271e730b8
Finish type resolution for simple expressions and columns
2019-06-28 10:50:41 +02:00
Simon Binder
7e916b9d74
Start with type resolution
2019-06-27 16:40:48 +02:00
Simon Binder
db92059610
Better column name prediction for expressions
2019-06-27 15:30:29 +02:00
Simon Binder
6238e459d1
Beware of the mightily inefficient four-pass parser
...
(computers are fast these days ok??)
2019-06-26 23:07:30 +02:00
Simon Binder
674f4c6a9c
Slightly better reference resolving, parse subqueries
2019-06-26 21:44:29 +02:00
Simon Binder
12e8c31b71
Fix select statement including a null iterable as children
2019-06-24 20:08:59 +02:00
Simon Binder
4562979d62
Better ability to resolve forward references
2019-06-23 22:14:50 +02:00
Simon Binder
62c20d0202
Add simple tests for reference resolution
2019-06-23 16:35:28 +02:00
Simon Binder
8b5539bb03
Start with reference resolution
2019-06-23 15:57:18 +02:00
Simon Binder
5d1046ba3a
Scaffold classes for type and reference analysis
2019-06-23 14:44:28 +02:00
Simon Binder
b0649ee208
Parse group by statements
2019-06-23 13:37:30 +02:00
Simon Binder
8bbf6d8054
Parse function expressions
2019-06-23 13:04:05 +02:00
Simon Binder
1c75c9d3e8
Parse sql variables
2019-06-23 11:50:44 +02:00
Simon Binder
b52dcf9a60
Test select statement parsing
2019-06-23 10:35:25 +02:00
Simon Binder
5e6cabc816
Write some rudimentary api and docs for the parser
2019-06-22 22:35:34 +02:00
Simon Binder
99202f3df6
Parse the FROM part of a select statement
2019-06-22 22:04:06 +02:00
Simon Binder
be5bcfd459
Parse "ORDER BY" clause
2019-06-18 14:49:30 +02:00
Simon Binder
1bc4bfc120
Simplify equality check, some more SELECT parsing
2019-06-17 22:33:28 +02:00
Simon Binder
d125a844da
Start implementing SELECT statements for parser
2019-06-16 21:23:33 +02:00
Simon Binder
b442d32a87
Parse simple expressions
2019-06-16 20:50:07 +02:00
Simon Binder
52f3ee045f
Extract sql parser to yet another subpackage
2019-06-15 23:01:10 +02:00