Skip to content

Releases: elliotchance/vsql

v0.28.0

04 Nov 19:04
ff88202
Compare
Choose a tag to compare
Overhaul eval into a compiler (#176)

This replaces the existing but separate eval(), eval_type() and
reoslve_identifiers() with a much easier and more flexible single
compile() function that encapsulates all aspects of evaluation and
types.

Strictly speaking, this is not a compiler in the traditional sense, but
it does allow us to separate the compile-time logic and the runtime
evaluation with a closure. So apart from simplifying the logic, it
also makes it more efficient by not having to recompile certain parts of
every row.

One more positive side effect from removing separate
resolve_identifier() stage is that we can make the EXPLAIN look a lot
less verbose and natural against the original query.

v0.27.21

01 Nov 23:55
05e7ed3
Compare
Choose a tag to compare
GROUP BY: Remove explicit is_agg() (#175)

This was left over from the previous refactoring. While the previous
error description is more helpful we must rely on the fallback error
until a better solution can be added.

v0.27.20

31 Oct 06:30
7827da2
Compare
Choose a tag to compare
chore: Cleanup statements (#173)

Move the execute logic to the relevant types and files.

v0.27.19

31 Oct 03:10
3c266d1
Compare
Choose a tag to compare
chore: Remove vsql/grammar.v (#172)

This is a generated file. I kept it in initially so it didn't need to be
generated but that doesn't need to be the case anymore.

v0.27.18

31 Oct 02:29
6d9a2d5
Compare
Choose a tag to compare
chore: Remove Expr (#171)

This is a huge refactoring to remove the Expr type so that the AST is
now represented as the same structure as the SQL standard and types have
been moved the relevant files.

v0.27.17

29 Oct 23:13
e46e29e
Compare
Choose a tag to compare
VALUES: Fix for multiple rows (#170)

There was a misunderstanding the SQL standard that:

    VALUES 1, 2, 3;

Should be treated as:

    VALUES ROW(1, 2, 3);

Which is incorrect, it must be treated as:

    VALUES ROW(1), ROW(2), ROW(3);

v0.27.16

26 Oct 03:05
390c2fe
Compare
Choose a tag to compare
chore: Refactor <datetime value function> (#169)

As a longer term effort to remove ast.v, expr.v and eval.v, this moves
<datetime value function> and its subtypes into their respective
locations.

v0.27.15

26 Oct 02:38
d490ba4
Compare
Choose a tag to compare
chore: Refactor <unsigned value specification> (#168)

As a longer term effort to remove ast.v, expp.v and eval.v, this moves
<unsigned value specification> and its subtypes into their respective
locations.

v0.27.14

25 Oct 14:56
9c801c0
Compare
Choose a tag to compare
chore: Refactor <predicate> (#167)

As a longer term effort to remove ast.v and eval.v, this moves
<predicate> and its subtypes into their respective locations.

This also fixes a bug where the Makefile will no regenerate the
grammar.bnf.

v0.27.13

25 Oct 05:27
3f6b2f9
Compare
Choose a tag to compare
Remove grammar.bnf (#166)

The grammar is now split into source files that represent different
sections of the SQL standard. This will make it much more manageable as
the grammar and parsing logic fills out.