password => $password,
data_types => {
# http://ispirer.com/wiki/sqlways/sybase/data-types
- # XXX organize by category
+ #
+ # Numeric Types
'integer identity' => { data_type => 'integer', is_auto_increment => 1 },
- 'AS getdate()' => { data_type => undef, inflate_datetime => 1, default_value => \'getdate()' },
- text => { data_type => 'text' },
- unitext => { data_type => 'unitext' },
- image => { data_type => 'image' },
- bigint => { data_type => 'bigint' },
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' },
- money => { data_type => 'money' },
- smallmoney => { data_type => 'smallmoney' },
+
+ # Timestamp column
timestamp => { data_type => 'timestamp', inflate_datetime => 0 },
- bit => { data_type => 'bit' },
+
+ # 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 },
- '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' },
+ },
+ # test that named constraints aren't picked up as tables (I can't reproduce this on my machine)
+ failtrigger_warnings => [ qr/^Bad table or view 'sybase_loader_test2_ref_slt1'/ ],
+ extra => {
+ create => [
+ q{
+ CREATE TABLE sybase_loader_test1 (
+ id int identity primary key
+ )
+ },
+ q{
+ CREATE TABLE sybase_loader_test2 (
+ id int identity primary key,
+ sybase_loader_test1_id int,
+ CONSTRAINT sybase_loader_test2_ref_slt1 FOREIGN KEY (sybase_loader_test1_id) REFERENCES sybase_loader_test1 (id)
+ )
+ },
+ ],
+ drop => [ qw/sybase_loader_test1 sybase_loader_test2/ ],
},
);
else {
$tester->run_tests();
}
+
+# vim:et sts=4 sw=4 tw=0: