Releases: tomasfabian/ksqlDB.RestApi.Client-DotNet
ksqlDB.RestApi.Client v1.3.0
Join Within
- specify a time window for stream-stream joins
KSqlDbRestApiClient
- CreateTypeAsync added optional type name argument
Operator LIKE - String.StartsWith, String.EndsWith, String.Contains
Match a string with a specified pattern
IKSqlDBContext Add and SaveChangesAsync
Saving multiple entities with one request
Fixes:
- KSqlDbContext services collection - injected ILoggerFactory instance is registered as Singleton
ksqlDB.RestApi.Client v1.2.0
KSqlDbServiceCollectionExtensions.ConfigureKSqlDb
- registers the following dependencies: IKSqlDBContext, KSqlDbRestApiClient, IHttpClientFactory, KSqlDBContextOptions
Logging
- LogInformation about received data, executed commands and queries
- added package reference - Microsoft.Extensions.Logging.Abstractions
ksqlDB.RestApi.Client v1.1.0
- multiple joins with query comprehension syntax (GroupJoin, SelectMany, DefaultIfEmpty)
ksqlDB.RestApi.Client v1.0.0
Package was renamed to ksqlDB.RestApi.Client v1.0.0.
Breaking changes: namespaces were changed accordingly
Kafka.DotNet.ksqlDB v2.0.0
ProcessingGuarantee enum
-
KSqlDbContextOptionsBuilder and KSqlDbContextOption SetProcessingGuarantee
-
ProcessingGuaranteeExtensions, AutoOffsetResetExtensions
Basic authentication
- added IKSqlDbProvider.SetCredentials
- added IKSqlDbRestApiClient.SetCredentials
- BasicAuthCredentials
- KSqlDbContextOptionsBuilder and KSqlDbContextOption SetBasicAuthCredentials
- BasicAuthHandler, HttpClientFactoryWithBasicAuth
KSqlDbRestApiClient.InsertIntoAsync
- added support for deeply nested types - Maps, Structs and Arrays
Qbservable.Select
- generation of values from captured variables
Breaking changes:
ISetupParameters changed from
ISetupParameters SetupQuery(Action<IQueryOptions> configure);
ISetupParameters SetupQueryStream(Action<IQueryOptions> configure);
to
ISetupParameters SetupQuery(Action<IKSqlDbParameters> configure);
ISetupParameters SetupQueryStream(Action<IKSqlDbParameters> configure);
IPullable
public ValueTask<TEntity> GetAsync(CancellationToken cancellationToken = default)
was renamed to:
public ValueTask<TEntity> FirstOrDefaultAsync(CancellationToken cancellationToken = default)
KSqlDBContextOptions
⚠ KSqlDBContextOptions created with a constructor or by KSqlDbContextOptionsBuilder are setting the auto.offset.reset to earliest by default. This version removes this default configuration. It will not be opinionated in this way from now.
This will affect your subscriptions to streams.
Bug fix:
- deserialization of stream exceptions (KSqlDbQueryProvider and KSqlDbQueryStreamProvider)
Kafka.DotNet.ksqlDB v1.10.0
Invocation (lambda) functions
- Transform, Reduce and Filter for Maps (dictionaries)
- requirements: ksqldb 0.17.0
Select and Where destructuring properties
- first level
Scalar functions
- Instr, IfNull
IKSqlGrouping.Source
- grouping by nested properies (one level)
Bug fixes:
- KSqlDbRestApiClient.CreateTypeAsync - Entity name from generic types fix
- KsqlDbContext.CreateQueryStream - From item name - generic types fix
Kafka.DotNet.ksqlDB v1.9.0
Invocation (lambda) functions
- requirements: ksqldb 0.17.0
- This version covers ARRAY type. MAP types are not included in this release.
Transform
- Transform a collection by using a lambda function.
Reduce
- Reduce a collection starting from an initial state.
Filter
- Filter a collection with a lambda function.
BYTES
- BYTES TYPE - variable-length byte array (byte[])
- requirements: ksqldb 0.21.0
ToBytes
- Converts a STRING value in the specified encoding to BYTES. The accepted encoders are 'hex', 'utf8', 'ascii' and 'base64'. Since: - ksqldb 0.21
FromBytes
- Converts a BYTES value to STRING in the specified encoding. The accepted encoders are 'hex', 'utf8', 'ascii' and 'base64'. Since: - ksqldb 0.21
KSqlDbRestApiClient.InsertIntoAsync
- added support for inserting
IEnumerable<T>
properties #10 requested by @vijaymandave
Inserting empty arrays
- empty arrays are generated in the following way (workaround)
ARRAY_REMOVE(ARRAY[0], 0))
ARRAY[]
is not yet supported in ksqldb
Kafka.DotNet.ksqlDB v1.8.0
KSqlDbRestApiClient
- DropTypeIfExistsAsync and DropTypeAsync - Removes a type alias from ksqlDB. If the IF EXISTS clause is present, the statement doesn't fail if the type doesn't exist.
- ToInsertStatement - Generates raw string Insert Into, but does not execute it. #7
Operator BETWEEN
- KSqlOperatorExtensions - Between - Constrain a value to a specified range in a WHERE clause.
- KSqlOperatorExtensions - NotBetween - operator is used to indicate that a certain value must not be within a specified range, including boundaries.
Kafka.DotNet.ksqlDB v1.7.0
- KPullSet - GetManyAsync - Pulls all values from the materialized view asynchronously and terminates. #6
- QbservableExtensions - ExplainAsync and ExplainAsStringAsync - Show the execution plan for a SQL expression, show the execution plan plus additional runtime information and metrics.
Kafka.DotNet.ksqlDB v1.6.0
This release contains some requested features from users @vijaymandave and @HaroonSaid. Thank you for detailed explanations.
KSqlDbRestApiClient
-
CreateTypeAsync - Create an alias for a complex type declaration. #4 Complex Types
-
InsertIntoAsync for Complex types -
IEnumerable<T>
, record, class and struct
IN operator
IEnumerable<T>
andIList<T>
Contains method in Where and Select clauses is interpreted as IN. #5 Use 'Contains()'
FIX:
- IEnumerables are converted to ksql ARRAY not to a list of comma separated values