Changeset: e3e0159771c7 for monetdb-perl
URL: https://dev.monetdb.org/hg/monetdb-perl?cmd=changeset;node=e3e0159771c7
Added Files:
        DBD/t/26hge.t
Branch: default
Log Message:

Test HUGEINT and DECIMAL(38,_)


diffs (86 lines):

diff --git a/DBD/t/26hge.t b/DBD/t/26hge.t
new file mode 100644
--- /dev/null
+++ b/DBD/t/26hge.t
@@ -0,0 +1,81 @@
+#!perl -I./t
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+
+$| = 1;
+
+use strict;
+use warnings;
+use DBI();
+use DBD_TEST();
+
+use Test::More;
+
+if ( !defined $ENV{DBI_DSN} ) {
+  plan skip_all => 'Cannot test without DB info';
+}
+
+
+my $dbh = DBI->connect or die "Connect failed: $DBI::errstr\n";
+$dbh->{RaiseError} = 1;
+$dbh->{PrintError} = 0;
+
+my $chk128 = $dbh->prepare("SELECT * FROM sys.types WHERE systemname = 'hge'");
+$chk128->execute;
+my $hgetypes = $chk128->fetchall_arrayref;
+if (@{$hgetypes}) {
+       plan tests => 11;
+} else {
+       plan skip_all => "no hge support";
+}
+
+ok($dbh->do('DROP TABLE IF EXISTS perl_dec38;'), 'DROP TABLE');
+ok($dbh->do(qq{
+       CREATE TABLE perl_dec38 (
+               h HUGEINT,
+               d38_0 DECIMAL(38,0),
+               d38_19 DECIMAL(38,19),
+               d38_38 DECIMAL(38,38)
+       );}),
+       'CREATE TABLE');
+ok($dbh->do(qq{INSERT INTO perl_dec38 VALUES (
+               12345678901234567899876543210987654321,
+               12345678901234567899876543210987654321,
+               1234567890123456789.9876543210987654321,
+               .12345678901234567899876543210987654321
+       );}),
+       'INSERT');
+
+
+my ($hge, $s0, $s19, $s38) = $dbh->selectrow_array(qq{
+       SELECT
+               h,
+               CAST(d38_0 AS TEXT) AS s0,
+               CAST(d38_19 AS TEXT) AS s19,
+               CAST(d38_38 AS TEXT) AS s38
+       FROM perl_dec38;});
+is("$hge", '12345678901234567899876543210987654321', 'selectrow_array huge 
12345678901234567899876543210987654321');
+is("$s0", '12345678901234567899876543210987654321', 'selectrow_array dec 
12345678901234567899876543210987654321');
+is("$s19", '1234567890123456789.9876543210987654321', 'selectrow_array dec 
1234567890123456789.9876543210987654321');
+is("$s38", '0.12345678901234567899876543210987654321', 'selectrow_array dec 
0.12345678901234567899876543210987654321');
+
+
+
+
+my $rowref = $dbh->selectrow_arrayref(qq{
+       SELECT
+               h,
+               CAST(d38_0 AS TEXT) AS s0,
+               CAST(d38_19 AS TEXT) AS s19,
+               CAST(d38_38 AS TEXT) AS s38
+       FROM perl_dec38;});
+is("$rowref->[0]", '12345678901234567899876543210987654321', 'selectrow_array 
huge 12345678901234567899876543210987654321');
+is("$rowref->[1]", '12345678901234567899876543210987654321', 'selectrow_array 
dec 12345678901234567899876543210987654321');
+is("$rowref->[2]", '1234567890123456789.9876543210987654321', 'selectrow_array 
dec 1234567890123456789.9876543210987654321');
+is("$rowref->[3]", '0.12345678901234567899876543210987654321', 
'selectrow_array dec 0.12345678901234567899876543210987654321');
+
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to