Conversation
| sql-test: oldv | ||
| $(V) -stats $(BUILD_OPTIONS) vsql/sql_test.v | ||
|
|
||
| orm-test: oldv |
There was a problem hiding this comment.
I'm just adding a note here for me to add this to the docs.
|
Sorry for not cleaning this up, i have now removed comments/ commented code that do not add context |
|
I fixed the docs CI job and ran Also, can you add a section to https://github.com/elliotchance/vsql/blob/main/docs/testing.rst#test-suites to add |
| example() or { panic(err) } | ||
| } | ||
|
|
||
| // NOTE for some reason if we declare a @[primary] on a struct field, we can not do delete queries on the tables... |
|
@daniel-le97 any update on this? You can avoid the rebase entirely and just put the new files, it would look like this: #209 |
Fixing the "Verify docs" job and running `v fmt` for the new version.
This replaces the existing Earley parser (which is O(n^3)) with a LALR parser using Yacc which is an ideal O(n). Even with very short SQL statements, the existing parser was _really_ slow, so I had to build a query cache as bandaid, but that has also been removed now. This refactoring was made possible by adapting yacc from a Go implementation here: https://github.com/elliotchance/vyac. However, in keeping with the promise of this repo being completely written in V, the source has been copied to this repo. Other notable and breaking changes: 1. Not sure how this worked before, but the query may not specify a catalog in identity chains (for example, `catalog.schema.table`). The catalog must be set using `SET CATALOG`. 2. Syntax error messages will be slightly different, but should be a little more helpful. 3. There are some ambiguities with the SQL grammar, such as trying to decode what `x IS NOT TRUE` means or differentiating between `COUNT(expr)` vs `COUNT(*)` due to lookahead limitations. Some special tokens for combinations of operators and keywords have had to be added for known edge cases, but there are many remaining conflicts. I suspect these conflicts don't matter as ambiguous paths should still yield valid results, so these warnings have to be ignored for now. 4. Fixes a very minor bug where string literals in VALUES might be treated as `VARCHAR` instead of `CHARACTER` in some cases. 5. Renamed "std_" files with their position number in the standard. This helps for grouping similar sections and makes lookups easier.
When an index lookup occurs as part of a DELETE, it was not stripping the qualified identifiers in the row necessary for storage to find the rows. This did not effect the equivilent UPDATE, but I have add an extra test for that anyway. Fixed elliotchance#200
…hance#204) Co-authored-by: ge <gechandev@gmail.com>
There were a few minor cases that were already implemented, but did not have specific tests. SQL E021 SQL E021-10 SQL E021-12
I apologize! I have not had time to check github or even the V discord in a while, due to job changes. I wasn't 100% sure on what you were asking and attempted to rebase, but i did not know what i was doing because i have not rebased before. I will look into this further tomorrow. |
Now that V ORM allows mutable Connections via vlang/v#22684,
integration of the ORM does not require major workarounds or creating separate DB connections
Example usage
Tests
Tests can be run by either of the following
v -stats test ./vsql/orm_test.vor
This implementation does take code/ideas from the initial work done on this in #102
It also implements most of the same test done in the original work.
The only change i see is that in this implementation, @[primary] attributes are also not supported as they will break delete queries. This can easily be changed tho.
Not Supported
fixes #90