Sayan Nandan
6899a35870
Use specific error kind for lex
2 years ago
Sayan Nandan
2f128c2cf2
Use `HSData` for dict entries for simplicity
2 years ago
Sayan Nandan
fb2a218ead
Add `UArray` based str
2 years ago
Sayan Nandan
79f8630424
Use `Ident` to avoid major future refactors
2 years ago
Sayan Nandan
080563cc24
Re-organize imports to match import style [no ci]
2 years ago
Sayan Nandan
25ef03221b
Make `ASTNode` sensitive to COW style parsing
2 years ago
Sayan Nandan
35143b7960
Ensure we don't crash the CI runner
...
Too many input keys might consume far too much memory crashing the runner
2 years ago
Sayan Nandan
798871bdd6
Simplify wrapper based access
2 years ago
Sayan Nandan
f98478b274
Fix state machines, refactor schema and add `ASTNode` def and impls
...
This is one huge commit that fixes a bunch of issues we've had with
the schema and surrounding impls. Here are some of them
- The type metadata syn parse was incredibly broken. More than
one trailing comma or other punctuation following a trailing symbol
(as in a comma) is illegal
- The `*_full` set of methods were repetitive and annoying. That has
been fixed (not the most elegant solution, but it works and fits
well)
- As a result of the first issue, fuzz targets kept blowing up,
rightfully. This has been fixed too. The fuzz needs to be more
deterministic covering all permutations, and this is something I'll
fix up ahead.
Finally, I can now happily say that the QL impl is rock solid. There is
another possible bug that I'm tracking down, but that will be fixed.
2 years ago
Sayan Nandan
64d87fe089
Refactor ddl module
2 years ago
Sayan Nandan
e404a273ef
Simplify kw and sym lookup
2 years ago
Sayan Nandan
263a287edd
Fix double-free, use-after-free and other bugs in mtchm
...
The bug was actually because of my oversight in the VInline clone
impl for non-Copy Ts. Also added tests for worst case O(n)
performance.
2 years ago
Sayan Nandan
932bb4f58b
Fix remove len impl, use relaxed and add tests
2 years ago
Sayan Nandan
1920664273
Fix use-after-free in mtchm impl, add tests and add trait impls
2 years ago
Sayan Nandan
51622ba4d6
Add some smart pointers
2 years ago
Sayan Nandan
427ff72e42
Move iter into module for st seq idx
2 years ago
Sayan Nandan
b21162c4dc
Make st idx generic on alloc strategy
2 years ago
Sayan Nandan
3eb00f892f
Add insert test
2 years ago
Sayan Nandan
bec5e10f7b
Add mt idx empty tests
2 years ago
Sayan Nandan
c9ea051bd3
Put state into config
2 years ago
Sayan Nandan
900e10efd7
Add mt idx impl (copy)
2 years ago
Sayan Nandan
57c7a6447b
Add mt idx impls
2 years ago
Sayan Nandan
48ada558ad
Clarify idx trait definitions
...
MT idx impls would have a fairly different interface when compared to ST
equivalents.
2 years ago
Sayan
29baeb4996
Implement mtchm
2 years ago
Sayan Nandan
a59823fc48
Add misc lib changes
2 years ago
Sayan Nandan
f26e71512e
Fix segfaults in UArray impl
2 years ago
Sayan Nandan
6fcf87c040
Add misc bounds and impls for `TMCell`
2 years ago
Sayan Nandan
548ed53e16
Do not enforce a `Clone` bound in idx impls
2 years ago
Sayan Nandan
d831eb3a7c
Enable bi-directional iter on `VInline`
2 years ago
Sayan Nandan
89888483e2
Enable bi-directional iter on `UArray`
2 years ago
Sayan Nandan
86585ff864
Impl into_iter for `VInline`
2 years ago
Sayan Nandan
28b6ce0d96
Add misc trait impls for seq mem structures
2 years ago
Sayan Nandan
f63ec2d37d
Add `IntoIter` for `UArray`
2 years ago
Sayan Nandan
14c1d94027
Refactor `mem` modules
2 years ago
Sayan Nandan
49dfac11b5
Add remove and capacity optimization ops to VInline
...
Also updated tests to make debugging easier (the previous test simply
placed all operations in one test making it harder to debug any bugs)
2 years ago
Sayan Nandan
10a36fa77d
Add `UArray` definition
2 years ago
Sayan Nandan
ab30a74173
Re-export at mod level
2 years ago
Sayan Nandan
9d3115a7cf
Enable idx init with cap
2 years ago
Sayan Nandan
a9900e2bd6
Revise definitions for ST idx
2 years ago
Sayan Nandan
7a2e8e4b58
Impl idx traits for `StdMap`
2 years ago
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