immudb v1.1.0 Release Notes

Release Date: 2021-09-22 // 2 months 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