Skip to content

v1.9DOM

Compare
Choose a tag to compare
@jeroiraz jeroiraz released this 19 Oct 10:10
· 181 commits to master since this release

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.9DOM, 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.9DOM] - 2023-10-18

Changes

  • cmd/immuadmin: add indexing related flags

Features

  • embedded/sql: table renaming

[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.9DOM.0-darwin-amd64 1b75ef452b7e54fb6b0146c7fa09c7e8a102e9c414233aee21f0543dd1f1381d
immudb-v1.9DOM.0-darwin-arm64 b0d881a9852b345e440140da4219c3dc392c2da8664e034175af53f6e0088bb0
immudb-v1.9DOM.0-freebsd-amd64 058888bac55dc1116a46fd6100a4091713d583216d5475dcbf152274759aae52
immudb-v1.9DOM.0-linux-amd64 f468c2f38f8f17083a19ab45d7a7399fb4d04122ac6b87e74264b6beeab7c6d4
immudb-v1.9DOM.0-linux-amd64-fips 23ec167aab685dc3af615b76bec5662cf44cef27b0a4c62b8404ee95353749be
immudb-v1.9DOM.0-linux-amd64-static bf7cdce91a5130cfb3f2dc2f81c11d8f4455adb24aab3008dce573d66900b008
immudb-v1.9DOM.0-linux-arm64 d14660a64813b3fee73d467e3845619a707490434743f9b2e660cd24f3956fc4
immudb-v1.9DOM.0-linux-s390x 1d8e112d9cf8d000ef403e3b9568b4561ea3bc756cb11d596a2cae2b8d1e943d
immudb-v1.9DOM.0-windows-amd64.exe dd10839f2fecd8485041ef751b6f4880e0a72f314983e9b9e255f5892e9ae1f6

immuclient Binaries

File SHA256
immuclient-v1.9DOM.0-darwin-amd64 e2d62a20e62f1692344ec5ee158366d38ae45e9c81c6d71410e14b0d8a9136f4
immuclient-v1.9DOM.0-darwin-arm64 bbd156311f5bd7686150a0a2287a360b07b0b713d12d59a4cdc0eee0fc9c59bf
immuclient-v1.9DOM.0-freebsd-amd64 126486590007964b6a7a711f0c792e1c1e1f77bdbf6ba5df70215e652eedeaf0
immuclient-v1.9DOM.0-linux-amd64 c5e8670e95c5c31d0b6e7f8c741c637aa6d49b5b677846157cacc3ca5a335d84
immuclient-v1.9DOM.0-linux-amd64-fips e264602020d0914b64f3394b22cd30f11aa815e9c4cccf836903c9427023dc5d
immuclient-v1.9DOM.0-linux-amd64-static 7068afd248c8ecf6763e86e58fc986f3845603848017050b93469314efb396f1
immuclient-v1.9DOM.0-linux-arm64 354ce9a337da8576fe78b7a89763f7958cc659f66665df5a4eb3429d1303db86
immuclient-v1.9DOM.0-linux-s390x a4f34ddc61d27e64ecd1a85c8298cdf3dc2e767c92c3bc5ba98d78015ec949f8
immuclient-v1.9DOM.0-windows-amd64.exe 4a0f9fe45b82fdfd355998bfe018e34de034e14226058ce62832bbef9eb0d88a

immuadmin Binaries

File SHA256
immuadmin-v1.9DOM.0-darwin-amd64 d0bab4f9b8f4799161eb7752dcaf2f4a2c80fb232500df234713ed38119c8683
immuadmin-v1.9DOM.0-darwin-arm64 fab8a78d126b74a877d4fccfefcfce4bcb8fe6a3f935a3f62a182b09f6c1f93e
immuadmin-v1.9DOM.0-freebsd-amd64 7a5ad00db26f8ddb4a9b11c613590bd88f23e9bb38b904d7906968adb7d69546
immuadmin-v1.9DOM.0-linux-amd64 d9a2e4670622d92e46aa60584000eaa824c9ebbdee3d871dbc31050680d8f593
immuadmin-v1.9DOM.0-linux-amd64-fips 026780962d6c50a98967152f4957e8cc4787f47661f933ac010281e1bb0b32f0
immuadmin-v1.9DOM.0-linux-amd64-static 8011e4c574a4a41fe246c8236d795249cf0a0f4a78ae84f261ace7d3a31f26d0
immuadmin-v1.9DOM.0-linux-arm64 a580b0bad8f1d69721ea185d76050ced3572cde9be9ace78193ccead42aa2253
immuadmin-v1.9DOM.0-linux-s390x 1563670c34101b6ab309fefdd7d35a117ba6ca38c3d3ea00354f6151b108ddf9
immuadmin-v1.9DOM.0-windows-amd64.exe 4f8814ad0d8764c08a7a3277853879bf8588061aaad1ca2782687ced9a9dc8b2