summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <brian@zim.(none)>2005-10-24 23:20:39 -0700
committerunknown <brian@zim.(none)>2005-10-24 23:20:39 -0700
commit84ece2e0529a73151eac931d220c2fb5c3a09a16 (patch)
treee3fc7fa148a52026a848d7c619f311b465605a54 /sql
parente897eb3492f068216465e0948c62ea8e7a8a7a8b (diff)
downloadmariadb-git-84ece2e0529a73151eac931d220c2fb5c3a09a16.tar.gz
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''
Diffstat (limited to 'sql')
-rw-r--r--sql/ha_archive.h2
-rw-r--r--sql/ha_berkeley.cc1
-rw-r--r--sql/ha_innodb.cc2
-rw-r--r--sql/ha_ndbcluster.cc6
4 files changed, 8 insertions, 3 deletions
diff --git a/sql/ha_archive.h b/sql/ha_archive.h
index 6ba6d95685e..56a4b9d1e27 100644
--- a/sql/ha_archive.h
+++ b/sql/ha_archive.h
@@ -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
{
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index 7cbb4e90452..3a2bdf3ef9a 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -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)
{}
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index a7957ee3cbf..74fff12d1f3 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -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:
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index a0efcd2c4f9..4248230abbe 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -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),