/** * display default values * * @param array $column description of column in given table * @param boolean $real_null_value whether column value null or not null * * @return array $real_null_value, $data, $special_chars, * $backup_field, $special_chars_encoded */ function PMA_getSpecialCharsAndBackupFieldForInsertingMode($column, $real_null_value) { if (!isset($column['Default'])) { $column['Default'] = ''; $real_null_value = true; $data = ''; } else { $data = $column['Default']; } $trueType = $column['True_Type']; if ($trueType == 'bit') { $special_chars = PMA\libraries\Util::convertBitDefaultValue($column['Default']); } elseif (substr($trueType, 0, 9) == 'timestamp' || $trueType == 'datetime' || $trueType == 'time') { $special_chars = PMA\libraries\Util::addMicroseconds($column['Default']); } elseif ($trueType == 'binary' || $trueType == 'varbinary') { $special_chars = bin2hex($column['Default']); } else { $special_chars = htmlspecialchars($column['Default']); } $backup_field = ''; $special_chars_encoded = PMA\libraries\Util::duplicateFirstNewline($special_chars); return array($real_null_value, $data, $special_chars, $backup_field, $special_chars_encoded); }
/** * Test for convertBitDefaultValue * * @param string $bit Value * @param string $val Expected value * * @return void * * @dataProvider dataProvider */ public function testConvertBitDefaultValueTest($bit, $val) { $this->assertEquals($val, PMA\libraries\Util::convertBitDefaultValue($bit)); }
/** * Function to get html for field * * @param int $index index * @param array $field field * @param string $style style * * @return string */ function PMA_getHtmlForField($index, $field, $style) { $html = '<tr class="noclick ' . $style . '">'; $html .= '<td>' . $index . '</td>'; $html .= '<td><b>' . htmlspecialchars($field['Field']); if ($field['Key'] == 'PRI') { $html .= ' ' . PMA\libraries\Util::getImage('b_primary.png', __('Primary')); } elseif (!empty($field['Key'])) { $html .= ' ' . PMA\libraries\Util::getImage('bd_primary.png', __('Index')); } $html .= '</b></td>'; $html .= "\n"; $html .= '<td>' . htmlspecialchars($field['Type']) . '</td>'; $html .= '<td>' . htmlspecialchars($field['Collation']) . '</td>'; $html .= '<td>' . ($field['Null'] == 'YES' ? __('Yes') : __('No')) . '</td>'; $html .= '<td>'; if (isset($field['Default'])) { $extracted_columnspec = PMA\libraries\Util::extractColumnSpec($field['Type']); if ($extracted_columnspec['type'] == 'bit') { // here, $field['Default'] contains something like b'010' $html .= PMA\libraries\Util::convertBitDefaultValue($field['Default']); } else { $html .= htmlspecialchars($field['Default']); } } else { if ($field['Null'] == 'YES') { $html .= '<i>NULL</i>'; } else { $html .= '<i>' . _pgettext('None for default', 'None') . '</i>'; } } $html .= '</td>'; $html .= '<td>' . htmlspecialchars($field['Extra']) . '</td>'; $html .= '<td>' . htmlspecialchars($field['Comment']) . '</td>'; $html .= '</tr>'; return $html; }
} break; case 'CURRENT_TIMESTAMP': $columnMeta['DefaultType'] = 'CURRENT_TIMESTAMP'; $columnMeta['DefaultValue'] = ''; break; default: $columnMeta['DefaultType'] = 'USER_DEFINED'; $columnMeta['DefaultValue'] = $columnMeta['Default']; break; } } if (isset($columnMeta['Type'])) { $extracted_columnspec = PMA\libraries\Util::extractColumnSpec($columnMeta['Type']); if ($extracted_columnspec['type'] == 'bit') { $columnMeta['Default'] = PMA\libraries\Util::convertBitDefaultValue($columnMeta['Default']); } $type = $extracted_columnspec['type']; if ($length == '') { $length = $extracted_columnspec['spec_in_brackets']; } } else { // creating a column $columnMeta['Type'] = ''; } // Variable tell if current column is bound in a foreign key constraint or not. // MySQL version from 5.6.6 allow renaming columns with foreign keys if (isset($columnMeta['Field']) && isset($form_params['table']) && PMA_MYSQL_INT_VERSION < 50606) { $columnMeta['column_status'] = PMA_checkChildForeignReferences($form_params['db'], $form_params['table'], $columnMeta['Field'], $foreigners, $child_references); } // some types, for example longtext, are reported as