Author: spadkins
Date: Fri Aug 17 11:29:15 2007
New Revision: 9851
Modified:
p5ee/trunk/App-Repository/lib/App/Repository.pm
p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm
Log:
enable the 'table_def' option in get_rows() to override or supplement table_def
entries already in the config
Modified: p5ee/trunk/App-Repository/lib/App/Repository.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository.pm (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository.pm Fri Aug 17 11:29:15 2007
@@ -2352,20 +2352,26 @@
sub get_table_def {
&App::sub_entry if ($App::trace);
- my ($self, $table) = @_;
+ my ($self, $table, $options) = @_;
my $repname = $self->{table}{$table}{repository};
my $realtable = $self->{table}{$table}{table} || $table;
my ($table_def);
if (defined $repname && $repname ne $self->{name}) {
my $rep = $self->{context}->repository($repname);
- $table_def = $rep->get_table_def($realtable);
+ $table_def = $rep->get_table_def($realtable, $options);
}
elsif (defined $realtable && $realtable ne $table) {
- $table_def = $self->get_table_def($realtable);
+ $table_def = $self->get_table_def($realtable, $options);
}
else {
$self->_load_table_metadata($table) if (! defined
$self->{table}{$table}{loaded});
- $table_def = $self->{table}{$table};
+ if ($options->{table_def}) {
+ $table_def = $options->{table_def};
+ App::Reference->overlay($table_def, $self->{table}{$table});
+ }
+ else {
+ $table_def = $self->{table}{$table};
+ }
}
&App::sub_exit($table_def) if ($App::trace);
return($table_def);
Modified: p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm Fri Aug 17 11:29:15 2007
@@ -932,6 +932,9 @@
$self->_load_table_metadata($table) if (!defined
$self->{table}{$table}{loaded});
my $dbh = $self->{dbh};
+ my $table_def = $self->get_table_def($table, $options);
+ die "Table $table not defined" if (!$table_def);
+
if (!defined $params || $params eq "") {
$params = {};
}
@@ -950,7 +953,7 @@
my ($where_condition, @join_conditions, @criteria_conditions, $repop,
$sqlop, $value);
# ADD ANY DEFAULT PARAMS
- my $paramdefs = $self->{table}{$table}{param};
+ my $paramdefs = $table_def->{param};
my $params_modified = 0;
if ($paramdefs) {
# make a copy.
@@ -992,10 +995,7 @@
my $reptyperef = $options->{reptyperef};
my $group_by = $options->{group_by} || $options->{summarykeys};
- my ($table_def, $tablealiases, $tablealiashref);
-
- $table_def = $self->{table}{$table};
- die "Table $table not defined" if (!$table_def);
+ my ($tablealiases, $tablealiashref);
$tablealiases = $table_def->{tablealiases};
$tablealiashref = $table_def->{tablealias};