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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
use strict;
use lib qw(t/lib);
use dbixcsl_common_tests;
use Test::More;
use Test::Exception;
use List::MoreUtils 'apply';
my $dsn = $ENV{DBICTEST_SYBASE_DSN} || '';
my $user = $ENV{DBICTEST_SYBASE_USER} || '';
my $password = $ENV{DBICTEST_SYBASE_PASS} || '';
my $tester = dbixcsl_common_tests->new(
vendor => 'sybase',
auto_inc_pk => 'INTEGER IDENTITY NOT NULL PRIMARY KEY',
default_function => 'getdate()',
default_function_def => 'AS getdate()',
dsn => $dsn,
user => $user,
password => $password,
data_types => {
# http://ispirer.com/wiki/sqlways/sybase/data-types
#
# Numeric Types
'integer identity' => { data_type => 'integer', is_auto_increment => 1 },
int => { data_type => 'integer' },
integer => { data_type => 'integer' },
bigint => { data_type => 'bigint' },
smallint => { data_type => 'smallint' },
tinyint => { data_type => 'tinyint' },
'double precision' => { data_type => 'double precision' },
real => { data_type => 'real' },
float => { data_type => 'double precision' },
'float(14)' => { data_type => 'real' },
'float(15)' => { data_type => 'real' },
'float(16)' => { data_type => 'double precision' },
'float(48)' => { data_type => 'double precision' },
'numeric(6,3)' => { data_type => 'numeric', size => [6,3] },
'decimal(6,3)' => { data_type => 'numeric', size => [6,3] },
numeric => { data_type => 'numeric' },
decimal => { data_type => 'numeric' },
bit => { data_type => 'bit' },
# Money Types
money => { data_type => 'money' },
smallmoney => { data_type => 'smallmoney' },
# Computed Column
'AS getdate()' => { data_type => undef, inflate_datetime => 1, default_value => \'getdate()' },
# Blob Types
text => { data_type => 'text' },
unitext => { data_type => 'unitext' },
image => { data_type => 'image' },
# DateTime Types
date => { data_type => 'date' },
time => { data_type => 'time' },
datetime => { data_type => 'datetime' },
smalldatetime => { data_type => 'smalldatetime' },
# Timestamp column
timestamp => { data_type => 'timestamp', inflate_datetime => 0 },
# String Types
'char' => { data_type => 'char', size => 1 },
'char(2)' => { data_type => 'char', size => 2 },
'nchar' => { data_type => 'nchar', size => 1 },
'nchar(2)' => { data_type => 'nchar', size => 2 },
'unichar(2)' => { data_type => 'unichar', size => 2 },
'varchar(2)' => { data_type => 'varchar', size => 2 },
'nvarchar(2)' => { data_type => 'nvarchar', size => 2 },
'univarchar(2)' => { data_type => 'univarchar', size => 2 },
# Binary Types
'binary' => { data_type => 'binary', size => 1 },
'binary(2)' => { data_type => 'binary', size => 2 },
'varbinary(2)' => { data_type => 'varbinary', size => 2 },
},
);
if( !$dsn || !$user ) {
$tester->skip_tests('You need to set the DBICTEST_SYBASE_DSN, _USER, and _PASS environment variables');
}
else {
$tester->run_tests();
}
|