← All compilation units

Flyology.Postgres.Protocol

Description

Append_Byte

procedure Append_Byte
  (Target : in out Flyology.Bytes.Unbounded_Bytes; Value : Byte)
Parameters
Target
Value

Append_Bytes

procedure Append_Bytes
  (Target : in out Flyology.Bytes.Unbounded_Bytes; Value : Byte_Array)
Parameters
Target
Value

Append_C_String

procedure Append_C_String
  (Target : in out Flyology.Bytes.Unbounded_Bytes; Value : String)
Parameters
Target
Value

Append_U16

procedure Append_U16
  (Target : in out Flyology.Bytes.Unbounded_Bytes; Value : UInt16)
Parameters
Target
Value

Append_U32

procedure Append_U32
  (Target : in out Flyology.Bytes.Unbounded_Bytes; Value : UInt32)
Parameters
Target
Value

Backend_Message

type Backend_Message (Response : Backend_Message_Kind := Unknown_Response)
  is private;

Decode supported backend payloads strictly while retaining Item for raw access through Original_Message. Unknown tags remain Unknown_Response.

Record fields
Response

Backend_Message_Kind

type Backend_Message_Kind is
  (Row_Description_Response,
   Data_Row_Response,
   Command_Complete_Response,
   Empty_Query_Response,
   Error_Response,
   Notice_Response,
   Parameter_Status_Response,
   Parse_Complete_Response,
   …,
   Unknown_Response);
Enumeration literals
Row_Description_Response
Data_Row_Response
Command_Complete_Response
Empty_Query_Response
Error_Response
Notice_Response
Parameter_Status_Response
Parse_Complete_Response
Bind_Complete_Response
Close_Complete_Response
Parameter_Description_Response
No_Data_Response
Portal_Suspended_Response
Copy_In_Response
Copy_Out_Response
Copy_Both_Response
Copy_Data_Response
Copy_Done_Response
Ready_For_Query_Response
Unknown_Response

Binary_Column

function Binary_Column (Value : Byte_Array) return Column_Value
Parameters
Value
Return value

Binary_Parameter

function Binary_Parameter (Value : Byte_Array) return Bind_Parameter
Parameters
Value
Return value

Bind_Parameter

type Bind_Parameter is private;

Bind_Parameter_Array

type Bind_Parameter_Array is
  array (Positive range <>) of Bind_Parameter;

Byte

subtype Byte is Ada.Streams.Stream_Element;

Byte_Array

subtype Byte_Array is Ada.Streams.Stream_Element_Array;

Byte_Offset

subtype Byte_Offset is Ada.Streams.Stream_Element_Offset;

Code

function Code (Item : Message) return Character
Parameters
Item
Return value

Column_At

function Column_At
  (Item : Data_Row; Index : Positive) return Column_Value
Parameters
Item
Index
Return value

Column_Attribute_Number

function Column_Attribute_Number
  (Item : Field_Description) return Int16
Parameters
Item
Return value

Column_Bytes

function Column_Bytes (Item : Column_Value) return Byte_Array
Parameters
Item
Return value

Column_Count

function Column_Count (Item : Data_Row) return Natural
Parameters
Item
Return value

Column_Text

function Column_Text (Item : Column_Value) return String
Parameters
Item
Return value

Column_Value

type Column_Value is private;

Column_Value_Array

type Column_Value_Array is array (Positive range <>) of Column_Value;

Completion_Tag

function Completion_Tag (Item : Backend_Message) return String
Parameters
Item
Return value

Copy_Bytes

function Copy_Bytes (Item : Frontend_Copy_Message) return Byte_Array
Parameters
Item
Return value

Copy_Column_Count

function Copy_Column_Count
  (Item : Copy_Format_Description) return Natural
Parameters
Item
Return value

Copy_Column_Format

function Copy_Column_Format
  (Item : Copy_Format_Description; Index : Positive) return Field_Format
Parameters
Item
Index
Return value

Copy_Data

function Copy_Data (Item : Backend_Message) return Byte_Array
Parameters
Item
Return value

Copy_Failure_Reason

function Copy_Failure_Reason (Item : Frontend_Copy_Message) return String
Parameters
Item
Return value

Copy_Format_Description

type Copy_Format_Description is private;

Copy_Formats

function Copy_Formats
  (Item : Backend_Message) return Copy_Format_Description
Parameters
Item
Return value

Copy_Kind

function Copy_Kind
  (Item : Frontend_Copy_Message) return Frontend_Copy_Kind
Parameters
Item
Return value

Data_Row

type Data_Row is private;

Decode_Backend

function Decode_Backend (Item : Message) return Backend_Message
Parameters
Item
Return value

Decode_Frontend_Copy

function Decode_Frontend_Copy
  (Item : Message) return Frontend_Copy_Message
Parameters
Item
Return value

Decode_Initial

function Decode_Initial (Contents : Byte_Array) return Initial_Request
Parameters
Contents
Return value

Description

function Description (Item : Backend_Message) return Row_Description
Parameters
Item
Return value

Diagnostic

type Diagnostic is private;

Diagnostic_Data

function Diagnostic_Data (Item : Backend_Message) return Diagnostic
Parameters
Item
Return value

Diagnostic_Message

function Diagnostic_Message (Item : Diagnostic) return String
Parameters
Item
Return value

Diagnostic_SQL_State

function Diagnostic_SQL_State (Item : Diagnostic) return String
Parameters
Item
Return value

Encode

function Encode (Item : Message) return Byte_Array
Parameters
Item
Return value

Encode_Cancel_Request

function Encode_Cancel_Request
  (Process_Id : UInt32; Secret_Key : Byte_Array) return Byte_Array
Parameters
Process_Id
Secret_Key
Return value

Encode_SSL_Request

function Encode_SSL_Request return Byte_Array
Return value

Encode_Startup

function Encode_Startup
  (User             : String;
   Database         : String := "";
   Application_Name : String := "flyology_postgres";
   Protocol_Major   : UInt16 := 3;
   Protocol_Minor   : UInt16 := 0) return Byte_Array
Parameters
User
Database
Application_Name
Protocol_Major
Protocol_Minor
Return value

Field_At

function Field_At
  (Item : Row_Description; Index : Positive) return Field_Description
Parameters
Item
Index
Return value

Field_Count

function Field_Count (Item : Row_Description) return Natural
Parameters
Item
Return value

Field_Description

type Field_Description is private;

Field_Description_Array

type Field_Description_Array is
  array (Positive range <>) of Field_Description;

Field_Format

type Field_Format is (Text_Format, Binary_Format);
Enumeration literals
Text_Format
Binary_Format

Field_Format_Array

type Field_Format_Array is array (Positive range <>) of Field_Format;

Field_Name

function Field_Name (Item : Field_Description) return String
Parameters
Item
Return value

Field_Text

function Field_Text
  (Item : Diagnostic; Code : Character) return String
Parameters
Item
Code
Return value

Format

function Format (Item : Field_Description) return Field_Format
Parameters
Item
Return value

Frontend_Copy_Kind

type Frontend_Copy_Kind is
  (Frontend_Copy_Data, Frontend_Copy_Done, Frontend_Copy_Fail);
Enumeration literals
Frontend_Copy_Data
Frontend_Copy_Done
Frontend_Copy_Fail

Frontend_Copy_Message

type Frontend_Copy_Message is private;

Frontend_Kind

type Frontend_Kind is
  (Bind,
   Close,
   Copy_Data,
   Copy_Done,
   Copy_Fail,
   Describe,
   Execute,
   Flush,
   …,
   Unknown);
Enumeration literals
Bind
Close
Copy_Data
Copy_Done
Copy_Fail
Describe
Execute
Flush
Function_Call
Password_Or_SASL_Response
Parse
Query
Sync
Terminate_Command
Unknown

Initial_Kind

type Initial_Kind is
  (Startup, SSL_Request, GSS_Request, Cancel_Request, Unknown_Initial);
Enumeration literals
Startup
SSL_Request
GSS_Request
Cancel_Request
Unknown_Initial

Initial_Request

type Initial_Request is private;

Int16

subtype Int16 is Interfaces.Integer_16;

Int32

subtype Int32 is Interfaces.Integer_32;

Is_Null

function Is_Null (Item : Bind_Parameter) return Boolean
Parameters
Item
Return value

Is_Null

function Is_Null (Item : Column_Value) return Boolean
Parameters
Item
Return value

Kind

function Kind (Item : Initial_Request) return Initial_Kind
Parameters
Item
Return value

Kind

function Kind (Item : Message) return Frontend_Kind
Parameters
Item
Return value

Make_Bind_Message

function Make_Bind_Message
  (Portal_Name    : String;
   Statement_Name : String;
   Parameters     : Bind_Parameter_Array := No_Parameters;
   Result_Formats : Field_Format_Array := No_Formats) return Message
Parameters
Portal_Name
Statement_Name
Parameters
Result_Formats
Return value

Make_Close_Message

function Make_Close_Message
  (Object_Type : Object_Kind; Name : String) return Message
Parameters
Object_Type
Name
Return value

Make_Copy_Data_Message

function Make_Copy_Data_Message (Data : Byte_Array) return Message
Parameters
Data
Return value

Make_Copy_Done_Message

function Make_Copy_Done_Message return Message
Return value

Make_Copy_Fail_Message

function Make_Copy_Fail_Message (Reason : String) return Message
Parameters
Reason
Return value

Make_Describe_Message

function Make_Describe_Message
  (Object_Type : Object_Kind; Name : String) return Message
Parameters
Object_Type
Name
Return value

Make_Empty_Message

function Make_Empty_Message (Code : Character) return Message
Parameters
Code
Return value

Make_Execute_Message

function Make_Execute_Message
  (Portal_Name : String; Maximum_Rows : Row_Limit := 0) return Message
Parameters
Portal_Name
Maximum_Rows
Return value

Make_Field_Description

function Make_Field_Description
  (Name                    : String;
   Table_Oid               : UInt32 := 0;
   Column_Attribute_Number : Int16 := 0;
   Type_Oid                : UInt32 := 25;
   Type_Size               : Int16 := -1;
   Type_Modifier           : Int32 := -1;
   Format                  : Field_Format := Text_Format)
   return Field_Description
Parameters
Name
Table_Oid
Column_Attribute_Number
Type_Oid
Type_Size
Type_Modifier
Format
Return value

Make_Flush_Message

function Make_Flush_Message return Message
Return value

Make_Message

function Make_Message
  (Code : Character; Payload : Byte_Array) return Message
Parameters
Code
Payload
Return value

Make_Parse_Message

function Make_Parse_Message
  (Statement_Name  : String;
   SQL             : String;
   Parameter_Types : Oid_Array := No_Oids) return Message
Parameters
Statement_Name
SQL
Parameter_Types
Return value

Make_Sync_Message

function Make_Sync_Message return Message
Return value

Maximum_Message_Size

Maximum_Message_Size : constant := Flyology.Postgres.Maximum_Message_Size;

Message

type Message is private;

No_Formats

No_Formats : constant Field_Format_Array (1 .. 0) :=
  (others => Text_Format);

No_Oids

No_Oids : constant Oid_Array (1 .. 0) := (others => 0);

No_Parameters

No_Parameters : constant Bind_Parameter_Array (1 .. 0);

Nonlocalized_Severity

function Nonlocalized_Severity (Item : Diagnostic) return String
Parameters
Item
Return value

Null_Column

Null_Column : constant Column_Value;

Null_Parameter

function Null_Parameter
  (Format : Field_Format := Text_Format) return Bind_Parameter
Parameters
Format
Return value

Object_Kind

type Object_Kind is (Statement_Object, Portal_Object);
Enumeration literals
Statement_Object
Portal_Object

Oid_Array

type Oid_Array is array (Positive range <>) of UInt32;

Original_Message

function Original_Message (Item : Backend_Message) return Message
Parameters
Item
Return value

Original_Message

function Original_Message (Item : Frontend_Copy_Message) return Message
Parameters
Item
Return value

Overall_Format

function Overall_Format
  (Item : Copy_Format_Description) return Field_Format
Parameters
Item
Return value

Parameter_Bytes

function Parameter_Bytes (Item : Bind_Parameter) return Byte_Array
Parameters
Item
Return value

Parameter_Count

function Parameter_Count (Item : Parameter_Description) return Natural
Parameters
Item
Return value

Parameter_Data

function Parameter_Data (Item : Backend_Message) return Parameter_Status
Parameters
Item
Return value

Parameter_Description

type Parameter_Description is private;

Parameter_Format

function Parameter_Format (Item : Bind_Parameter) return Field_Format
Parameters
Item
Return value

Parameter_Name

function Parameter_Name (Item : Parameter_Status) return String
Parameters
Item
Return value

Parameter_Status

type Parameter_Status is private;

Parameter_Type_At

function Parameter_Type_At
  (Item : Parameter_Description; Index : Positive) return UInt32
Parameters
Item
Index
Return value

Parameter_Types

function Parameter_Types
  (Item : Backend_Message) return Parameter_Description
Parameters
Item
Return value

Parameter_Value

function Parameter_Value (Item : Parameter_Status) return String
Parameters
Item
Return value

Payload

function Payload (Item : Message) return Byte_Array
Parameters
Item
Return value

Payload_Length

function Payload_Length (Item : Message) return Natural
Parameters
Item
Return value

Process_Id

function Process_Id (Item : Initial_Request) return UInt32
Parameters
Item
Return value

Protocol_Error

Protocol_Error : exception;

Read_C_String

function Read_C_String
  (Source : Byte_Array; Cursor : in out Byte_Offset) return String
Parameters
Source
Cursor
Return value

Read_U16

function Read_U16
  (Source : Byte_Array; Cursor : in out Byte_Offset) return UInt16
Parameters
Source
Cursor
Return value

Read_U32

function Read_U32
  (Source : Byte_Array; Cursor : in out Byte_Offset) return UInt32
Parameters
Source
Cursor
Return value

Response_Kind

function Response_Kind (Item : Backend_Message) return Backend_Message_Kind
Parameters
Item
Return value

Row_Data

function Row_Data (Item : Backend_Message) return Data_Row
Parameters
Item
Return value

Row_Description

type Row_Description is private;

Row_Limit

subtype Row_Limit is Int32 range 0 .. Int32'Last;

Secret_Key

function Secret_Key (Item : Initial_Request) return Byte_Array
Parameters
Item
Return value

Severity

function Severity (Item : Diagnostic) return String
Parameters
Item
Return value

Startup_Data

function Startup_Data
  (Item : Initial_Request) return Startup_Information
Parameters
Item
Return value

Startup_Information

type Startup_Information is record
   Protocol_Major  : UInt16 := 3;
   Protocol_Minor  : UInt16 := 0;
   User            : Ada.Strings.Unbounded.Unbounded_String;
   Database        : Ada.Strings.Unbounded.Unbounded_String;
   Application_Name : Ada.Strings.Unbounded.Unbounded_String;
end record;
Record fields
Protocol_Major
Protocol_Minor
User
Database
Application_Name

Table_Oid

function Table_Oid (Item : Field_Description) return UInt32
Parameters
Item
Return value

Text_Column

function Text_Column (Value : String) return Column_Value
Parameters
Value
Return value

Text_Parameter

function Text_Parameter (Value : String) return Bind_Parameter
Parameters
Value
Return value

Transaction_State

function Transaction_State
  (Item : Backend_Message) return Transaction_Status
Parameters
Item
Return value

Transaction_Status

type Transaction_Status is
  (Idle, In_Transaction, Failed_Transaction);
Enumeration literals
Idle
In_Transaction
Failed_Transaction

Type_Modifier

function Type_Modifier (Item : Field_Description) return Int32
Parameters
Item
Return value

Type_Oid

function Type_Oid (Item : Field_Description) return UInt32
Parameters
Item
Return value

Type_Size

function Type_Size (Item : Field_Description) return Int16
Parameters
Item
Return value

UInt16

subtype UInt16 is Interfaces.Unsigned_16;

UInt32

subtype UInt32 is Interfaces.Unsigned_32;