cvsuser 05/10/20 13:03:17
Modified: App-Repository/lib/App/Repository DBI.pm
Log:
_get_default_columns(), table level index hints
Revision Changes Path
1.29 +19 -2 p5ee/App-Repository/lib/App/Repository/DBI.pm
Index: DBI.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Repository/lib/App/Repository/DBI.pm,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- DBI.pm 12 Oct 2005 13:59:36 -0000 1.28
+++ DBI.pm 20 Oct 2005 20:03:17 -0000 1.29
@@ -455,6 +455,15 @@
return($rows);
}
+sub _get_default_columns {
+ &App::sub_entry if ($App::trace);
+ my ($self, $table) = @_;
+ my $table_def = $self->{table}{$table};
+ my $columns = $table_def->{default_columns} ||
$table_def->{phys_columns} || $table_def->{columns};
+ &App::sub_exit($columns) if ($App::trace);
+ return($columns);
+}
+
# modified from the DBD::_::db::selectall_arrayref in DBI.pm
sub _selectrange_arrayref {
&App::sub_entry if ($App::trace);
@@ -1295,6 +1304,9 @@
}
else {
push(@join_conditions, split(/ +and +/,$where_condition)) if
($where_condition);
+ if ($options->{hint} && $self->{table}{$table}{alias} &&
$tablealias eq $self->{table}{$table}{alias}) {
+ $tableref .= " $options->{hint}";
+ }
push(@from_tables, $tableref);
#print " $tablealias is [$dbtable] as [$tableref] where
[$where_condition]\n";
}
@@ -1304,6 +1316,9 @@
$tablealias = $tablealiases->[0];
$table = $tablealiashref->{$tablealias}{table};
$tableref = ($table) ? "$table $tablealias" : $tablealias;
+ if ($options->{hint} && $self->{table}{$table}{alias} && $tablealias
eq $self->{table}{$table}{alias}) {
+ $tableref .= " $options->{hint}";
+ }
push(@from_tables, $tableref);
}
@@ -2340,6 +2355,8 @@
# if we got a list of columns for the table from the database
if (defined $phys_columns && ref($phys_columns) eq "ARRAY") {
+ $table_def->{phys_columns} = [ @$phys_columns ];
+
for ($colnum = 0; $colnum <= $#$phys_columns; $colnum++) {
$column = $phys_columns->[$colnum];