Commit graph

141 commits

Author SHA1 Message Date
Maxim Svistunov
61c0a34253 Add parsing (incl. validation)
Ensure identifiers start with alphabetical character

Rename parse_variable_name -> parse_column_name

Add DB value parsers and condition parser placeholder

Fix number parser, basic condition parser

Move select parser to select module

Add create statement parser

Move condition parser to common; add delete statement parser

Add drop statement parser

Add insert parser

Add update parser, combine operation parsers into one

Add initial validation, fix compiler warnings

Validation WIP

Allow more spaces in create statement, update TableSchema struct

Add create index parser and validator

Add todo in parse_identifier

Rework the new structure, many other changes
2024-01-26 18:20:45 +01:00
Jindřich Moravec
4fca7ce12b fix: small changes 2024-01-25 23:23:18 +01:00
Jindřich Moravec
88fb13325a tests: asynchronize some interpreter tests 2024-01-25 23:19:37 +01:00
Jindřich Moravec
51ed3bbc5c feat: finish work on server 2024-01-25 23:07:27 +01:00
Jindřich Moravec
7b79dd69b4 feat: add resettable cancellation token 2024-01-24 23:25:02 +01:00
Jindřich Moravec
4c826923a5 fix: type size bit length 2024-01-23 21:58:00 +01:00
Jindřich Moravec
7773a2585e feat: add type system encoding to text bytes 2024-01-23 21:55:43 +01:00
Jindřich Moravec
f47fd24232 feat: add thiserror annotations to error 2024-01-23 21:02:13 +01:00
Jindřich Moravec
1d746430d2 feat: return schema and column positions with select 2024-01-23 20:56:07 +01:00
Jindřich Moravec
ebabf50291 feat: support for cancel requests in handshake 2024-01-22 21:59:39 +01:00
Jindřich Moravec
f9fb8f0670 feat: add server cli configuration 2024-01-22 11:18:43 +01:00
Yuriy Dupyn
143dc0e5ce Merge branch 'interpreter-iterator' into 'main'
Make interpreter return an iterator of rows

See merge request x433485/minisql!7
2024-01-21 08:39:39 +01:00
Yuriy Dupyn
29527e92ff Merge branch 'operation-separation' into 'main'
Make interpreter a library

See merge request x433485/minisql!6
2024-01-21 08:38:53 +01:00
Yuriy Dupyn
ddf17ae0a5 Now interpreter returns an iterator 2024-01-20 15:08:18 +01:00
Yuriy Dupyn
430d092def Make interpreter a library 2024-01-18 19:25:46 +01:00
Yuriy Dupyn
37f8b7be91 Make schema fields private 2024-01-18 16:35:20 +01:00
Yuriy Dupyn
71d4bd76f0 Merge branch 'interpreter' into 'main'
Interpreter

See merge request x433485/minisql!2
2024-01-09 19:19:10 +01:00
Yuriy Dupyn
ba2c1bae6d Add a comment about potentiall returning reference to id hash-set in fetch_ids_from_index. 2024-01-08 15:20:22 +01:00
Yuriy Dupyn
b04f3d167b Return reference in index_column.get() 2024-01-08 14:24:30 +01:00
Yuriy Dupyn
f0d29eb399 Make TableSchema struct fields private 2024-01-08 13:56:38 +01:00
Yuriy Dupyn
966c9bf284 Make Table struct fields private 2024-01-08 13:37:09 +01:00
Yuriy Dupyn
0996d0dbe1 Move index update into attach_index 2024-01-08 13:29:49 +01:00
Yuriy Dupyn
2549a4dac1 Merge branch 'main' into interpreter 2024-01-08 13:05:43 +01:00
Jindřich Moravec
bb4c6761f4 Merge branch 'protocol' into 'main'
Protocol

See merge request x433485/minisql!4
2024-01-04 22:33:42 +01:00
Jindřich Moravec
df5741224f docs: data messages documentation 2023-12-31 19:04:40 +01:00
Jindřich Moravec
c61b6021db docs: handshake documentation 2023-12-31 18:45:50 +01:00
Jindřich Moravec
14b82d1aa5 fix: typos 2023-12-29 17:03:39 +01:00
Yuriy Dupyn
1712bc0e0e Remove unnecessary import in a test 2023-12-29 08:49:58 +01:00
Yuriy Dupyn
8b9249be36 Test for column index 2023-12-29 08:14:29 +01:00
Yuriy Dupyn
25b26acde0 format & clippy 2023-12-29 07:58:35 +01:00
Yuriy Dupyn
4f2c864d7a Move DbResult into its own file 2023-12-29 07:49:17 +01:00
Yuriy Dupyn
d87c95f1e1 Move index update from table logic to interpreter 2023-12-29 07:45:40 +01:00
Yuriy Dupyn
e9d3df7a22 Reorganization 2023-12-29 07:39:59 +01:00
Yuriy Dupyn
f7a6cc2549 Make Row a wrapper type 2023-12-29 07:24:46 +01:00
Yuriy Dupyn
bfb5042896 Disentangle table.rs from operation.rs 2023-12-29 06:57:24 +01:00
Yuriy Dupyn
f9b874f302 Simplify select_all and delete_all 2023-12-29 06:33:30 +01:00
Yuriy Dupyn
6b58c3cb9b Reorganization 2023-12-29 06:03:04 +01:00
Yuriy Dupyn
3c57b0eb6c Add an example to fn main() 2023-12-28 14:39:36 +01:00
Yuriy Dupyn
5e4abc3cb1 Simplify select_where, delete_where 2023-12-28 14:39:13 +01:00
Yuriy Dupyn
291f90ef03 cleanup 2023-12-28 14:03:38 +01:00
Yuriy Dupyn
14f4fe4f3b Test delete 2023-12-28 12:56:16 +01:00
Yuriy Dupyn
dc3e9b0077 Add some basic tests 2023-12-28 12:33:00 +01:00
Yuriy Dupyn
e111c4fc61 Implement proper index creation 2023-12-28 10:49:32 +01:00
Yuriy Dupyn
c8e398a238 Implement select_columns 2023-12-28 09:55:42 +01:00
Yuriy Dupyn
bd3dbe2365 Merge remote-tracking branch 'origin/main' into interpreter 2023-12-28 09:37:48 +01:00
Yuriy Dupyn
eb8410718d Fix typos 2023-12-28 09:27:55 +01:00
Jindřich Moravec
84d9fa2d50 feat(proto): add example server 2023-12-23 23:40:45 +01:00
Jindřich Moravec
0318169876 feat(proto): add example client 2023-12-23 23:40:31 +01:00
Jindřich Moravec
75b067762e fix(proto): move handshake response instead of borrowing 2023-12-23 01:31:49 +01:00
Jindřich Moravec
a08376766c chore(proto): crate formatting 2023-12-23 01:28:30 +01:00