#
# MySQL types
#
- bigint => 'bigint',
double => 'double precision',
decimal => 'numeric',
int => 'integer',
mediumint => 'integer',
- smallint => 'smallint',
tinyint => 'smallint',
char => 'character',
varchar => 'character varying',
longtext => 'text',
mediumtext => 'text',
- text => 'text',
tinytext => 'text',
tinyblob => 'bytea',
blob => 'bytea',
longblob => 'bytea',
enum => 'character varying',
set => 'character varying',
- date => 'date',
datetime => 'timestamp',
- time => 'time',
- timestamp => 'timestamp',
year => 'date',
#
# Oracle types
#
number => 'integer',
- char => 'character',
varchar2 => 'character varying',
long => 'text',
CLOB => 'bytea',
- date => 'date',
#
# Sybase types
#
- int => 'integer',
- money => 'money',
- varchar => 'character varying',
- datetime => 'timestamp',
- text => 'text',
comment => 'text',
- bit => 'bit',
- tinyint => 'smallint',
);
$max_id_length = 62;
for my $trigger ( $schema->get_triggers ) {
push @table_defs, create_trigger( $trigger, {
add_drop_trigger => $add_drop_table,
+ generator => $generator,
no_comments => $no_comments,
});
}
sub create_trigger {
my ($trigger,$options) = @_;
+ my $generator = _generator($options);
my @statements;
- push @statements, sprintf( 'DROP TRIGGER IF EXISTS %s', $trigger->name )
+ push @statements, sprintf( 'DROP TRIGGER IF EXISTS %s', $generator->quote($trigger->name) )
if $options->{add_drop_trigger};
my $scope = $trigger->scope || '';
push @statements, sprintf(
'CREATE TRIGGER %s %s %s ON %s%s %s',
- $trigger->name,
+ $generator->quote($trigger->name),
$trigger->perform_action_when,
join( ' OR ', @{ $trigger->database_events } ),
- $trigger->on_table,
+ $generator->quote($trigger->on_table),
$scope,
$trigger->action,
);