Mercurial > hg > monetdb-perl
annotate DBD/t/18bc.t @ 12:8c8bd15f7a0b
Updated copyright year.
author | Sjoerd Mullender <sjoerd@acm.org> |
---|---|
date | Mon, 30 Sep 2019 21:27:37 +0200 |
parents | a0ec9e080a5b |
children |
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 | 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; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
13 use DBI(); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
14 use DBD_TEST(); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
15 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
16 use Test::More; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
17 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
18 if (defined $ENV{DBI_DSN}) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
19 plan tests => 8; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
20 } else { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
21 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
|
22 } |
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 pass('Bind column tests'); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
25 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
26 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
|
27 pass('Database connection created'); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
28 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
29 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
|
30 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
31 ok( DBD_TEST::tab_create( $dbh ),"CREATE TABLE $tbl"); |
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 $dbh->{AutoCommit} = 0; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
34 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
35 $dbh->do("INSERT INTO $tbl( A, B ) VALUES( 10,'Stuff here')"); |
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 $dbh->commit; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
38 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
39 my $sth; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
40 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
41 $sth = $dbh->prepare("DELETE FROM $tbl"); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
42 $sth->execute; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
43 my $s = $sth->rows; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
44 my $t = $DBI::rows; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
45 is( $s, $t,"sth->rows: $s DBI::rows: $t"); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
46 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
47 $dbh->rollback; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
48 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
49 $sth = $dbh->prepare("SELECT * FROM $tbl WHERE 1 = 0"); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
50 $sth->execute; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
51 my @row = $sth->fetchrow; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
52 if ( $sth->err ) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
53 print ' $sth->err : ', $sth->err , "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
54 print ' $sth->errstr: ', $sth->errstr, "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
55 print ' $dbh->state : ', $dbh->state , "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
56 # print ' $sth->state : ', $sth->state , "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
57 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
58 pass("Fetched empty result set: (@row)"); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
59 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
60 $sth = $dbh->prepare("SELECT A, B FROM $tbl"); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
61 $sth->execute; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
62 while ( my $row = $sth->fetch ) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
63 print '# @row a, b : ', $row->[0], ',', $row->[1], "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
64 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
65 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
66 my $Ok; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
67 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
68 $Ok = 1; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
69 my ( $a, $b ); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
70 $sth->execute; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
71 $sth->bind_col( 1, \$a ); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
72 $sth->bind_col( 2, \$b ); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
73 while ( $sth->fetch ) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
74 print '# bind_col a, b : ', $a, ',', $b, "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
75 unless ( defined $a && defined $b ) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
76 $Ok = 0; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
77 $sth->finish; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
78 last; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
79 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
80 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
81 is( $Ok, 1,'All fields defined'); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
82 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
83 $Ok = 1; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
84 ( $a, $b ) = ( undef, undef ); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
85 $sth->execute; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
86 $sth->bind_columns( undef, \$b, \$a ); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
87 while ( $sth->fetch ) |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
88 { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
89 print '# bind_columns a, b : ', $b, ',', $a, "\n"; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
90 unless ( defined $a && defined $b ) { |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
91 $Ok = 0; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
92 $sth->finish; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
93 last; |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
94 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
95 } |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
96 is( $Ok, 1,'All fields defined'); |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
97 |
cedccb7e0143
Copy of clients/perl directory without Tests from MonetDB changeset 4d2d4532228a.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
98 ok( $dbh->disconnect,'Disconnect'); |