Commit 82bcb8b3 authored by brian@zim.(none)'s avatar brian@zim.(none)

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

parent fbcf2677
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:
ulong table_flags() const
{
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
{
......
......@@ -392,6 +392,7 @@ ha_berkeley::ha_berkeley(TABLE *table_arg)
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_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED |
HA_CAN_GEOMETRY |
HA_AUTO_PART_KEY | HA_TABLE_SCAN_ON_INDEX),
changed_rows(0), last_dup_key((uint) -1), version(0), using_ignore(0)
{}
......
......@@ -812,6 +812,7 @@ ha_innobase::ha_innobase(TABLE *table_arg)
HA_CAN_SQL_HANDLER |
HA_NOT_EXACT_COUNT |
HA_PRIMARY_KEY_IN_READ_INDEX |
HA_CAN_GEOMETRY |
HA_TABLE_SCAN_ON_INDEX),
last_dup_key((uint) -1),
start_of_scan(0),
......@@ -2757,6 +2758,7 @@ get_innobase_type_from_mysql_type(
return(DATA_DOUBLE);
case FIELD_TYPE_DECIMAL:
return(DATA_DECIMAL);
case FIELD_TYPE_GEOMETRY:
case FIELD_TYPE_TINY_BLOB:
case FIELD_TYPE_MEDIUM_BLOB:
case FIELD_TYPE_BLOB:
......
......@@ -588,9 +588,9 @@ static bool ndb_supported_type(enum_field_types type)
case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_SET:
case MYSQL_TYPE_BIT:
case MYSQL_TYPE_GEOMETRY:
return TRUE;
case MYSQL_TYPE_NULL:
case MYSQL_TYPE_GEOMETRY:
break;
}
return FALSE;
......@@ -3714,6 +3714,7 @@ static int create_ndb_column(NDBCOL &col,
col.setStripeSize(0);
break;
//mysql_type_blob:
case MYSQL_TYPE_GEOMETRY:
case MYSQL_TYPE_BLOB:
if ((field->flags & BINARY_FLAG) && cs == &my_charset_bin)
col.setType(NDBCOL::Blob);
......@@ -3779,7 +3780,6 @@ static int create_ndb_column(NDBCOL &col,
break;
}
case MYSQL_TYPE_NULL:
case MYSQL_TYPE_GEOMETRY:
goto mysql_type_unsupported;
mysql_type_unsupported:
default:
......@@ -3931,6 +3931,7 @@ int ha_ndbcluster::create(const char *name,
* 5 - from extra words added by tup/dict??
*/
switch (form->field[i]->real_type()) {
case MYSQL_TYPE_GEOMETRY:
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_LONG_BLOB:
......@@ -4206,6 +4207,7 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg):
HA_AUTO_PART_KEY |
HA_NO_PREFIX_CHAR_KEYS |
HA_NEED_READ_RANGE_BUFFER |
HA_CAN_GEOMETRY |
HA_CAN_BIT_FIELD),
m_share(0),
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