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);