Class: PG::TextEncoder::CopyRow
- Inherits:
-
CopyEncoder
- Object
- Coder
- CopyCoder
- CopyEncoder
- PG::TextEncoder::CopyRow
- Defined in:
- ext/pg_copy_coder.c
Overview
This class encodes one row of arbitrary columns for transmission as COPY data in text format. See the command[http://www.postgresql.org/docs/current/static/sql-copy.html] for description of the format.
It is intended to be used in conjunction with PG::Connection#put_copy_data .
The columns are expected as Array of values. The single values are encoded as defined in the assigned #type_map. If no type_map was assigned, all values are converted to strings by PG::TextEncoder::String.
Example with default type map ( TypeMapAllStrings ):
conn.exec "create table my_table (a text,b int,c bool)"
enco = PG::TextEncoder::CopyRow.new
conn.copy_data "COPY my_table FROM STDIN", enco do
conn.put_copy_data ["astring", 7, false]
conn.put_copy_data ["string2", 42, true]
end
This creates my_table and inserts two rows.
It is possible to manually assign a type encoder for each column per PG::TypeMapByColumn, or to make use of PG::BasicTypeMapBasedOnResult to assign them based on the table OIDs.
See also PG::TextDecoder::CopyRow for the decoding direction with PG::Connection#get_copy_data .
Constant Summary
Constants inherited from Coder
Coder::FORMAT_ERROR_MASK, Coder::FORMAT_ERROR_TO_PARTIAL, Coder::FORMAT_ERROR_TO_RAISE, Coder::FORMAT_ERROR_TO_STRING, Coder::TIMESTAMP_APP_LOCAL, Coder::TIMESTAMP_APP_UTC, Coder::TIMESTAMP_DB_LOCAL, Coder::TIMESTAMP_DB_UTC
Instance Attribute Summary
Attributes inherited from Coder
Method Summary
Methods inherited from CopyCoder
#delimiter, #delimiter=, #null_string, #null_string=, #to_h, #type_map, #type_map=
Methods inherited from Coder
#==, #dup, #flags, #flags=, #format, #format=, #initialize, #inspect, #inspect_short, #marshal_dump, #marshal_load, #oid, #oid=, #to_h
Constructor Details
This class inherits a constructor from PG::Coder