use File::Spec;
use Scalar::Util qw(blessed);
use Try::Tiny;
-use Carp qw(carp);
+use Carp qw(carp croak);
our $VERSION = '1.59';
our $DEFAULT_COMMENT = '-- ';
debug normalize_name header_comment parse_list_arg truncate_id_uniquely
$DEFAULT_COMMENT parse_mysql_version parse_dbms_version
ddl_parser_instance batch_alter_table_statements
- throw ex2err carp_ro
+ uniq throw ex2err carp_ro
+ normalize_quote_options
);
use constant COLLISION_TAG_LENGTH => 8;
return $name;
}
+sub normalize_quote_options {
+ my $config = shift;
+
+ my $quote;
+ if (defined $config->{quote_identifiers}) {
+ $quote = $config->{quote_identifiers};
+
+ for (qw/quote_table_names quote_field_names/) {
+ carp "Ignoring deprecated parameter '$_', since 'quote_identifiers' is supplied"
+ if defined $config->{$_}
+ }
+ }
+ # Legacy one set the other is not
+ elsif (
+ defined $config->{'quote_table_names'}
+ xor
+ defined $config->{'quote_field_names'}
+ ) {
+ if (defined $config->{'quote_table_names'}) {
+ carp "Explicitly disabling the deprecated 'quote_table_names' implies disabling 'quote_identifiers' which in turn implies disabling 'quote_field_names'"
+ unless $config->{'quote_table_names'};
+ $quote = $config->{'quote_table_names'} ? 1 : 0;
+ }
+ else {
+ carp "Explicitly disabling the deprecated 'quote_field_names' implies disabling 'quote_identifiers' which in turn implies disabling 'quote_table_names'"
+ unless $config->{'quote_field_names'};
+ $quote = $config->{'quote_field_names'} ? 1 : 0;
+ }
+ }
+ # Legacy both are set
+ elsif(defined $config->{'quote_table_names'}) {
+ croak 'Setting quote_table_names and quote_field_names to conflicting values is no longer supported'
+ if ($config->{'quote_table_names'} xor $config->{'quote_field_names'});
+
+ $quote = $config->{'quote_table_names'} ? 1 : 0;
+ }
+
+ return $quote;
+}
+
sub header_comment {
my $producer = shift || caller;
my $comment_char = shift;
}
}
+sub uniq {
+ my( %seen, $seen_undef, $numeric_preserving_copy );
+ grep { not (
+ defined $_
+ ? $seen{ $numeric_preserving_copy = $_ }++
+ : $seen_undef++
+ ) } @_;
+}
+
sub throw {
die SQL::Translator::Utils::Error->new($_[0]);
}