Releases: elliotchance/vsql
Releases · elliotchance/vsql
v0.27.2
Fix bounds checking of BIGINT (#148) This introduces a pseudo-type NUMERIC that is used internally to hold exact values before they are cast into the used type. The previous logic was to make all integers into BIGINT and all decimals into DOUBLE PRECISION which caused some bounds checking to be impossible to detect. Fixes #116 Fixes #121
v0.27.1
More efficient memory usage of Values (#147) This doesn't change any behavior. The Value now uses a union to use a lot less memory. This also does some minor refactoring to prepare for the "scale" property of SQL types.
v0.27.0
Adding support for catalogs (#145) A catalog is the SQL standard term for a database. A catalog contains schemas, but cannot be directly created with SQL. Instead, a catalog in vsql means a database file which includes a ":memory:" database. Loading multiple catalogs allows vsql to work seamlessly across multiple database files, although there is some limitations with transaction guarantees when working with multiple catalogs. See documentation for more details. Catalogs are virtual, meaning that the catalog name is not encoded into the database file but created when attaching it to the engine. By default the catalog name is derived from the file by using the first part of the file name. For example "/foo/bar.baz.vsql" will be "bar". SQL Standard F651 SQL Standard F762
v0.26.2
Support SET SCHEMA (#144) Adding the `SET SCHEMA` statement and `CURRENT_SCHEMA` expression. These would normally be trivial, but this was a good opportunity to refactor the schema implementation to not be so hacky and make it much easier to support catalogs in the future. SQL Standard F763
v0.26.1
sequences: Fixing concurrent "NEXT VALUE FOR" (#143) This fixes a bug where concurrent transactions using "NEXT VALUE FOR" would make the sequence invisible to the other concurrent transaction. The properties of a sequence (such as the `INCREMENT BY`, etc) are held in the same record as the next value. Since the next value of a sequence needs to be atomic (and separate from the transaction isolation) a `ROLLBACK` on a transaction that contains an `ALTER SEQUENCE` will not undo any changes. Ideally, the properties of a `SEQUENCE` can be stored in a separate location on disk. However, for now it's a documented limitation.
v0.26.0
Adding support for SEQUENCEs (#142) A sequence is used as an atomic counter. It is useful for generating unique and sequential numbers. The sequence can have an separately optional min and max values, as well as being able to specify if numbers are allowed to cycle (wrap around) between these boundaries. New SQL statements introduced for `CREATE SEQUENCE`, `ALTER SEQUENCE` and `DROP SEQUENCE` as well as the `NEXT VALUE FOR <name>` expression. Fixes #139
v0.25.4
make: fix too lax loops in `make cli-test` and `make examples` (#140) * fix too lax `make cli-test` and `make examples` (make them fail, if any of the steps in their loops fail) * fix notice in vsql/sql_test.v * panic instead of continue, when connection_name is not found in connections
v0.25.3
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 <elliotchance@gmail.com>
v0.25.2
refactor: Fix v syntax errors (#135) Some minor cleanup with V language and formatting changes.
v0.25.1
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).