Skip to content

Releases: elliotchance/vsql

v0.25.3

12 Feb 17:17
47b87bf
Compare
Choose a tag to compare
ci: fix ci errors and warnings with latest V 0.3.2 4747e70 (#136)

* ci: run `v fmt -w .` to make the CI pass again with latest `V 0.3.2 4747e70`
* fix warnings about uninitialised reference fields, by explicitly setting them to nil by default
* small cleanup, use os.getenv so that test runs can be parametrised more easily without changing the test source
* ci: run tests on each individual PR as well, not just on master. Fix warnings/errors produced by yamllint.
* document how to use TIMES=10 for running vsql/btree_test.v, in docs/testing.rst
* fix `make docs` on Ubuntu 20.04 and `make cli-test` too

Co-authored-by: Elliot Chance <[email protected]>

v0.25.2

12 Dec 16:10
8af2ddf
Compare
Choose a tag to compare
refactor: Fix v syntax errors (#135)

Some minor cleanup with V language and formatting changes.

v0.25.1

26 Aug 03:31
6119845
Compare
Choose a tag to compare
refactor: Fix V error syntax (#133)

There was recently a change to the language which distinguishes `?` (as
an optional none) vs `!` (as and optional error).

v0.25.0

07 Aug 21:59
3345699
Compare
Choose a tag to compare
Added `in` and `out` commands (#131)

`vsql in` will execute a SQL file and `vsql out` can be used to dump the
structure and data from a database in SQL format. These are also useful
when converting data to and from other databases.

The commands are designed to be simple and provide a means to make a
lossless copy (or a backup) of a database without any other options:

    vsql out mydb.vsql > mydb.sql
    vsql in mydb.vsql < mydb.sql

This is also especially important if there are changes to the vsql file
format in the future. To be able to quickly and easily recreate the
database.

You can find more CLI options and documentation for these commands here:
https://vsql.readthedocs.io/en/latest/cli.html

To facilitate testing, there is now a 5th test suite called
"CLI Tests" which are written as shell scripts and executed along with
the other suites. This provides a lot of flexibility in testing CLI
options, exit codes, outputs, etc. You can read how CLI Tests work here:
https://vsql.readthedocs.io/en/latest/testing.html#cli

v0.24.4

07 Aug 21:18
e9d0dd1
Compare
Choose a tag to compare
All tables must belong to a schema (#129)

The PUBLIC schema is now created when the database is created and any
table that does not qualify a schema is placed into the PUBLIC schema.

Have also added Connection.schemas() and Connection.schema_tables() for
introspection.

v0.24.3

06 Aug 23:19
8c917cb
Compare
Choose a tag to compare
Documentation for V Client Library (#128)

There is now a "V Client Library" page to properly document the public
interface when using V to interact with vsql.

To make this easier, a new feature has been created that will extract
"snippets" from comments in V code and put them into `snippets.rst` for
reference in the documentation. This will ensure that we only need to
keep the docs in one place right within the code.

v0.24.2

06 Aug 16:33
cf54325
Compare
Choose a tag to compare
Split vsql subcommands (#126)

This splits each subcommand of vsql into its own V file. There will be
new subcommands coming in the future and this will be cleaner.

There is no change to functionality, other than you must use `vsql cli`
explicitly now (rather than the implicit `vsql` without a subcommand).

The Makefile has been updated to put the binary in bin/ which is a more
regular location than in cmd/ previously.

v0.24.1

06 Aug 10:14
bdd136d
Compare
Choose a tag to compare
Non-reserved words can be used as identifiers (#127)

Previously all <key words> (which includes reserved and non-reserved
words) were disallowed as identifiers. Looking at the SQL standard more
closely, it does explicitly state that reserved words cannot be regular
identifiers using and case, but nowhere does it state that non-reserved
words are not allowed to be used as identifiers.

This is an import distinction because `public` is a non-reserved word
and we intend to use it for the default schema and also for
compatibility with the same schema in PostgreSQL.

Also, comments can now be placed in `grammar.bnf` with a `#` at the
start of the line (not within a line).

See #103

v0.24.0

04 Aug 21:28
7ee3bfd
Compare
Choose a tag to compare
Large object storage (#125)

vsql now supports storing objects (rows, tables, etc) larger than a page
(which previously was a serious limitation). This happens entirely
transparently on the B-tree implementation where larger objects are
split (and reconstructed) to and from new `B` (blob) and `F` (fragment)
objects.

This is a breaking change to the file format. Some other notable
improvements:

- Documentation now has Excalidraw diagrams. The "File Format" page has
been totally overhauled and is a lot easier to understand and much
nicer to look at: https://vsql.readthedocs.io/en/latest/file-format.html

- Added "Limitations" page. Among which, a vsql file - in theory - can
hold up to 128PB (wholly untested, of course).

- Page splitting now has a heavy bias towards filling the left page as
much as possible (rather than even splitting). We prefer the left page
to be a full as possible because the keys are sequential, so in the case
of lots of sequential inserts it can pack the data more tightly and
causes less page splits as new data is inserted.

- Added another B-tree test for testing 100k sequential inserts/deletes
and improved the existing random insert/remove test matrix from just 48
byte objects to also include 148 byte objects (one object per page) and
348 byte objects (always using blob storage).

Fixes #43

v0.23.2

31 Jul 17:00
2c4c6f1
Compare
Choose a tag to compare
F261-04: COALESCE function (#124)

`COALESCE` returns the first value that is not `NULL`. If all values are
`NULL` then `NULL` is also returned.