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};
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.