[rt-devel] [patch] support for additional DB parametrs

Ruslan U. Zakirov cubic at acronis.ru
Fri Jul 25 08:02:26 EDT 2003


        Hello.
I think it would be useful for people to have chance to pass additional 
DBD parametrs through DSN.
I've got two different mysql servers on my machine. I don't find another 
flexible way to specify connection properties except 
'mysql_read_default_file=/etc/my_xxx.cnf'. And I think it would be 
useful in another ways.
This patch don't check names of params, but DBI drop an error if 
something will be wrong.

general changes tested.
mySQL part tested.
Pg specific not changed.
Oracle not tested.
        Feedback is wellcome.
                Best regards. Ruslan.
-------------- next part --------------
diff -Nru DBIx-SearchBuilder-0.88/SearchBuilder/Handle/Oracle.pm DBIx-SearchBuilder-0.88-my/SearchBuilder/Handle/Oracle.pm
--- DBIx-SearchBuilder-0.88/SearchBuilder/Handle/Oracle.pm	2003-06-24 05:14:37.000000000 +0400
+++ DBIx-SearchBuilder-0.88-my/SearchBuilder/Handle/Oracle.pm	2003-07-25 15:32:34.000000000 +0400
@@ -48,17 +48,8 @@
 
 sub Connect  {
   my $self = shift;
-  
-  my %args = ( Driver => undef,
-	       Database => undef,
-	       User => undef,
-	       Password => undef, 
-           SID => undef,
-           Host => undef,
-	       @_);
-  
-    $self->SUPER::Connect(%args);
-   
+
+  $self->SUPER::Connect(@_);
     
     $self->dbh->{LongTruncOk}=1;
     $self->dbh->{LongReadLen}=8000;
@@ -157,6 +148,7 @@
 	       Port => undef,
            SID => undef,
 	       RequireSSL => undef,
+	       Additional => undef,
 	       @_);
   
   my $dsn = "dbi:$args{'Driver'}:";
@@ -169,6 +161,7 @@
   }
   $dsn .= ";port=$args{'Port'}" if (defined $args{'Port'} && $args{'Port'});
   $dsn .= ";requiressl=1" if (defined $args{'RequireSSL'} && $args{'RequireSSL'});
+  $dsn .= ";$args{'Additional'}" if (defined $args{'Additional'} && $args{'Additional'});
 
   $self->{'dsn'}= $dsn;
 }
diff -Nru DBIx-SearchBuilder-0.88/SearchBuilder/Handle.pm DBIx-SearchBuilder-0.88-my/SearchBuilder/Handle.pm
--- DBIx-SearchBuilder-0.88/SearchBuilder/Handle.pm	2003-06-24 05:14:37.000000000 +0400
+++ DBIx-SearchBuilder-0.88-my/SearchBuilder/Handle.pm	2003-07-25 15:32:39.000000000 +0400
@@ -116,6 +116,7 @@
 	       User => undef,
 	       Password => undef,
 	       RequireSSL => undef,
+	       Additional => undef,
            DisconnectHandleOnDestroy => undef,
 	       @_);
 
@@ -166,6 +167,7 @@
 	       Port => undef,
            SID => undef,
 	       RequireSSL => undef,
+	       Additional => undef,
 	       @_);
   
   
@@ -174,6 +176,7 @@
   $dsn .= ";host=$args{'Host'}" if (defined$args{'Host'} && $args{'Host'});
   $dsn .= ";port=$args{'Port'}" if (defined $args{'Port'} && $args{'Port'});
   $dsn .= ";requiressl=1" if (defined $args{'RequireSSL'} && $args{'RequireSSL'});
+  $dsn .= ";$args{'Additional'}" if (defined $args{'Additional'} && $args{'Additional'});
 
   $self->{'dsn'}= $dsn;
 }
-------------- next part --------------
diff -Nru rt-3-0-4/etc/RT_Config.pm rt-3-0-4-my/etc/RT_Config.pm
--- rt-3-0-4/etc/RT_Config.pm	2003-07-12 12:24:40.000000000 +0400
+++ rt-3-0-4-my/etc/RT_Config.pm	2003-07-25 15:09:34.000000000 +0400
@@ -74,6 +74,10 @@
 # set DatabaseRequireSSL to 1 to turn on SSL communication
 Set($DatabaseRequireSSL , undef);
 
+# If you're whant define additional parametrs to DSN 
+# set DatabaseAdditional to 'param1=value1;param2=value2...'
+Set($DatabaseAdditional , undef);
+
 # }}}
 
 # {{{ Incoming mail gateway configuration
diff -Nru rt-3-0-4/lib/RT/Handle.pm rt-3-0-4-my/lib/RT/Handle.pm
--- rt-3-0-4/lib/RT/Handle.pm	2003-07-12 12:24:37.000000000 +0400
+++ rt-3-0-4-my/lib/RT/Handle.pm	2003-07-25 15:05:50.000000000 +0400
@@ -87,6 +87,7 @@
 			 Port => $RT::DatabasePort,
 			 Driver => $RT::DatabaseType,
 			 RequireSSL => $RT::DatabaseRequireSSL,
+			 Additional => $RT::DatabaseAdditional,
              DisconnectHandleOnDestroy => 1
 			);
    


More information about the Rt-devel mailing list