[Jifty-commit] r2260 - in Jifty-DBI/trunk: . lib/Jifty/DBI

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Dec 1 15:27:21 EST 2006


Author: falcone
Date: Fri Dec  1 15:26:56 2006
New Revision: 2260

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm
   Jifty-DBI/trunk/t/testmodels.pl

Log:
 r14932 at ketch:  falcone | 2006-12-01 15:25:54 -0500
 * add 'is indexed' syntax to the declaritive schema generator


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm	Fri Dec  1 15:26:56 2006
@@ -25,6 +25,7 @@
 
     label hints render_as
     valid_values
+    indexed
     /;
 
 =head1 NAME

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	Fri Dec  1 15:26:56 2006
@@ -43,7 +43,7 @@
 use Carp qw/croak carp/;
 use Exporter::Lite;
 our @EXPORT
-    = qw(column type default literal validator immutable unreadable length distinct mandatory not_null sort_order valid_values label hints render_as render since input_filters output_filters filters virtual is as by are on schema);
+    = qw(column type default literal validator immutable unreadable length distinct mandatory not_null sort_order valid_values label hints render_as render since input_filters output_filters filters virtual is as by are on schema indexed);
 
 our $SCHEMA;
 our $SORT_ORDERS = {};
@@ -513,6 +513,17 @@
     _list( render_as => @_ );
 }
 
+=head2 indexed
+
+An index will be built on this column
+Correct usage is C<is indexed>
+
+=cut
+
+sub indexed {
+    _list( indexed => 1, @_ );
+}
+
 =head2 by
 
 Helper method to improve readability.

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm	Fri Dec  1 15:26:56 2006
@@ -235,6 +235,7 @@
     my @columns    = $model->columns;
 
     my @cols;
+    my @indexes;
 
     for my $column (@columns) {
 
@@ -250,12 +251,17 @@
                 default  => $column->default,
             }
             );
+
+        if ($column->indexed) {
+            push @indexes,[$column->name];
+        }
     }
 
     my $table = DBIx::DBSchema::Table->new(
         {   name        => $table_name,
             primary_key => "id",
             columns     => \@cols,
+            (@indexes) ? (index => DBIx::DBSchema::ColGroup->new(\@indexes)) : ()
         }
     );
 

Modified: Jifty-DBI/trunk/t/testmodels.pl
==============================================================================
--- Jifty-DBI/trunk/t/testmodels.pl	(original)
+++ Jifty-DBI/trunk/t/testmodels.pl	Fri Dec  1 15:26:56 2006
@@ -3,7 +3,9 @@
 use Jifty::DBI::Record schema {
 
 column dexterity => type is 'integer';
-column name      => type is 'varchar';
+column name      => 
+    type is 'varchar',
+    is indexed;
 column label     => type is 'varchar';
 column type      => type is 'varchar';
 
@@ -18,6 +20,7 @@
       label varchar   ,
       type varchar
     ) ;
+    CREATE INDEX employees1 ON employees (name) ;
     };
 }
 
@@ -31,6 +34,7 @@
       type varchar ,
       PRIMARY KEY (id)
     ) ;
+    CREATE INDEX employees1 ON employees (name) ;
     };
 
 }


More information about the Jifty-commit mailing list