diff --git a/ChangeLog b/ChangeLog index 8d5e79ac4..49dac18f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -124,6 +124,7 @@ - bug #3062455 [core] copy procedures and routines before tables - bug #3062455 [export] with SQL, export procedures and routines before tables - bug #3056023 [import] USE query not working +- bug #3038193 [display] Error when editing row with GEOMETRY column 3.3.7.0 (2010-09-07) - patch #3050492 [PDF scratchboard] Cannot drag table box to the edge after diff --git a/libraries/dbi/mysqli.dbi.lib.php b/libraries/dbi/mysqli.dbi.lib.php index 086b47adb..e027f236f 100644 --- a/libraries/dbi/mysqli.dbi.lib.php +++ b/libraries/dbi/mysqli.dbi.lib.php @@ -524,7 +524,7 @@ function PMA_DBI_get_fields_meta($result) // so this would override TINYINT and mark all TINYINT as string // https://sf.net/tracker/?func=detail&aid=1532111&group_id=23067&atid=377408 //$typeAr[MYSQLI_TYPE_CHAR] = 'string'; - $typeAr[MYSQLI_TYPE_GEOMETRY] = 'unknown'; + $typeAr[MYSQLI_TYPE_GEOMETRY] = 'geometry'; $typeAr[MYSQLI_TYPE_BIT] = 'bit'; $fields = mysqli_fetch_fields($result); diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php index 352025740..c3d833db3 100644 --- a/libraries/display_tbl.lib.php +++ b/libraries/display_tbl.lib.php @@ -1330,7 +1330,13 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) { $vertical_display['data'][$row_no][$i] = '  ' . "\n"; } } - // n o t n u m e r i c a n d n o t B L O B + // g e o m e t r y + } elseif ($meta->type == 'geometry') { + $geometry_text = PMA_handle_non_printable_contents('GEOMETRY', (isset($row[$i]) ? $row[$i] : ''), $transform_function, $transform_options, $default_function, $meta); + $vertical_display['data'][$row_no][$i] = ' ' . $geometry_text . ''; + unset($geometry_text); + + // n o t n u m e r i c a n d n o t B L O B } else { if (!isset($row[$i]) || is_null($row[$i])) { $vertical_display['data'][$row_no][$i] = ' NULL' . "\n"; @@ -2266,7 +2272,7 @@ function PMA_displayResultsOperations($the_disp_mode, $analyzed_sql) { * @uses PMA_formatByteDown() * @uses strpos() * @uses str_replace() - * @param string $category BLOB|BINARY + * @param string $category BLOB|BINARY|GEOMETRY * @param string $content the binary content * @param string $transform_function * @param string $transform_options diff --git a/tbl_change.php b/tbl_change.php index 54e0d7f0f..bcc0b7650 100644 --- a/tbl_change.php +++ b/tbl_change.php @@ -509,7 +509,7 @@ foreach ($rows as $row_id => $vrow) { if (($cfg['ProtectBinary'] && $field['is_blob'] && !$is_upload) || ($cfg['ProtectBinary'] == 'all' && $field['is_binary'])) { echo ' ' . __('Binary') . '' . "\n"; - } elseif (strstr($field['True_Type'], 'enum') || strstr($field['True_Type'], 'set')) { + } elseif (strstr($field['True_Type'], 'enum') || strstr($field['True_Type'], 'set') || 'geometry' == $field['pma_type']) { echo ' --' . "\n"; } else { ?> @@ -934,6 +934,10 @@ foreach ($rows as $row_id => $vrow) { } } // end if (web-server upload directory) } // end elseif (binary or blob) + + elseif ('geometry' == $field['pma_type']) { + // ignore this column to avoid changing it + } else { // field size should be at least 4 and max 40 $fieldsize = min(max($field['len'], 4), 40);