Author: REHSACK
Date: Sun Oct 17 06:51:23 2010
New Revision: 14494
Modified:
dbi/branches/sqlengine/lib/DBI/DBD/SqlEngine.pm
Log:
cleanup SQL::Parser dialect handling
Modified: dbi/branches/sqlengine/lib/DBI/DBD/SqlEngine.pm
==============================================================================
--- dbi/branches/sqlengine/lib/DBI/DBD/SqlEngine.pm (original)
+++ dbi/branches/sqlengine/lib/DBI/DBD/SqlEngine.pm Sun Oct 17 06:51:23 2010
@@ -397,17 +397,17 @@
sub sql_parser_object
{
my $dbh = $_[0];
+ my $dialect = $dbh->{sql_dialect} || "CSV";
my $parser = {
- dialect => $dbh->{sql_dialect} || "CSV",
RaiseError => $dbh->FETCH("RaiseError"),
PrintError => $dbh->FETCH("PrintError"),
};
my $sql_flags = $dbh->FETCH("sql_flags") || {};
%$parser = ( %$parser, %$sql_flags );
- $parser = SQL::Parser->new( $parser->{dialect}, $parser );
+ $parser = SQL::Parser->new( $dialect, $parser );
$dbh->{sql_parser_object} = $parser;
return $parser;
-} # cache_sql_parser_object
+} # sql_parser_object
sub sql_sponge_driver
{
@@ -1141,8 +1141,10 @@
* CSV
* AnyData
-Defaults to "CSV". Because an SQL::Parser is instantiated only once,
-it's recommended to set this flag before any statement is executed.
+Defaults to "CSV". Because an SQL::Parser is instantiated only once and
+SQL::Parser doesn't allow to modify the dialect once instantiated,
+it's strongly recommended to set this flag before any statement is
+executed (best place is connect attribute hash).
=head1 SUPPORT