Bug 32613: (follow-up) Cache the tables
authorNick Clemens <nick@bywatersolutions.com>
Fri, 3 Mar 2023 16:43:54 +0000 (16:43 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 6 Mar 2023 17:45:30 +0000 (14:45 -0300)
This shouldn't be expected to change, except maybe after an upgrade,
seems worth caching.

To test:
1 - Apply patch
2 - Confirm the feature still works

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
reports/guided_reports.pl

index fcd3cf2..f4ed6cf 100755 (executable)
@@ -1036,7 +1036,13 @@ sub header_cell_loop {
 #get a list of available tables for auto-complete
 sub get_tables {
     my $result = {};
-    my $tables = C4::Reports::Guided->get_all_tables();
+    my $cache  = Koha::Caches->get_instance();
+    my $tables = $cache->get_from_cache("Reports-SQL_tables-for-autocomplete");
+
+    return $tables
+      if $tables;
+
+    $tables = C4::Reports::Guided->get_all_tables();
     for my $table (@{$tables}) {
         my $sql = "SHOW COLUMNS FROM $table";
         my $rows = C4::Context->dbh->selectall_arrayref($sql, { Slice => {} });
@@ -1044,6 +1050,7 @@ sub get_tables {
             push @{$result->{$table}}, $row->{Field};
         }
     }
+    $cache->set_in_cache("Reports-SQL_tables-for-autocomplete",$result);
     return $result;
 }