NAME
DBIx::Class::CompressColumns - Automatic Compression/Decompression of columns
SYNOPSIS
In your DBIx::Class table class:
__PACKAGE__->load_components(qw/CompressColumns ... Core/);
__PACKAGE__->compresscolumns(
columns => [qw/ column_foo /],
auto => 1,
);
Note: The component needs to be loaded before Core.
Alternatively you could call each method individually
__PACKAGE__->compress_columns(qw/ column_foo /);
__PACKAGE__->compress_auto(1);
DESCRIPTION
This DBIx::Class component can be used to automatically compress and decompress data in selected columns.
METHODS
compresscolumns
__PACKAGE__->compresscolumns(
columns => [qw/ column_foo /],
auto => 1,
);
Calls "compress_columns" and "compress_auto" if the corresponding argument is defined.
compress_columns
Takes a list of columns to be compressed/decompressed during insert or retrieval.
__PACKAGE__->compress_columns(qw/ column_foo /);
_get_compressed_binary $value
Handles the actual compression of column values into binary objects. When given a $value
it will return the compressed binary for that value.
_get_uncompressed_scalar $value
Handles the actual decompression of column values into scalar strings. When given a $value
it will return the uncompressed scalar for that compressed binary value.
_compress_column_values
Go through the columns and compress the values that need it.
This method is called by insert and update when automatic compression is turned on.
compress_auto
__PACKAGE__->compress_auto(1);
Turns on and off automatic compression/decompression of columns. When on, this feature makes all UPDATEs and INSERTs automatically insert a compressed binary into selected columns. SELECTS will retrieve the decompressed scalar from selected columns.
The default is for compress_auto is to be on.
EXTENDED METHODS
The following DBIx::Class::Row methods are extended by this module:-
- insert
- update
get_column
get_columns
SEE ALSO
AUTHOR
Jesse Stay (jessestay) <jesse@staynalive.com>
A Product of SocialToo.com
LICENSE
You may distribute this code under the same terms as Perl itself.