3 use dbixcsl_common_tests;
6 use List::MoreUtils 'apply';
8 my $dsn = $ENV{DBICTEST_SYBASE_DSN} || '';
9 my $user = $ENV{DBICTEST_SYBASE_USER} || '';
10 my $password = $ENV{DBICTEST_SYBASE_PASS} || '';
12 my $tester = dbixcsl_common_tests->new(
14 auto_inc_pk => 'INTEGER IDENTITY NOT NULL PRIMARY KEY',
15 default_function => 'getdate()',
16 default_function_def => 'AS getdate()',
19 password => $password,
21 # http://ispirer.com/wiki/sqlways/sybase/data-types
22 # XXX organize by category
23 'integer identity' => { data_type => 'integer', is_auto_increment => 1 },
24 'AS getdate()' => { data_type => undef, inflate_datetime => 1, default_value => \'getdate()' },
25 text => { data_type => 'text' },
26 unitext => { data_type => 'unitext' },
27 image => { data_type => 'image' },
28 bigint => { data_type => 'bigint' },
29 int => { data_type => 'integer' },
30 integer => { data_type => 'integer' },
31 smallint => { data_type => 'smallint' },
32 tinyint => { data_type => 'tinyint' },
33 date => { data_type => 'date' },
34 time => { data_type => 'time' },
35 datetime => { data_type => 'datetime' },
36 smalldatetime => { data_type => 'smalldatetime' },
37 money => { data_type => 'money' },
38 smallmoney => { data_type => 'smallmoney' },
39 timestamp => { data_type => 'timestamp', inflate_datetime => 0 },
40 bit => { data_type => 'bit' },
41 'char(2)' => { data_type => 'char', size => 2 },
42 'nchar(2)' => { data_type => 'nchar', size => 2 },
43 'unichar(2)' => { data_type => 'unichar', size => 2 },
44 'varchar(2)' => { data_type => 'varchar', size => 2 },
45 'nvarchar(2)' => { data_type => 'nvarchar', size => 2 },
46 'univarchar(2)' => { data_type => 'univarchar', size => 2 },
47 'binary(2)' => { data_type => 'binary', size => 2 },
48 'varbinary(2)' => { data_type => 'varbinary', size => 2 },
49 'double precision' => { data_type => 'double precision' },
50 real => { data_type => 'real' },
51 float => { data_type => 'double precision' },
52 'float(14)' => { data_type => 'real' },
53 'float(15)' => { data_type => 'real' },
54 'float(16)' => { data_type => 'double precision' },
55 'float(48)' => { data_type => 'double precision' },
56 'numeric(6,3)' => { data_type => 'numeric', size => [6,3] },
57 'decimal(6,3)' => { data_type => 'numeric', size => [6,3] },
58 numeric => { data_type => 'numeric' },
59 decimal => { data_type => 'numeric' },
63 if( !$dsn || !$user ) {
64 $tester->skip_tests('You need to set the DBICTEST_SYBASE_DSN, _USER, and _PASS environment variables');