PMA\libraries\controllers\database\DatabaseStructureController::getStuffForEngineTypeTable PHP Метод

getStuffForEngineTypeTable() защищенный Метод

Get the value set for ENGINE table,
protected getStuffForEngineTypeTable ( array $current_table, integer $sum_size, integer $overhead_size ) : array
$current_table array current table
$sum_size integer total table size
$overhead_size integer overhead size
Результат array
    protected function getStuffForEngineTypeTable($current_table, $sum_size, $overhead_size)
    {
        $formatted_size = '-';
        $unit = '';
        $formatted_overhead = '';
        $overhead_unit = '';
        $table_is_view = false;
        switch ($current_table['ENGINE']) {
            // MyISAM, ISAM or Heap table: Row count, data size and index size
            // are accurate; data size is accurate for ARCHIVE
            case 'MyISAM':
            case 'ISAM':
            case 'HEAP':
            case 'MEMORY':
            case 'ARCHIVE':
            case 'Aria':
            case 'Maria':
            case 'TokuDB':
                list($current_table, $formatted_size, $unit, $formatted_overhead, $overhead_unit, $overhead_size, $sum_size) = $this->getValuesForAriaTable($current_table, $sum_size, $overhead_size, $formatted_size, $unit, $formatted_overhead, $overhead_unit);
                break;
            case 'InnoDB':
            case 'PBMS':
                // InnoDB table: Row count is not accurate but data and index sizes are.
                // PBMS table in Drizzle: TABLE_ROWS is taken from table cache,
                // so it may be unavailable
                list($current_table, $formatted_size, $unit, $sum_size) = $this->getValuesForInnodbTable($current_table, $sum_size);
                break;
                // Mysql 5.0.x (and lower) uses MRG_MyISAM
                // and MySQL 5.1.x (and higher) uses MRG_MYISAM
                // Both are aliases for MERGE
            // Mysql 5.0.x (and lower) uses MRG_MyISAM
            // and MySQL 5.1.x (and higher) uses MRG_MYISAM
            // Both are aliases for MERGE
            case 'MRG_MyISAM':
            case 'MRG_MYISAM':
            case 'MERGE':
            case 'BerkeleyDB':
                // Merge or BerkleyDB table: Only row count is accurate.
                if ($this->_is_show_stats) {
                    $formatted_size = ' - ';
                    $unit = '';
                }
                break;
                // for a view, the ENGINE is sometimes reported as null,
                // or on some servers it's reported as "SYSTEM VIEW"
            // for a view, the ENGINE is sometimes reported as null,
            // or on some servers it's reported as "SYSTEM VIEW"
            case null:
            case 'SYSTEM VIEW':
                // possibly a view, do nothing
                break;
            default:
                // Unknown table type.
                if ($this->_is_show_stats) {
                    $formatted_size = __('unknown');
                    $unit = '';
                }
        }
        // end switch
        if ($current_table['TABLE_TYPE'] == 'VIEW' || $current_table['TABLE_TYPE'] == 'SYSTEM VIEW') {
            // countRecords() takes care of $cfg['MaxExactCountViews']
            $current_table['TABLE_ROWS'] = $this->dbi->getTable($this->db, $current_table['TABLE_NAME'])->countRecords(true);
            $table_is_view = true;
        }
        return array($current_table, $formatted_size, $unit, $formatted_overhead, $overhead_unit, $overhead_size, $table_is_view, $sum_size);
    }