);
},
null => '',
- loader_options => { unquoted_ddl => 1 },
+ preserve_case_mode_is_exclusive => 1,
+ quote_char => '"',
+ warnings => [ qr/'preserve_case' option/ ],
connect_info => [ ($dbd_interbase_dsn ? {
dsn => $dbd_interbase_dsn,
user => $dbd_interbase_user,
password => $odbc_password,
} : ()),
],
+ data_types => {
+ # based on the Interbase Data Definition Guide
+ # http://www.ibphoenix.com/downloads/60DataDef.zip
+ #
+ # Numeric types
+ 'smallint' => { data_type => 'smallint' },
+ 'int' => { data_type => 'integer' },
+ 'integer' => { data_type => 'integer' },
+ 'bigint' => { data_type => 'bigint' },
+ 'float' => { data_type => 'real' },
+ 'double precision' =>
+ { data_type => 'double precision' },
+ 'real' => { data_type => 'real' },
+
+ 'float(2)' => { data_type => 'real' },
+ 'float(7)' => { data_type => 'real' },
+ 'float(8)' => { data_type => 'double precision' },
+
+ 'decimal' => { data_type => 'decimal' },
+ 'dec' => { data_type => 'decimal' },
+ 'numeric' => { data_type => 'numeric' },
+
+ 'decimal(3)' => { data_type => 'decimal', size => [3,0] },
+
+ 'decimal(3,3)' => { data_type => 'decimal', size => [3,3] },
+ 'dec(3,3)' => { data_type => 'decimal', size => [3,3] },
+ 'numeric(3,3)' => { data_type => 'numeric', size => [3,3] },
+
+ 'decimal(6,3)' => { data_type => 'decimal', size => [6,3] },
+ 'numeric(6,3)' => { data_type => 'numeric', size => [6,3] },
+
+ 'decimal(12,3)' => { data_type => 'decimal', size => [12,3] },
+ 'numeric(12,3)' => { data_type => 'numeric', size => [12,3] },
+
+ 'decimal(18,18)' => { data_type => 'decimal', size => [18,18] },
+ 'dec(18,18)' => { data_type => 'decimal', size => [18,18] },
+ 'numeric(18,18)' => { data_type => 'numeric', size => [18,18] },
+
+ # Date and Time Types
+ 'date' => { data_type => 'date' },
+ 'timestamp default current_timestamp'
+ => { data_type => 'timestamp', default_value => \'current_timestamp' },
+ 'time' => { data_type => 'time' },
+
+ # String Types
+ 'char' => { data_type => 'char', size => 1 },
+ 'char(11)' => { data_type => 'char', size => 11 },
+ 'varchar(20)' => { data_type => 'varchar', size => 20 },
+
+ # Blob types
+ 'blob' => { data_type => 'blob' },
+ 'blob sub_type text'
+ => { data_type => 'blob sub_type text' },
+ },
extra => {
count => 6,
run => sub {
my $guard = Scope::Guard->new(\&cleanup_extra);
- $schema->_loader->{unquoted_ddl} = 0;
+ local $schema->_loader->{preserve_case} = 1;
$schema->_loader->_setup;
+
{
local $SIG{__WARN__} = sub {};
$schema->rescan;