Commit 84ece2e0 authored by unknown's avatar unknown

This patch add support for storing Geometry types to Archive, Innodb, NDB, and BDB.


sql/ha_archive.h:
  Adding support for Geometry type to archive.
sql/ha_berkeley.cc:
  Adding geometry support to berkely
sql/ha_innodb.cc:
  Adding geometry support to Innodb.
sql/ha_ndbcluster.cc:
  Adding Geometry support to NDB.
mysql-test/include/gis_generic.inc:
  New BitKeeper file ``mysql-test/include/gis_generic.inc''
mysql-test/r/archive_gis.result:
  New BitKeeper file ``mysql-test/r/archive_gis.result''
mysql-test/r/bdb_gis.result:
  New BitKeeper file ``mysql-test/r/bdb_gis.result''
mysql-test/r/ndb_gis.result:
  New BitKeeper file ``mysql-test/r/ndb_gis.result''
mysql-test/t/archive_gis.test:
  New BitKeeper file ``mysql-test/t/archive_gis.test''
mysql-test/t/bdb_gis.test:
  New BitKeeper file ``mysql-test/t/bdb_gis.test''
mysql-test/t/innodb_gis.test:
  New BitKeeper file ``mysql-test/t/innodb_gis.test''
mysql-test/t/ndb_gis.test:
  New BitKeeper file ``mysql-test/t/ndb_gis.test''
parent e897eb34
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
source include/have_geometry.inc;
source include/have_archive.inc;
SET storage_engine=archive;
--source include/gis_generic.inc
source include/have_geometry.inc;
-- source include/have_bdb.inc
SET storage_engine=bdb;
--source include/gis_generic.inc
source include/have_geometry.inc;
-- source include/have_innodb.inc
SET storage_engine=innodb;
--source include/gis_generic.inc
source include/have_geometry.inc;
--source include/have_ndb.inc
SET storage_engine=ndbcluster;
--source include/gis_generic.inc
...@@ -68,7 +68,7 @@ public: ...@@ -68,7 +68,7 @@ public:
ulong table_flags() const ulong table_flags() const
{ {
return (HA_REC_NOT_IN_SEQ | HA_NOT_EXACT_COUNT | HA_NO_AUTO_INCREMENT | return (HA_REC_NOT_IN_SEQ | HA_NOT_EXACT_COUNT | HA_NO_AUTO_INCREMENT |
HA_FILE_BASED | HA_CAN_INSERT_DELAYED); HA_FILE_BASED | HA_CAN_INSERT_DELAYED | HA_CAN_GEOMETRY);
} }
ulong index_flags(uint idx, uint part, bool all_parts) const ulong index_flags(uint idx, uint part, bool all_parts) const
{ {
......
...@@ -392,6 +392,7 @@ ha_berkeley::ha_berkeley(TABLE *table_arg) ...@@ -392,6 +392,7 @@ ha_berkeley::ha_berkeley(TABLE *table_arg)
int_table_flags(HA_REC_NOT_IN_SEQ | HA_FAST_KEY_READ | int_table_flags(HA_REC_NOT_IN_SEQ | HA_FAST_KEY_READ |
HA_NULL_IN_KEY | HA_CAN_INDEX_BLOBS | HA_NOT_EXACT_COUNT | HA_NULL_IN_KEY | HA_CAN_INDEX_BLOBS | HA_NOT_EXACT_COUNT |
HA_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED | HA_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED |
HA_CAN_GEOMETRY |
HA_AUTO_PART_KEY | HA_TABLE_SCAN_ON_INDEX), HA_AUTO_PART_KEY | HA_TABLE_SCAN_ON_INDEX),
changed_rows(0), last_dup_key((uint) -1), version(0), using_ignore(0) changed_rows(0), last_dup_key((uint) -1), version(0), using_ignore(0)
{} {}
......
...@@ -812,6 +812,7 @@ ha_innobase::ha_innobase(TABLE *table_arg) ...@@ -812,6 +812,7 @@ ha_innobase::ha_innobase(TABLE *table_arg)
HA_CAN_SQL_HANDLER | HA_CAN_SQL_HANDLER |
HA_NOT_EXACT_COUNT | HA_NOT_EXACT_COUNT |
HA_PRIMARY_KEY_IN_READ_INDEX | HA_PRIMARY_KEY_IN_READ_INDEX |
HA_CAN_GEOMETRY |
HA_TABLE_SCAN_ON_INDEX), HA_TABLE_SCAN_ON_INDEX),
last_dup_key((uint) -1), last_dup_key((uint) -1),
start_of_scan(0), start_of_scan(0),
...@@ -2757,6 +2758,7 @@ get_innobase_type_from_mysql_type( ...@@ -2757,6 +2758,7 @@ get_innobase_type_from_mysql_type(
return(DATA_DOUBLE); return(DATA_DOUBLE);
case FIELD_TYPE_DECIMAL: case FIELD_TYPE_DECIMAL:
return(DATA_DECIMAL); return(DATA_DECIMAL);
case FIELD_TYPE_GEOMETRY:
case FIELD_TYPE_TINY_BLOB: case FIELD_TYPE_TINY_BLOB:
case FIELD_TYPE_MEDIUM_BLOB: case FIELD_TYPE_MEDIUM_BLOB:
case FIELD_TYPE_BLOB: case FIELD_TYPE_BLOB:
......
...@@ -588,9 +588,9 @@ static bool ndb_supported_type(enum_field_types type) ...@@ -588,9 +588,9 @@ static bool ndb_supported_type(enum_field_types type)
case MYSQL_TYPE_ENUM: case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_SET: case MYSQL_TYPE_SET:
case MYSQL_TYPE_BIT: case MYSQL_TYPE_BIT:
case MYSQL_TYPE_GEOMETRY:
return TRUE; return TRUE;
case MYSQL_TYPE_NULL: case MYSQL_TYPE_NULL:
case MYSQL_TYPE_GEOMETRY:
break; break;
} }
return FALSE; return FALSE;
...@@ -3714,6 +3714,7 @@ static int create_ndb_column(NDBCOL &col, ...@@ -3714,6 +3714,7 @@ static int create_ndb_column(NDBCOL &col,
col.setStripeSize(0); col.setStripeSize(0);
break; break;
//mysql_type_blob: //mysql_type_blob:
case MYSQL_TYPE_GEOMETRY:
case MYSQL_TYPE_BLOB: case MYSQL_TYPE_BLOB:
if ((field->flags & BINARY_FLAG) && cs == &my_charset_bin) if ((field->flags & BINARY_FLAG) && cs == &my_charset_bin)
col.setType(NDBCOL::Blob); col.setType(NDBCOL::Blob);
...@@ -3779,7 +3780,6 @@ static int create_ndb_column(NDBCOL &col, ...@@ -3779,7 +3780,6 @@ static int create_ndb_column(NDBCOL &col,
break; break;
} }
case MYSQL_TYPE_NULL: case MYSQL_TYPE_NULL:
case MYSQL_TYPE_GEOMETRY:
goto mysql_type_unsupported; goto mysql_type_unsupported;
mysql_type_unsupported: mysql_type_unsupported:
default: default:
...@@ -3931,6 +3931,7 @@ int ha_ndbcluster::create(const char *name, ...@@ -3931,6 +3931,7 @@ int ha_ndbcluster::create(const char *name,
* 5 - from extra words added by tup/dict?? * 5 - from extra words added by tup/dict??
*/ */
switch (form->field[i]->real_type()) { switch (form->field[i]->real_type()) {
case MYSQL_TYPE_GEOMETRY:
case MYSQL_TYPE_BLOB: case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_MEDIUM_BLOB: case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_LONG_BLOB: case MYSQL_TYPE_LONG_BLOB:
...@@ -4206,6 +4207,7 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg): ...@@ -4206,6 +4207,7 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg):
HA_AUTO_PART_KEY | HA_AUTO_PART_KEY |
HA_NO_PREFIX_CHAR_KEYS | HA_NO_PREFIX_CHAR_KEYS |
HA_NEED_READ_RANGE_BUFFER | HA_NEED_READ_RANGE_BUFFER |
HA_CAN_GEOMETRY |
HA_CAN_BIT_FIELD), HA_CAN_BIT_FIELD),
m_share(0), m_share(0),
m_use_write(FALSE), m_use_write(FALSE),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment