Releases: elliotchance/vsql
Releases · elliotchance/vsql
v0.5.0
Greatly improved expressions (#18) - Expressions can now contain artithmetic for binary operations (+, -, * and /). - Expressions now follow correct operator pecedence. - Added SQLSTATE 22012 "division by zero". - Adding grouping expression (parenthesis). - Added concatenation `||`. - Added logical operators for `AND`, `OR` and `NOT`. - Added unary operators `+` and `-`. - Changes not equal operator `!=` to `<>` to correct follow the SQL standard. - Renamed the lexer tokens to be same as the naming conventions in the SQL standard.
v0.4.1
row: Improve API and implementation (#14) - The `Row` now has new functions for `get_bool`, `get_null` and `get_unknown` for respective value types. - The get methods are sensitive to returning only on the correct types (ie. `get_f64` can only be used on numeric values). - An error is returned from any get method if the column does not exist. - Should a column not exist but there is a column with a different case, a more helpful message is returned like "no such column foo, did you mean FOO?" Fixes #13
v0.4.0
Added vsql-server (#9) `vsql-server` will run vsql in server mode on the default port 3210. You can connect to it with any compatible PostgeSQL client. The PostgreSQL protocol implementation is very basic so it may not handle many edge cases yet.
v0.3.3
Cleanup storage.v (#8) Now that V supports seek/tell we no longer have to track the positions manually.
v0.3.2
Statements optionally terminated by `;` (#12) A statement can optionally be terminated by `;` and any tokens after that is now considered an error. The SQL test suite has been updated so that statements can span multiple lines since all statements must be terminated with `;`. Overall this makes queries and test more compatible and reliable.
v0.3.1
Better handling of SQLSTATE (#11) The SQLState structs now carry the SQLSTATE in their `code` attribute. Along with the new functions `sqlstate_from_int()` and `sqlstate_to_int()` more flexible printing and matching operations are possible.
v0.3.0
Adding NULL values and constraints (#10) - NULL can now be used as a value. - Specifying a `NOT NULL` constraint on table columns will ensure that NULL values will not be added to the table. `NULL` can also be explicitely provided to allow for `NULL`s. - New expressions in the form of `X IS NULL` and `X IS NOT NULL` can be used in both `SELECT` expressions and all `WHERE` clauses. - A new SQLSTATE 23502 violates non-null constraint has been added. As a consequence, also: - TRUE, FALSE and UNKNOWN (boolean values) can now be used in expressions. - SELECT statements support multiple expressions (not just a single value or `*`). However, the `*` is still not actually implemented. - The version stored in the databse file will now start to increment and be enforced for compatibility when opening a database.
v0.2.5
Added type checking (#7) Types from statements like INSERT and UPDATE are now checked for casting compatibility.
v0.2.4
Adding delimited identifiers (#6) Delimited identifiers are surrounded by double-quotes. A delimited identifier casing is kept the same. Whereas as regular identifier is not case-sensitive and will always be represented as upper case.
v0.2.3
Disallow reserved words for identifiers (#5) Table and column names may not use reserved words. This does not included SQL standard defined non-reserve words. Some of these words are also parser keywords so they will return a different error, that's OK, just as long as the name itself can not be used.