123456789_123456789_123456789_123456789_123456789_

Class: PG::TextEncoder::QuotedLiteral

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: PG::CompositeEncoder
Defined in: ext/pg_text_encoder.c

Overview

This is the encoder class for PostgreSQL literals.

A literal is quoted and escaped by the ' character, so that it can be inserted into SQL queries. It works equal to Connection#escape_literal, but integrates into the type cast system of ruby-pg.

Both expressions have the same result:

conn.escape_literal(PG::TextEncoder::Array.new.encode(["v1","v2"])) # => "'{v1,v2}'"
PG::TextEncoder::QuotedLiteral.new(elements_type: PG::TextEncoder::Array.new).encode(["v1","v2"]) # => "'{v1,v2}'"

While escape_literal requires a intermediate ruby string allocation, QuotedLiteral encodes the values directly to the result string.

Constant Summary

::PG::Coder - Inherited

FORMAT_ERROR_MASK, FORMAT_ERROR_TO_PARTIAL, FORMAT_ERROR_TO_RAISE, FORMAT_ERROR_TO_STRING, TIMESTAMP_APP_LOCAL, TIMESTAMP_APP_UTC, TIMESTAMP_DB_LOCAL, TIMESTAMP_DB_UTC

Class Method Summary

::PG::Coder - Inherited

.new

Create a new coder object based on the attribute Hash.

Instance Attribute Summary

::PG::CompositeCoder - Inherited

#delimiter

The character that separates values within the composite type.

#delimiter=

Specifies the character that separates values within the composite type.

#elements_type,
#needs_quotation=

Specifies whether the assigned #elements_type requires quotation marks to be transferred safely.

#needs_quotation?

Specifies whether the assigned #elements_type requires quotation marks to be transferred safely.

::PG::Coder - Inherited

#flags

Get current bitwise OR-ed coder flags.

#flags=

Set coder specific bitwise OR-ed flags.

#format

The format code that is sent alongside with an encoded query parameter value.

#format=

Specifies the format code that is sent alongside with an encoded query parameter value.

#name

Name of the coder or the corresponding data type.

#oid

The type OID that is sent alongside with an encoded query parameter value.

#oid=

Specifies the type OID that is sent alongside with an encoded query parameter value.

Instance Method Summary

::PG::CompositeCoder - Inherited

#elements_type=

Specifies the ::PG::Coder object that is used to encode or decode the single elementes of this composite type.

#inspect, #to_h

::PG::Coder - Inherited

#==, #dup, #inspect, #inspect_short, #marshal_dump, #marshal_load,
#to_h

Returns coder attributes as Hash.

Constructor Details

This class inherits a constructor from PG::Coder