Commit Graph

10 Commits

Author SHA1 Message Date
Asdine El Hrychy
a304e806ff Use index with BETWEEN operator 2021-12-13 15:33:27 +05:30
Asdine El Hrychy
f966172cee Introduce Value interface (#422)
This replaces the Value struct by an interface to allow us to override some
values behavior in the future.
It also introduces a new package types, which contains type definitions, comparison,
and arithmetics.
Concerning encoding, Genji now only uses on type of encoding for values. This simplifies
indexing logic as well as table access in general.
2021-07-21 22:05:44 +04:00
Jean Hadrien Chabran
e556fc3048 Add functions packages support (#419)
* Add packaged functions support

* Add tests for math.floor func

* Export FunctionsTable

* Extract func stuff into its own package

* Rename stuff

* Fix tests

* Move doc package to cmd/genji

* Adjust naming, typos
2021-07-17 13:07:16 +02:00
Jean Hadrien Chabran
c829fc8e5c Fix typo: litteral -> literal (#420) 2021-07-10 08:58:49 +04:00
Asdine El Hrychy
fa66f81fb6 Improve default value expressions 2021-07-02 18:41:33 +04:00
Asdine El Hrychy
6af0a6f114 Add new environment package 2021-07-02 18:59:20 +04:00
Asdine El Hrychy
d5401cfe5d Decouple transaction from catalog
To avoid cyclic dependencies, we removed the Catalog from the
Transaction type and pass it around everywhere.
2021-07-02 15:55:58 +04:00
Asdine El Hrychy
661c0eacce Add support for sequences (#416)
This adds support for sequences to Genji. For now, only sequence creation and use is supported, dropping or modifying a sequence will be added later.

To create a sequence:

```sql
CREATE SEQUENCE seq INCREMENT BY 10 MINVALUE 100 NO MAXVALUE START 500 CACHE 32 CYCLE;
```
2021-06-26 17:53:52 +04:00
Asdine El Hrychy
9918cd6f55 Thread safe statements (#406)
Previously, expressions and params were evaluated
during the planning phase. This change builds the query
plan without evaluating params and expressions
which are then evaluated only during the execution phase.
2021-06-04 10:56:23 +04:00
Asdine El Hrychy
37ebf47ea8 Move packages under internal package
These packages are not part of the public API and can break at any time.
2021-05-23 11:05:41 +04:00