Simon Binder
9a78604d98
Fix issues with new inference, enable it by default
2020-04-16 19:07:30 +02:00
Simon Binder
af5333db3c
Support compound select statements in from
2020-04-07 15:37:35 +02:00
Simon Binder
dcb4c4b972
Resolve nested result sets in generator
2020-04-03 20:30:41 +02:00
Simon Binder
d5ad3c6d34
Parse nested star columns
2020-04-03 18:37:33 +02:00
Simon Binder
2b9a85714f
Improve nullability detection in new type inference
2020-03-24 19:33:57 +01:00
Simon Binder
1a2d3bdee7
Parse comma separated tables as proper join ( #453 )
2020-03-22 11:51:39 +01:00
Simon Binder
d533a0a254
Fix error recovery on early finished statements #453
2020-03-21 22:02:27 +01:00
Simon Binder
87d1f2941b
Test for string concatenation variable inference
2020-02-23 19:23:50 +01:00
Simon Binder
814e7bf61d
SqlEngine: Migrate default construtor to options
2020-02-10 18:48:03 +01:00
Simon Binder
aa52c4ba3d
Analysis for upsert clauses
2020-02-05 12:26:14 +01:00
Simon Binder
8839ec75a8
types2: Inference for upsert clauses
2020-02-03 21:54:49 +01:00
Simon Binder
0c171c3b81
sqlparser: Support upsert clauses ( #367 )
2020-02-03 21:43:18 +01:00
Simon Binder
fbe061c84d
Support current time literals in the sql parser
2020-02-01 13:18:53 +01:00
Simon Binder
71ef9b8cd7
Support table-valued json1 functions
2020-01-26 14:42:52 +01:00
Simon Binder
5268d88344
Extract json1 support into an extension
2020-01-26 14:22:07 +01:00
Simon Binder
223f1615ab
Support parsing table valued functions
2020-01-26 13:13:44 +01:00
Simon Binder
ceb300e32e
Parse rowid as a valid expression in the sql parser
2020-01-26 12:23:47 +01:00
Simon Binder
8c62365f26
Improve type inference for parentheses
2020-01-19 13:07:47 +01:00
Simon Binder
c8a155a44b
Autocomplete table names in sqlparser
2020-01-18 21:41:36 +01:00
Simon Binder
b04ebc9e8c
Utils to make testing autocomplete easier
2020-01-18 20:51:09 +01:00
Simon Binder
eb77d06cac
sqlparser: Recover from invalid column definitions
2020-01-18 15:09:42 +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
9c38ed1ea5
Support CASE expressions in the new type resolver
2020-01-10 21:31:22 +01:00
Simon Binder
643ef5640c
Faster sql tokenization with char codes
2020-01-09 22:09:17 +01:00
Simon Binder
a3708b7230
Remove deprecated usages of SqlEngine constructor
2020-01-07 11:40:43 +01:00
Simon Binder
523eabaa2a
Support LIKE expressions in the new type resolver
2020-01-04 21:36:06 +01:00
Simon Binder
a8ffd0a7f3
Support LIMIT clauses in the new type resolver
2020-01-04 21:26:47 +01:00
Simon Binder
49d251f819
Support single quote escapes in sql ( #317 )
2020-01-04 17:32:55 +01:00
Simon Binder
282af57c78
Report a parsing error for invalid queries in moor files
...
We used to return null when the query didn't start with SELECT, INSERT, UPDATE or DELETE, which causes errors later on. Now, we don't accept the query and report a parsing error.
2020-01-04 17:06:45 +01:00
Simon Binder
c362e08e6e
types2: Respect variable hints from options
2020-01-04 16:55:34 +01:00
Simon Binder
92030c07a8
types2: Support inference for insert statements ( #297 )
2020-01-04 14:38:37 +01:00
Simon Binder
c95a5f0aad
New type resolver: Start propagating known types
2020-01-04 13:22:29 +01:00
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
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
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
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
c9f29fab5b
Support detailed analysis for fts5 functions
2019-12-13 22:30:36 +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
a304d13927
Use enforceHasSpan on all parse results in tests
2019-10-27 11:51:09 +01: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
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
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
ed03bff4c2
Recognize boolean and datetime column in moor
2019-10-05 21:24:41 +02:00
Simon Binder
b684a7be69
Replace imports of test_api with test
2019-09-26 22:52:20 +02:00
Simon Binder
c4f321748a
Prepare release for sqlparser 0.3.0
2019-09-25 20:19: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
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
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
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
f171098789
Parse Dart placeholders based on their context
2019-09-14 11:44:15 +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
1b7721a98f
Plugin: Import assists for column nullability
2019-09-08 21:36:26 +02:00
Simon Binder
a62c076c4c
Suggest CREATE TABLE statements in moor files
2019-09-07 22:49:23 +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
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
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
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
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
5df5e3cacc
Fix typename parsing, set span on default constraint
2019-07-30 09:35:19 +02:00
Simon Binder
a550a49705
Export table structure from CREATE TABLE statements
2019-07-28 22:09:20 +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
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
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
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
b0ca66bc06
Parse empty tuples
...
Closes #54
2019-07-02 22:30:54 +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
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
baf3c9ce88
Parse update statements
2019-06-30 15:25:39 +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
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
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
62c20d0202
Add simple tests for reference resolution
2019-06-23 16:35: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
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