class ExecuteMachine extends StateMachine[QueryResponse]
Implements part of the "Extended Query" message flow described here https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY.
This machine is used in combination with PrepareMachine. That is, before executing this machine, a prior execution of PrepareMachine must have taken place.
NOTE: this machine is slightly different from other ones in that it will send multiple messages on start and then a Flush. The reason is because the message flow is different in this case and the backend does not send individual responses until the Flush is received. The machine expects responses to come back in order, but it's not entirely clear if the backend is allowed to send them in a different order.
Also note that this machine is used for both executing a portal as well as resuming a previously executed one.
- Alphabetic
- By Inheritance
- ExecuteMachine
- StateMachine
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ExecuteMachine(req: Execute, parameters: ConnectionParameters, interrupt: (Throwable) => Unit)
Type Members
- type State = ExecuteMachine.State
- Definition Classes
- ExecuteMachine → StateMachine
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]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def receive(state: State, msg: BackendMessage): TransitionResult[State, QueryResponse]
Given the current state and a message from the backend server, this method will produce the appropriate transition to execute.
Given the current state and a message from the backend server, this method will produce the appropriate transition to execute.
Specifically, this may be additional messages to send to the backend, a response to send to the client, etc.
- state
the current state of the connection previously returned by a call to
start
orreceive
.- msg
the message received from the backend server
- returns
the transition to execute to realize the new state
- Definition Classes
- ExecuteMachine → StateMachine
- def start: TransitionResult[State, QueryResponse]
The initial transition to execute upon starting this particular machine.
The initial transition to execute upon starting this particular machine. Normally, this will contain
Send
actions to send messages to the Postgres backend.- returns
the initial transition to execute upon starting the machine.
- Definition Classes
- ExecuteMachine → StateMachine
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()