Skip to content

Latest commit

 

History

History
819 lines (519 loc) · 34.2 KB

File metadata and controls

819 lines (519 loc) · 34.2 KB

src/minisql/server/session.ml

Home · Files

Provides minisql server session facilities for this project.

Package: minisql.server.session

Reachable from entry: yes

Imports

Declarations

abortForConcurrency

function abortForConcurrency(session)

Implements abort for concurrency for this module. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

abortForConcurrencyTimeout

function abortForConcurrencyTimeout(session)

Aborts a logical lock wait at the absolute statement deadline while keeping the wire-compatible lock-timeout response code in the listener.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

abortForConcurrencyUnlocked

function abortForConcurrencyUnlocked(session)

Aborts an ordinary lock conflict without assigning a terminal control code.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

abortForConcurrencyUnlockedWithCode

function abortForConcurrencyUnlockedWithCode(session, errorCode)

Implements abort for concurrency unlocked for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
errorCode dynamic errorCode value consumed by this operation.

View source

activateTransport

function activateTransport(session, connection)

Implements activate transport for this module. Returns the computed value or operation status. May mutate supplied state and perform I/O through its dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
connection dynamic connection value consumed by this operation.

View source

AUTH_HANDSHAKE_TIMEOUT_MS

const AUTH_HANDSHAKE_TIMEOUT_MS = 30000

Defines the auth handshake timeout ms constant used by the minisql server session module.

View source

AUTHENTICATION_FAILED

const AUTHENTICATION_FAILED = 9027

Defines the authentication failed constant used by the minisql server session module.

View source

AUTHENTICATION_REQUIRED

const AUTHENTICATION_REQUIRED = 9028

Defines the authentication required constant used by the minisql server session module.

View source

authenticationBackoff

function authenticationBackoff(session)

Implements authentication backoff for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

authenticationError

function authenticationError(request)

Implements authentication error for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
request dynamic request value consumed by this operation.

View source

beginTrackedStatement

function beginTrackedStatement(session, sqlText)

Begins metrics tracking exactly once across cooperative lock-wait retries.

Parameter Type Default Description
session dynamic session value consumed by this operation.
sqlText dynamic sqlText value consumed by this operation.

View source

clearPending

function clearPending(session)

Implements clear pending for this module. Requires arguments that satisfy the validation performed below. Returns the computed value or operation status. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

close

function close(session)

Closes close owned by the minisql server session module. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

CLOSED_HANDLE

const CLOSED_HANDLE = 9008

Defines the closed handle constant used by the minisql server session module.

View source

closeUnlocked

function closeUnlocked(session)

Closes unlocked using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

componentName

function componentName()

Performs the componentName operation for the minisql server session module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

View source

createSession

function createSession(engine, secure, authenticated)

Creates session using the supplied inputs. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
engine dynamic engine value consumed by this operation.
secure dynamic secure value consumed by this operation.
authenticated dynamic authenticated value consumed by this operation.

View source

executeParsedQuery

function executeParsedQuery(session, request, statement)

Executes an already parsed statement through the ordinary materializing API. Keeping this tail separate lets the network streaming path reuse parsing, authorization errors, and the exact fallback response contract.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.
statement dynamic statement value consumed by this operation.

View source

fail

function fail(code, operation, message)

Performs the fail operation for the minisql server session module. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
code dynamic code value consumed by this operation.
operation dynamic operation value consumed by this operation.
message dynamic Human-readable message associated with the operation.

View source

fakeAuthenticationMaterial

function fakeAuthenticationMaterial(session, username)

Implements fake authentication material for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
username dynamic username value consumed by this operation.

View source

finishTrackedStatement

function finishTrackedStatement(session, success, rowCount)

Compatibility helper for ordinary outcomes without a production-control code.

Parameter Type Default Description
session dynamic session value consumed by this operation.
success dynamic success value consumed by this operation.
rowCount dynamic Number of row to process.

View source

finishTrackedStatementWithCode

function finishTrackedStatementWithCode(session, success, rowCount, errorCode)

Completes metrics, latency, budget and slow-query tracking.

Parameter Type Default Description
session dynamic session value consumed by this operation.
success dynamic success value consumed by this operation.
rowCount dynamic Number of row to process.
errorCode dynamic errorCode value consumed by this operation.

View source

handle

function handle(session, request)

Handles handle using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.

View source

handleAuthBegin

function handleAuthBegin(session, request)

Handles auth begin using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.

View source

handleAuthProof

function handleAuthProof(session, request)

Handles auth proof using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.

View source

handleQuery

function handleQuery(session, request)

Handles query using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.

View source

handleQueryStreaming

function handleQueryStreaming(session, request, connection)

Streams an eligible non-blocking SELECT directly to one connection. One protocol frame plus one look-ahead frame are retained, so both server and cursor-aware client memory remain bounded while FLAG_MORE stays exact.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.
connection dynamic connection value consumed by this operation.

View source

handleToConnection

function handleToConnection(session, request, connection)

Handles a request and, for eligible SELECTs, writes response batches directly to the supplied protocol connection. An empty array means delivery completed.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.
connection dynamic connection value consumed by this operation.

View source

handleUnlocked

function handleUnlocked(session, request)

Handles unlocked using the supplied inputs. Returns the computed value or operation status. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.
request dynamic request value consumed by this operation.

View source

idleTimeoutMilliseconds

function idleTimeoutMilliseconds()

Implements idle timeout milliseconds for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

View source

INVALID_ARGUMENT

const INVALID_ARGUMENT = 9001

Defines the invalid argument constant used by the minisql server session module.

View source

IO_FAILURE

const IO_FAILURE = 9005

Defines the io failure constant used by the minisql server session module.

View source

isExpired

function isExpired(session)

Returns whether the supplied value satisfies the expired condition. Returns the computed value or operation status. Does not modify its inputs.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

isImplemented

function isImplemented()

Returns whether implemented satisfies the condition required by the minisql server session module. Returns the computed value or operation status. Does not modify its inputs.

View source

isSession

function isSession(value)

Returns whether the supplied value satisfies the session condition. Returns the computed value or operation status. Does not modify its inputs.

Parameter Type Default Description
value dynamic Value consumed or transformed by the operation.

View source

open

function open(databasePath)

Opens open for the minisql server session module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
databasePath dynamic Path associated with database.

View source

openAttached

function openAttached(database)

Opens attached using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
database dynamic database value consumed by this operation.

View source

openSecure

function openSecure(databasePath)

Opens secure using the supplied inputs. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
databasePath dynamic Path associated with database.

View source

openSecureAttached

function openSecureAttached(database)

Opens secure attached using the supplied inputs. Requires arguments that satisfy the validation performed below. Returns its result or propagates a structured error from validation or a dependency. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
database dynamic database value consumed by this operation.

View source

prepareAttachedDatabase

function prepareAttachedDatabase(database)

Completes process-local database preparation before the listener advertises readiness, so the first client's HELLO does not pay the full index audit cost.

Parameter Type Default Description
database dynamic database value consumed by this operation.

View source

responseMessage

function responseMessage(request, response)

Implements response message for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
request dynamic request value consumed by this operation.
response dynamic response value consumed by this operation.

View source

responseMessages

function responseMessages(request, responses)

Encodes bounded result batches and marks every non-final frame for the client.

Parameter Type Default Description
request dynamic request value consumed by this operation.
responses dynamic responses value consumed by this operation.

View source

SESSION_IDLE_TIMEOUT_MS

const SESSION_IDLE_TIMEOUT_MS = 300000

Legacy public default retained for embedded callers and compatibility tests.

View source

sessionIdentifier

function sessionIdentifier(session)

Implements session identifier for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

STREAM_RESULT_ROWS

const STREAM_RESULT_ROWS = 64

A server cursor retains at most this many arbitrarily wide SQL rows before

View source

targetMilestone

function targetMilestone()

Performs the targetMilestone operation for the minisql server session module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

View source

touch

function touch(session)

Implements touch for this module. Returns the computed value or operation status. May mutate supplied state as documented by the operation name.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

transportReady

function transportReady(session)

Implements transport ready for this module. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source

UNSUPPORTED_SQL

const UNSUPPORTED_SQL = 9025

Defines the unsupported sql constant used by the minisql server session module.

View source

validateOpen

function validateOpen(session, operation)

Validates open for the minisql server session workflow. Requires arguments that satisfy the validation performed below. Returns the computed value or operation status. Any side effects are limited to the explicitly invoked dependencies.

Parameter Type Default Description
session dynamic session value consumed by this operation.
operation dynamic operation value consumed by this operation.

View source

waitingForConcurrency

function waitingForConcurrency(session)

Returns whether this session still has a logical lock blocker. The check is side-effect free and lets the listener suspend a request without executing it repeatedly while another explicit transaction owns the writer lock.

Parameter Type Default Description
session dynamic session value consumed by this operation.

View source