annotate DBD/t/11prep.t @ 57:7a8311219f2f default tip

Version 1.3.
author Sjoerd Mullender <sjoerd@acm.org>
date Mon, 31 Oct 2022 16:18:43 +0100 (2022-10-31)
parents a0b0ed79f8ab
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
1 #!perl -I./t
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
2
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
3 # This Source Code Form is subject to the terms of the Mozilla Public
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
6 #
12
8c8bd15f7a0b Updated copyright year.
Sjoerd Mullender <sjoerd@acm.org>
parents: 4
diff changeset
7 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
8
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
9 $| = 1;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
10
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
11 use strict;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
12 use warnings;
26
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
13 use Data::Dumper;
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
14 use DBI();
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
15 use DBD_TEST();
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
16
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
17 use Test::More;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
18
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
19 if (defined $ENV{DBI_DSN}) {
26
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
20 plan tests => 19;
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
21 } else {
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
22 plan skip_all => 'Cannot test without DB info';
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
23 }
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
24
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
25 pass('Simple prepare/execute/finish tests');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
26
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
27 my $dbh = DBI->connect or die "Connect failed: $DBI::errstr\n";
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
28 pass('Database connection created');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
29
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
30 my $tbl = $DBD_TEST::table_name;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
31
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
32 {
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
33 local ($dbh->{PrintError}, $dbh->{RaiseError}, $dbh->{Warn});
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
34 $dbh->{PrintError} = 0; $dbh->{RaiseError} = 0; $dbh->{Warn} = 0;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
35 $dbh->do("DROP TABLE $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
36 }
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
37
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
38 ok( $dbh->disconnect,'Disconnect');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
39
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
40 $dbh = DBI->connect or die "Connect failed: $DBI::errstr\n";
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
41 pass('Database connection created');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
42 {
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
43 local $dbh->{PrintError} = 0;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
44 local $dbh->{RaiseError} = 1;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
45 ok( !eval{ $dbh->do("DROP TABLE $tbl") },"DROP TABLE $tbl");
26
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
46 ok( $@ =~ /no such table/, "DROP TABLE failed for the right reason");
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
47 }
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
48 ok( $dbh->do("CREATE TABLE $tbl( chr char( 1 ) )"),"CREATE TABLE $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
49
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
50 my $sth;
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
51 ok( $sth = $dbh->prepare("SELECT * FROM $tbl"),"SELECT * FROM $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
52 ok( $sth->execute,'Execute');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
53 ok( $sth->finish,'Finish');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
54 ok( $sth = $dbh->prepare("SELECT * FROM $tbl"),"SELECT * FROM $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
55 ok( $sth->finish,'Finish');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
56 ok( $sth = $dbh->prepare("SELECT * FROM $tbl"),"SELECT * FROM $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
57 ok( !( $sth = undef ),'Set sth to undefined');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
58 #ok( $sth = $dbh->prepare("SELECT * FROM $tbl", { monetdb_ => ... } ),"SELECT * FROM $tbl ( monetdb_ => ... )");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
59 #ok( $sth->execute,'Execute');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
60 #ok( !( $sth = undef ),'Set sth to undefined');
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
61 ok( $dbh->do("DROP TABLE $tbl"),"DROP TABLE $tbl");
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
62
26
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
63 # Bug 3235
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
64 ok( $sth = $dbh->prepare("SELECT 0"), "SELECT 0");
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
65 ok( $sth->execute, 'Execute');
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
66 my $res = $sth->fetchall_arrayref;
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
67 $Data::Dumper::Terse = 1; # don't output names where feasible
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
68 my $dumped = Dumper($res);
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
69 $dumped =~ s/\s+/ /gm;
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
70 ok( $res->[0]->[0] == 0, "yields $dumped");
a0b0ed79f8ab Move tests for Bugs 2885, 2889, 2897 and 3235 from main repo to here
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 12
diff changeset
71
0
cedccb7e0143 Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
72 ok( $dbh->disconnect,'Disconnect');