1023 Commits (70810445cb10c18952ace0f76d59a82d2a128e8e)

Author SHA1 Message Date
Sayan Nandan fa17f72519
Add `VInline` impl 2 years ago
Sayan Nandan 2dfe7227aa
Add `TMCell` 2 years ago
Sayan Nandan 44aa57a25a
Add sync module 2 years ago
Sayan Nandan 27e462fb4f
Refactor modules 2 years ago
Sayan Nandan 9d3cef9685
Add tests for ord index 2 years ago
Sayan Nandan 01f2bca81f
Add basic tests for ord index 2 years ago
Sayan Nandan ae516b7168
Add Index trait impls 2 years ago
Sayan Nandan 29a4cceea1
Add ordered iter impls for ord idx 2 years ago
Sayan Nandan b5ec9da926
Add ord index impls and fix UB
Added all basic impls for the ord index, also fixed dealloc on a nullptr
in drop impl
2 years ago
Sayan Nandan 530e76eca4
Add primitive methods to ord idx impl 2 years ago
Sayan Nandan 603ea85e8c
Add index definitions 2 years ago
Sayan Nandan ee32df0916
Add iterator definitions to ME trait 2 years ago
Sayan Nandan a116e49953
Add initial definition of `MemoryEngine` 2 years ago
Sayan Nandan fd22b51183
Use `State` for all other DDL statements 2 years ago
Sayan Nandan 763007a98c
Use `State` for `CREATE` and `ALTER` statements 2 years ago
Sayan Nandan 2756b1d070
Simplify lit to owned data clone 2 years ago
Sayan Nandan 4d140c74fd
Support built-in fn substitution 2 years ago
Sayan Nandan 0f064e1087
Use `State` for more reliable QP 2 years ago
Sayan Nandan 1df6f33032
Remove `RawSlice` usage
This hasn't been an easy task, but I'm finally very happy that we've
gotten rid of all usage instances of `RawSlice` within `engine::ql`.
This is a great feat in terms of codebase cleanup, removing unnecessary
usage of `unsafe` code.

However, this had made lifetimes slightly more complex; for example, we
can no longer directly return from methods that use `&[Token]` since all
returned data is now bound to the same lifetime.

Either way, with some care such issues can be avoided.
2 years ago
Sayan Nandan 255d058793
Add tests for secure list parsing 2 years ago
Sayan Nandan 16fb7a7d1b
Support parameters in DDL queries 2 years ago
Sayan Nandan ce8bba18cd
Add support for parameterization 2 years ago
Sayan Nandan 3257798ee0
Use `LitIR` throughout `dml` 2 years ago
Sayan Nandan 40b4c5042a
Define `QueryInterface` 2 years ago
Sayan Nandan 82f8cea5d1
Fix tests in `tests::dml_tests` 2 years ago
Sayan Nandan 4c5e919954
Store rel expr operands as `LitIR` reprs 2 years ago
Sayan Nandan b918af6d96
Use flags for DT 2 years ago
Sayan Nandan 5d527408cd
Fix number decode algorithm for signed numbers
Also added preliminary tests for the same
2 years ago
Sayan Nandan dae3faf87d
Implement insecure lexer 2 years ago
Sayan Nandan 5a7145fa40
Implement parameterization and remove unsafe literals
Also refactored tests for clarity
2 years ago
Sayan Nandan 79050e5fff
Rename `UnsafeLit` to `SafeLit`
This is more logical due to the inherent meaning of `unsafe`
2 years ago
Sayan Nandan bd0c06652c
Use `where` clauses by default for DML queries
Along with this, here's a summary of other changes:
- `RawSlice` now uses `NonNull` to help the compiler with size opts
- The lexer now allows case insensitive keyword usage (I still DO NOT
particularly approve of it, because enforcing is important)
2 years ago
Sayan Nandan 2dec28d989
Add `where` clause parsing 2 years ago
Sayan Nandan cac7bd4860
Add new keywords 2 years ago
Sayan Nandan 7e5e2838cc
Add support for relational expressions 2 years ago
Sayan Nandan ddba886a0f
Add operating modes 2 years ago
Sayan Nandan d1cba5d8b4
Support signed integers 2 years ago
Sayan Nandan 9d51dc70fe
Make sure we accept all literal types in queries 2 years ago
Sayan Nandan 986cb26ebd
Support `null` in dict and tymeta 2 years ago
Sayan Nandan 173832dd13
Add benches for `drop` 2 years ago
Sayan Nandan c36693afd5
Add benches for `use` and `inspect` 2 years ago
Sayan Nandan 5711fd1089
Improve DDL query parsing
Summary of changes:
- Remaining query parse methods that directly used the `Compiler` were
modified to use token streams instead
- `Entity::parse_from_tokens` to fix assignment to counter instead of
increments
- Allow entity in `drop model`
- `alter model` and `alter space` directly handle space/model names
instead of depending on passing value via args
- Tests added for `drop` and `inspect`
2 years ago
Sayan Nandan 89c6035367
Fix some DDL query implementations
Summary of changes:
- The `drop` queries now use the `DropItem` for drop definitions
- `create model` is now entirely handled by the function in `schema`
- `create space` is now entirely handled by the function in `schema`
- Tests were added for drop (they were never present before)
2 years ago
Sayan Nandan 05b8fe81c0
Add basic benches for `ql`
The benches for the protocol were fixed as well.
2 years ago
Sayan Nandan db35f8a31b
Fix update to allow single entities to be passed 2 years ago
Sayan Nandan 943125116b
Add parsing for delete queries 2 years ago
Sayan Nandan a1c85fb305
Add parsing for update queries 2 years ago
Sayan Nandan ee7196d499
Add parsing for select queries 2 years ago
Sayan Nandan fe3e20ffd7
Fix fuzz tests and use custom uninit structure 2 years ago
Sayan Nandan f695051826
Add parsing for insert statements 2 years ago
Sayan Nandan f69ec88354
Use `Token!` for token shorthand 2 years ago
Sayan Nandan 2d1fdd3417
Keep `UnsafeLit` as a `Lit` variant
Per our language specification, unsafe literals are by their inherent
name literals, hence keep them under this variant. Also, it simplifies
a bunch of implementations. Although I'm sure we can do something for
performance to simply provide an error case when we encounter a
disallowed literal.
2 years ago
Sayan Nandan 9c28c97830
Support unsafe literals 2 years ago
Sayan Nandan e580f2b8d8
Add full support for map-based insert syntax 2 years ago
Sayan Nandan 132633c542
Add tuple syntax parsing 2 years ago
Sayan Nandan 68ed434c96
Add complete list support 2 years ago
Sayan Nandan 7ecec7ffa6
Add inspect statements 2 years ago
Sayan Nandan deed013648
Fix entity parsing 2 years ago
Sayan Nandan 7a5b958402
Support reset syntax 2 years ago
Sayan Nandan 700204913a
Enable adding fields using `alter model` 2 years ago
Sayan Nandan a84bb28a6a
Avoid pointless allocations for DDL operations 2 years ago
Sayan Nandan 70754cbb4d
Support field removal in alter model 2 years ago
Sayan Nandan 500bfc353d
Add field-dict expression syntax 2 years ago
Sayan Nandan efcc89d984
Enable altering of spaces 2 years ago
Sayan Nandan 9d5f85374b
Fix equality checks 2 years ago
Sayan Nandan 36a2b0162f
Enable creating spaces 2 years ago
Sayan Nandan 779fbb7785
Add parsing of schemas 2 years ago
Sayan Nandan a75df3a1d7
Add field parsing 2 years ago
Sayan Nandan 185df7a829
Add field property parsing 2 years ago
Sayan Nandan 71a9ceb093
Add `NULL` and `PRIMARY` keywords 2 years ago
Sayan Nandan e8aaccdb32
Improve kw/sym matching algorithms 2 years ago
Sayan Nandan d0a548a59a
Add fuzzing for layers 2 years ago
Sayan Nandan 1d69751ccf
Add fuzzing for tymeta 2 years ago
Sayan Nandan e7170b1a54
Add fuzzing for tokens 2 years ago
Sayan Nandan 3b5bcdde4b
Fix litnum parsing 2 years ago
Sayan Nandan 659ed8f6d9
Add tests for layers 2 years ago
Sayan Nandan a48da8b0ca
Add tymeta tests 2 years ago
Sayan Nandan 8ffe6360df
Simplify states 2 years ago
Sayan Nandan 103553ef20
Add type folding algorithm 2 years ago
Sayan Nandan 707f5c4d7e
Add type metadata parsing 2 years ago
Sayan Nandan e7e799aca7
Re-implement dictionary folding algorithm 2 years ago
Sayan Nandan 7d982a78bf
Add dictionary folding from tokens 2 years ago
Sayan Nandan 9d0486452f
Implement basic AST, add tests and fix lexing 2 years ago
Sayan Nandan a14e4cce3a
Add `Lexer` impl and `TypeDefintion` expr 2 years ago
Sayan Nandan 7041dd6ce3
Upgrade deps 2 years ago
Sayan Nandan 4d8e53f5cc
Cleanup and upgrade deps 2 years ago
Sayan d156347bc4
Re-implement network stack (#279)
* Re-implement network stack

This commit does a complete overhaul to the networking subsystem, and this has
been pending for a long time. For whatever reason, when some generic
flexibility was aimed for, we went ahead with the "expensive emulation" of
async traits which has resulted in unnecessary complication with type arguments
(lifetimes, function signatures looking insane et cetera) besides the usual
downsides.

Also, the termination signaling mechanism was slightly excessive because it was
built with the idea of supporting PUB/SUB by default.

Last but not the least, the authentication system used dynamism which had
resulted in unwanted complication to type arguments for functions that accepted
the auth handle. Now, none of those complications exist and we have an almost
glorious life (for now atleast).

* Fix simple query header for Skyhash-1.0
2 years ago
Sayan Nandan 166208cbb7
Use aligned pointer for zero-sized slice
This ensures that we always have an aligned pointer, even
when the slice is zero sized. This is required for enum
optimizations (as noted in from_raw_parts).
2 years ago
Sayan 8b45dcd96f
Switch implementation for shared in-memory data (#278)
* Switch to using `SharedSlice`

Although I'm a huge fan of case-based optimizations, we don't exactly need the
sophistication that `Bytes` gives us. Instead, we switch to a traditional ref
counted structure, which allocates on creation and deallocates when it is the
only owner (bytes also does this albeit using dynamic dispath via a vft).

The same function path is utilized for every operation on the structure. The
difference between heap-allocating the shared state and having it as fields
on the base structure is a micro-optimization that I'm yet to substantiate
with performance gains.

* Add tests for `SharedSlice`
2 years ago
Sayan 2180818dca
Fix erroneous removal of auth table during tree cleanup (#277)
* Fix erroneous removal of auth table during tree cleanup

When it comes to the handling of system tables, the current storage engine has
a little "funk." It is because the limited flexibility of the format prevents
us from directly storing system tables which have a different structure than
ordinary user created tables; this is why when the cleanup is run, previously,
the dummy keyspace created for the PRELOAD was scanned and since it has nothing
any "alien" file in the `ks/system` directory was purged. This commit fixes
that and ensures that we do not clean up the system directory.

This is also another reason why a new storage engine coupled with a new memory
engine are being developed. These shortcomings will be addressed with the new
engines.

* Add test case for issue #276

Add Changelog entry
2 years ago
Sayan Nandan a512b8b617
Upgrade deps 2 years ago
Sayan Nandan 9372e3aeeb
Upgrade deps 2 years ago
Sayan Nandan d2d340b760
Enable use of newlines and tabs in BQL 2 years ago
Sayan Nandan 081f8691f4
Bump deps 2 years ago
Sayan Nandan 0b5b978e81
Use stdlib for core count and upgrade deps 2 years ago
Sayan Nandan 0df1acd2be
Simplify imports 2 years ago
Sayan Nandan 3c321669fc
Upgrade deps 2 years ago
Sayan 5411b3b16b
Merge pull request #265 from skytable/ql/blueql
Implement BlueQL for DDL
2 years ago
Sayan Nandan c074656c7a
Error on extra args 2 years ago
Sayan Nandan b78258289c
Fix issues with commas 2 years ago