DBD-Informix
view release on metacpan or search on metacpan
t/t65updcur.t view on Meta::CPAN
#!/usr/bin/perl
#
# @(#)$Id: t65updcur.t,v 2014.1 2014/04/21 06:38:37 jleffler Exp $
#
# Test $sth->{CursorName} and cursors FOR UPDATE for DBD::Informix
#
# Copyright 1997-99 Jonathan Leffler
# Copyright 2000 Informix Software Inc
# Copyright 2002-03 IBM
# Copyright 2013-14 Jonathan Leffler
use DBD::Informix::TestHarness;
use strict;
use warnings;
# Test install...
my $dbh = connect_to_test_database();
stmt_note("1..16\n");
stmt_ok();
my $table = "DBD_IX_TestTable";
my $select = "SELECT * FROM $table";
stmt_test $dbh, qq{
CREATE TEMP TABLE $table
(
Col01 SERIAL NOT NULL PRIMARY KEY,
Col02 CHAR(30) NOT NULL,
Col03 DATE NOT NULL,
Col04 DATETIME YEAR TO FRACTION(5) NOT NULL
)
};
my($ssdt, $csdt) = get_date_as_string($dbh, 12, 8, 1940);
my $time = '1940-12-08 06:45:32.54321';
my $raw1 = 'Mornington Crescent';
my $tag1 = $dbh->quote($raw1);
my $raw2 = "King's Cross / St Pancras";
my $tag2 = $dbh->quote($raw2);
my $raw3 = "ABC $raw1";
my $insert01 = qq{INSERT INTO $table VALUES(0, $tag1, '$ssdt', '$time')};
# Insert two rows of data
stmt_test $dbh, $insert01;
$insert01 =~ s/$tag1/$tag2/;
stmt_test $dbh, $insert01;
my $sel = $dbh->prepare($select) or stmt_fail;
stmt_ok;
my $row1 = { 'col01' => 1, 'col02' => $raw1, 'col03' => $csdt, 'col04' => $time };
my $row2 = { 'col01' => 2, 'col02' => $raw2, 'col03' => $csdt, 'col04' => $time };
my $row3 = { 'col01' => 1, 'col02' => $raw3, 'col03' => $csdt, 'col04' => $time };
my $res1 = { 1 => $row1, 2 => $row2 };
my $res2 = { 1 => $row3 };
# Check that there is some data
$sel->execute ? validate_unordered_unique_data($sel, 'col01', $res1) : stmt_nok;
my $selupd = $select . " FOR UPDATE";
my $st1 = $dbh->prepare($selupd) or stmt_fail;
stmt_ok;
# Check that attribute caching is still working!
( run in 0.669 second using v1.01-cache-2.11-cpan-140bd7fdf52 )