Class: PG::CopyCoder

Inherits:
Coder
  • Object
show all
Defined in:
ext/pg_copy_coder.c,
lib/pg/coder.rb,
ext/pg_copy_coder.c

Overview

This is the base class for all type cast classes for COPY data,

Direct Known Subclasses

CopyDecoder, CopyEncoder

Constant Summary

Constants inherited from Coder

PG::Coder::FORMAT_ERROR_MASK, PG::Coder::FORMAT_ERROR_TO_PARTIAL, PG::Coder::FORMAT_ERROR_TO_RAISE, PG::Coder::FORMAT_ERROR_TO_STRING, PG::Coder::TIMESTAMP_APP_LOCAL, PG::Coder::TIMESTAMP_APP_UTC, PG::Coder::TIMESTAMP_DB_LOCAL, PG::Coder::TIMESTAMP_DB_UTC

Instance Attribute Summary

Attributes inherited from Coder

#name

Instance Method Summary collapse

Methods inherited from Coder

#==, #dup, #flags, #flags=, #format, #format=, #initialize, #inspect, #inspect_short, #marshal_dump, #marshal_load, #oid, #oid=

Constructor Details

This class inherits a constructor from PG::Coder

Instance Method Details

#delimiterString

The character that separates columns within each row (line) of the file.

Returns:

  • (String)


113
114
115
116
117
118
# File 'ext/pg_copy_coder.c', line 113

static VALUE
pg_copycoder_delimiter_get(VALUE self)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA(self);
	return rb_str_new(&this->delimiter, 1);
}

#delimiter=(String) ⇒ Object

Specifies the character that separates columns within each row (line) of the file. The default is a tab character in text format. This must be a single one-byte character.

This option is ignored when using binary format.



95
96
97
98
99
100
101
102
103
104
105
# File 'ext/pg_copy_coder.c', line 95

static VALUE
pg_copycoder_delimiter_set(VALUE self, VALUE delimiter)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA(self);
	rb_check_frozen(self);
	StringValue(delimiter);
	if(RSTRING_LEN(delimiter) != 1)
		rb_raise( rb_eArgError, "delimiter size must be one byte");
	this->delimiter = *RSTRING_PTR(delimiter);
	return delimiter;
}

#null_stringObject

The string that represents a null value.



140
141
142
143
144
145
# File 'ext/pg_copy_coder.c', line 140

static VALUE
pg_copycoder_null_string_get(VALUE self)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA(self);
	return this->null_string;
}

#null_string=(null_string) ⇒ Object

Specifies the string that represents a null value. The default is \N (backslash-N) in text format. You might prefer an empty string even in text format for cases where you don’t want to distinguish nulls from empty strings.

This option is ignored when using binary format.



127
128
129
130
131
132
133
134
135
# File 'ext/pg_copy_coder.c', line 127

static VALUE
pg_copycoder_null_string_set(VALUE self, VALUE null_string)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA(self);
	rb_check_frozen(self);
	StringValue(null_string);
	RB_OBJ_WRITE(self, &this->null_string, null_string);
	return null_string;
}

#to_hObject



90
91
92
93
94
95
96
# File 'lib/pg/coder.rb', line 90

def to_h
	{ **super,
		type_map: type_map,
		delimiter: delimiter,
		null_string: null_string,
	}
end

#type_mapPG::TypeMap

The PG::TypeMap that will be used for encoding and decoding of columns.

Returns:



179
180
181
182
183
184
185
# File 'ext/pg_copy_coder.c', line 179

static VALUE
pg_copycoder_type_map_get(VALUE self)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA( self );

	return this->typemap;
}

#type_map=(map) ⇒ Object

Defines how single columns are encoded or decoded. map must be a kind of PG::TypeMap .

Defaults to a PG::TypeMapAllStrings , so that PG::TextEncoder::String respectively PG::TextDecoder::String is used for encoding/decoding of each column.



158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'ext/pg_copy_coder.c', line 158

static VALUE
pg_copycoder_type_map_set(VALUE self, VALUE type_map)
{
	t_pg_copycoder *this = RTYPEDDATA_DATA( self );

	rb_check_frozen(self);
	if ( !rb_obj_is_kind_of(type_map, rb_cTypeMap) ){
		rb_raise( rb_eTypeError, "wrong elements type %s (expected some kind of PG::TypeMap)",
				rb_obj_classname( type_map ) );
	}
	RB_OBJ_WRITE(self, &this->typemap, type_map);

	return type_map;
}