[otrs-cvs] otrs/Kernel/System/DB postgresql.pm, 1.32, 1.33 mssql.pm, 1.32, 1.33

CVS commits notifications of OTRS.org cvs-log at otrs.org
Tue May 6 22:34:19 GMT 2008


Comments:
Update of /home/cvs/otrs/Kernel/System/DB
In directory lancelot:/tmp/cvs-serv17284/Kernel/System/DB

Modified Files:
	postgresql.pm mssql.pm 
Log Message:
Added create and drop of foreign key support.

Author: martin

Index: postgresql.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/System/DB/postgresql.pm,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** postgresql.pm	24 Apr 2008 22:04:12 -0000	1.32
--- postgresql.pm	6 May 2008 22:34:14 -0000	1.33
***************
*** 267,275 ****
      my ( $Self, @Param ) = @_;
  
!     my $SQLStart  = '';
!     my @SQL       = ();
!     my @Index     = ();
!     my $IndexName = ();
!     my $Table     = '';
      for my $Tag (@Param) {
          if ( $Tag->{Tag} eq 'TableAlter' && $Tag->{TagType} eq 'Start' ) {
--- 267,278 ----
      my ( $Self, @Param ) = @_;
  
!     my $SQLStart      = '';
!     my @SQL           = ();
!     my @Index         = ();
!     my $IndexName     = ();
!     my $ForeignTable  = '';
!     my $ReferenceName = '';
!     my @Reference     = ();
!     my $Table         = '';
      for my $Tag (@Param) {
          if ( $Tag->{Tag} eq 'TableAlter' && $Tag->{TagType} eq 'Start' ) {
***************
*** 354,357 ****
--- 357,381 ----
              push @Index, $Tag;
          }
+         elsif ( $Tag->{Tag} =~ /^((ForeignKey)(Create|Drop))/ ) {
+             my $Method = $Tag->{Tag};
+             if ( $Tag->{ForeignTable} ) {
+                 $ForeignTable = $Tag->{ForeignTable};
+             }
+             if ( $Tag->{TagType} eq 'End' ) {
+                 for my $Reference (@Reference) {
+                     push @SQL,   $Self->$Method(
+                         LocalTableName   => $Table,
+                         Local            => $Reference->{Local},
+                         ForeignTableName => $ForeignTable,
+                         Foreign          => $Reference->{Foreign},
+                     );
+                 }
+                 $ReferenceName = '';
+                 @Reference     = ();
+             }
+         }
+         elsif ( $Tag->{Tag} =~ /^(Reference)/ && $Tag->{TagType} eq 'Start' ) {
+             push @Reference, $Tag;
+         }
      }
      return @SQL;

Author: martin

Index: mssql.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/System/DB/mssql.pm,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** mssql.pm	24 Apr 2008 22:04:12 -0000	1.32
--- mssql.pm	6 May 2008 22:34:14 -0000	1.33
***************
*** 290,298 ****
      my ( $Self, @Param ) = @_;
  
!     my $SQLStart  = '';
!     my @SQL       = ();
!     my @Index     = ();
!     my $IndexName = ();
!     my $Table     = '';
      for my $Tag (@Param) {
          if ( $Tag->{Tag} eq 'TableAlter' && $Tag->{TagType} eq 'Start' ) {
--- 290,301 ----
      my ( $Self, @Param ) = @_;
  
!     my $SQLStart      = '';
!     my @SQL           = ();
!     my @Index         = ();
!     my $IndexName     = ();
!     my $ForeignTable  = '';
!     my $ReferenceName = '';
!     my @Reference     = ();
!     my $Table         = '';
      for my $Tag (@Param) {
          if ( $Tag->{Tag} eq 'TableAlter' && $Tag->{TagType} eq 'Start' ) {
***************
*** 387,390 ****
--- 390,414 ----
              push @Index, $Tag;
          }
+         elsif ( $Tag->{Tag} =~ /^((ForeignKey)(Create|Drop))/ ) {
+             my $Method = $Tag->{Tag};
+             if ( $Tag->{ForeignTable} ) {
+                 $ForeignTable = $Tag->{ForeignTable};
+             }
+             if ( $Tag->{TagType} eq 'End' ) {
+                 for my $Reference (@Reference) {
+                     push @SQL,   $Self->$Method(
+                         LocalTableName   => $Table,
+                         Local            => $Reference->{Local},
+                         ForeignTableName => $ForeignTable,
+                         Foreign          => $Reference->{Foreign},
+                     );
+                 }
+                 $ReferenceName = '';
+                 @Reference     = ();
+             }
+         }
+         elsif ( $Tag->{Tag} =~ /^(Reference)/ && $Tag->{TagType} eq 'Start' ) {
+             push @Reference, $Tag;
+         }
      }
      return @SQL;


More information about the cvs-log mailing list