annotate DBD/t/26hge.t @ 28:e3e0159771c7

Test HUGEINT and DECIMAL(38,_)
author Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
date Thu, 17 Dec 2020 09:24:37 +0100 (2020-12-17)
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
1 #!perl -I./t
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
2
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
3 # This Source Code Form is subject to the terms of the Mozilla Public
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
6 #
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
7 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
8
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
9 $| = 1;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
10
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
11 use strict;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
12 use warnings;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
13 use DBI();
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
14 use DBD_TEST();
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
15
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
16 use Test::More;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
17
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
18 if ( !defined $ENV{DBI_DSN} ) {
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
19 plan skip_all => 'Cannot test without DB info';
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
20 }
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
21
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
22
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
23 my $dbh = DBI->connect or die "Connect failed: $DBI::errstr\n";
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
24 $dbh->{RaiseError} = 1;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
25 $dbh->{PrintError} = 0;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
26
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
27 my $chk128 = $dbh->prepare("SELECT * FROM sys.types WHERE systemname = 'hge'");
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
28 $chk128->execute;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
29 my $hgetypes = $chk128->fetchall_arrayref;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
30 if (@{$hgetypes}) {
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
31 plan tests => 11;
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
32 } else {
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
33 plan skip_all => "no hge support";
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
34 }
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
35
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
36 ok($dbh->do('DROP TABLE IF EXISTS perl_dec38;'), 'DROP TABLE');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
37 ok($dbh->do(qq{
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
38 CREATE TABLE perl_dec38 (
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
39 h HUGEINT,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
40 d38_0 DECIMAL(38,0),
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
41 d38_19 DECIMAL(38,19),
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
42 d38_38 DECIMAL(38,38)
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
43 );}),
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
44 'CREATE TABLE');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
45 ok($dbh->do(qq{INSERT INTO perl_dec38 VALUES (
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
46 12345678901234567899876543210987654321,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
47 12345678901234567899876543210987654321,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
48 1234567890123456789.9876543210987654321,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
49 .12345678901234567899876543210987654321
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
50 );}),
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
51 'INSERT');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
52
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
53
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
54 my ($hge, $s0, $s19, $s38) = $dbh->selectrow_array(qq{
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
55 SELECT
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
56 h,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
57 CAST(d38_0 AS TEXT) AS s0,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
58 CAST(d38_19 AS TEXT) AS s19,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
59 CAST(d38_38 AS TEXT) AS s38
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
60 FROM perl_dec38;});
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
61 is("$hge", '12345678901234567899876543210987654321', 'selectrow_array huge 12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
62 is("$s0", '12345678901234567899876543210987654321', 'selectrow_array dec 12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
63 is("$s19", '1234567890123456789.9876543210987654321', 'selectrow_array dec 1234567890123456789.9876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
64 is("$s38", '0.12345678901234567899876543210987654321', 'selectrow_array dec 0.12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
65
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
66
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
67
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
68
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
69 my $rowref = $dbh->selectrow_arrayref(qq{
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
70 SELECT
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
71 h,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
72 CAST(d38_0 AS TEXT) AS s0,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
73 CAST(d38_19 AS TEXT) AS s19,
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
74 CAST(d38_38 AS TEXT) AS s38
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
75 FROM perl_dec38;});
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
76 is("$rowref->[0]", '12345678901234567899876543210987654321', 'selectrow_array huge 12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
77 is("$rowref->[1]", '12345678901234567899876543210987654321', 'selectrow_array dec 12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
78 is("$rowref->[2]", '1234567890123456789.9876543210987654321', 'selectrow_array dec 1234567890123456789.9876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
79 is("$rowref->[3]", '0.12345678901234567899876543210987654321', 'selectrow_array dec 0.12345678901234567899876543210987654321');
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
80
e3e0159771c7 Test HUGEINT and DECIMAL(38,_)
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
81