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]