final case class QueryValidRangeImpl(storageBackend: ParameterStorageBackend, loggerFactory: NamedLoggerFactory) extends QueryValidRange with NamedLogging with Product with Serializable
- Alphabetic
- By Inheritance
- QueryValidRangeImpl
- Serializable
- Product
- Equals
- NamedLogging
- QueryValidRange
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new QueryValidRangeImpl(storageBackend: ParameterStorageBackend, loggerFactory: NamedLoggerFactory)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- QueryValidRangeImpl → NamedLogging
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val storageBackend: ParameterStorageBackend
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withOffsetNotBeforePruning[T](offset: Offset, errorPruning: (Offset) => String, errorLedgerEnd: (Option[Offset]) => String)(query: => T)(implicit conn: Connection, loggingContext: LoggingContextWithTrace): T
- Definition Classes
- QueryValidRangeImpl → QueryValidRange
- def withRangeNotPruned[T](minOffsetInclusive: Offset, maxOffsetInclusive: Offset, errorPruning: (Offset) => String, errorLedgerEnd: (Option[Offset]) => String)(query: => T)(implicit conn: Connection, loggingContext: LoggingContextWithTrace): T
Runs a query and throws an error if the query accesses an invalid offset range.
Runs a query and throws an error if the query accesses an invalid offset range.
- T
type of result passed through
- minOffsetInclusive
minimum, inclusive offset used by the query (i.e. all fetched offsets are larger or equal)
- maxOffsetInclusive
maximum, inclusive offset used by the query (i.e. all fetched offsets are before or equal)
- errorPruning
function that generates a context-specific error parameterized by participant pruning offset
- errorLedgerEnd
function that generates a context-specific error parameterized by ledger end offset
- query
query to execute
- returns
either an Error if offset range violates conditions or query result Note in order to prevent race condition on connections at READ_COMMITTED isolation levels (in fact any level below SNAPSHOT isolation level), this check must be performed after fetching the corresponding range of data. This way we avoid a race between pruning and the query reading the offsets in which offsets are "silently skipped". First fetching the objects and only afterwards checking that no pruning operation has interfered, avoids such a race condition.
- Definition Classes
- QueryValidRangeImpl → QueryValidRange