.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Pg::hstore 3pm" .TH Pg::hstore 3pm 2024-03-07 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Pg::hstore \- Perl extension for encoding/decoding postgresql's hstore data type. .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 5 \& use Pg::hstore; \& ... \& my $row = $sth\->fetchrow_hashref; #Getting row from DB \& print "hstore data: ", $row\->{addinfo}, "\en"; \& my $addinfo = Pg::hstore::decode($row\->{addinfo}); #Decoding into perl hashref \& \& #now $addinfo is 1\-level hash ref with key\->value \& print "addinfo\->\*(Aqfull_name\*(Aq = ", $addinfo\->{full_name}, "\en"; \& \& ... \& #Updating hstore. This type of updating can wipe other process work on addinfo field \& $addinfo\->{full_name} = "John the ripper"; \& $dbh\->do("update users set addinfo=? where id=?", undef, \& Pg::hstore::encode($addinfo), 123); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" .SS decode(string) .IX Subsection "decode(string)" Decode given HSTORE value. NULL values will be converted to Perl undef; NULL or empty keys will be ignored. Returns hash ref with key => value pairs. Can return undef on internal error. Keys and values will have same UTF8 flag as incoming string. .SS encode(hashref) .IX Subsection "encode(hashref)" Encodes given hash ref to HSTORE-format string. undef values will be converted to NULL. Empty or undef keys will be ignored. Returns hstore-serialized string. Can return undef on internal error. String will have UTF8 flag ON if any of hashref values have it. .SH EXPORT .IX Header "EXPORT" None by default. Can export \fBhstore_encode\fR and \fBhstore_decode\fR subs: .PP .Vb 1 \& use Pg::hstore qw/hstore_encode hstore_decode/; .Ve .SH BUGS .IX Header "BUGS" None known. Feel free to clone/contribue from https://bitbucket.org/PSIAlt/p5\-pg\-hstore .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (C) 2011 by Alt .PP .Vb 6 \& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \& "THE BEER\-WARE LICENSE" \& As long as you retain this notice you can do whatever you want with this stuff. \& If we meet some day, and you think this stuff is worth it, you can buy me a beer \& in return. \& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .Ve