Making DBI’s type info data usable for its quote
method
I’m putting this here mostly as future copy-paste fodder:
my %sql_type = do {
my $ti = $dbh->type_info_all;
my $tidx = shift @$ti;
my ( $n, $t ) = @$tidx{qw( TYPE_NAME SQL_DATATYPE )};
map {; uc $_->[$n], $_->[$t] } @$ti;
};
Now you can say things like $dbh->quote( $latitude, $sql_type{'DOUBLE'} )
. This is useful in situations where you cannot use placeholders, e.g. when generating some kind of fixture.sql
file from CSV data.