Class ReactiveTransactionalTimeSeriesCommandsImpl<K>
- java.lang.Object
-
- io.quarkus.redis.runtime.datasource.AbstractTransactionalCommands
-
- io.quarkus.redis.runtime.datasource.ReactiveTransactionalTimeSeriesCommandsImpl<K>
-
- All Implemented Interfaces:
ReactiveTransactionalRedisCommands,ReactiveTransactionalTimeSeriesCommands<K>
public class ReactiveTransactionalTimeSeriesCommandsImpl<K> extends AbstractTransactionalCommands implements ReactiveTransactionalTimeSeriesCommands<K>
-
-
Field Summary
-
Fields inherited from class io.quarkus.redis.runtime.datasource.AbstractTransactionalCommands
tx
-
-
Constructor Summary
Constructors Constructor Description ReactiveTransactionalTimeSeriesCommandsImpl(ReactiveTransactionalRedisDataSource ds, ReactiveTimeSeriesCommandsImpl<K> reactive, TransactionHolder tx)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.smallrye.mutiny.Uni<Void>tsAdd(K key, double value)Execute the command TS.ADD.io.smallrye.mutiny.Uni<Void>tsAdd(K key, long timestamp, double value)Execute the command TS.ADD.io.smallrye.mutiny.Uni<Void>tsAdd(K key, long timestamp, double value, AddArgs args)Execute the command TS.ADD.io.smallrye.mutiny.Uni<Void>tsAlter(K key, AlterArgs args)Execute the command TS.ALTER.io.smallrye.mutiny.Uni<Void>tsCreate(K key)Execute the command TS.CREATE.io.smallrye.mutiny.Uni<Void>tsCreate(K key, CreateArgs args)Execute the command TS.CREATE.io.smallrye.mutiny.Uni<Void>tsCreateRule(K key, K destKey, Aggregation aggregation, Duration bucketDuration)Execute the command TS.CREATERULE.io.smallrye.mutiny.Uni<Void>tsCreateRule(K key, K destKey, Aggregation aggregation, Duration bucketDuration, long alignTimestamp)Execute the command TS.CREATERULE.io.smallrye.mutiny.Uni<Void>tsDecrBy(K key, double value)Execute the command TS.DECRBY.io.smallrye.mutiny.Uni<Void>tsDecrBy(K key, double value, IncrementArgs args)Execute the command TS.DECRBY.io.smallrye.mutiny.Uni<Void>tsDel(K key, long fromTimestamp, long toTimestamp)Execute the command TS.DEL.io.smallrye.mutiny.Uni<Void>tsDeleteRule(K key, K destKey)Execute the command TS.DELETERULE.io.smallrye.mutiny.Uni<Void>tsGet(K key)Execute the command TS.GET.io.smallrye.mutiny.Uni<Void>tsGet(K key, boolean latest)Execute the command TS.GET.io.smallrye.mutiny.Uni<Void>tsIncrBy(K key, double value)Execute the command TS.INCRBY.io.smallrye.mutiny.Uni<Void>tsIncrBy(K key, double value, IncrementArgs args)Execute the command TS.INCRBY.io.smallrye.mutiny.Uni<Void>tsMAdd(SeriesSample<K>... samples)Execute the command TS.MADD.io.smallrye.mutiny.Uni<Void>tsMGet(Filter... filters)Execute the command TS.MGET.io.smallrye.mutiny.Uni<Void>tsMGet(MGetArgs args, Filter... filters)Execute the command TS.MGET.io.smallrye.mutiny.Uni<Void>tsMRange(TimeSeriesRange range, Filter... filters)Execute the command TS.MRANGE.io.smallrye.mutiny.Uni<Void>tsMRange(TimeSeriesRange range, MRangeArgs args, Filter... filters)Execute the command TS.MRANGE.io.smallrye.mutiny.Uni<Void>tsMRevRange(TimeSeriesRange range, Filter... filters)Execute the command TS.MREVRANGE.io.smallrye.mutiny.Uni<Void>tsMRevRange(TimeSeriesRange range, MRangeArgs args, Filter... filters)Execute the command TS.MREVRANGE.io.smallrye.mutiny.Uni<Void>tsQueryIndex(Filter... filters)Execute the command TS.QUERYINDEX.io.smallrye.mutiny.Uni<Void>tsRange(K key, TimeSeriesRange range)Execute the command TS.RANGE.io.smallrye.mutiny.Uni<Void>tsRange(K key, TimeSeriesRange range, RangeArgs args)Execute the command TS.RANGE.io.smallrye.mutiny.Uni<Void>tsRevRange(K key, TimeSeriesRange range)Execute the command TS.REVRANGE.io.smallrye.mutiny.Uni<Void>tsRevRange(K key, TimeSeriesRange range, RangeArgs args)Execute the command TS.REVRANGE.-
Methods inherited from class io.quarkus.redis.runtime.datasource.AbstractTransactionalCommands
getDataSource, queuedOrDiscard
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.quarkus.redis.datasource.ReactiveTransactionalRedisCommands
getDataSource
-
-
-
-
Constructor Detail
-
ReactiveTransactionalTimeSeriesCommandsImpl
public ReactiveTransactionalTimeSeriesCommandsImpl(ReactiveTransactionalRedisDataSource ds, ReactiveTimeSeriesCommandsImpl<K> reactive, TransactionHolder tx)
-
-
Method Detail
-
tsCreate
public io.smallrye.mutiny.Uni<Void> tsCreate(K key, CreateArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.CREATE. Summary: Create a new time series Group: time series- Specified by:
tsCreatein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series must not benullargs- the creation arguments.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsCreate
public io.smallrye.mutiny.Uni<Void> tsCreate(K key)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.CREATE. Summary: Create a new time series Group: time series- Specified by:
tsCreatein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsAdd
public io.smallrye.mutiny.Uni<Void> tsAdd(K key, long timestamp, double value, AddArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.ADD. Summary: Append a sample to a time series Group: time series- Specified by:
tsAddin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series must not benulltimestamp- the (long) UNIX sample timestamp in milliseconds or-1to set the timestamp according to the server clock.value- the numeric data value of the sample.args- the creation arguments.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsAdd
public io.smallrye.mutiny.Uni<Void> tsAdd(K key, long timestamp, double value)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.ADD. Summary: Append a sample to a time series Group: time series- Specified by:
tsAddin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benulltimestamp- the (long) UNIX sample timestamp in millisecondsvalue- the numeric data value of the sample- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsAdd
public io.smallrye.mutiny.Uni<Void> tsAdd(K key, double value)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.ADD. Summary: Append a sample to a time series Group: time seriesUnlike
ReactiveTransactionalTimeSeriesCommands.tsAdd(Object, long, double), set the timestamp according to the server clock.- Specified by:
tsAddin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullvalue- the numeric data value of the sample, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsAlter
public io.smallrye.mutiny.Uni<Void> tsAlter(K key, AlterArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.ALTER. Summary: Update the retention, chunk size, duplicate policy, and labels of an existing time series Group: time series- Specified by:
tsAlterin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benullargs- the alter parameters, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsCreateRule
public io.smallrye.mutiny.Uni<Void> tsCreateRule(K key, K destKey, Aggregation aggregation, Duration bucketDuration)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.CREATERULE. Summary: Create a compaction rule Group: time series- Specified by:
tsCreateRulein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benulldestKey- the key name for destination (compacted) time series. It must be created before TS.CREATERULE is called. Must not benull.aggregation- the aggregation function, must not benullbucketDuration- the duration of each bucket, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsCreateRule
public io.smallrye.mutiny.Uni<Void> tsCreateRule(K key, K destKey, Aggregation aggregation, Duration bucketDuration, long alignTimestamp)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.CREATERULE. Summary: Create a compaction rule Group: time series- Specified by:
tsCreateRulein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benulldestKey- the key name for destination (compacted) time series. It must be created before TS.CREATERULE is called. Must not benull.aggregation- the aggregation function, must not benullbucketDuration- the duration of each bucket, must not benullalignTimestamp- when set, ensures that there is a bucket that starts exactly at alignTimestamp and aligns all other buckets accordingly. It is expressed in milliseconds. The default value is 0 aligned with the epoch. For example, if bucketDuration is 24 hours (24 * 3600 * 1000), setting alignTimestamp to 6 hours after the epoch (6 * 3600 * 1000) ensures that each bucket’s timeframe is [06:00 .. 06:00).- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsDecrBy
public io.smallrye.mutiny.Uni<Void> tsDecrBy(K key, double value)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.DECRBY. Summary: Decrease the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given decrement Group: time series- Specified by:
tsDecrByin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullvalue- the numeric data value of the sample, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsDecrBy
public io.smallrye.mutiny.Uni<Void> tsDecrBy(K key, double value, IncrementArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.DECRBY. Summary: Decrease the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given decrement Group: time series- Specified by:
tsDecrByin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullvalue- the numeric data value of the sample, must not benullargs- the extra command parameters- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsDel
public io.smallrye.mutiny.Uni<Void> tsDel(K key, long fromTimestamp, long toTimestamp)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.DEL. Summary: Delete all samples between two timestamps for a given time series Group: time seriesThe given timestamp interval is closed (inclusive), meaning that samples whose timestamp equals the fromTimestamp or toTimestamp are also deleted.
- Specified by:
tsDelin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullfromTimestamp- the start timestamp for the range deletion.toTimestamp- the end timestamp for the range deletion.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsDeleteRule
public io.smallrye.mutiny.Uni<Void> tsDeleteRule(K key, K destKey)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.DELETERULE. Summary: Delete a compaction rule Group: time series- Specified by:
tsDeleteRulein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benulldestKey- the key name for destination (compacted) time series. Note that the command does not delete the compacted series. Must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsGet
public io.smallrye.mutiny.Uni<Void> tsGet(K key)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.GET. Summary: Get the last sample Group: time series- Specified by:
tsGetin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsGet
public io.smallrye.mutiny.Uni<Void> tsGet(K key, boolean latest)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.GET. Summary: Get the last sample Group: time series- Specified by:
tsGetin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benulllatest- used when a time series is a compaction. With LATEST set totrue, TS.MRANGE also reports the compacted value of the latest possibly partial bucket, given that this bucket's start time falls within [fromTimestamp, toTimestamp]. Without LATEST, TS.MRANGE does not report the latest possibly partial bucket. When a time series is not a compaction, LATEST is ignored.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsIncrBy
public io.smallrye.mutiny.Uni<Void> tsIncrBy(K key, double value)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.INCRBY. Summary: Increase the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given increment. Group: time series- Specified by:
tsIncrByin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullvalue- the numeric data value of the sample, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsIncrBy
public io.smallrye.mutiny.Uni<Void> tsIncrBy(K key, double value, IncrementArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.INCRBY. Summary: Increase the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given increment. Group: time series- Specified by:
tsIncrByin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series. must not benullvalue- the numeric data value of the sample, must not benullargs- the extra command parameters- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMAdd
public io.smallrye.mutiny.Uni<Void> tsMAdd(SeriesSample<K>... samples)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MADD. Summary: Append new samples to one or more time series Group: time series- Specified by:
tsMAddin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
samples- the set of samples to add to the time series.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMGet
public io.smallrye.mutiny.Uni<Void> tsMGet(MGetArgs args, Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MGET. Summary: Get the last samples matching a specific filter Group: time series- Specified by:
tsMGetin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
args- the extra command parameter, must not benullfilters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMGet
public io.smallrye.mutiny.Uni<Void> tsMGet(Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MGET. Summary: Get the last samples matching a specific filter Group: time series- Specified by:
tsMGetin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
filters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMRange
public io.smallrye.mutiny.Uni<Void> tsMRange(TimeSeriesRange range, Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MRANGE. Summary: Query a range across multiple time series by filters in forward direction Group: time series- Specified by:
tsMRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
range- the range, must not benullfilters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMRange
public io.smallrye.mutiny.Uni<Void> tsMRange(TimeSeriesRange range, MRangeArgs args, Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MRANGE. Summary: Query a range across multiple time series by filters in forward direction Group: time series- Specified by:
tsMRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
range- the range, must not benullargs- the extra command parametersfilters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMRevRange
public io.smallrye.mutiny.Uni<Void> tsMRevRange(TimeSeriesRange range, Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MREVRANGE. Summary: Query a range across multiple time series by filters in reverse direction Group: time series- Specified by:
tsMRevRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
range- the range, must not benullfilters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsMRevRange
public io.smallrye.mutiny.Uni<Void> tsMRevRange(TimeSeriesRange range, MRangeArgs args, Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.MREVRANGE. Summary: Query a range across multiple time series by filters in reverse direction Group: time series- Specified by:
tsMRevRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
range- the range, must not benullargs- the extra command parametersfilters- the filters. Instanced are created using the static methods fromFilter. Must not benull, or contain anullvalue.- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsQueryIndex
public io.smallrye.mutiny.Uni<Void> tsQueryIndex(Filter... filters)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.QUERYINDEX. Summary: Get all time series keys matching a filter list Group: time series- Specified by:
tsQueryIndexin interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
filters- the filter, created from theFilterclass. Must not benull, must not containnull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsRange
public io.smallrye.mutiny.Uni<Void> tsRange(K key, TimeSeriesRange range)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.RANGE. Summary: Query a range in forward direction Group: time series- Specified by:
tsRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benullrange- the range, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsRange
public io.smallrye.mutiny.Uni<Void> tsRange(K key, TimeSeriesRange range, RangeArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.RANGE. Summary: Query a range in forward direction Group: time series- Specified by:
tsRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benullrange- the range, must not benullargs- the extra command parameters- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsRevRange
public io.smallrye.mutiny.Uni<Void> tsRevRange(K key, TimeSeriesRange range)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.REVRANGE. Summary: Query a range in reverse direction Group: time series- Specified by:
tsRevRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benullrange- the range, must not benull- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
tsRevRange
public io.smallrye.mutiny.Uni<Void> tsRevRange(K key, TimeSeriesRange range, RangeArgs args)
Description copied from interface:ReactiveTransactionalTimeSeriesCommandsExecute the command TS.REVRANGE. Summary: Query a range in reverse direction Group: time series- Specified by:
tsRevRangein interfaceReactiveTransactionalTimeSeriesCommands<K>- Parameters:
key- the key name for the time series, must not benullrange- the range, must not benullargs- the extra command parameters- Returns:
- A
Uniemittingnullwhen the command has been enqueued successfully in the transaction, a failure otherwise. In the case of failure, the transaction is discarded.
-
-