Skip to content

v1.9.0-RC2

Pre-release
Pre-release
Compare
Choose a tag to compare
@jeroiraz jeroiraz released this 16 Oct 10:51
· 165 commits to master since this release
aaa9efd

immudb version 1.9DOM marks the final release in the 1.x series. We are working on the new v2.x series with a whole new db engine and some very interesting new features.

Release notes

Introducing immudb 1.9.0, a new release with several new features, which we are very excited about!

Swagger UI

Document Data Model can be accessed through a Swagger UI. Providing the API to interact with the document data-model API in a simple and intuitive way.

UUID datatype

Both the SQL data model as well as the Document data model now support this useful datatype. (#1796)

Historical SQL queries

Row history can be queried using SQL. (#1804)

Improved Document Audit endpoint

The Document Audit endpoint now displays the timestamp and the username associated with each change made to a document during revisions..

Furthermore, it is also possible to audit revisions of documents without retrieving the actual documents themselves (omitPayloads parameter)

Index Management

Prior to this release, index creation at the SQL and Document Data Model levels was only possible at the point of initialization, i.e. when a table or collection was empty. Since this release, this limitation has been overcome and non-unique indexes can now be created at any time, and they can also be physically deleted at any time.

More SQL statements

The addition of SQL statements for renaming tables and removing them from the database has been made. In addition, it is possible to add and remove columns from a table at any time.

Changelog

[v1.9.0-RC2] - 2023-10-16

Bug Fixes

  • standard syntax for drop index
  • embedded/sql: fix sql temporal range evaluation

Changes

  • embedded/document: count with limit in subquery
  • embedded/sql: expose subquery creation
  • pkg/api: set optional parameters
  • pkg/api: set optional parameters

[v1.9.0-RC1] - 2023-10-11

Bug Fixes

  • correct immudb name in readme
  • allow the local id to be used if present even if remote flag is on
  • apply fixes discussed in PR
  • insertion ts for key-values should not be equal to the current root ts
  • Makefile: remove webconsole tag from immuclient/immuadmin builds
  • embedded/appendable: explicit freebsd build clauses
  • embedded/document: ensure multi-indexing is enabled
  • embedded/document: avoid waiting for tx to be committed
  • embedded/sql: advance position when decoding value at deleted column
  • embedded/store: use correct index path
  • embedded/store: handle transient key update
  • embedded/store: read lock when fetching indexer
  • embedded/store: precommitted transaction discarding recedes durable state
  • embedded/store: read lock when pausing indexers
  • embedded/tbtree: snapshot validation
  • embedded/tbtree: consider offset for history count calculation
  • embedded/tbtree: proper _rev calculation
  • pkg/server: buffer reuse

Changes

  • build with swaggerui
  • unnecessary use of fmt.Sprintf
  • use copy instead of a loop
  • align covered packages when pulling and merging
  • unnecessary use of fmt.Sprintf
  • cmd/immuclient: display raw column selector in table header
  • deps: bump golang.org/x/net from 0.10.0 to 0.12.0
  • deps: bump golang.org/x/crypto from 0.10.0 to 0.11.0
  • deps: bump golang.org/x/crypto from 0.13.0 to 0.14.0
  • deps: bump golang.org/x/crypto from 0.12.0 to 0.13.0
  • deps: bump golang.org/x/sys from 0.9.0 to 0.10.0
  • deps: bump golang.org/x/net from 0.14.0 to 0.15.0
  • deps: bump google.golang.org/grpc
  • deps: bump golang.org/x/sys from 0.11.0 to 0.12.0
  • deps: bump google.golang.org/grpc in /test/e2e/truncation
  • deps: bump google.golang.org/grpc
  • deps: bump golang.org/x/net from 0.15.0 to 0.17.0
  • deps: bump github.com/grpc-ecosystem/grpc-gateway/v2
  • deps: bump securego/gosec from 2.15.0 to 2.17.0
  • deps: bump golang.org/x/sys from 0.10.0 to 0.11.0
  • deps: bump golang.org/x/crypto from 0.7.0 to 0.10.0
  • deps: bump golang.org/x/net from 0.12.0 to 0.13.0
  • deps: bump google.golang.org/grpc from 1.55.0 to 1.56.2
  • deps: bump golang.org/x/net from 0.13.0 to 0.14.0
  • embedded/document: register username when applying a change
  • embedded/document: enable multi-indexing in doc engine tests
  • embedded/document: encoded document using valRef
  • embedded/document: attach username when auditing document
  • embedded/sql: post-commit physical index deletion
  • embedded/sql: uuid decoding
  • embedded/sql: improve internal index naming
  • embedded/sql: use declared constant for fixed ids
  • embedded/sql: insertion benchmark
  • embedded/sql: historical queries over primary index
  • embedded/sql: dynamic indexing
  • embedded/sql: deletion of primary index path
  • embedded/sql: multi-snapshop mvvc
  • embedded/sql: temporal queries with multi-indexing
  • embedded/sql: transactional drops
  • embedded/sql: unique index creation supported on empty tables
  • embedded/sql: support parenthesis as datatype constraint delimiter
  • embedded/store: multi-indexing
  • embedded/store: ensure index is erased from disk
  • embedded/store: wip multi-indexing
  • embedded/store: history returning value refs
  • embedded/store: indexer alloc its tx
  • embedded/store: remove metastate
  • embedded/store: history with rev count
  • embedded/store: injective index mapper
  • embedded/store: ensure snapshot up to date
  • embedded/store: indexing callbacks
  • embedded/store: key reader including historical entries
  • embedded/store: indexing prefix
  • embedded/store: entry mapper
  • embedded/tbtree: value-preserving history
  • embedded/tbtree: hcount serialization
  • embedded/tbtree: fetching historical values
  • embedded/tbtree: wip value-preserving history
  • embedded/tbtree: value-preserving history
  • embedded/tbtree: context propagation
  • pkg/api: adjust doc serializations to match verification
  • pkg/api: endpoint improvements
  • pkg/client: add setAll to immuclient mock
  • pkg/client: use buf for msg exchange
  • pkg/database: context propagation
  • pkg/database: context propagation
  • pkg/database: fix remote storage paths
  • pkg/database: increase delay when tx is not present
  • pkg/database: keept reading from specific tx
  • pkg/database: multi-indexing database
  • pkg/database: doc audit without retrieving payloads
  • pkg/database: register username when applying a change
  • pkg/database: fix remote storage paths
  • pkg/database: mandatory wait with async replication
  • pkg/database: kv count
  • pkg/server: register username when applying a change in doc apis
  • pkg/server: minor code adjustment
  • pkg/stdlib: non transactional ddl stmts
  • pkg/truncator: use embedded/logger package
  • pkg/verification: minor doc verification improvements
  • swagger: use embedded logger package
  • tests: Tests cleanup

Code Refactoring

  • pkg/logger: move logger from pkg to embedded

Features

  • update readme
  • prevent identifier from creation when use external id option
  • pass logger to heartbeater
  • add flag for using external id as a main one
  • embedded/document: register user when creating collection
  • embedded/document: doc audit without retrieving payloads
  • embedded/document: remove field from collection
  • embedded/document: add field to collection
  • embedded/sql: async multi-indexing
  • embedded/sql: extra metadata when creating tx
  • embedded/sql: include _rev column in historical queries
  • embedded/sql: drop index and table stmts
  • embedded/sql: table history
  • embedded/sql: query including historical rows
  • embedded/sql: dynamic multi-indexing
  • embedded/sql: wip uuid datatype support
  • embedded/sql: drop column stmt
  • embedded/store: use index attribute in kv metadata
  • embedded/store: getBetween
  • embedded/store: extra tx metadata
  • embedded/store: transactionaless multi-indexing
  • embedded/tbtree: getBetween
  • embedded/tbtree: key reader supporting historical values
  • pkg/api: docAudit returning timestamp and possibility to omit payloads
  • pkg/api: re-enable swagger ui
  • pkg/api: include username in document audit response
  • pkg/api: add field and remove field endpoints
  • pkg/database: add user when creating collection
  • pkg/server: add user when creating collection

Reverts

  • chore: remove initial swagger support

Downloads

Docker image
https://hub.docker.com/r/codenotary/immudb

immudb Binaries

File SHA256
immudb-v1.9.0-RC2-darwin-amd64 95f20d6a9110bfcdee8a59932d66afb87d0d3f7a3dbf330cd1e51a9fb92eb1bc
immudb-v1.9.0-RC2-darwin-arm64 2ebcfd49b93ef38700f99aee2a7395c72ee286401bd623f1d0f32685df06da7c
immudb-v1.9.0-RC2-freebsd-amd64 8e7061bc1cc7482112f3919b0e16480dd72a46f4ac68522a687d789ecddc641c
immudb-v1.9.0-RC2-linux-amd64 17c9e8fb326dbcd458ea769bebd3c57a1fd9377a78e941500a0eeb7954390a6d
immudb-v1.9.0-RC2-linux-amd64-fips a0b614e0e8b42e92034822eca7e5d07da3481b45fc7b78f053b2f5a0ede5dd98
immudb-v1.9.0-RC2-linux-amd64-static eaafc0cd40887e0e750cd4b349588b503d7dec51b4b52f557a5767d85c167ab9
immudb-v1.9.0-RC2-linux-arm64 2ad5bf45dc9f1eccac3e5b35ff7155a64ccc4f60518a1c572c77272a4b5fb780
immudb-v1.9.0-RC2-linux-s390x b45134e1ad1ebfcc7a680fdd15622642d5c6868552e406fc8ee84377ce72178d
immudb-v1.9.0-RC2-windows-amd64.exe 97a9f96bc2cf76e5174a16211c92bf92747f8a6648226c5fc6452aeebc076aba

immuclient Binaries

File SHA256
immuclient-v1.9.0-RC2-darwin-amd64 f22080333cfdcef3858634b48eb08fa1a4688b9fcaaff1ed4e65650230dab25f
immuclient-v1.9.0-RC2-darwin-arm64 9683887d39fb1d5c85db214996d95b7b16ba15c5d39ec32832e0e465837d06e0
immuclient-v1.9.0-RC2-freebsd-amd64 f282c12c482530395887bc8577f2231a076f7247704c9bc668721d7fdaa7799d
immuclient-v1.9.0-RC2-linux-amd64 0636917001d7d43a79547bfe143a8e8ef5121ce420db8d3aed2c05bdfcff6531
immuclient-v1.9.0-RC2-linux-amd64-fips 2899b59b7ffb0b064e5441930143d35053214ea0f13f883690cb96029094e478
immuclient-v1.9.0-RC2-linux-amd64-static 7da2dee7215d416a9aa053901b88083907be8fd43ad6a74dbfe2aca447dd6dd8
immuclient-v1.9.0-RC2-linux-arm64 df80c2a1a0eb00f3bf2401f92c4243ba1a75b2c87e864460d0eb749b75339298
immuclient-v1.9.0-RC2-linux-s390x 8beb36b4c0716ebfef5e2b40fcc70c6d96cacc1203ba210ff64529dda4d1dcf0
immuclient-v1.9.0-RC2-windows-amd64.exe 33c25afe41252e6345dc3b8e3b874db101d9ece153b94f3f0a671841b9580c4a

immuadmin Binaries

File SHA256
immuadmin-v1.9.0-RC2-darwin-amd64 1289a7a4f0a3583978ed029d80ac55c2cfaa1b8425c0642d6d0d6cac582b082d
immuadmin-v1.9.0-RC2-darwin-arm64 f13ba6a36bf1346e0a5df2b985b648288ec056f037e9288997ab9b5ed2dbeeee
immuadmin-v1.9.0-RC2-freebsd-amd64 a87853b58e5b1955214d6d868f56cdb4236b846cb41550d03874a5102f36dcd2
immuadmin-v1.9.0-RC2-linux-amd64 4a67bde88616f6b582966ad467545d0f37a1d1996643679366dd1af8b375be2d
immuadmin-v1.9.0-RC2-linux-amd64-fips 3ec9b81e16cea671b0fd27e6819c017c06c68f5e3b7dc784f19e2703d2ff5989
immuadmin-v1.9.0-RC2-linux-amd64-static cf40710e236504f18664bb9dc4d9bb5f52fa4db9737d23fe0dfad1dda79ab96a
immuadmin-v1.9.0-RC2-linux-arm64 4c45b47f44392b2c5419297fa4a9a4100d2166ada3969f2f10ba014a83b867d5
immuadmin-v1.9.0-RC2-linux-s390x ba34a5be2181460967158b9580c1efd64e1b8b1c2530c1142ec09c9855cb686c
immuadmin-v1.9.0-RC2-windows-amd64.exe 1a4b8106311f1b5af2a3139ae75e8075574f20882d7f4d9505f0ae68bd7c6302