Merge 'trunk' into 'oracle_quotes'
Peter Rabbitson [Sun, 21 Feb 2010 14:31:08 +0000 (14:31 +0000)]
r8715@Thesaurus (orig r8702):  ribasushi | 2010-02-14 10:46:51 +0100
This is Moose, so use CMOP
r8720@Thesaurus (orig r8707):  ribasushi | 2010-02-15 10:28:22 +0100
Final POD touches
r8721@Thesaurus (orig r8708):  ribasushi | 2010-02-15 10:31:38 +0100
Spellcheck (jawnsy++)
r8722@Thesaurus (orig r8709):  ribasushi | 2010-02-15 10:32:24 +0100
One more
r8723@Thesaurus (orig r8710):  ribasushi | 2010-02-15 14:49:26 +0100
Release 0.08119
r8725@Thesaurus (orig r8712):  ribasushi | 2010-02-15 14:50:56 +0100
Bump trunl version
r8726@Thesaurus (orig r8713):  rafl | 2010-02-15 15:49:55 +0100
Make sure we actually run all tests, given we're using done_testing.
r8727@Thesaurus (orig r8714):  rafl | 2010-02-15 15:50:01 +0100
Make sure overriding deployment_statements is possible from within schemas.
r8728@Thesaurus (orig r8715):  rafl | 2010-02-15 15:56:06 +0100
Changelogging.
r8729@Thesaurus (orig r8716):  rafl | 2010-02-15 15:58:09 +0100
Make some cookbook code compile.
r8730@Thesaurus (orig r8717):  nuba | 2010-02-15 16:11:52 +0100
spelling fixes in the documaentation, sholud be gud now ;)
r8732@Thesaurus (orig r8719):  caelum | 2010-02-16 11:09:58 +0100
use OO interface of Hash::Merge for ::DBI::Replicated
r8734@Thesaurus (orig r8721):  ribasushi | 2010-02-16 11:41:06 +0100
Augment did-author-run-makefile check to include OptDeps
r8735@Thesaurus (orig r8722):  ribasushi | 2010-02-16 12:16:06 +0100
Reorg support section, add live-chat link
r8739@Thesaurus (orig r8726):  caelum | 2010-02-16 14:51:58 +0100
set behavior for Hash::Merge in ::DBI::Replicated, otherwise it uses the global setting
r8740@Thesaurus (orig r8727):  caelum | 2010-02-16 15:43:25 +0100
POD touchups
r8759@Thesaurus (orig r8746):  ribasushi | 2010-02-19 00:30:37 +0100
Fix bogus test
r8760@Thesaurus (orig r8747):  ribasushi | 2010-02-19 00:34:22 +0100
Retire useless abstraction (all rdbms need this anyway)
r8761@Thesaurus (orig r8748):  ribasushi | 2010-02-19 00:35:01 +0100
Fix count of group_by over aliased function
r8765@Thesaurus (orig r8752):  ribasushi | 2010-02-19 10:11:20 +0100
 r8497@Thesaurus (orig r8484):  ribasushi | 2010-01-31 10:06:29 +0100
 Branch to unify mandatory PK handling
 r8498@Thesaurus (orig r8485):  ribasushi | 2010-01-31 10:20:36 +0100
 This is not really used for anything (same code in DBI)
 r8499@Thesaurus (orig r8486):  ribasushi | 2010-01-31 10:25:55 +0100
 Helper primary_columns wrapper to throw if a PK is not defined
 r8500@Thesaurus (orig r8487):  ribasushi | 2010-01-31 11:07:25 +0100
 Stupid errors
 r8501@Thesaurus (orig r8488):  ribasushi | 2010-01-31 12:18:57 +0100
 Saner handling of nonexistent/partial conditions
 r8762@Thesaurus (orig r8749):  ribasushi | 2010-02-19 10:07:40 +0100
 trap unresolvable conditions due to incomplete relationship specification
 r8764@Thesaurus (orig r8751):  ribasushi | 2010-02-19 10:11:09 +0100
 Changes

r8767@Thesaurus (orig r8754):  ribasushi | 2010-02-19 11:14:30 +0100
Fix for RT54697
r8769@Thesaurus (orig r8756):  caelum | 2010-02-19 12:21:53 +0100
bump Test::Pod dep
r8770@Thesaurus (orig r8757):  caelum | 2010-02-19 12:23:07 +0100
bump Test::Pod dep in Optional::Dependencies too
r8773@Thesaurus (orig r8760):  rabbit | 2010-02-19 16:41:24 +0100
Fix stupid sqlt parser regression
r8774@Thesaurus (orig r8761):  rabbit | 2010-02-19 16:42:40 +0100
Port remaining tests to the Opt::Dep reposiory
r8775@Thesaurus (orig r8762):  rabbit | 2010-02-19 16:43:36 +0100
Some test cleanups
r8780@Thesaurus (orig r8767):  rabbit | 2010-02-20 20:59:20 +0100
Test::Deep actually isn't required
r8786@Thesaurus (orig r8773):  rabbit | 2010-02-20 22:21:41 +0100
These are core for perl 5.8
r8787@Thesaurus (orig r8774):  rabbit | 2010-02-21 10:52:40 +0100
Shuffle tests a bit
r8788@Thesaurus (orig r8775):  rabbit | 2010-02-21 12:09:25 +0100
Bogus require
r8789@Thesaurus (orig r8776):  rabbit | 2010-02-21 12:09:48 +0100
Bogus unnecessary dep
r8800@Thesaurus (orig r8787):  rabbit | 2010-02-21 13:39:21 +0100
 r8748@Thesaurus (orig r8735):  goraxe | 2010-02-17 23:17:15 +0100
 branch for dbicadmin pod fixes

 r8778@Thesaurus (orig r8765):  goraxe | 2010-02-20 20:35:00 +0100
 add G:L:D sub classes to generate pod
 r8779@Thesaurus (orig r8766):  goraxe | 2010-02-20 20:56:16 +0100
 dbicadmin: use subclassed G:L:D to generate some pod
 r8782@Thesaurus (orig r8769):  goraxe | 2010-02-20 21:48:29 +0100
 adjust Makefile.pl to generate dbicadmin.pod
 r8783@Thesaurus (orig r8770):  goraxe | 2010-02-20 21:50:55 +0100
 add svn-ignore for dbicadmin.pod
 r8784@Thesaurus (orig r8771):  goraxe | 2010-02-20 22:01:41 +0100
 change Options to Arguments
 r8785@Thesaurus (orig r8772):  goraxe | 2010-02-20 22:10:29 +0100
 add DBIx::Class::Admin::{Descriptive,Usage} to podcover ignore list
 r8790@Thesaurus (orig r8777):  rabbit | 2010-02-21 12:35:38 +0100
 Cleanup the makefile regen a bit
 r8792@Thesaurus (orig r8779):  rabbit | 2010-02-21 12:53:01 +0100
 Bah humbug
 r8793@Thesaurus (orig r8780):  rabbit | 2010-02-21 12:55:18 +0100
 And another one
 r8797@Thesaurus (orig r8784):  rabbit | 2010-02-21 13:32:03 +0100
 The minimal pod seems to confuse the manpage generator, commenting out for now
 r8798@Thesaurus (orig r8785):  rabbit | 2010-02-21 13:38:03 +0100
 Add license/author to dbicadmin autogen POD
 r8799@Thesaurus (orig r8786):  rabbit | 2010-02-21 13:38:58 +0100
 Reorder makefile author actions to make output more readable

r8803@Thesaurus (orig r8790):  ribasushi | 2010-02-21 14:24:15 +0100
Fix exception text
r8804@Thesaurus (orig r8791):  ribasushi | 2010-02-21 15:14:58 +0100
Extra testdep

lib/DBIx/Class/Storage/DBI.pm
lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm

index d56cd44..b1b84c7 100644 (file)
@@ -40,6 +40,7 @@ __PACKAGE__->sql_maker_class('DBIx::Class::SQLAHacks');
 # Each of these methods need _determine_driver called before itself
 # in order to function reliably. This is a purely DRY optimization
 my @rdbms_specific_methods = qw/
+  deployment_statements
   sqlt_type
   build_datetime_parser
   datetime_parser_type
index a2b2f90..854566a 100644 (file)
@@ -28,6 +28,22 @@ versions before 9.
 use base qw/DBIx::Class::Storage::DBI/;
 use mro 'c3';
 
+sub deployment_statements {
+  my $self = shift;;
+  my ($schema, $type, $version, $dir, $sqltargs, @rest) = @_;
+
+  $sqltargs ||= {};
+  my $quote_char = $self->schema->storage->{'_sql_maker_opts'}->{'quote_char'};
+  $sqltargs->{quote_table_names} = 0 unless $quote_char;
+  $sqltargs->{quote_field_names} = 0 unless $quote_char;
+
+  my $oracle_version = eval { $self->_get_dbh->get_info(18) };
+
+  $sqltargs->{producer_args}{oracle_version} = $oracle_version;
+
+  $self->next::method($schema, $type, $version, $dir, $sqltargs, @rest);
+}
+
 sub _dbh_last_insert_id {
   my ($self, $dbh, $source, @columns) = @_;
   my @ids = ();
@@ -63,6 +79,10 @@ sub _dbh_get_autoinc_seq {
       $source_name = ${$source->name};
   }
 
+  unless ($self->schema->storage->{'_sql_maker_opts'}->{'quote_char'}) {
+    $source_name =  uc($source_name);
+  }
+
   # check for fully-qualified name (eg. SCHEMA.TABLENAME)
   if ( my ( $schema, $table ) = $source_name =~ /(\w+)\.(\w+)/ ) {
     $sql = q{
@@ -72,14 +92,17 @@ sub _dbh_get_autoinc_seq {
       AND t.status = 'ENABLED'
     };
     $sth = $dbh->prepare($sql);
-    $sth->execute( uc($schema), uc($table) );
+       my $table_name  = $self -> sql_maker -> _quote($table);
+       my $schema_name = $self -> sql_maker -> _quote($schema);
+
+    $sth->execute( $schema_name, $table_name );
   }
   else {
     $sth = $dbh->prepare($sql);
-    $sth->execute( uc( $source_name ) );
+    $sth->execute( $source_name );
   }
   while (my ($insert_trigger) = $sth->fetchrow_array) {
-    return uc($1) if $insert_trigger =~ m!(\w+)\.nextval!i; # col name goes here???
+    return $1 if $insert_trigger =~ m!("?\w+"?)\.nextval!i; # col name goes here???
   }
   $self->throw_exception("Unable to find a sequence INSERT trigger on table '" . $source->name . "'.");
 }
@@ -160,7 +183,7 @@ names to uppercase
 sub columns_info_for {
   my ($self, $table) = @_;
 
-  $self->next::method(uc($table));
+  $self->next::method($table);
 }
 
 =head2 datetime_parser_type