[Bast-commits] r8138 - in DBIx-Class/0.08/branches: . sqlt_parser_view sqlt_parser_view/lib/SQL/Translator/Parser/DBIx sqlt_parser_view/t sqlt_parser_view/t/lib/DBICTest sqlt_parser_view/t/lib/DBICTest/Schema

abraxxa at dev.catalyst.perl.org abraxxa at dev.catalyst.perl.org
Thu Dec 17 22:22:07 GMT 2009


Author: abraxxa
Date: 2009-12-17 22:22:07 +0000 (Thu, 17 Dec 2009)
New Revision: 8138

Added:
   DBIx-Class/0.08/branches/sqlt_parser_view/
   DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema/NoViewDefinition.pm
Modified:
   DBIx-Class/0.08/branches/sqlt_parser_view/Changes
   DBIx-Class/0.08/branches/sqlt_parser_view/lib/SQL/Translator/Parser/DBIx/Class.pm
   DBIx-Class/0.08/branches/sqlt_parser_view/t/99dbic_sqlt_parser.t
   DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema.pm
Log:
Views without a view_definition won't be added to the SQL::Translator::Schema by the parser + tests


Copied: DBIx-Class/0.08/branches/sqlt_parser_view (from rev 8136, DBIx-Class/0.08/trunk)

Modified: DBIx-Class/0.08/branches/sqlt_parser_view/Changes
===================================================================
--- DBIx-Class/0.08/trunk/Changes	2009-12-17 18:54:55 UTC (rev 8136)
+++ DBIx-Class/0.08/branches/sqlt_parser_view/Changes	2009-12-17 22:22:07 UTC (rev 8138)
@@ -3,6 +3,8 @@
         - might_have/has_one now warn if applied calling class's column
           has is_nullable set to true.
         - Cookbook POD fix for add_drop_table instead of add_drop_tables
+        - Views without a view_definition won't be added to the
+          SQL::Translator::Schema by the parser
 
 0.08115 2009-12-10 09:02:00 (CST)
         - Real limit/offset support for MSSQL server (via Row_Number)

Modified: DBIx-Class/0.08/branches/sqlt_parser_view/lib/SQL/Translator/Parser/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/SQL/Translator/Parser/DBIx/Class.pm	2009-12-17 18:54:55 UTC (rev 8136)
+++ DBIx-Class/0.08/branches/sqlt_parser_view/lib/SQL/Translator/Parser/DBIx/Class.pm	2009-12-17 22:22:07 UTC (rev 8138)
@@ -289,6 +289,8 @@
         # Its possible to have multiple DBIC source using same table
         next if $views{$view_name}++;
 
+        next unless $source->view_definition;
+
         my $view = $schema->add_view (
           name => $view_name,
           fields => [ $source->columns ],

Modified: DBIx-Class/0.08/branches/sqlt_parser_view/t/99dbic_sqlt_parser.t
===================================================================
--- DBIx-Class/0.08/trunk/t/99dbic_sqlt_parser.t	2009-12-17 18:54:55 UTC (rev 8136)
+++ DBIx-Class/0.08/branches/sqlt_parser_view/t/99dbic_sqlt_parser.t	2009-12-17 22:22:07 UTC (rev 8138)
@@ -15,10 +15,10 @@
 my $schema = DBICTest->init_schema();
 # Dummy was yanked out by the sqlt hook test
 # CustomSql tests the horrific/deprecated ->name(\$sql) hack
-# YearXXXXCDs are views
+# YearXXXXCDs and NoViewDefinition are views
 #
 my @sources = grep
-  { $_ !~ /^ (?: Dummy | CustomSql | Year\d{4}CDs ) $/x }
+  { $_ !~ /^ (?: Dummy | CustomSql | Year\d{4}CDs | NoViewDefinition ) $/x }
   $schema->sources
 ;
 
@@ -62,6 +62,31 @@
 	}
 }
 
+{ 
+    #my $sqlt_schema = create_schema({ schema => $schema, args => { parser_args => { } } });
+	my $sqlt_schema = create_schema({ schema => $schema });
+    
+    my @views = $sqlt_schema->get_views;
+
+    # the following views are skipped:
+    # Year1999CDs is virtual
+    # NoViewDefinition has no view_definition
+    is(scalar @views, 1, "number of views ok");
+
+    foreach my $view (@views) {
+        ok($view->is_valid, "view " . $view->name . " is valid");
+    }
+
+    my @expected_view_names = (qw/ year2000cds /);
+    my @view_names = sort map { $_->name } @views;
+
+    is_deeply( @view_names, @expected_view_names, "all expected views included int SQL::Translator schema" );
+    
+    #use Data::Dumper::Concise;
+    #warn Dumper(@view_names);
+    #is($view->error, undef, 'view with a view_definition is skipped.');
+}
+
 done_testing;
 
 sub create_schema {

Added: DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema/NoViewDefinition.pm
===================================================================
--- DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema/NoViewDefinition.pm	                        (rev 0)
+++ DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema/NoViewDefinition.pm	2009-12-17 22:22:07 UTC (rev 8138)
@@ -0,0 +1,9 @@
+package # hide from PAUSE
+    DBICTest::Schema::NoViewDefinition;
+
+use base qw/DBICTest::BaseResult/;
+
+__PACKAGE__->table_class('DBIx::Class::ResultSource::View');
+__PACKAGE__->table('noviewdefinition');
+
+1;

Modified: DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema.pm
===================================================================
--- DBIx-Class/0.08/trunk/t/lib/DBICTest/Schema.pm	2009-12-17 18:54:55 UTC (rev 8136)
+++ DBIx-Class/0.08/branches/sqlt_parser_view/t/lib/DBICTest/Schema.pm	2009-12-17 22:22:07 UTC (rev 8138)
@@ -22,6 +22,7 @@
   Year1999CDs
   CustomSql
   Money
+  NoViewDefinition
   /,
   { 'DBICTest::Schema' => [qw/
     LinerNotes




More information about the Bast-commits mailing list