[Dbix-class] Problems while using the newest DBIx-Class-current
Nilson Santos Figueiredo Junior
acid06 at gmail.com
Fri Jun 30 22:19:52 CEST 2006
On 6/30/06, Matt S Trout <dbix-class at trout.me.uk> wrote:
> I don't think {attrs}{alias} has been munged right as DBIC traversed the
> search_relateds in the many-many. Not sure exactly why though - can you have a
> dig around in that resultset and see what you've ended up with please?
By "dig around" you mean a dump of it?
If that's the case, here it is (but I don't really think that's what
you mean, since I think it'd be really hard to figure anything out of
this enormous dump):
#!/usr/bin/perl
print "Hello, World...\n";
'tasks' => bless( {
'cond' => {
'me.user_id' => '1'
},
'result_class' => 'MyTasks::Model::Persistent::Task',
'attrs' => {
'_live_join_stack' => [
'task'
],
'_live_join' => 'task',
'where' => $VAR1->{'tasks'}{'cond'},
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi',
'join' => {
'task' => [
'logs'
]
},
'as' => [
'id',
'project_id',
'creator_id',
'date',
'deadline',
'priority',
'description',
'is_closed',
'comments',
'parent_id',
'hours_spent'
],
'group_by' => [
'me.id'
],
'join_type' => 'LEFT',
'alias' => 'me',
'select' => [
'me.id',
'me.project_id',
'me.creator_id',
'me.date',
'me.deadline',
'me.priority',
'me.description',
'me.is_closed',
'me.comments',
'me.parent_id',
{
'sum' => 'logs.hours_spent'
}
],
'_live_join_h' => 'task'
},
'count' => undef,
'page' => undef,
'_attrs' => {
'seen_join' => {
'task' => 1,
'logs' => 1
},
'_live_join_stack' => [
'task'
],
'order_by' => [],
'_live_join' => 'task',
'accessor' => 'multi',
'cascade_delete' => 1,
'cascade_copy' => 1,
'where' => {
'me.user_id' => '1'
},
'as' => [
'id',
'project_id',
'creator_id',
'date',
'deadline',
'priority',
'description',
'is_closed',
'comments',
'parent_id',
'hours_spent'
],
'from' => [
{
'me' => 'task_user'
},
[
{
'-join_type' => '',
'task' => 'task'
},
{
'task.id' => 'me.task_id'
}
],
[
{
'-join_type' => 'LEFT',
'logs' => 'task_log'
},
{
'logs.task_id' => 'task.id'
}
]
],
'collapse' => {},
'join_type' => 'LEFT',
'group_by' => [
'me.id'
],
'alias' => 'me',
'_live_join_h' => 'task',
'select' => [
'me.id',
'me.project_id',
'me.creator_id',
'me.date',
'me.deadline',
'me.priority',
'me.description',
'me.is_closed',
'me.comments',
'me.parent_id',
{
'sum' => 'logs.hours_spent'
}
]
},
'_parent_rs' => bless( {
'resultset_attributes' => {
'alias' => 'me'
},
'result_class' =>
'MyTasks::Model::Persistent::TaskUser',
'name' => 'task_user',
'schema' => bless( {
'class_mappings' => {
'MyTasks::Model::Persistent::TaskLog' => 'TaskLog',
'MyTasks::Schema::Project' => 'Project',
'MyTasks::Model::Persistent::Task' => 'Task',
'MyTasks::Schema::Task' => 'Task',
'MyTasks::Model::Persistent::Project' => 'Project',
'MyTasks::Model::Persistent::Session' => 'Session',
'MyTasks::Model::Persistent::TaskUser' =>
'TaskUser',
'MyTasks::Schema::TaskLog' => 'TaskLog',
'MyTasks::Schema::TaskUser' => 'TaskUser',
'MyTasks::Schema::User' => 'User',
'MyTasks::Model::Persistent::User' => 'User',
'MyTasks::Schema::Session' => 'Session'
},
'source_registrations' => {
'TaskUser' => $VAR1->{'tasks'}{'_parent_rs'},
'TaskLog' => bless( {
'resultset_attributes'
=> {},
'result_class' =>
'MyTasks::Model::Persistent::TaskLog',
'name' => 'task_log',
'schema' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'},
'_relationships' => {
'user' => {
'cond' => {
'foreign.id' => 'self.user_id'
},
'source' => 'MyTasks::Schema::User',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::User'
},
'task' => {
'cond' => {
'foreign.id' => 'self.task_id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::Task'
}
},
'source_name' =>
'TaskLog',
'_columns_info_loaded'
=> 0,
'_ordered_columns' => [
'id',
'task_id',
'user_id',
'date',
'hours_spent',
'comments'
],
'_primaries' => [
'id'
],
'_resultset' => undef,
'resultset_class' =>
'DBIx::Class::ResultSet',
'_unique_constraints'
=> {
'primary' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'TaskLog'}{'_primaries'}
},
'_columns' => {
'hours_spent' => {},
'date'
=> {
'_inflate_info' => {
'inflate' => sub { "DUMMY" },
'deflate' => sub { "DUMMY" }
}
},
'user_id' => {},
'id' =>
{},
'comments' => {},
'task_id' => {}
}
},
'DBIx::Class::ResultSource::Table' ),
'Session' => bless( {
'resultset_attributes'
=> {
'_live_join' => '',
'alias' => 'me'
},
'result_class' =>
'MyTasks::Model::Persistent::Session',
'name' => 'session',
'schema' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'},
'_relationships' => {},
'source_name' =>
'Session',
'_columns_info_loaded'
=> 0,
'_ordered_columns' => [
'id',
'expires',
'session_data'
],
'_primaries' => [
'id'
],
'_resultset' => undef,
'resultset_class' =>
'DBIx::Class::ResultSet',
'_unique_constraints'
=> {
'primary' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Session'}{'_primaries'}
},
'_columns' => {
'session_data' => {},
'id' =>
{},
'expires' => {}
}
},
'DBIx::Class::ResultSource::Table' ),
'User' => bless( {
'resultset_attributes' =>
{
'alias' => 'me'
},
'result_class' =>
'MyTasks::Model::Persistent::User',
'name' => 'user',
'schema' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'},
'_relationships' => {
'created_tasks' => {
'cond' => {
'foreign.creator_id' => 'self.id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::Task'
},
'task_users' => {
'cond' => {
'foreign.user_id' => 'self.id'
},
'source' => 'MyTasks::Schema::TaskUser',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::TaskUser'
},
'logs' => {
'cond' => {
'foreign.user_id' => 'self.id'
},
'source' => 'MyTasks::Schema::TaskLog',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::TaskLog'
}
},
'source_name' => 'User',
'_columns_info_loaded' =>
0,
'_ordered_columns' => [
'id',
'login',
'passwd',
'name',
'type'
],
'_primaries' => [
'id'
],
'_resultset' => undef,
'resultset_class' =>
'DBIx::Class::ResultSet',
'_unique_constraints' => {
'primary' => $VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'User'}{'_primaries'}
},
'_columns' => {
'passwd'
=> {},
'name' =>
{},
'type' =>
{},
'id' =>
{},
'login' =>
{}
}
},
'DBIx::Class::ResultSource::Table' ),
'Project' => bless( {
'resultset_attributes'
=> {},
'result_class' =>
'MyTasks::Model::Persistent::Project',
'name' => 'project',
'schema' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'},
'_relationships' => {
'tasks' => {
'cond' => {
'foreign.project_id' => 'self.id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::Task'
}
},
'source_name' =>
'Project',
'_columns_info_loaded'
=> 0,
'_ordered_columns' => [
'id',
'name'
],
'_primaries' => [
'id'
],
'_resultset' => undef,
'resultset_class' =>
'DBIx::Class::ResultSet',
'_unique_constraints'
=> {
'primary' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Project'}{'_primaries'}
},
'_columns' => {
'name'
=> {},
'id' =>
{}
}
},
'DBIx::Class::ResultSource::Table' ),
'Task' => bless( {
'resultset_attributes' =>
{
'alias' => 'me'
},
'result_class' =>
'MyTasks::Model::Persistent::Task',
'name' => 'task',
'schema' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'},
'_relationships' => {
'parent_task' => {
'cond' => {
'foreign.id' => 'self.parent_id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::Task'
},
'creator' => {
'cond' => {
'foreign.id' => 'self.creator_id'
},
'source' => 'MyTasks::Schema::User',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::User'
},
'child_tasks' => {
'cond' => {
'foreign.parent_id' => 'self.id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::Task'
},
'project' => {
'cond' => {
'foreign.id' => 'self.project_id'
},
'source' => 'MyTasks::Schema::Project',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::Project'
},
'task_users' => {
'cond' => {
'foreign.task_id' => 'self.id'
},
'source' => 'MyTasks::Schema::TaskUser',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::TaskUser'
},
'logs' => {
'cond' => {
'foreign.task_id' => 'self.id'
},
'source' => 'MyTasks::Schema::TaskLog',
'attrs' => {
'join_type' => 'LEFT',
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'class' => 'MyTasks::Schema::TaskLog'
}
},
'source_name' => 'Task',
'_columns_info_loaded' =>
0,
'_ordered_columns' => [
'id',
'project_id',
'creator_id',
'date',
'deadline',
'priority',
'description',
'is_closed',
'comments',
'parent_id'
],
'_primaries' => [
'id'
],
'_resultset' => undef,
'resultset_class' =>
'MyTasks::Schema::ResultSet::Task',
'_unique_constraints' => {
'primary' => $VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Task'}{'_primaries'}
},
'_columns' => {
'priority'
=> {},
'date' =>
{
'_inflate_info' => {
'inflate' => sub { "DUMMY" },
'deflate' => sub { "DUMMY" }
}
},
'deadline'
=> {
'_inflate_info' => {
'inflate' => sub { "DUMMY" },
'deflate' => sub { "DUMMY" }
}
},
'comments'
=> {},
'description' => {},
'parent_id' => {},
'is_closed' => {},
'id' =>
{},
'project_id' => {},
'creator_id' => {}
}
},
'DBIx::Class::ResultSource::Table' )
},
'storage' => bless( {
'_conn_pid' => 1812,
'debugobj' => bless( {
'debugfh' => bless(
\*Symbol::GEN0, 'IO::File' )
},
'DBIx::Class::Storage::Statistics' ),
'transaction_depth' => 0,
'cursor' => 'DBIx::Class::Storage::DBI::Cursor',
'_dbh' => bless( {}, 'DBI::db' ),
'_sql_maker' => bless( {
'cmp' => '=',
'quote_char' => '',
'limit_dialect' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'storage'}{'_dbh'},
'bindtype' => 'normal'
}, 'DBIC::SQL::Abstract' ),
'_connect_info' => [
'dbi:mysql:mytasks:localhost',
'root',
'root'
]
}, 'DBIx::Class::Storage::DBI::mysql' )
},
'MyTasks::Schema' ),
'_relationships' => {
'user' => {
'cond' => {
'foreign.id' => 'self.user_id'
},
'source' => 'MyTasks::Schema::User',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::User'
},
'task' => {
'cond' => {
'foreign.id' => 'self.task_id'
},
'source' => 'MyTasks::Schema::Task',
'attrs' => {
'accessor' => 'single'
},
'class' => 'MyTasks::Schema::Task'
}
},
'source_name' => 'TaskUser',
'_columns_info_loaded' => 0,
'_ordered_columns' => [
'task_id',
'user_id'
],
'_primaries' => [
'task_id',
'user_id'
],
'_resultset' => undef,
'resultset_class' =>
'DBIx::Class::ResultSet',
'_unique_constraints' => {
'primary' => $VAR1->{'tasks'}{'_parent_rs'}{'_primaries'}
},
'_columns' => {
'user_id' => {},
'task_id' => {}
}
},
'DBIx::Class::ResultSource::Table' ),
'result_source' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Task'},
'pager' => undef
}, 'MyTasks::Schema::ResultSet::Task' ),
'created_tasks' => bless( {
'cond' => {
'me.creator_id' => '1'
},
'result_class' =>
'MyTasks::Model::Persistent::Task',
'attrs' => {
'where' =>
$VAR1->{'created_tasks'}{'cond'},
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi',
'join' => [
'logs'
],
'as' => [
'id',
'project_id',
'creator_id',
'date',
'deadline',
'priority',
'description',
'is_closed',
'comments',
'parent_id',
'hours_spent'
],
'join_type' => 'LEFT',
'group_by' => [
'me.id'
],
'alias' => 'me',
'select' => [
'me.id',
'me.project_id',
'me.creator_id',
'me.date',
'me.deadline',
'me.priority',
'me.description',
'me.is_closed',
'me.comments',
'me.parent_id',
{
'sum' =>
'logs.hours_spent'
}
]
},
'count' => undef,
'page' => undef,
'result_source' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Task'},
'pager' => undef
}, 'MyTasks::Schema::ResultSet::Task' ),
'user' => bless( {
'related_resultsets' => {
'created_tasks' => bless( {
'cond' => $VAR1->{'created_tasks'}{'cond'},
'result_class' => 'MyTasks::Model::Persistent::Task',
'attrs' => {
'join_type' => 'LEFT',
'alias' => 'me',
'where' => $VAR1->{'created_tasks'}{'cond'},
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'count' => undef,
'page' => undef,
'result_source' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'Task'},
'pager' => undef
}, 'MyTasks::Schema::ResultSet::Task' ),
'task_users' => bless( {
'cond' => $VAR1->{'tasks'}{'cond'},
'result_class' => 'MyTasks::Model::Persistent::TaskUser',
'attrs' => {
'join_type' => 'LEFT',
'alias' => 'me',
'where' => $VAR1->{'tasks'}{'cond'},
'cascade_copy' => 1,
'cascade_delete' => 1,
'accessor' => 'multi'
},
'count' => undef,
'page' => undef,
'result_source' => $VAR1->{'tasks'}{'_parent_rs'},
'pager' => undef
}, 'DBIx::Class::ResultSet' )
},
'result_source' =>
$VAR1->{'tasks'}{'_parent_rs'}{'schema'}{'source_registrations'}{'User'},
'_inflated_column' => {},
'_in_storage' => 1,
'_column_data' => {
'passwd' =>
'9c405163c4de5cf5d7f0deb741a7e27e',
'name' => 'Nilson Santos F. Jr.',
'type' => 'A',
'id' => '1',
'login' => 'nilson'
}
}, 'MyTasks::Model::Persistent::User' )
}
-Nilson Santos F. Jr.
More information about the Dbix-class
mailing list