immudb v1.1.0 Release Notes
Release Date: 2021-09-22 // over 2 years ago-
๐ Bug Fixes
- โก๏ธ Minor updates to build/RELEASING.md
- โก๏ธ Update Dockerfile.alma maintainer field
- CI: Fix building and releasing almalinux images
- ๐ณ Dockerfile: Fix compiling version information in docker images
- ๐ณ Dockerfile.rndpass: Fix building rndpass docker image
- embedded/sql: suffix endKey when scan over all entries
- embedded/sql: in-mem catalog rollback and syncing fixes
- embedded/sql: exclude length from maxKey
- embedded/sql: return error when joint table doest not exist
- embedded/sql: support edge case of table with just an auto-increment column
- embedded/sql: limit auto-increment to single-column pks
- embedded/sql: take into account table aliasing during range calculations
- embedded/sql: improve error handling and parameters validation
- embedded/sql: adjust selector ranges calculation
- embedded/sql: consider boolean type in maxKeyVal
- embedded/sql: set type any to nil parameters
- embedded/sql: fix table aliasing with implicit selectors
- embedded/sql: enforce ordering by grouping column
- embedded/store: fix constraint condition
- embedded/store: error handling when setting offset fails
- pkg: improve signature verification during audit
- pkg/stdlib: fix driver connection releasing
๐ Changes
- ๐ Update RELEASING.md with documentation step.
- โ remove wip warning for fully implemented features
- โ Add documentation badge to README.md
- โ Add documentation link at the beginning of README.md
- โ Add documentation link to command line help outputs
- โก๏ธ Update codenotary maintainer info
- โ Remove experimental S3 warning from README
- CI: Build almalinux-based immudb image
- CI: Explicitly require bash in gh action building docker images
- CI: Use buildkit when building docker images
- ๐ณ Dockerfile: Build a debian-based image for immudb next to the scratch one
- ๐ณ Dockerfile: Use scratch as a base for immudb image
- ๐ณ Dockerfile: Remove unused IMMUDB_DBNAME env var
- ๐ณ Dockerfile: Update base docker images
- ๐ Makefile: More explicit webconsole version
- ๐ Makefile: Add darwin/amd64 target
- ๐ build.md: Add info about removing webconsole/dist folder
- cmd/immuadmin: remove replication flag shortcut
- cmd/immuadmin: parse all db flags when preparing settings
- cmd/immuadmin: improve flag description and rollback args spec
- cmd/immuclient: display number of updated rows as result of sql exec
- cmd/immudb: use common replication prefix
- ๐ณ docker: Update generation of docker tags
- embedded: leverage kv constraint to enforce upsert over auto-incremental pk requires row to already exist
- embedded/multierr: enhace multi error implementation
- embedded/sql: fix primary key supported types error message
- embedded/sql: get rid of limited joint implementation
- embedded/sql: ignore null values when encoding row
- embedded/sql: include constraint only when insert occurs without auto_incremental pk
- embedded/sql: wip scan optimizations based on query condition and sorting
- embedded/sql: partial progress on selector range calculation
- embedded/sql: partial progress on selector range calculation
- embedded/sql: expose primary key index id
- embedded/sql: leverage endKey to optimize indexing scanning
- embedded/sql: minor code refactoring
- embedded/sql: mark catalog as mutated when using auto incremental pk
- embedded/sql: fix max key length validation
- embedded/sql: catalog loading requires up to date data store indexing
- embedded/sql: optional parenthesis when specifying single-column index
- embedded/sql: disable TIMESTAMP data-type
- embedded/sql: move index selection closer to data source in query statements
- embedded/sql: optimize integer key mapping
- embedded/sql: use plain big-endian encoding for integer values
- embedded/sql: include support for int64 parameters
- embedded/sql: minor refactoring to simplify code
- embedded/sql: minor code simplification
- embedded/sql: use int64 as value holder for INTEGER type
- embedded/sql: add further validations when encoding values as keys
- embedded/sql: move index spec closer to ds
- embedded/sql: reserve byte to support multi-ordered indexes
- embedded/sql: index prefix function
- embedded/sql: use Cols as a replacement for ColsByID
- embedded/sql: changed identifiers length in catalog
- embedded/sql: validate non-null pk when decoding index entry
- embedded/sql: limit upsert to tables without secondary indexes
- embedded/sql: remove join constraints
- embedded/sql: convert unmapIndexedRow into unmapRow with optional indexed value
- embedded/tbtree: typo in log message
- embedded/tbtree: compaction doesn't need snapshots to be closed
- embedded/tbtree: return kv copies
- embedded/tbtree: adjust seekKey based on prefix even when a value is set
- embedded/tools: update sql stress tool with exec summary
- pkg/api: changed db identifiers type
- pkg/api: use fresh id in proto message
- pkg/api: use a map for holding latest auto-incremental pks
- pkg/api: use int64 as value holder for INTEGER type
- pkg/api: use follower naming for replication credentials
- pkg/api: include updated rows and last inserted pks in sql exec result
- pkg/api: delete deprecated clean operation
- pkg/client: changed db identifiers type
- pkg/client: move unit testing to integration package to avoid circular references
- pkg/database: warn about data migration needed
- pkg/database: minor refactoring coding conventions
- pkg/database: remove active replication options from database
- pkg/database: create sql db instance if not present
- pkg/database: minor adjustments based on multi-column indexing
- pkg/database: update integration to exec summary
- pkg/database: display as unique if there is a single-column index
- pkg/database: include updated rows and last inserted pks in sql exec result
- pkg/database: warn about data migration needed
- pkg/database: minor renaming after rebase
- pkg/pgsql/server: adds pgsql server maxMsgSize 32MB limit
- pkg/pgsql/server: add a guard on payload message len
- pkg/replication: handle disconnection only within a single thread
- pkg/replication: use new context for each client connection
- pkg/replication: use info log level for network failures
- pkg/server: followers management
- pkg/server: validate replication settings
- pkg/server: nil tlsConfig on default options
- pkg/server: change max concurrency per database to 30
- pkg/server: changed default db file size and make it customizable at db creation time
- pkg/server: use replica wording
- pkg/stdLib: implementing golang standard sql interfaces
- pkg/stdlib: remove pinger interface implementation and increase code coverage
- pkg/stdlib: increase code coverage and fix blob results scan
- pkg/stdlib: immuclient options identifier(uri) is used to retrieve cached connections
- pkg/stdlib: simplified and hardened uri handling
๐ Features
- ๐ง Dockerfile for almalinux based image
- cmd/immuadmin: add replication flags
- cmd/immuadmin: add flag to exclude commit time
- embedded/multierr: implement stardard error Is & As methods
- embedded/sql: wip unique multi-column indexes
- embedded/sql: inner join with joint table and subqueries
- embedded/sql: towards more powerful joins
- embedded/sql: value expressions in row specs
- embedded/sql: switch to signed INTEGER
- embedded/sql: exec summary containing number of updated/inserted rows and last inserted pk per table
- embedded/sql: max length on variable sized types as requirement for indexing
- embedded/sql: multi-column primary keys
- embedded/sql: use explicitelly specified index as preffered one
- embedded/sql: expose scanSpecs when resolving a query
- embedded/sql: wip unique multi-column indexing
- embedded/sql: support index spec in joins
- embedded/sql: wip auto-incremental integer primary keys
- embedded/store: parameterized commit time
- embedded/store: leverage endKey from tbtree key reader
- embedded/tbtree: include endKey to instruct scan termination
- pkg/database: row verification with composite primary keys
- pkg/follower: follower replication
- pkg/pgsql/server: add support for flush message
- pkg/replication: initial active replication capabilities
- pkg/server: upgrade db settings to include or exclude commit time
- pkg/server: initial support for active replication of user created databases
- pkg/server: systemdb and defaultdb follower replication