File: decimal_test.pl

package info (click to toggle)
libdbd-mysql-perl 4.028-2%2Bdeb8u2
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,312 kB
  • ctags: 584
  • sloc: perl: 4,425; ansic: 4,259; makefile: 26
file content (36 lines) | stat: -rw-r--r-- 839 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl

use DBI;

## get DBI type map
my %map;
foreach (@{ $DBI::EXPORT_TAGS{sql_types} }) {
    $map{&{"DBI::$_"}} = $_;
}

my $dbh = DBI->connect('DBI:mysql:test;mysql_emulated_prepare=1', 'root');
my $table = 'mysql5bug';
my $drop   = "DROP TABLE IF EXISTS $table";
my $create = "CREATE TABLE $table (value decimal(5,2));";
my $select = "SELECT * FROM $table WHERE 1 = 0";

## create table and get column types
$dbh->do($drop)   or die $dbh->errstr;
$dbh->do($create) or die $dbh->errstr;
my $sth = $dbh->prepare( $select );
my $rv = $sth->execute;
my $fields = $sth->{NAME};
my $types  = $sth->{TYPE};

## print out column types
foreach (0..$#$fields) {
    printf("%8s  %3d  %s\n", $fields->[$_], $types->[$_],
    $map{$types->[$_]});
}

## cleanup
$dbh->do($drop)   or die $dbh->errstr;
$sth->finish;
$dbh->disconnect;

1;