X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F72pg_bytea.t;h=ac5b9c4d82b7f93448973f95cf34a746de32d831;hb=859b7922ff43f671aa6bf2f00d7c8b05ec0cedbb;hp=234da7ebde84d848499d1c0d8ef0c368d75bf239;hpb=9aec3ec60e053fc70810822c75b1008acdccd8b0;p=dbsrgits%2FDBIx-Class.git diff --git a/t/72pg_bytea.t b/t/72pg_bytea.t index 234da7e..ac5b9c4 100644 --- a/t/72pg_bytea.t +++ b/t/72pg_bytea.t @@ -15,7 +15,7 @@ my ($dsn, $dbuser, $dbpass) = @ENV{map { "DBICTEST_PG_${_}" } qw/DSN USER PASS/} plan skip_all => 'Set $ENV{DBICTEST_PG_DSN}, _USER and _PASS to run this test' unless ($dsn && $dbuser); -my $schema = DBICTest::Schema->connection($dsn, $dbuser, $dbpass, { AutoCommit => 1 }); +my $schema = DBICTest::Schema->connect($dsn, $dbuser, $dbpass, { AutoCommit => 1 }); if ($schema->storage->_server_info->{normalized_dbms_version} >= 9.0) { if (not try { DBD::Pg->VERSION('2.17.2') }) { @@ -105,7 +105,32 @@ my $new; ok($new->bytea eq $big_long_string, 'bytea value made it to db'); } +# test inserting a row via populate() (bindtype propagation through execute_for_fetch) +# use a new $dbh to ensure no leakage due to prepare_cached +{ + my $cnt = 4; + + $schema->storage->_dbh(undef); + my $rs = $schema->resultset('BindType'); + $rs->delete; + + $rs->populate([ + [qw/id bytea/], + map { [ + \[ '?', [ {} => $_ ] ], + "pop_${_}_" . $big_long_string, + ]} (1 .. $cnt) + ]); + + is($rs->count, $cnt, 'All rows were correctly inserted'); + for (1..$cnt) { + my $r = $rs->find({ bytea => "pop_${_}_" . $big_long_string }); + is ($r->id, $_, "Row $_ found after find() on the blob"); + + } +} + done_testing; -eval { $dbh->do("DROP TABLE bindtype_test") }; +eval { $schema->storage->dbh_do(sub { $_[1]->do("DROP TABLE bindtype_test") } ) };