function _optimizedb_tables_list in OptimizeDB 8
Same name and namespace in other branches
- 6 optimizedb.module \_optimizedb_tables_list()
 - 7 optimizedb.module \_optimizedb_tables_list()
 
List and the size of the database tables.
Return value
array An array with a list of database tables.
5 calls to _optimizedb_tables_list()
- GeneralTest::testTablesList in tests/
src/ Functional/ GeneralTest.php  - Sizes tables.
 - ListTablesOperationExecuteTest::testListTablesOperationExecute in tests/
src/ Functional/ ListTablesOperationExecuteTest.php  - Performing operations on tables.
 - OptimizedbAdminForm::optimizeTablesSubmit in src/
Form/ OptimizedbAdminForm.php  - Optimize all tables in database.
 - OptimizedbListTablesForm::buildForm in src/
Form/ OptimizedbListTablesForm.php  - Form constructor.
 - optimizedb_module_preinstall in ./
optimizedb.install  - Implements hook_module_preinstall().
 
File
- ./
optimizedb.module, line 187  - Database Optimization.
 
Code
function _optimizedb_tables_list() {
  $tables = FALSE;
  switch (\Drupal::database()
    ->driver()) {
    case 'mysql':
      $tables = \Drupal::database()
        ->query("SHOW TABLE STATUS")
        ->fetchAll();
      break;
    case 'pgsql':
      $tables = \Drupal::database()
        ->query("SELECT table_name as \"Name\",\n        pg_total_relation_size(table_name) AS \"Data_length\",\n        0 as \"Index_length\"\n        FROM information_schema.tables\n        WHERE table_schema = 'public'\n        ORDER BY table_name")
        ->fetchAll();
      break;
  }
  $result = [];
  if ($tables) {
    $size_tables = 0;
    foreach ($tables as $table) {
      $length = $table->Data_length + $table->Index_length;
      $result[$table->Name] = [
        'name' => $table->Name,
        'size' => format_size($length),
        'size_byte' => $length,
      ];
      $size_tables += $length;
    }
    // The total size of the tables.
    \Drupal::configFactory()
      ->getEditable('optimizedb.settings')
      ->set('tables_size', $size_tables)
      ->save();
  }
  return (array) $result;
}