Partial fix for bug #3291306 - Inline edit does not honor bit fields. Works with mysqli extension.

This commit is contained in:
Madhura Jayaratne
2011-06-04 00:02:11 +05:30
parent ab1a2394c3
commit 612f8f3d67
2 changed files with 17 additions and 4 deletions

View File

@@ -888,16 +888,20 @@ $(document).ready(function() {
*/
var is_null = $this_field.find('input:checkbox').is(':checked');
var value;
var addQuotes = true;
if (is_null) {
sql_query += ' `' + field_name + "`=NULL , ";
need_to_post = true;
} else {
if($this_field.is(":not(.relation, .enum, .set)")) {
if($this_field.is(":not(.relation, .enum, .set, .bit)")) {
this_field_params[field_name] = $this_field.find('textarea').val();
if($this_field.is('.transformed')) {
$.extend(transform_fields, this_field_params);
}
} else if ($this_field.is('.bit')) {
this_field_params[field_name] = '0b' + $this_field.find('textarea').val();
addQuotes = false;
} else if ($this_field.is('.set')) {
$test_element = $this_field.find('select');
this_field_params[field_name] = $test_element.map(function(){
@@ -924,7 +928,11 @@ $(document).ready(function() {
new_clause += '`' + window.parent.table + '`.' + '`' + field_name + "` = '" + this_field_params[field_name].replace(/'/g,"''") + "'" + ' AND ';
}
if (this_field_params[field_name] != $this_field.data('original_data')) {
sql_query += ' `' + field_name + "`='" + this_field_params[field_name].replace(/'/g, "''") + "' , ";
if (addQuotes == true) {
sql_query += ' `' + field_name + "`='" + this_field_params[field_name].replace(/'/g, "''") + "', ";
} else {
sql_query += ' `' + field_name + "`=" + this_field_params[field_name].replace(/'/g, "''") + ", ";
}
need_to_post = true;
}
}

View File

@@ -445,7 +445,7 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
global $sql_query, $num_rows;
global $vertical_display, $highlight_columns;
// required to generate sort links that will remember whether the
// required to generate sort links that will remember whether the
// "Show all" button has been clicked
$sql_md5 = md5($GLOBALS['sql_query']);
$session_max_rows = $_SESSION['tmp_user_values']['query'][$sql_md5]['max_rows'];
@@ -1026,6 +1026,11 @@ function PMA_addClass($class, $condition_field, $meta, $nowrap, $is_field_trunca
$set_class = ' set';
}
$bit_class = '';
if(strpos($meta->type, 'bit') !== false) {
$bit_class = ' bit';
}
$mime_type_class = '';
if(isset($meta->mimetype)) {
$mime_type_class = ' ' . preg_replace('/\//', '_', $meta->mimetype);
@@ -1034,7 +1039,7 @@ function PMA_addClass($class, $condition_field, $meta, $nowrap, $is_field_trunca
$result = $class . ($condition_field ? ' condition' : '') . $nowrap
. ' ' . ($is_field_truncated ? ' truncated' : '')
. ($transform_function != $default_function ? ' transformed' : '')
. $enum_class . $set_class . $mime_type_class;
. $enum_class . $set_class . $bit_class . $mime_type_class;
return $result;
}