use Rose::DB;
Rose::DB->register_db
(
domain => 'default',
type => 'default',
driver => 'Pg',
);
$db = Rose::DB->new;
$s = '{2,"four",6,8}';
$a = $db->parse_array($s);
pop(@$a);
$a->[2]++;
$f = $db->format_array($a); # '{2,"four",7}'
####
CREATE TABLE mywidgets
(
id SERIAL NOT NULL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
nums INT[]
);
####
package MyWidget;
use base 'Rose::DB::Object';
MyWidget->meta->table('mywidgets');
MyWidget->meta->columns
(
id => { type => 'serial', not_null => 1, primary_key => 1 },
name => { type => 'varchar', length => 255, not_null => 1 },
nums => { type => 'array' },
);
MyWidget->meta->error_mode('fatal');
MyWidget->meta->initialize;
1;
####
$n = MyWidget->new(name => 'Sprocket',
nums => [ 2, 4, 6, 8 ]);
$n->save;
$n2 = MyWidget->new(id => $n->id);
$n2->load;
print $n2->nums->[1]; # 4