Jonathan Rockway wrote:
* On Tue, Apr 01 2008, Peter Rabbitson wrote:

 __PACKAGE__->add_columns(
   id => { data_type => 'integer', is_auto_increment => 1 },
   starts_at => { data_type => 'datetime' },
-  created_on => { data_type => 'timestamp' }
+  created_on => { data_type => 'timestamp', index_as => 
'created_test_simple_idx' }
 );

The problem with this syntax is that you can only index one column.  Why
not do:

  __PACKAGE__->add_index( idx_foo_bar => [qw/foo bar/] );


Ash expressed the same concern and here is what I said:

ribasushi> ash: I was thinking to make add_index a method at first, however it does not go along with the philosophy of dbic (as far as I see it) <ribasushi> ->set_primary_key, ->add_unique_constraint - they all have some meaning for DBIC itself
<ribasushi> where as an index is meaningless, and only SQLT would care about it
<ribasushi> I figured I'll add it as an attribute, just like is_foreign_key is a column attribute
<ash> what about multi-col indexs tho?
<ribasushi> you still use the hook
<ribasushi> that's why the Simple

Additionally such functionality used to exist but was pulled away in r3815 (trunk), to give way to sqlt_deploy_hook.

Should it get reinstated?


+=head1 USAGE NOTES
+
+The module adds indexes by declaring a version of the C<sqlt_deploy_hook> 
method. If you
+want to use this component together with your own C<sqlt_deploy_hook>, you 
need add an
+explicit inherited method call to your version:
+
+    sub sqlt_deploy_hook {
+        my ($self, $sqlt_table) = @_;
+
+        <do your stuff>
+
+        $self->next::method ($sqlt_table);  #call sqlt_deploy_hook from 
Index::Simple
+    }

This chunk of docs should probably live in a more general place.  It's
not just users of your extension that need to know this.

Suggestions?

Peter

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to