# typed: true # DO NOT EDIT MANUALLY # This is an autogenerated file for types exported from the `pg` gem. # Please instead update this file by running `bin/tapioca gem pg`. # The top-level PG namespace. # # source://pg//lib/pg.rb#6 module PG include ::PG::Constants class << self # Convenience alias for PG::Connection.new. # # source://pg//lib/pg.rb#62 def connect(*args, &block); end def init_openssl(_arg0, _arg1); end def init_ssl(_arg0); end def is_threadsafe?; end def isthreadsafe; end def library_version; end def threadsafe?; end # Get the PG library version. # # +include_buildnum+ is no longer used and any value passed will be ignored. # # source://pg//lib/pg.rb#56 def version_string(include_buildnum = T.unsafe(nil)); end end end class PG::ActiveSqlTransaction < ::PG::InvalidTransactionState; end class PG::AdminShutdown < ::PG::OperatorIntervention; end class PG::AmbiguousAlias < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::AmbiguousColumn < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::AmbiguousFunction < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::AmbiguousParameter < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::ArraySubscriptError < ::PG::DataException; end class PG::AssertFailure < ::PG::PlpgsqlError; end class PG::BadCopyFileFormat < ::PG::DataException; end # Simple set of rules for type casting common PostgreSQL types from Ruby # to PostgreSQL. # # OIDs of supported type casts are not hard-coded in the sources, but are retrieved from the # PostgreSQL's +pg_type+ table in PG::BasicTypeMapBasedOnResult.new . # # This class works equal to PG::BasicTypeMapForResults, but does not define decoders for # the given result OIDs, but encoders. So it can be used to type cast field values based on # the type OID retrieved by a separate SQL query. # # PG::TypeMapByOid#build_column_map(result) can be used to generate a result independent # PG::TypeMapByColumn type map, which can subsequently be used to cast query bind parameters # or #put_copy_data fields. # # Example: # conn.exec( "CREATE TEMP TABLE copytable (t TEXT, i INT, ai INT[])" ) # # # Retrieve table OIDs per empty result set. # res = conn.exec( "SELECT * FROM copytable LIMIT 0" ) # # Build a type map for common ruby to database type encoders. # btm = PG::BasicTypeMapBasedOnResult.new(conn) # # Build a PG::TypeMapByColumn with encoders suitable for copytable. # tm = btm.build_column_map( res ) # row_encoder = PG::TextEncoder::CopyRow.new type_map: tm # # conn.copy_data( "COPY copytable FROM STDIN", row_encoder ) do |res| # conn.put_copy_data ['a', 123, [5,4,3]] # end # This inserts a single row into copytable with type casts from ruby to # database types. # # source://pg//lib/pg/basic_type_map_based_on_result.rb#36 class PG::BasicTypeMapBasedOnResult < ::PG::TypeMapByOid include ::PG::BasicTypeRegistry::Checker # @return [BasicTypeMapBasedOnResult] a new instance of BasicTypeMapBasedOnResult # # source://pg//lib/pg/basic_type_map_based_on_result.rb#39 def initialize(connection_or_coder_maps, registry: T.unsafe(nil)); end end # Simple set of rules for type casting common Ruby types to PostgreSQL. # # OIDs of supported type casts are not hard-coded in the sources, but are retrieved from the # PostgreSQL's pg_type table in PG::BasicTypeMapForQueries.new . # # Query params are type casted based on the class of the given value. # # Higher level libraries will most likely not make use of this class, but use their # own derivation of PG::TypeMapByClass or another set of rules to choose suitable # encoders and decoders for the values to be sent. # # Example: # conn = PG::Connection.new # # Assign a default ruleset for type casts of input and output values. # conn.type_map_for_queries = PG::BasicTypeMapForQueries.new(conn) # # Execute a query. The Integer param value is typecasted internally by PG::BinaryEncoder::Int8. # # The format of the parameter is set to 0 (text) and the OID of this parameter is set to 20 (int8). # res = conn.exec_params( "SELECT $1", [5] ) # # source://pg//lib/pg/basic_type_map_for_queries.rb#24 class PG::BasicTypeMapForQueries < ::PG::TypeMapByClass include ::PG::BasicTypeRegistry::Checker # Create a new type map for query submission # # Options: # * +registry+: Custom type registry, nil for default global registry # * +if_undefined+: Optional +Proc+ object which is called, if no type for an parameter class is not defined in the registry. # # @return [BasicTypeMapForQueries] a new instance of BasicTypeMapForQueries # # source://pg//lib/pg/basic_type_map_for_queries.rb#50 def initialize(connection_or_coder_maps, registry: T.unsafe(nil), if_undefined: T.unsafe(nil)); end # Returns the value of attribute encode_array_as. # # source://pg//lib/pg/basic_type_map_for_queries.rb#86 def encode_array_as; end # Change the mechanism that is used to encode ruby array values # # Possible values: # * +:array+ : Encode the ruby array as a PostgreSQL array. # The array element type is inferred from the class of the first array element. This is the default. # * +:json+ : Encode the ruby array as a JSON document. # * +:record+ : Encode the ruby array as a composite type row. # * "_type" : Encode the ruby array as a particular PostgreSQL type. # All PostgreSQL array types are supported. # If there's an encoder registered for the elements +type+, it will be used. # Otherwise a string conversion (by +value.to_s+) is done. # # source://pg//lib/pg/basic_type_map_for_queries.rb#71 def encode_array_as=(pg_type); end private # source://pg//lib/pg/basic_type_map_for_queries.rb#148 def array_encoders_by_klass; end # source://pg//lib/pg/basic_type_map_for_queries.rb#96 def coder_by_name(format, direction, name); end # source://pg//lib/pg/basic_type_map_for_queries.rb#155 def get_array_type(value); end # source://pg//lib/pg/basic_type_map_for_queries.rb#90 def init_encoders; end # source://pg//lib/pg/basic_type_map_for_queries.rb#105 def populate_encoder_list; end # source://pg//lib/pg/basic_type_map_for_queries.rb#101 def undefined(name, format); end end # Helper class for submission of binary strings into bytea columns. # # Since PG::BasicTypeMapForQueries chooses the encoder to be used by the class of the submitted value, # it's necessary to send binary strings as BinaryData. # That way they're distinct from text strings. # Please note however that PG::BasicTypeMapForResults delivers bytea columns as plain String # with binary encoding. # # conn.type_map_for_queries = PG::BasicTypeMapForQueries.new(conn) # conn.exec("CREATE TEMP TABLE test (data bytea)") # bd = PG::BasicTypeMapForQueries::BinaryData.new("ab\xff\0cd") # conn.exec_params("INSERT INTO test (data) VALUES ($1)", [bd]) # # source://pg//lib/pg/basic_type_map_for_queries.rb#37 class PG::BasicTypeMapForQueries::BinaryData < ::String; end # source://pg//lib/pg/basic_type_map_for_queries.rb#182 PG::BasicTypeMapForQueries::DEFAULT_ARRAY_TYPE_MAP = T.let(T.unsafe(nil), Hash) # source://pg//lib/pg/basic_type_map_for_queries.rb#165 PG::BasicTypeMapForQueries::DEFAULT_TYPE_MAP = T.let(T.unsafe(nil), Hash) # source://pg//lib/pg/basic_type_map_for_queries.rb#40 class PG::BasicTypeMapForQueries::UndefinedEncoder < ::RuntimeError; end # Simple set of rules for type casting common PostgreSQL types to Ruby. # # OIDs of supported type casts are not hard-coded in the sources, but are retrieved from the # PostgreSQL's +pg_type+ table in PG::BasicTypeMapForResults.new . # # Result values are type casted based on the type OID of the given result column. # # Higher level libraries will most likely not make use of this class, but use their # own set of rules to choose suitable encoders and decoders. # # Example: # conn = PG::Connection.new # # Assign a default ruleset for type casts of output values. # conn.type_map_for_results = PG::BasicTypeMapForResults.new(conn) # # Execute a query. # res = conn.exec_params( "SELECT $1::INT", ['5'] ) # # Retrieve and cast the result value. Value format is 0 (text) and OID is 20. Therefore typecasting # # is done by PG::TextDecoder::Integer internally for all value retrieval methods. # res.values # => [[5]] # # PG::TypeMapByOid#build_column_map(result) can be used to generate # a result independent PG::TypeMapByColumn type map, which can subsequently be used # to cast #get_copy_data fields: # # For the following table: # conn.exec( "CREATE TABLE copytable AS VALUES('a', 123, '{5,4,3}'::INT[])" ) # # # Retrieve table OIDs per empty result set. # res = conn.exec( "SELECT * FROM copytable LIMIT 0" ) # # Build a type map for common database to ruby type decoders. # btm = PG::BasicTypeMapForResults.new(conn) # # Build a PG::TypeMapByColumn with decoders suitable for copytable. # tm = btm.build_column_map( res ) # row_decoder = PG::TextDecoder::CopyRow.new type_map: tm # # conn.copy_data( "COPY copytable TO STDOUT", row_decoder ) do |res| # while row=conn.get_copy_data # p row # end # end # This prints the rows with type casted columns: # ["a", 123, [5, 4, 3]] # # See also PG::BasicTypeMapBasedOnResult for the encoder direction and PG::BasicTypeRegistry for the definition of additional types. # # source://pg//lib/pg/basic_type_map_for_results.rb#50 class PG::BasicTypeMapForResults < ::PG::TypeMapByOid include ::PG::BasicTypeRegistry::Checker # @return [BasicTypeMapForResults] a new instance of BasicTypeMapForResults # # source://pg//lib/pg/basic_type_map_for_results.rb#70 def initialize(connection_or_coder_maps, registry: T.unsafe(nil)); end end # source://pg//lib/pg/basic_type_map_for_results.rb#53 class PG::BasicTypeMapForResults::WarningTypeMap < ::PG::TypeMapInRuby # @return [WarningTypeMap] a new instance of WarningTypeMap # # source://pg//lib/pg/basic_type_map_for_results.rb#54 def initialize(typenames); end # source://pg//lib/pg/basic_type_map_for_results.rb#59 def typecast_result_value(result, _tuple, field); end end # This class defines the mapping between PostgreSQL types and encoder/decoder classes for PG::BasicTypeMapForResults, PG::BasicTypeMapForQueries and PG::BasicTypeMapBasedOnResult. # # Additional types can be added like so: # # require 'pg' # require 'ipaddr' # # class InetDecoder < PG::SimpleDecoder # def decode(string, tuple=nil, field=nil) # IPAddr.new(string) # end # end # class InetEncoder < PG::SimpleEncoder # def encode(ip_addr) # ip_addr.to_s # end # end # # conn = PG.connect # regi = PG::BasicTypeRegistry.new.register_default_types # regi.register_type(0, 'inet', InetEncoder, InetDecoder) # conn.type_map_for_results = PG::BasicTypeMapForResults.new(conn, registry: regi) # # source://pg//lib/pg/basic_type_registry.rb#28 class PG::BasicTypeRegistry include ::PG::BasicTypeRegistry::Checker # @return [BasicTypeRegistry] a new instance of BasicTypeRegistry # # source://pg//lib/pg/basic_type_registry.rb#165 def initialize; end # Alias the +old+ type to the +new+ type. # # source://pg//lib/pg/basic_type_registry.rb#201 def alias_type(format, new, old); end # Retrieve a Hash of all en- or decoders for a given wire format. # The hash key is the name as defined in table +pg_type+. # The hash value is the registered coder object. # # source://pg//lib/pg/basic_type_registry.rb#173 def coders_for(format, direction); end # Populate the registry with all builtin types of ruby-pg # # source://pg//lib/pg/basic_type_registry.rb#214 def define_default_types; end # Register an encoder or decoder instance for casting a PostgreSQL type. # # Coder#name must correspond to the +typname+ column in the +pg_type+ table. # Coder#format can be 0 for text format and 1 for binary. # # source://pg//lib/pg/basic_type_registry.rb#182 def register_coder(coder); end # Populate the registry with all builtin types of ruby-pg # # source://pg//lib/pg/basic_type_registry.rb#214 def register_default_types; end # Register the given +encoder_class+ and/or +decoder_class+ for casting a PostgreSQL type. # # +name+ must correspond to the +typname+ column in the +pg_type+ table. # +format+ can be 0 for text format and 1 for binary. # # source://pg//lib/pg/basic_type_registry.rb#194 def register_type(format, name, encoder_class, decoder_class); end class << self # source://pg//lib/pg/basic_type_registry.rb#295 def alias_type(*args); end # source://pg//lib/pg/basic_type_registry.rb#295 def register_coder(*args); end # source://pg//lib/pg/basic_type_registry.rb#295 def register_type(*args); end end end # source://pg//lib/pg/basic_type_registry.rb#144 module PG::BasicTypeRegistry::Checker protected # source://pg//lib/pg/basic_type_registry.rb#153 def build_coder_maps(conn_or_maps, registry: T.unsafe(nil)); end # @raise [ArgumentError] # # source://pg//lib/pg/basic_type_registry.rb#148 def check_format_and_direction(format, direction); end end # source://pg//lib/pg/basic_type_registry.rb#146 PG::BasicTypeRegistry::Checker::ValidDirections = T.let(T.unsafe(nil), Hash) # source://pg//lib/pg/basic_type_registry.rb#145 PG::BasicTypeRegistry::Checker::ValidFormats = T.let(T.unsafe(nil), Hash) # An instance of this class stores the coders that should be used for a particular wire format (text or binary) # and type cast direction (encoder or decoder). # # Each coder object is filled with the PostgreSQL type name, OID, wire format and array coders are filled with the base elements_type. # # source://pg//lib/pg/basic_type_registry.rb#33 class PG::BasicTypeRegistry::CoderMap # @return [CoderMap] a new instance of CoderMap # # source://pg//lib/pg/basic_type_registry.rb#44 def initialize(result, coders_by_name, format, arraycoder); end # source://pg//lib/pg/basic_type_registry.rb#83 def coder_by_name(name); end # source://pg//lib/pg/basic_type_registry.rb#87 def coder_by_oid(oid); end # Returns the value of attribute coders. # # source://pg//lib/pg/basic_type_registry.rb#79 def coders; end # Returns the value of attribute coders_by_name. # # source://pg//lib/pg/basic_type_registry.rb#81 def coders_by_name; end # Returns the value of attribute coders_by_oid. # # source://pg//lib/pg/basic_type_registry.rb#80 def coders_by_oid; end end # Hash of text types that don't require quotation, when used within composite types. # type.name => true # # source://pg//lib/pg/basic_type_registry.rb#36 PG::BasicTypeRegistry::CoderMap::DONT_QUOTE_TYPES = T.let(T.unsafe(nil), Hash) # An instance of this class stores CoderMap instances to be used for text and binary wire formats # as well as encoder and decoder directions. # # A PG::BasicTypeRegistry::CoderMapsBundle instance retrieves all type definitions from the PostgreSQL server and matches them with the coder definitions of the global PG::BasicTypeRegistry . # It provides 4 separate CoderMap instances for the combinations of the two formats and directions. # # A PG::BasicTypeRegistry::CoderMapsBundle instance can be used to initialize an instance of # * PG::BasicTypeMapForResults # * PG::BasicTypeMapForQueries # * PG::BasicTypeMapBasedOnResult # by passing it instead of the connection object like so: # # conn = PG::Connection.new # maps = PG::BasicTypeRegistry::CoderMapsBundle.new(conn) # conn.type_map_for_results = PG::BasicTypeMapForResults.new(maps) # # source://pg//lib/pg/basic_type_registry.rb#108 class PG::BasicTypeRegistry::CoderMapsBundle # @return [CoderMapsBundle] a new instance of CoderMapsBundle # # source://pg//lib/pg/basic_type_registry.rb#111 def initialize(connection, registry: T.unsafe(nil)); end # source://pg//lib/pg/basic_type_registry.rb#135 def each_format(direction); end # source://pg//lib/pg/basic_type_registry.rb#139 def map_for(format, direction); end # Returns the value of attribute typenames_by_oid. # # source://pg//lib/pg/basic_type_registry.rb#109 def typenames_by_oid; end end # @private # # source://pg//lib/pg/basic_type_registry.rb#290 PG::BasicTypeRegistry::DEFAULT_TYPE_REGISTRY = T.let(T.unsafe(nil), PG::BasicTypeRegistry) # source://pg//lib/pg/binary_decoder.rb#5 module PG::BinaryDecoder; end class PG::BinaryDecoder::Boolean < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::Boolean::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryDecoder::Bytea < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::Bytea::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryDecoder::Float < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::Float::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryDecoder::Integer < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::Integer::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryDecoder::String < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::String::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryDecoder::Timestamp < ::PG::SimpleDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::Timestamp::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/binary_decoder.rb#17 class PG::BinaryDecoder::TimestampLocal < ::PG::BinaryDecoder::Timestamp # @return [TimestampLocal] a new instance of TimestampLocal # # source://pg//lib/pg/binary_decoder.rb#18 def initialize(params = T.unsafe(nil)); end end # Convenience classes for timezone options # # source://pg//lib/pg/binary_decoder.rb#7 class PG::BinaryDecoder::TimestampUtc < ::PG::BinaryDecoder::Timestamp # @return [TimestampUtc] a new instance of TimestampUtc # # source://pg//lib/pg/binary_decoder.rb#8 def initialize(params = T.unsafe(nil)); end end # source://pg//lib/pg/binary_decoder.rb#12 class PG::BinaryDecoder::TimestampUtcToLocal < ::PG::BinaryDecoder::Timestamp # @return [TimestampUtcToLocal] a new instance of TimestampUtcToLocal # # source://pg//lib/pg/binary_decoder.rb#13 def initialize(params = T.unsafe(nil)); end end class PG::BinaryDecoder::ToBase64 < ::PG::CompositeDecoder include ::PG::Coder::BinaryFormatting def decode(*_arg0); end end PG::BinaryDecoder::ToBase64::CFUNC = T.let(T.unsafe(nil), Object) module PG::BinaryEncoder; end class PG::BinaryEncoder::Boolean < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::Boolean::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::Bytea < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::Bytea::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::FromBase64 < ::PG::CompositeEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::FromBase64::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::Int2 < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::Int2::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::Int4 < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::Int4::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::Int8 < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::Int8::CFUNC = T.let(T.unsafe(nil), Object) class PG::BinaryEncoder::String < ::PG::SimpleEncoder include ::PG::Coder::BinaryFormatting def encode(*_arg0); end end PG::BinaryEncoder::String::CFUNC = T.let(T.unsafe(nil), Object) class PG::BranchTransactionAlreadyActive < ::PG::InvalidTransactionState; end class PG::CannotCoerce < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::CannotConnectNow < ::PG::OperatorIntervention; end class PG::CantChangeRuntimeParam < ::PG::ObjectNotInPrerequisiteState; end class PG::CardinalityViolation < ::PG::ServerError; end class PG::CaseNotFound < ::PG::ServerError; end class PG::CharacterNotInRepertoire < ::PG::DataException; end class PG::CheckViolation < ::PG::IntegrityConstraintViolation; end # source://pg//lib/pg/coder.rb#6 class PG::Coder # Create a new coder object based on the attribute Hash. # # @return [Coder] a new instance of Coder # # source://pg//lib/pg/coder.rb#17 def initialize(params = T.unsafe(nil)); end # source://pg//lib/pg/coder.rb#37 def ==(v); end # source://pg//lib/pg/coder.rb#23 def dup; end def flags; end def flags=(_arg0); end def format; end def format=(_arg0); end # source://pg//lib/pg/coder.rb#49 def inspect; end # source://pg//lib/pg/coder.rb#58 def inspect_short; end # source://pg//lib/pg/coder.rb#41 def marshal_dump; end # source://pg//lib/pg/coder.rb#45 def marshal_load(str); end def name; end def name=(_arg0); end def oid; end def oid=(_arg0); end # Returns coder attributes as Hash. # # source://pg//lib/pg/coder.rb#28 def to_h; end end # source://pg//lib/pg/coder.rb#8 module PG::Coder::BinaryFormatting # source://pg//lib/pg/coder.rb#10 def initialize(params = T.unsafe(nil)); end end # source://pg//lib/pg/coder.rb#9 PG::Coder::BinaryFormatting::Params = T.let(T.unsafe(nil), Hash) PG::Coder::FORMAT_ERROR_MASK = T.let(T.unsafe(nil), Integer) PG::Coder::FORMAT_ERROR_TO_PARTIAL = T.let(T.unsafe(nil), Integer) PG::Coder::FORMAT_ERROR_TO_RAISE = T.let(T.unsafe(nil), Integer) PG::Coder::FORMAT_ERROR_TO_STRING = T.let(T.unsafe(nil), Integer) PG::Coder::TIMESTAMP_APP_LOCAL = T.let(T.unsafe(nil), Integer) PG::Coder::TIMESTAMP_APP_UTC = T.let(T.unsafe(nil), Integer) PG::Coder::TIMESTAMP_DB_LOCAL = T.let(T.unsafe(nil), Integer) PG::Coder::TIMESTAMP_DB_UTC = T.let(T.unsafe(nil), Integer) class PG::CollationMismatch < ::PG::SyntaxErrorOrAccessRuleViolation; end # source://pg//lib/pg/coder.rb#71 class PG::CompositeCoder < ::PG::Coder def delimiter; end def delimiter=(_arg0); end def elements_type; end def elements_type=(_arg0); end # source://pg//lib/pg/coder.rb#80 def inspect; end def needs_quotation=(_arg0); end def needs_quotation?; end # source://pg//lib/pg/coder.rb#72 def to_h; end end class PG::CompositeDecoder < ::PG::CompositeCoder; end class PG::CompositeEncoder < ::PG::CompositeCoder; end class PG::ConfigFileError < ::PG::ServerError; end class PG::ConfigurationLimitExceeded < ::PG::InsufficientResources; end # The PostgreSQL connection class. The interface for this class is based on # {libpq}[http://www.postgresql.org/docs/current/libpq.html], the C # application programmer's interface to PostgreSQL. Some familiarity with libpq # is recommended, but not necessary. # # For example, to send query to the database on the localhost: # # require 'pg' # conn = PG::Connection.open(:dbname => 'test') # res = conn.exec_params('SELECT $1 AS a, $2 AS b, $3 AS c', [1, 2, nil]) # # Equivalent to: # # res = conn.exec('SELECT 1 AS a, 2 AS b, NULL AS c') # # See the PG::Result class for information on working with the results of a query. # # Many methods of this class have three variants kind of: # 1. #exec - the base method which is an alias to #async_exec . # This is the method that should be used in general. # 2. #async_exec - the async aware version of the method, implemented by libpq's async API. # 3. #sync_exec - the method version that is implemented by blocking function(s) of libpq. # # Sync and async version of the method can be switched by Connection.async_api= , however it is not recommended to change the default. # # source://pg//lib/pg/connection.rb#31 class PG::Connection include ::PG::Constants # call-seq: # conn.cancel() -> String # # Requests cancellation of the command currently being # processed. # # Returns +nil+ on success, or a string containing the # error message if a failure occurs. # # source://pg//lib/pg/connection.rb#519 def async_cancel; end def async_describe_portal(_arg0); end def async_describe_prepared(_arg0); end # call-seq: # conn.encrypt_password( password, username, algorithm=nil ) -> String # # This function is intended to be used by client applications that wish to send commands like ALTER USER joe PASSWORD 'pwd'. # It is good practice not to send the original cleartext password in such a command, because it might be exposed in command logs, activity displays, and so on. # Instead, use this function to convert the password to encrypted form before it is sent. # # The +password+ and +username+ arguments are the cleartext password, and the SQL name of the user it is for. # +algorithm+ specifies the encryption algorithm to use to encrypt the password. # Currently supported algorithms are +md5+ and +scram-sha-256+ (+on+ and +off+ are also accepted as aliases for +md5+, for compatibility with older server versions). # Note that support for +scram-sha-256+ was introduced in PostgreSQL version 10, and will not work correctly with older server versions. # If algorithm is omitted or +nil+, this function will query the server for the current value of the +password_encryption+ setting. # That can block, and will fail if the current transaction is aborted, or if the connection is busy executing another query. # If you wish to use the default algorithm for the server but want to avoid blocking, query +password_encryption+ yourself before calling #encrypt_password, and pass that value as the algorithm. # # Return value is the encrypted password. # The caller can assume the string doesn't contain any special characters that would require escaping. # # Available since PostgreSQL-10. # See also corresponding {libpq function}[https://www.postgresql.org/docs/current/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORDCONN]. # # source://pg//lib/pg/connection.rb#492 def async_encrypt_password(password, username, algorithm = T.unsafe(nil)); end def async_exec(*_arg0); end def async_exec_params(*_arg0); end def async_exec_prepared(*_arg0); end def async_flush; end # call-seq: # conn.get_copy_data( [ nonblock = false [, decoder = nil ]] ) -> Object # # Return one row of data, +nil+ # if the copy is done, or +false+ if the call would # block (only possible if _nonblock_ is true). # # If _decoder_ is not set or +nil+, data is returned as binary string. # # If _decoder_ is set to a PG::Coder derivation, the return type depends on this decoder. # PG::TextDecoder::CopyRow decodes the received data fields from one row of PostgreSQL's # COPY text format to an Array of Strings. # Optionally the decoder can type cast the single fields to various Ruby types in one step, # if PG::TextDecoder::CopyRow#type_map is set accordingly. # # See also #copy_data. # # source://pg//lib/pg/connection.rb#360 def async_get_copy_data(async = T.unsafe(nil), decoder = T.unsafe(nil)); end def async_get_last_result; end # call-seq: # conn.get_result() -> PG::Result # conn.get_result() {|pg_result| block } # # Blocks waiting for the next result from a call to # #send_query (or another asynchronous command), and returns # it. Returns +nil+ if no more results are available. # # Note: call this function repeatedly until it returns +nil+, or else # you will not be able to issue further commands. # # If the optional code block is given, it will be passed result as an argument, # and the PG::Result object will automatically be cleared when the block terminates. # In this instance, conn.exec returns the value of the block. # # source://pg//lib/pg/connection.rb#337 def async_get_result; end # call-seq: # conn.isnonblocking() -> Boolean # # Returns the blocking status of the database connection. # Returns +true+ if the connection is set to nonblocking mode and +false+ if blocking. # # source://pg//lib/pg/connection.rb#408 def async_isnonblocking; end def async_prepare(*_arg0); end # call-seq: # conn.put_copy_data( buffer [, encoder] ) -> Boolean # # Transmits _buffer_ as copy data to the server. # Returns true if the data was sent, false if it was # not sent (false is only possible if the connection # is in nonblocking mode, and this command would block). # # _encoder_ can be a PG::Coder derivation (typically PG::TextEncoder::CopyRow). # This encodes the data fields given as _buffer_ from an Array of Strings to # PostgreSQL's COPY text format inclusive proper escaping. Optionally # the encoder can type cast the fields from various Ruby types in one step, # if PG::TextEncoder::CopyRow#type_map is set accordingly. # # Raises an exception if an error occurs. # # See also #copy_data. # # source://pg//lib/pg/connection.rb#432 def async_put_copy_data(buffer, encoder = T.unsafe(nil)); end # call-seq: # conn.put_copy_end( [ error_message ] ) -> Boolean # # Sends end-of-data indication to the server. # # _error_message_ is an optional parameter, and if set, # forces the COPY command to fail with the string # _error_message_. # # Returns true if the end-of-data was sent, #false* if it was # not sent (*false* is only possible if the connection # is in nonblocking mode, and this command would block). # # source://pg//lib/pg/connection.rb#462 def async_put_copy_end(*args); end def async_query(*_arg0); end # call-seq: # conn.reset() # # Resets the backend connection. This method closes the # backend connection and tries to re-connect. # # source://pg//lib/pg/connection.rb#504 def async_reset; end def async_set_client_encoding(_arg0); end # call-seq: # conn.setnonblocking(Boolean) -> nil # # Sets the nonblocking status of the connection. # In the blocking state, calls to #send_query # will block until the message is sent to the server, # but will not wait for the query results. # In the nonblocking state, calls to #send_query # will return an error if the socket is not ready for # writing. # Note: This function does not affect #exec, because # that function doesn't return until the server has # processed the query and returned the results. # # Returns +nil+. # # source://pg//lib/pg/connection.rb#394 def async_setnonblocking(enabled); end def backend_key; end def backend_pid; end def block(*_arg0); end # call-seq: # conn.cancel() -> String # # Requests cancellation of the command currently being # processed. # # Returns +nil+ on success, or a string containing the # error message if a failure occurs. # # source://pg//lib/pg/connection.rb#519 def cancel; end def client_encoding=(_arg0); end def close; end # Returns an array of Hashes with connection defaults. See ::conndefaults # for details. # # source://pg//lib/pg/connection.rb#275 def conndefaults; end # Returns a Hash with connection defaults. See ::conndefaults_hash # for details. # # source://pg//lib/pg/connection.rb#291 def conndefaults_hash; end def connect_poll; end def connection_needs_password; end def connection_used_password; end def conninfo; end # Return the Postgres connection info structure as a Hash keyed by option # keyword (as a Symbol). # # See also #conninfo # # source://pg//lib/pg/connection.rb#299 def conninfo_hash; end def consume_input; end # call-seq: # conn.copy_data( sql [, coder] ) {|sql_result| ... } -> PG::Result # # Execute a copy process for transferring data to or from the server. # # This issues the SQL COPY command via #exec. The response to this # (if there is no error in the command) is a PG::Result object that # is passed to the block, bearing a status code of PGRES_COPY_OUT or # PGRES_COPY_IN (depending on the specified copy direction). # The application should then use #put_copy_data or #get_copy_data # to receive or transmit data rows and should return from the block # when finished. # # #copy_data returns another PG::Result object when the data transfer # is complete. An exception is raised if some problem was encountered, # so it isn't required to make use of any of them. # At this point further SQL commands can be issued via #exec. # (It is not possible to execute other SQL commands using the same # connection while the COPY operation is in progress.) # # This method ensures, that the copy process is properly terminated # in case of client side or server side failures. Therefore, in case # of blocking mode of operation, #copy_data is preferred to raw calls # of #put_copy_data, #get_copy_data and #put_copy_end. # # _coder_ can be a PG::Coder derivation # (typically PG::TextEncoder::CopyRow or PG::TextDecoder::CopyRow). # This enables encoding of data fields given to #put_copy_data # or decoding of fields received by #get_copy_data. # # Example with CSV input format: # conn.exec "create table my_table (a text,b text,c text,d text)" # conn.copy_data "COPY my_table FROM STDIN CSV" do # conn.put_copy_data "some,data,to,copy\n" # conn.put_copy_data "more,data,to,copy\n" # end # This creates +my_table+ and inserts two CSV rows. # # The same with text format encoder PG::TextEncoder::CopyRow # and Array input: # enco = PG::TextEncoder::CopyRow.new # conn.copy_data "COPY my_table FROM STDIN", enco do # conn.put_copy_data ['some', 'data', 'to', 'copy'] # conn.put_copy_data ['more', 'data', 'to', 'copy'] # end # # Example with CSV output format: # conn.copy_data "COPY my_table TO STDOUT CSV" do # while row=conn.get_copy_data # p row # end # end # This prints all rows of +my_table+ to stdout: # "some,data,to,copy\n" # "more,data,to,copy\n" # # The same with text format decoder PG::TextDecoder::CopyRow # and Array output: # deco = PG::TextDecoder::CopyRow.new # conn.copy_data "COPY my_table TO STDOUT", deco do # while row=conn.get_copy_data # p row # end # end # This receives all rows of +my_table+ as ruby array: # ["some", "data", "to", "copy"] # ["more", "data", "to", "copy"] # # @raise [PG::NotInBlockingMode] # # source://pg//lib/pg/connection.rb#185 def copy_data(sql, coder = T.unsafe(nil)); end def db; end def decoder_for_get_copy_data; end def decoder_for_get_copy_data=(_arg0); end def describe_portal(_arg0); end def describe_prepared(_arg0); end def discard_results; end def encoder_for_put_copy_data; end def encoder_for_put_copy_data=(_arg0); end # call-seq: # conn.encrypt_password( password, username, algorithm=nil ) -> String # # This function is intended to be used by client applications that wish to send commands like ALTER USER joe PASSWORD 'pwd'. # It is good practice not to send the original cleartext password in such a command, because it might be exposed in command logs, activity displays, and so on. # Instead, use this function to convert the password to encrypted form before it is sent. # # The +password+ and +username+ arguments are the cleartext password, and the SQL name of the user it is for. # +algorithm+ specifies the encryption algorithm to use to encrypt the password. # Currently supported algorithms are +md5+ and +scram-sha-256+ (+on+ and +off+ are also accepted as aliases for +md5+, for compatibility with older server versions). # Note that support for +scram-sha-256+ was introduced in PostgreSQL version 10, and will not work correctly with older server versions. # If algorithm is omitted or +nil+, this function will query the server for the current value of the +password_encryption+ setting. # That can block, and will fail if the current transaction is aborted, or if the connection is busy executing another query. # If you wish to use the default algorithm for the server but want to avoid blocking, query +password_encryption+ yourself before calling #encrypt_password, and pass that value as the algorithm. # # Return value is the encrypted password. # The caller can assume the string doesn't contain any special characters that would require escaping. # # Available since PostgreSQL-10. # See also corresponding {libpq function}[https://www.postgresql.org/docs/current/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORDCONN]. # # source://pg//lib/pg/connection.rb#492 def encrypt_password(password, username, algorithm = T.unsafe(nil)); end def enter_pipeline_mode; end def error_message; end def escape(_arg0); end def escape_bytea(_arg0); end def escape_identifier(_arg0); end def escape_literal(_arg0); end def escape_string(_arg0); end def exec(*_arg0); end def exec_params(*_arg0); end def exec_prepared(*_arg0); end def exit_pipeline_mode; end def external_encoding; end def field_name_type; end def field_name_type=(_arg0); end def finish; end def finished?; end def flush; end def get_client_encoding; end # call-seq: # conn.get_copy_data( [ nonblock = false [, decoder = nil ]] ) -> Object # # Return one row of data, +nil+ # if the copy is done, or +false+ if the call would # block (only possible if _nonblock_ is true). # # If _decoder_ is not set or +nil+, data is returned as binary string. # # If _decoder_ is set to a PG::Coder derivation, the return type depends on this decoder. # PG::TextDecoder::CopyRow decodes the received data fields from one row of PostgreSQL's # COPY text format to an Array of Strings. # Optionally the decoder can type cast the single fields to various Ruby types in one step, # if PG::TextDecoder::CopyRow#type_map is set accordingly. # # See also #copy_data. # # source://pg//lib/pg/connection.rb#360 def get_copy_data(async = T.unsafe(nil), decoder = T.unsafe(nil)); end def get_last_result; end # call-seq: # conn.get_result() -> PG::Result # conn.get_result() {|pg_result| block } # # Blocks waiting for the next result from a call to # #send_query (or another asynchronous command), and returns # it. Returns +nil+ if no more results are available. # # Note: call this function repeatedly until it returns +nil+, or else # you will not be able to issue further commands. # # If the optional code block is given, it will be passed result as an argument, # and the PG::Result object will automatically be cleared when the block terminates. # In this instance, conn.exec returns the value of the block. # # source://pg//lib/pg/connection.rb#337 def get_result; end def host; end def hostaddr; end # Return a String representation of the object suitable for debugging. # # source://pg//lib/pg/connection.rb#97 def inspect; end def internal_encoding; end def internal_encoding=(_arg0); end def is_busy; end # call-seq: # conn.isnonblocking() -> Boolean # # Returns the blocking status of the database connection. # Returns +true+ if the connection is set to nonblocking mode and +false+ if blocking. # # source://pg//lib/pg/connection.rb#408 def isnonblocking; end def lo_close(_arg0); end def lo_creat(*_arg0); end def lo_create(_arg0); end def lo_export(_arg0, _arg1); end def lo_import(_arg0); end def lo_lseek(_arg0, _arg1, _arg2); end def lo_open(*_arg0); end def lo_read(_arg0, _arg1); end def lo_seek(_arg0, _arg1, _arg2); end def lo_tell(_arg0); end def lo_truncate(_arg0, _arg1); end def lo_unlink(_arg0); end def lo_write(_arg0, _arg1); end def loclose(_arg0); end def locreat(*_arg0); end def locreate(_arg0); end def loexport(_arg0, _arg1); end def loimport(_arg0); end def lolseek(_arg0, _arg1, _arg2); end def loopen(*_arg0); end def loread(_arg0, _arg1); end def loseek(_arg0, _arg1, _arg2); end def lotell(_arg0); end def lotruncate(_arg0, _arg1); end def lounlink(_arg0); end def lowrite(_arg0, _arg1); end def make_empty_pgresult(_arg0); end # call-seq: # conn.isnonblocking() -> Boolean # # Returns the blocking status of the database connection. # Returns +true+ if the connection is set to nonblocking mode and +false+ if blocking. # # source://pg//lib/pg/connection.rb#408 def nonblocking?; end def notifies; end def notifies_wait(*_arg0); end def options; end def parameter_status(_arg0); end def pass; end def pipeline_status; end def pipeline_sync; end def port; end def prepare(*_arg0); end def protocol_version; end # call-seq: # conn.put_copy_data( buffer [, encoder] ) -> Boolean # # Transmits _buffer_ as copy data to the server. # Returns true if the data was sent, false if it was # not sent (false is only possible if the connection # is in nonblocking mode, and this command would block). # # _encoder_ can be a PG::Coder derivation (typically PG::TextEncoder::CopyRow). # This encodes the data fields given as _buffer_ from an Array of Strings to # PostgreSQL's COPY text format inclusive proper escaping. Optionally # the encoder can type cast the fields from various Ruby types in one step, # if PG::TextEncoder::CopyRow#type_map is set accordingly. # # Raises an exception if an error occurs. # # See also #copy_data. # # source://pg//lib/pg/connection.rb#432 def put_copy_data(buffer, encoder = T.unsafe(nil)); end # call-seq: # conn.put_copy_end( [ error_message ] ) -> Boolean # # Sends end-of-data indication to the server. # # _error_message_ is an optional parameter, and if set, # forces the COPY command to fail with the string # _error_message_. # # Returns true if the end-of-data was sent, #false* if it was # not sent (*false* is only possible if the connection # is in nonblocking mode, and this command would block). # # source://pg//lib/pg/connection.rb#462 def put_copy_end(*args); end def query(*_arg0); end def quote_ident(_arg0); end # call-seq: # conn.reset() # # Resets the backend connection. This method closes the # backend connection and tries to re-connect. # # source://pg//lib/pg/connection.rb#504 def reset; end def reset_poll; end def reset_start; end def send_describe_portal(_arg0); end def send_describe_prepared(_arg0); end def send_flush_request; end def send_prepare(*_arg0); end def send_query(*_arg0); end def send_query_params(*_arg0); end def send_query_prepared(*_arg0); end def server_version; end def set_client_encoding(_arg0); end def set_default_encoding; end def set_error_context_visibility(_arg0); end def set_error_verbosity(_arg0); end def set_notice_processor; end def set_notice_receiver; end def set_single_row_mode; end # call-seq: # conn.setnonblocking(Boolean) -> nil # # Sets the nonblocking status of the connection. # In the blocking state, calls to #send_query # will block until the message is sent to the server, # but will not wait for the query results. # In the nonblocking state, calls to #send_query # will return an error if the socket is not ready for # writing. # Note: This function does not affect #exec, because # that function doesn't return until the server has # processed the query and returned the results. # # Returns +nil+. # # source://pg//lib/pg/connection.rb#394 def setnonblocking(enabled); end def socket; end def socket_io; end def ssl_attribute(_arg0); end def ssl_attribute_names; end # call-seq: # conn.ssl_attributes -> Hash # # Returns SSL-related information about the connection as key/value pairs # # The available attributes varies depending on the SSL library being used, # and the type of connection. # # See also #ssl_attribute # # source://pg//lib/pg/connection.rb#316 def ssl_attributes; end def ssl_in_use?; end def status; end def sync_cancel; end def sync_describe_portal(_arg0); end def sync_describe_prepared(_arg0); end def sync_encrypt_password(*_arg0); end def sync_exec(*_arg0); end def sync_exec_params(*_arg0); end def sync_exec_prepared(*_arg0); end def sync_flush; end def sync_get_copy_data(*_arg0); end def sync_get_last_result; end def sync_get_result; end def sync_isnonblocking; end def sync_prepare(*_arg0); end def sync_put_copy_data(*_arg0); end def sync_put_copy_end(*_arg0); end def sync_reset; end def sync_set_client_encoding(_arg0); end def sync_setnonblocking(_arg0); end def trace(_arg0); end # call-seq: # conn.transaction { |conn| ... } -> result of the block # # Executes a +BEGIN+ at the start of the block, # and a +COMMIT+ at the end of the block, or # +ROLLBACK+ if any exception occurs. # # source://pg//lib/pg/connection.rb#259 def transaction; end def transaction_status; end def tty; end def type_map_for_queries; end def type_map_for_queries=(_arg0); end def type_map_for_results; end def type_map_for_results=(_arg0); end def unescape_bytea(_arg0); end def untrace; end def user; end def wait_for_notify(*_arg0); end private # source://pg//lib/pg/connection.rb#574 def async_connect_or_reset(poll_meth); end def flush_data=(_arg0); end class << self # Switch between sync and async libpq API. # # PG::Connection.async_api = true # this is the default. # It sets an alias from #exec to #async_exec, #reset to #async_reset and so on. # # PG::Connection.async_api = false # sets an alias from #exec to #sync_exec, #reset to #sync_reset and so on. # # pg-1.1.0+ defaults to libpq's async API for query related blocking methods. # pg-1.3.0+ defaults to libpq's async API for all possibly blocking methods. # # _PLEASE_ _NOTE_: This method is not part of the public API and is for debug and development use only. # Do not use this method in production code. # Any issues with the default setting of async_api=true should be reported to the maintainers instead. # # source://pg//lib/pg/connection.rb#865 def async_api=(enable); end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def async_connect(*args); end # call-seq: # PG::Connection.ping(connection_hash) -> Integer # PG::Connection.ping(connection_string) -> Integer # PG::Connection.ping(host, port, options, tty, dbname, login, password) -> Integer # # Check server status. # # See PG::Connection.new for a description of the parameters. # # Returns one of: # [+PQPING_OK+] # server is accepting connections # [+PQPING_REJECT+] # server is alive but rejecting connections # [+PQPING_NO_RESPONSE+] # could not establish connection # [+PQPING_NO_ATTEMPT+] # connection not attempted (bad params) # # source://pg//lib/pg/connection.rb#790 def async_ping(*args); end # source://pg//lib/pg/connection.rb#842 def async_send_api=(enable); end def conndefaults; end # Return the Postgres connection defaults structure as a Hash keyed by option # keyword (as a Symbol). # # See also #conndefaults # # source://pg//lib/pg/connection.rb#283 def conndefaults_hash; end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def connect(*args); end # Convert Hash options to connection String # # Values are properly quoted and escaped. # # source://pg//lib/pg/connection.rb#45 def connect_hash_to_string(hash); end def connect_start(*_arg0); end def conninfo_parse(_arg0); end def encrypt_password(_arg0, _arg1); end def escape(_arg0); end def escape_bytea(_arg0); end def escape_string(_arg0); end def isthreadsafe; end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def new(*args); end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def open(*args); end # Parse the connection +args+ into a connection-parameter string. # See PG::Connection.new for valid arguments. # # It accepts: # * an option String kind of "host=name port=5432" # * an option Hash kind of {host: "name", port: 5432} # * URI string # * URI object # * positional arguments # # The method adds the option "fallback_application_name" if it isn't already set. # It returns a connection string with "key=value" pairs. # # source://pg//lib/pg/connection.rb#61 def parse_connect_args(*args); end # call-seq: # PG::Connection.ping(connection_hash) -> Integer # PG::Connection.ping(connection_string) -> Integer # PG::Connection.ping(host, port, options, tty, dbname, login, password) -> Integer # # Check server status. # # See PG::Connection.new for a description of the parameters. # # Returns one of: # [+PQPING_OK+] # server is accepting connections # [+PQPING_REJECT+] # server is alive but rejecting connections # [+PQPING_NO_RESPONSE+] # could not establish connection # [+PQPING_NO_ATTEMPT+] # connection not attempted (bad params) # # source://pg//lib/pg/connection.rb#790 def ping(*args); end # Quote a single +value+ for use in a connection-parameter string. # # source://pg//lib/pg/connection.rb#38 def quote_connstr(value); end def quote_ident(_arg0); end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def setdb(*args); end # call-seq: # PG::Connection.new -> conn # PG::Connection.new(connection_hash) -> conn # PG::Connection.new(connection_string) -> conn # PG::Connection.new(host, port, options, tty, dbname, user, password) -> conn # # Create a connection to the specified server. # # +connection_hash+ must be a ruby Hash with connection parameters. # See the {list of valid parameters}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS] in the PostgreSQL documentation. # # There are two accepted formats for +connection_string+: plain keyword = value strings and URIs. # See the documentation of {connection strings}[https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING]. # # The positional parameter form has the same functionality except that the missing parameters will always take on default values. The parameters are: # [+host+] # server hostname # [+port+] # server port number # [+options+] # backend options # [+tty+] # (ignored in all versions of PostgreSQL) # [+dbname+] # connecting database name # [+user+] # login user name # [+password+] # login password # # Examples: # # # Connect using all defaults # PG::Connection.new # # # As a Hash # PG::Connection.new( dbname: 'test', port: 5432 ) # # # As a String # PG::Connection.new( "dbname=test port=5432" ) # # # As an Array # PG::Connection.new( nil, 5432, nil, nil, 'test', nil, nil ) # # # As an URI # PG::Connection.new( "postgresql://user:pass@pgsql.example.com:5432/testdb?sslmode=require" ) # # If the Ruby default internal encoding is set (i.e., Encoding.default_internal != nil), the # connection will have its +client_encoding+ set accordingly. # # Raises a PG::Error if the connection fails. # # source://pg//lib/pg/connection.rb#695 def setdblogin(*args); end def sync_connect(*_arg0); end def sync_ping(*_arg0); end def unescape_bytea(_arg0); end private # source://pg//lib/pg/connection.rb#713 def connect_to_hosts(*args); end # source://pg//lib/pg/connection.rb#765 def host_is_named_pipe?(host_string); end end end # The order the options are passed to the ::connect method. # # source://pg//lib/pg/connection.rb#34 PG::Connection::CONNECT_ARGUMENT_ORDER = T.let(T.unsafe(nil), Array) class PG::ConnectionBad < ::PG::Error; end class PG::ConnectionDoesNotExist < ::PG::ConnectionException; end class PG::ConnectionException < ::PG::ServerError; end class PG::ConnectionFailure < ::PG::ConnectionException; end # source://pg//lib/pg/constants.rb#7 module PG::Constants; end PG::Constants::CONNECTION_AUTH_OK = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_AWAITING_RESPONSE = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_BAD = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_CHECK_STANDBY = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_CHECK_TARGET = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_CHECK_WRITABLE = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_CONSUME = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_GSS_STARTUP = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_MADE = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_NEEDED = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_OK = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_SETENV = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_SSL_STARTUP = T.let(T.unsafe(nil), Integer) PG::Constants::CONNECTION_STARTED = T.let(T.unsafe(nil), Integer) PG::Constants::DEF_PGPORT = T.let(T.unsafe(nil), Integer) PG::Constants::INVALID_OID = T.let(T.unsafe(nil), Integer) PG::Constants::INV_READ = T.let(T.unsafe(nil), Integer) PG::Constants::INV_WRITE = T.let(T.unsafe(nil), Integer) PG::Constants::InvalidOid = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_BAD_RESPONSE = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_COMMAND_OK = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_COPY_BOTH = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_COPY_IN = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_COPY_OUT = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_EMPTY_QUERY = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_FATAL_ERROR = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_NONFATAL_ERROR = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_PIPELINE_ABORTED = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_PIPELINE_SYNC = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_POLLING_FAILED = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_POLLING_OK = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_POLLING_READING = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_POLLING_WRITING = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_SINGLE_TUPLE = T.let(T.unsafe(nil), Integer) PG::Constants::PGRES_TUPLES_OK = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_COLUMN_NAME = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_CONSTRAINT_NAME = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_CONTEXT = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_DATATYPE_NAME = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_INTERNAL_POSITION = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_INTERNAL_QUERY = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_MESSAGE_DETAIL = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_MESSAGE_HINT = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_MESSAGE_PRIMARY = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SCHEMA_NAME = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SEVERITY = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SEVERITY_NONLOCALIZED = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SOURCE_FILE = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SOURCE_FUNCTION = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SOURCE_LINE = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_SQLSTATE = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_STATEMENT_POSITION = T.let(T.unsafe(nil), Integer) PG::Constants::PG_DIAG_TABLE_NAME = T.let(T.unsafe(nil), Integer) PG::Constants::PQERRORS_DEFAULT = T.let(T.unsafe(nil), Integer) PG::Constants::PQERRORS_SQLSTATE = T.let(T.unsafe(nil), Integer) PG::Constants::PQERRORS_TERSE = T.let(T.unsafe(nil), Integer) PG::Constants::PQERRORS_VERBOSE = T.let(T.unsafe(nil), Integer) PG::Constants::PQPING_NO_ATTEMPT = T.let(T.unsafe(nil), Integer) PG::Constants::PQPING_NO_RESPONSE = T.let(T.unsafe(nil), Integer) PG::Constants::PQPING_OK = T.let(T.unsafe(nil), Integer) PG::Constants::PQPING_REJECT = T.let(T.unsafe(nil), Integer) PG::Constants::PQSHOW_CONTEXT_ALWAYS = T.let(T.unsafe(nil), Integer) PG::Constants::PQSHOW_CONTEXT_ERRORS = T.let(T.unsafe(nil), Integer) PG::Constants::PQSHOW_CONTEXT_NEVER = T.let(T.unsafe(nil), Integer) PG::Constants::PQTRANS_ACTIVE = T.let(T.unsafe(nil), Integer) PG::Constants::PQTRANS_IDLE = T.let(T.unsafe(nil), Integer) PG::Constants::PQTRANS_INERROR = T.let(T.unsafe(nil), Integer) PG::Constants::PQTRANS_INTRANS = T.let(T.unsafe(nil), Integer) PG::Constants::PQTRANS_UNKNOWN = T.let(T.unsafe(nil), Integer) PG::Constants::PQ_PIPELINE_ABORTED = T.let(T.unsafe(nil), Integer) PG::Constants::PQ_PIPELINE_OFF = T.let(T.unsafe(nil), Integer) PG::Constants::PQ_PIPELINE_ON = T.let(T.unsafe(nil), Integer) PG::Constants::SEEK_CUR = T.let(T.unsafe(nil), Integer) PG::Constants::SEEK_END = T.let(T.unsafe(nil), Integer) PG::Constants::SEEK_SET = T.let(T.unsafe(nil), Integer) # source://pg//lib/pg/coder.rb#87 class PG::CopyCoder < ::PG::Coder def delimiter; end def delimiter=(_arg0); end def null_string; end def null_string=(_arg0); end # source://pg//lib/pg/coder.rb#88 def to_h; end def type_map; end def type_map=(_arg0); end end class PG::CopyDecoder < ::PG::CopyCoder include ::PG::Coder::BinaryFormatting end class PG::CopyEncoder < ::PG::CopyCoder include ::PG::Coder::BinaryFormatting end class PG::CrashShutdown < ::PG::OperatorIntervention; end class PG::DataCorrupted < ::PG::InternalError; end class PG::DataException < ::PG::ServerError; end class PG::DatabaseDropped < ::PG::OperatorIntervention; end class PG::DatatypeMismatch < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DatetimeFieldOverflow < ::PG::DataException; end class PG::DependentObjectsStillExist < ::PG::DependentPrivilegeDescriptorsStillExist; end class PG::DependentPrivilegeDescriptorsStillExist < ::PG::ServerError; end class PG::DiagnosticsException < ::PG::ServerError; end class PG::DiskFull < ::PG::InsufficientResources; end class PG::DivisionByZero < ::PG::DataException; end class PG::DuplicateAlias < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateColumn < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateCursor < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateDatabase < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateFile < ::PG::SystemError; end class PG::DuplicateFunction < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateJsonObjectKeyValue < ::PG::DataException; end class PG::DuplicateObject < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicatePstatement < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateSchema < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::DuplicateTable < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::EREContainingSqlNotPermitted < ::PG::ExternalRoutineException; end class PG::EREModifyingSqlDataNotPermitted < ::PG::ExternalRoutineException; end class PG::EREProhibitedSqlStatementAttempted < ::PG::ExternalRoutineException; end class PG::EREReadingSqlDataNotPermitted < ::PG::ExternalRoutineException; end class PG::ERIEEventTriggerProtocolViolated < ::PG::ExternalRoutineInvocationException; end class PG::ERIEInvalidSqlstateReturned < ::PG::ExternalRoutineInvocationException; end class PG::ERIENullValueNotAllowed < ::PG::ExternalRoutineInvocationException; end class PG::ERIESrfProtocolViolated < ::PG::ExternalRoutineInvocationException; end class PG::ERIETriggerProtocolViolated < ::PG::ExternalRoutineInvocationException; end PG::ERROR_CLASSES = T.let(T.unsafe(nil), Hash) # source://pg//lib/pg/exceptions.rb#9 class PG::Error < ::StandardError # @return [Error] a new instance of Error # # source://pg//lib/pg/exceptions.rb#10 def initialize(msg = T.unsafe(nil), connection: T.unsafe(nil), result: T.unsafe(nil)); end def connection; end def error; end def result; end end class PG::ErrorInAssignment < ::PG::DataException; end class PG::EscapeCharacterConflict < ::PG::DataException; end class PG::ExclusionViolation < ::PG::IntegrityConstraintViolation; end class PG::ExternalRoutineException < ::PG::ServerError; end class PG::ExternalRoutineInvocationException < ::PG::ServerError; end class PG::FdwColumnNameNotFound < ::PG::FdwError; end class PG::FdwDynamicParameterValueNeeded < ::PG::FdwError; end class PG::FdwError < ::PG::ServerError; end class PG::FdwFunctionSequenceError < ::PG::FdwError; end class PG::FdwInconsistentDescriptorInformation < ::PG::FdwError; end class PG::FdwInvalidAttributeValue < ::PG::FdwError; end class PG::FdwInvalidColumnName < ::PG::FdwError; end class PG::FdwInvalidColumnNumber < ::PG::FdwError; end class PG::FdwInvalidDataType < ::PG::FdwError; end class PG::FdwInvalidDataTypeDescriptors < ::PG::FdwError; end class PG::FdwInvalidDescriptorFieldIdentifier < ::PG::FdwError; end class PG::FdwInvalidHandle < ::PG::FdwError; end class PG::FdwInvalidOptionIndex < ::PG::FdwError; end class PG::FdwInvalidOptionName < ::PG::FdwError; end class PG::FdwInvalidStringFormat < ::PG::FdwError; end class PG::FdwInvalidStringLengthOrBufferLength < ::PG::FdwError; end class PG::FdwInvalidUseOfNullPointer < ::PG::FdwError; end class PG::FdwNoSchemas < ::PG::FdwError; end class PG::FdwOptionNameNotFound < ::PG::FdwError; end class PG::FdwOutOfMemory < ::PG::FdwError; end class PG::FdwReplyHandle < ::PG::FdwError; end class PG::FdwSchemaNotFound < ::PG::FdwError; end class PG::FdwTableNotFound < ::PG::FdwError; end class PG::FdwTooManyHandles < ::PG::FdwError; end class PG::FdwUnableToCreateExecution < ::PG::FdwError; end class PG::FdwUnableToCreateReply < ::PG::FdwError; end class PG::FdwUnableToEstablishConnection < ::PG::FdwError; end class PG::FeatureNotSupported < ::PG::ServerError; end class PG::FloatingPointException < ::PG::DataException; end class PG::ForeignKeyViolation < ::PG::IntegrityConstraintViolation; end class PG::GeneratedAlways < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::GroupingError < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::HeldCursorRequiresSameIsolationLevel < ::PG::InvalidTransactionState; end class PG::IdleInTransactionSessionTimeout < ::PG::InvalidTransactionState; end class PG::IdleSessionTimeout < ::PG::OperatorIntervention; end class PG::InFailedSqlTransaction < ::PG::InvalidTransactionState; end class PG::InappropriateAccessModeForBranchTransaction < ::PG::InvalidTransactionState; end class PG::InappropriateIsolationLevelForBranchTransaction < ::PG::InvalidTransactionState; end class PG::IndeterminateCollation < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::IndeterminateDatatype < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::IndexCorrupted < ::PG::InternalError; end class PG::IndicatorOverflow < ::PG::DataException; end class PG::InsufficientPrivilege < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InsufficientResources < ::PG::ServerError; end class PG::IntegrityConstraintViolation < ::PG::ServerError; end class PG::InternalError < ::PG::ServerError; end class PG::IntervalFieldOverflow < ::PG::DataException; end class PG::InvalidArgumentForLog < ::PG::DataException; end class PG::InvalidArgumentForNthValue < ::PG::DataException; end class PG::InvalidArgumentForNtile < ::PG::DataException; end class PG::InvalidArgumentForPowerFunction < ::PG::DataException; end class PG::InvalidArgumentForSqlJsonDatetimeFunction < ::PG::DataException; end class PG::InvalidArgumentForWidthBucketFunction < ::PG::DataException; end class PG::InvalidAuthorizationSpecification < ::PG::ServerError; end class PG::InvalidBinaryRepresentation < ::PG::DataException; end class PG::InvalidCatalogName < ::PG::ServerError; end class PG::InvalidChangeOfResultFields < ::PG::Error; end class PG::InvalidCharacterValueForCast < ::PG::DataException; end class PG::InvalidColumnDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidColumnReference < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidCursorDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidCursorName < ::PG::ServerError; end class PG::InvalidCursorState < ::PG::ServerError; end class PG::InvalidDatabaseDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidDatetimeFormat < ::PG::DataException; end class PG::InvalidEscapeCharacter < ::PG::DataException; end class PG::InvalidEscapeOctet < ::PG::DataException; end class PG::InvalidEscapeSequence < ::PG::DataException; end class PG::InvalidForeignKey < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidFunctionDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidGrantOperation < ::PG::InvalidGrantor; end class PG::InvalidGrantor < ::PG::ServerError; end class PG::InvalidIndicatorParameterValue < ::PG::DataException; end class PG::InvalidJsonText < ::PG::DataException; end class PG::InvalidName < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidObjectDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidParameterValue < ::PG::DataException; end class PG::InvalidPassword < ::PG::InvalidAuthorizationSpecification; end class PG::InvalidPrecedingOrFollowingSize < ::PG::DataException; end class PG::InvalidPstatementDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidRecursion < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidRegularExpression < ::PG::DataException; end class PG::InvalidResultStatus < ::PG::Error; end class PG::InvalidRoleSpecification < ::PG::ServerError; end class PG::InvalidRowCountInLimitClause < ::PG::DataException; end class PG::InvalidRowCountInResultOffsetClause < ::PG::DataException; end class PG::InvalidSchemaDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidSchemaName < ::PG::ServerError; end class PG::InvalidSqlJsonSubscript < ::PG::DataException; end class PG::InvalidSqlStatementName < ::PG::ServerError; end class PG::InvalidTableDefinition < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::InvalidTablesampleArgument < ::PG::DataException; end class PG::InvalidTablesampleRepeat < ::PG::DataException; end class PG::InvalidTextRepresentation < ::PG::DataException; end class PG::InvalidTimeZoneDisplacementValue < ::PG::DataException; end class PG::InvalidTransactionInitiation < ::PG::ServerError; end class PG::InvalidTransactionState < ::PG::ServerError; end class PG::InvalidTransactionTermination < ::PG::ServerError; end class PG::InvalidUseOfEscapeCharacter < ::PG::DataException; end class PG::InvalidXmlComment < ::PG::DataException; end class PG::InvalidXmlContent < ::PG::DataException; end class PG::InvalidXmlDocument < ::PG::DataException; end class PG::InvalidXmlProcessingInstruction < ::PG::DataException; end class PG::IoError < ::PG::SystemError; end class PG::LEInvalidSpecification < ::PG::LocatorException; end class PG::LocatorException < ::PG::ServerError; end class PG::LockFileExists < ::PG::ConfigFileError; end class PG::LockNotAvailable < ::PG::ObjectNotInPrerequisiteState; end # source://pg//lib/pg/exceptions.rb#19 class PG::LostCopyState < ::PG::Error; end class PG::MoreThanOneSqlJsonItem < ::PG::DataException; end class PG::MostSpecificTypeMismatch < ::PG::DataException; end class PG::NameTooLong < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::NoActiveSqlTransaction < ::PG::InvalidTransactionState; end class PG::NoActiveSqlTransactionForBranchTransaction < ::PG::InvalidTransactionState; end class PG::NoDataFound < ::PG::PlpgsqlError; end class PG::NoResultError < ::PG::Error; end class PG::NoSqlJsonItem < ::PG::DataException; end class PG::NonNumericSqlJsonItem < ::PG::DataException; end class PG::NonUniqueKeysInAJsonObject < ::PG::DataException; end class PG::NonstandardUseOfEscapeCharacter < ::PG::DataException; end # source://pg//lib/pg/exceptions.rb#17 class PG::NotAllCopyDataRetrieved < ::PG::Error; end class PG::NotAnXmlDocument < ::PG::DataException; end # source://pg//lib/pg/exceptions.rb#21 class PG::NotInBlockingMode < ::PG::Error; end class PG::NotNullViolation < ::PG::IntegrityConstraintViolation; end class PG::NullValueNoIndicatorParameter < ::PG::DataException; end class PG::NullValueNotAllowed < ::PG::DataException; end class PG::NumericValueOutOfRange < ::PG::DataException; end class PG::ObjectInUse < ::PG::ObjectNotInPrerequisiteState; end class PG::ObjectNotInPrerequisiteState < ::PG::ServerError; end class PG::OperatorIntervention < ::PG::ServerError; end class PG::OutOfMemory < ::PG::InsufficientResources; end # source://pg//lib/pg/postgresql_lib_path.rb#2 PG::POSTGRESQL_LIB_PATH = T.let(T.unsafe(nil), String) class PG::PlpgsqlError < ::PG::ServerError; end class PG::ProgramLimitExceeded < ::PG::ServerError; end class PG::ProtocolViolation < ::PG::ConnectionException; end class PG::QueryCanceled < ::PG::OperatorIntervention; end class PG::RaiseException < ::PG::PlpgsqlError; end class PG::ReadOnlySqlTransaction < ::PG::InvalidTransactionState; end # source://pg//lib/pg/coder.rb#97 class PG::RecordCoder < ::PG::Coder # source://pg//lib/pg/coder.rb#98 def to_h; end def type_map; end def type_map=(_arg0); end end class PG::RecordDecoder < ::PG::RecordCoder; end class PG::RecordEncoder < ::PG::RecordCoder; end class PG::ReservedName < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::RestrictViolation < ::PG::IntegrityConstraintViolation; end # source://pg//lib/pg/result.rb#7 class PG::Result include ::Enumerable include ::PG::Constants def [](_arg0); end def autoclear?; end def check; end def check_result; end def clear; end def cleared?; end def cmd_status; end def cmd_tuples; end def cmdtuples; end def column_values(_arg0); end def each; end def each_row; end def error_field(_arg0); end def error_message; end def fformat(_arg0); end def field_name_type; end def field_name_type=(_arg0); end # Set the data type for all field name returning methods. # # +type+: a Symbol defining the field name type. # # This method is equal to #field_name_type= , but returns self, so that calls can be chained. # # source://pg//lib/pg/result.rb#26 def field_names_as(type); end def field_values(_arg0); end def fields; end def fmod(_arg0); end def fname(_arg0); end def fnumber(_arg0); end def fsize(_arg0); end def ftable(_arg0); end def ftablecol(_arg0); end def ftype(_arg0); end def getisnull(_arg0, _arg1); end def getlength(_arg0, _arg1); end def getvalue(_arg0, _arg1); end # Return a String representation of the object suitable for debugging. # # source://pg//lib/pg/result.rb#32 def inspect; end # Apply a type map for all value retrieving methods. # # +type_map+: a PG::TypeMap instance. # # This method is equal to #type_map= , but returns self, so that calls can be chained. # # See also PG::BasicTypeMapForResults # # source://pg//lib/pg/result.rb#16 def map_types!(type_map); end def nfields; end def nparams; end def ntuples; end def num_fields; end def num_tuples; end def oid_value; end def paramtype(_arg0); end def res_status(_arg0); end def result_error_field(_arg0); end def result_error_message; end def result_status; end def result_verbose_error_message(_arg0, _arg1); end def stream_each; end def stream_each_row; end def stream_each_tuple; end def tuple(_arg0); end def tuple_values(_arg0); end def type_map; end def type_map=(_arg0); end def values; end def verbose_error_message(_arg0, _arg1); end end class PG::SEInvalidSpecification < ::PG::SavepointException; end class PG::SREFunctionExecutedNoReturnStatement < ::PG::SqlRoutineException; end class PG::SREModifyingSqlDataNotPermitted < ::PG::SqlRoutineException; end class PG::SREProhibitedSqlStatementAttempted < ::PG::SqlRoutineException; end class PG::SREReadingSqlDataNotPermitted < ::PG::SqlRoutineException; end class PG::SavepointException < ::PG::ServerError; end class PG::SchemaAndDataStatementMixingNotSupported < ::PG::InvalidTransactionState; end class PG::SequenceGeneratorLimitExceeded < ::PG::DataException; end class PG::ServerError < ::PG::Error; end class PG::SimpleCoder < ::PG::Coder; end class PG::SimpleDecoder < ::PG::SimpleCoder; end class PG::SimpleEncoder < ::PG::SimpleCoder; end class PG::SingletonSqlJsonItemRequired < ::PG::DataException; end class PG::SnapshotTooOld < ::PG::ServerError; end class PG::SqlJsonArrayNotFound < ::PG::DataException; end class PG::SqlJsonItemCannotBeCastToTargetType < ::PG::DataException; end class PG::SqlJsonMemberNotFound < ::PG::DataException; end class PG::SqlJsonNumberNotFound < ::PG::DataException; end class PG::SqlJsonObjectNotFound < ::PG::DataException; end class PG::SqlJsonScalarRequired < ::PG::DataException; end class PG::SqlRoutineException < ::PG::ServerError; end class PG::SqlStatementNotYetComplete < ::PG::ServerError; end class PG::SqlclientUnableToEstablishSqlconnection < ::PG::ConnectionException; end class PG::SqlserverRejectedEstablishmentOfSqlconnection < ::PG::ConnectionException; end class PG::StackedDiagnosticsAccessedWithoutActiveHandler < ::PG::DiagnosticsException; end class PG::StatementTooComplex < ::PG::ProgramLimitExceeded; end class PG::StringDataLengthMismatch < ::PG::DataException; end class PG::StringDataRightTruncation < ::PG::DataException; end class PG::SubstringError < ::PG::DataException; end class PG::SyntaxError < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::SyntaxErrorOrAccessRuleViolation < ::PG::ServerError; end class PG::SystemError < ::PG::ServerError; end class PG::TRDeadlockDetected < ::PG::TransactionRollback; end class PG::TRIntegrityConstraintViolation < ::PG::TransactionRollback; end class PG::TRSerializationFailure < ::PG::TransactionRollback; end class PG::TRStatementCompletionUnknown < ::PG::TransactionRollback; end # source://pg//lib/pg/text_decoder.rb#8 module PG::TextDecoder; end class PG::TextDecoder::Array < ::PG::CompositeDecoder def decode(*_arg0); end end PG::TextDecoder::Array::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Boolean < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Boolean::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Bytea < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Bytea::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::CopyRow < ::PG::CopyDecoder def decode(*_arg0); end end PG::TextDecoder::CopyRow::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_decoder.rb#9 class PG::TextDecoder::Date < ::PG::SimpleDecoder # source://pg//lib/pg/text_decoder.rb#10 def decode(string, tuple = T.unsafe(nil), field = T.unsafe(nil)); end end class PG::TextDecoder::Float < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Float::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::FromBase64 < ::PG::CompositeDecoder def decode(*_arg0); end end PG::TextDecoder::FromBase64::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Identifier < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Identifier::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Inet < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Inet::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Integer < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Integer::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_decoder.rb#19 class PG::TextDecoder::JSON < ::PG::SimpleDecoder # source://pg//lib/pg/text_decoder.rb#20 def decode(string, tuple = T.unsafe(nil), field = T.unsafe(nil)); end end class PG::TextDecoder::Numeric < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Numeric::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Record < ::PG::RecordDecoder def decode(*_arg0); end end PG::TextDecoder::Record::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::String < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::String::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextDecoder::Timestamp < ::PG::SimpleDecoder def decode(*_arg0); end end PG::TextDecoder::Timestamp::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_decoder.rb#36 class PG::TextDecoder::TimestampLocal < ::PG::TextDecoder::Timestamp # @return [TimestampLocal] a new instance of TimestampLocal # # source://pg//lib/pg/text_decoder.rb#37 def initialize(params = T.unsafe(nil)); end end # Convenience classes for timezone options # # source://pg//lib/pg/text_decoder.rb#26 class PG::TextDecoder::TimestampUtc < ::PG::TextDecoder::Timestamp # @return [TimestampUtc] a new instance of TimestampUtc # # source://pg//lib/pg/text_decoder.rb#27 def initialize(params = T.unsafe(nil)); end end # source://pg//lib/pg/text_decoder.rb#31 class PG::TextDecoder::TimestampUtcToLocal < ::PG::TextDecoder::Timestamp # @return [TimestampUtcToLocal] a new instance of TimestampUtcToLocal # # source://pg//lib/pg/text_decoder.rb#32 def initialize(params = T.unsafe(nil)); end end # source://pg//lib/pg/text_decoder.rb#44 PG::TextDecoder::TimestampWithTimeZone = PG::TextDecoder::Timestamp # For backward compatibility: # # source://pg//lib/pg/text_decoder.rb#43 PG::TextDecoder::TimestampWithoutTimeZone = PG::TextDecoder::TimestampLocal # source://pg//lib/pg/text_encoder.rb#8 module PG::TextEncoder; end class PG::TextEncoder::Array < ::PG::CompositeEncoder def encode(*_arg0); end end PG::TextEncoder::Array::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::Boolean < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Boolean::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::Bytea < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Bytea::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::CopyRow < ::PG::CopyEncoder def encode(*_arg0); end end PG::TextEncoder::CopyRow::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_encoder.rb#9 class PG::TextEncoder::Date < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#10 def encode(value); end end class PG::TextEncoder::Float < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Float::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::Identifier < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Identifier::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_encoder.rb#39 class PG::TextEncoder::Inet < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#40 def encode(value); end end class PG::TextEncoder::Integer < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Integer::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_encoder.rb#33 class PG::TextEncoder::JSON < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#34 def encode(value); end end class PG::TextEncoder::Numeric < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::Numeric::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::QuotedLiteral < ::PG::CompositeEncoder def encode(*_arg0); end end PG::TextEncoder::QuotedLiteral::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::Record < ::PG::RecordEncoder def encode(*_arg0); end end PG::TextEncoder::Record::CFUNC = T.let(T.unsafe(nil), Object) class PG::TextEncoder::String < ::PG::SimpleEncoder def encode(*_arg0); end end PG::TextEncoder::String::CFUNC = T.let(T.unsafe(nil), Object) # source://pg//lib/pg/text_encoder.rb#21 class PG::TextEncoder::TimestampUtc < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#22 def encode(value); end end # source://pg//lib/pg/text_encoder.rb#27 class PG::TextEncoder::TimestampWithTimeZone < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#28 def encode(value); end end # source://pg//lib/pg/text_encoder.rb#15 class PG::TextEncoder::TimestampWithoutTimeZone < ::PG::SimpleEncoder # source://pg//lib/pg/text_encoder.rb#16 def encode(value); end end class PG::TextEncoder::ToBase64 < ::PG::CompositeEncoder def encode(*_arg0); end end PG::TextEncoder::ToBase64::CFUNC = T.let(T.unsafe(nil), Object) class PG::TooManyArguments < ::PG::ProgramLimitExceeded; end class PG::TooManyColumns < ::PG::ProgramLimitExceeded; end class PG::TooManyConnections < ::PG::InsufficientResources; end class PG::TooManyJsonArrayElements < ::PG::DataException; end class PG::TooManyJsonObjectMembers < ::PG::DataException; end class PG::TooManyRows < ::PG::PlpgsqlError; end class PG::TransactionResolutionUnknown < ::PG::ConnectionException; end class PG::TransactionRollback < ::PG::ServerError; end class PG::TriggeredActionException < ::PG::ServerError; end class PG::TriggeredDataChangeViolation < ::PG::ServerError; end class PG::TrimError < ::PG::DataException; end # source://pg//lib/pg/tuple.rb#7 class PG::Tuple include ::Enumerable def [](_arg0); end def each; end # source://pg//lib/pg/tuple.rb#23 def each_key(&block); end def each_value; end def fetch(*_arg0); end # @return [Boolean] # # source://pg//lib/pg/tuple.rb#14 def has_key?(key); end def index(_arg0); end # Return a String representation of the object suitable for debugging. # # source://pg//lib/pg/tuple.rb#10 def inspect; end # @return [Boolean] # # source://pg//lib/pg/tuple.rb#14 def key?(key); end # source://pg//lib/pg/tuple.rb#19 def keys; end def length; end def size; end def values; end private def field_map; end def field_names; end def marshal_dump; end def marshal_load(_arg0); end end class PG::TypeMap; end module PG::TypeMap::DefaultTypeMappable def default_type_map; end def default_type_map=(_arg0); end def with_default_type_map(_arg0); end end class PG::TypeMapAllStrings < ::PG::TypeMap; end class PG::TypeMapByClass < ::PG::TypeMap include ::PG::TypeMap::DefaultTypeMappable def [](_arg0); end def []=(_arg0, _arg1); end def coders; end end # source://pg//lib/pg/type_map_by_column.rb#6 class PG::TypeMapByColumn < ::PG::TypeMap include ::PG::TypeMap::DefaultTypeMappable def initialize(_arg0); end def coders; end # source://pg//lib/pg/type_map_by_column.rb#12 def inspect; end # Returns the type oids of the assigned coders. # # source://pg//lib/pg/type_map_by_column.rb#8 def oids; end end class PG::TypeMapByMriType < ::PG::TypeMap include ::PG::TypeMap::DefaultTypeMappable def [](_arg0); end def []=(_arg0, _arg1); end def coders; end end class PG::TypeMapByOid < ::PG::TypeMap include ::PG::TypeMap::DefaultTypeMappable def add_coder(_arg0); end def build_column_map(_arg0); end def coders; end def max_rows_for_online_lookup; end def max_rows_for_online_lookup=(_arg0); end def rm_coder(_arg0, _arg1); end end class PG::TypeMapInRuby < ::PG::TypeMap include ::PG::TypeMap::DefaultTypeMappable def typecast_copy_get(_arg0, _arg1, _arg2, _arg3); end def typecast_query_param(_arg0, _arg1); end def typecast_result_value(_arg0, _arg1, _arg2); end end class PG::UnableToSend < ::PG::Error; end class PG::UndefinedColumn < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::UndefinedFile < ::PG::SystemError; end class PG::UndefinedFunction < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::UndefinedObject < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::UndefinedParameter < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::UndefinedTable < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::UniqueViolation < ::PG::IntegrityConstraintViolation; end class PG::UnsafeNewEnumValueUsage < ::PG::ObjectNotInPrerequisiteState; end class PG::UnterminatedCString < ::PG::DataException; end class PG::UntranslatableCharacter < ::PG::DataException; end # Library version # # source://pg//lib/pg/version.rb#3 PG::VERSION = T.let(T.unsafe(nil), String) class PG::WindowingError < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::WithCheckOptionViolation < ::PG::ServerError; end class PG::WrongObjectType < ::PG::SyntaxErrorOrAccessRuleViolation; end class PG::ZeroLengthCharacterString < ::PG::DataException; end