Mercurial > hg > monetdb-perl
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 |
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 |