/** * Analyze the table column array * * @param array $column description of column in given table * @param array $comments_map comments for every column that has a comment * @param boolean $timestamp_seen whether a timestamp has been seen * * @return array description of column in given table */ function PMA_analyzeTableColumnsArray($column, $comments_map, $timestamp_seen) { $column['Field_html'] = htmlspecialchars($column['Field']); $column['Field_md5'] = md5($column['Field']); // True_Type contains only the type (stops at first bracket) $column['True_Type'] = preg_replace('@\\(.*@s', '', $column['Type']); $column['len'] = preg_match('@float|double@', $column['Type']) ? 100 : -1; $column['Field_title'] = PMA_getColumnTitle($column, $comments_map); $column['is_binary'] = PMA_isColumn($column, array('binary', 'varbinary')); $column['is_blob'] = PMA_isColumn($column, array('blob', 'tinyblob', 'mediumblob', 'longblob')); $column['is_char'] = PMA_isColumn($column, array('char', 'varchar')); list($column['pma_type'], $column['wrap'], $column['first_timestamp']) = PMA_getEnumSetAndTimestampColumns($column, $timestamp_seen); return $column; }
/** * Test for PMA_getEnumSetAndTimestampColumns * * @return void */ public function testGetEnumAndTimestampColumns() { $column = array(); $column['True_Type'] = 'set'; $this->assertEquals(array('set', '', false), PMA_getEnumSetAndTimestampColumns($column, false)); $column['True_Type'] = 'enum'; $this->assertEquals(array('enum', '', false), PMA_getEnumSetAndTimestampColumns($column, false)); $column['True_Type'] = 'timestamp'; $column['Type'] = 'date'; $this->assertEquals(array('date', ' nowrap', true), PMA_getEnumSetAndTimestampColumns($column, false)); $column['True_Type'] = 'timestamp'; $column['Type'] = 'date'; $this->assertEquals(array('date', ' nowrap', false), PMA_getEnumSetAndTimestampColumns($column, true)); $column['True_Type'] = 'SET'; $column['Type'] = 'num'; $this->assertEquals(array('num', ' nowrap', false), PMA_getEnumSetAndTimestampColumns($column, false)); $column['True_Type'] = ''; $column['Type'] = 'num'; $this->assertEquals(array('num', ' nowrap', false), PMA_getEnumSetAndTimestampColumns($column, false)); }