v1.9.0-RC2
Pre-releaseimmudb 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 |