Skip to content

Releases: chaisql/chai

v0.10.0

26 Jan 07:24
Compare
Choose a tag to compare

SQL

  • fix: COUNT(*) with empty set #284
  • fix: Selection of field in GROUP BY expression #317
  • fix: Index selection of IN operator #281

Core

CLI

v0.9.0

12 Nov 18:54
Compare
Choose a tag to compare

SQL

Core

  • Implement driver.DriverContext and driver.Connector interfaces in sql/driver #213 @tie
  • Add support for context.Context #206 #224 @tie @asdine
  • Slightly more efficient conversion from JSON to document #270 @asdine
  • Add support for embedded structs to document.NewFromStruct #225 @tzzed
  • Numbers are stored as double by default, unless a field constraint is specified during table creation #312 @asdine (:warning: Breaking change)
  • fix: CI tests with nested modules #232 @tie
  • fix: badgerengine benchmarks #209 @tie
  • fix: Be more forgiving when scanning null values in StructScan #211 @tie
  • fix: Badger tests on Windows #288 @tie
  • ci: Add support for fuzzing #253 @tie

CLI

v0.8.1

30 Oct 15:54
Compare
Choose a tag to compare

Bug fixes

  • Fix deadlock when running concurrent transactions #298

v0.8.0

26 Sep 10:24
Compare
Choose a tag to compare

SQL

  • Add BEGIN, ROLLBACK, and COMMIT statements #78
  • Add support for paths in UPDATE statement #84
  • Add GROUP BY clause #6
  • Add COUNT aggregator #5
  • Add MIN aggregator #165
  • Add MAX aggregator #166
  • Add SUM aggregator #4

Core

  • Add codec system #177
  • Remove introduction text when reading from STDIN #179
  • Improved how values are indexed #194
  • Indexes created on field who has a typed constraint are now typed #195
  • Add support for array and document indexes #199
  • Removed encoding/json dependency and use jsonparser instead #203

CLI

  • Add table autocompletion #143
  • Add index autocompletion #157
  • Add command suggestions #163

Bug fixes

  • Fix order of SELECT ast nodes #188
  • MapScan now decodes nested documents #191
  • Fix saving of history when .exit was called #196

v0.7.1

01 Sep 16:37
Compare
Choose a tag to compare

Bug fixes

  • Fix how list indexes are stored #170
  • Fix projection of __genji_tables primary key #173

v0.7.0

25 Aug 21:50
Compare
Choose a tag to compare

SQL

  • Add REINDEX statement #72
  • Add ALTER TABLE ... RENAME TO ... statement #95
  • Add new __genji_tables table #152
  • Allow referencing current document in expression #147

Core

  • Removed fixed size integers #130
  • Renamed float64 type to double #130
  • Integers are now converted to double prior to comparison and indexing #146
  • Encode documents using MessagePack #117
  • Move badgerengine into its own module #140
  • Replaced memoryengine with custom implementation #139
  • Store table information in memory #142
  • Add support for time.Time in document.StructScan

CLI

  • Add .help command #160
  • Add .indexes command #100
  • Add table suggestions after FROM keyword #159
  • Ignore input with whitespace only #106

Bug fixes

  • Prevent primary key overlap with concurrent inserts #74
  • Fix behavior of ValueBuffer#Copy #111
  • Fix UPDATE ... SET clause setting the wrong array indexes #91
  • Fix display of field names with backquotes #64
  • Arithmetic operators return null for incompatible types #105
  • Fix parentheses behavior #131
  • Fix CAST behavior #138
  • Remove transaction promotion #150

v0.6.0

28 Jun 11:57
Compare
Choose a tag to compare

SQL

  • Added support for IS and IS NOT #75
  • Added support for IN and NOT IN #76 #81
  • Added support for UPDATE ... UNSET #68
  • Added support for field constraints for missing types #85
  • Added support for EXPLAIN #102

Core

  • Added support for Cursors to Engines #40
  • Added query planner #88

Bug fixes

  • Fix null to text conversion #66
  • Make UPDATE ... SET set a field to every matching document #82
  • Fix panic when ORDER BY is used with an indexed field #71
  • Fix DROP TABLE behavior that used to remove all database indexes #99
  • Normalize behavior of boolean field constraint with incompatible types #89

v0.5.0

05 Mar 09:05
Compare
Choose a tag to compare
  • Support NOT NULL field constraints
  • Support Bitwise operators
  • Support Duration values
  • Support SELECT without table reference
  • Support arithmetic operators
  • Support AS
  • Support CAST
  • Use Badger as main in memory engine

v0.4.0

05 Jan 13:26
Compare
Choose a tag to compare

Core

  • Support for Documents
  • Functions for translating structs and maps into documents
  • Renamed references to Record to Document
  • Moved database logic to database package

SQL

  • Insert documents using document notation
  • Select sub fields
  • Support for ORDER BY
  • Support for field constraints

Misc

  • Removed code generation temporarily
  • Improved shell auto completion

v0.3.0

23 Nov 15:34
Compare
Choose a tag to compare

Changelog

Core

  • New (db/tx).QueryRecord method to query a single record
  • New db.SQLDB method that wraps the db into a database/sql db
  • New tx.ListTables method
  • New tx.ReIndex method
  • New tx.ReIndexAll method
  • New index implementation
  • Moved package recordutil to record
  • New record.Scan method

SQL

  • Support key() function to return the primary key
  • Support specifying primary key of any type during a CREATE TABLE statement
  • Generate autoincrementing default key instead of uuid
  • Support multiple wildcards, fields and functions in SELECT statement
  • Support != operator
  • Support == operator as an alias for =
  • Better support for NULL
  • Parsed integers are converted to the smallest int size that fits
  • Double quoted strings are now treated exclusively as identifiers
  • Where expression containing only the primary key will benefit from a primary key optimization
  • Float32 numbers no longer supported

Engines

  • Open a BoltDB database without referencing the engine
  • Badger now has its own module
  • Upgrade Badger to v2
  • Renamed engine/memory to engine/memoryengine
  • Renamed engine/bolt to engine/boltengine
  • Renamed engine/badger to engine/badgerengine

Command-line tool

  • Code generation moved under genji generate command
  • Struct fields are lowercased by default
  • Support for struct tag genji:"pk" removed
  • Struct tags are now used to rename a field
  • New SQL shell
  • Store history under $HOME/.genji_history

database/sql

  • Registers as a driver at startup
  • Support record.Scanner as a scan target