diff options
Diffstat (limited to 'sql/ha_federated.h')
-rw-r--r-- | sql/ha_federated.h | 95 |
1 files changed, 47 insertions, 48 deletions
diff --git a/sql/ha_federated.h b/sql/ha_federated.h index de7f7c4f178..4a4561ba274 100644 --- a/sql/ha_federated.h +++ b/sql/ha_federated.h @@ -39,83 +39,83 @@ #define FEDERATED_RECORDS_IN_RANGE 2 #define FEDERATED_INFO " SHOW TABLE STATUS LIKE " -#define FEDERATED_INFO_LEN sizeof(FEDERATED_INFO) +#define FEDERATED_INFO_LEN (sizeof(FEDERATED_INFO) -1) #define FEDERATED_SELECT "SELECT " -#define FEDERATED_SELECT_LEN sizeof(FEDERATED_SELECT) +#define FEDERATED_SELECT_LEN (sizeof(FEDERATED_SELECT) -1) #define FEDERATED_WHERE " WHERE " -#define FEDERATED_WHERE_LEN sizeof(FEDERATED_WHERE) +#define FEDERATED_WHERE_LEN (sizeof(FEDERATED_WHERE) -1) #define FEDERATED_FROM " FROM " -#define FEDERATED_FROM_LEN sizeof(FEDERATED_FROM) +#define FEDERATED_FROM_LEN (sizeof(FEDERATED_FROM) -1) #define FEDERATED_PERCENT "%" -#define FEDERATED_PERCENT_LEN sizeof(FEDERATED_PERCENT) +#define FEDERATED_PERCENT_LEN (sizeof(FEDERATED_PERCENT) -1) #define FEDERATED_IS " IS " -#define FEDERATED_IS_LEN sizeof(FEDERATED_IS) +#define FEDERATED_IS_LEN (sizeof(FEDERATED_IS) -1) #define FEDERATED_NULL " NULL " -#define FEDERATED_NULL_LEN sizeof(FEDERATED_NULL) +#define FEDERATED_NULL_LEN (sizeof(FEDERATED_NULL) -1) #define FEDERATED_ISNULL " IS NULL " -#define FEDERATED_ISNULL_LEN sizeof(FEDERATED_ISNULL) +#define FEDERATED_ISNULL_LEN (sizeof(FEDERATED_ISNULL) -1) #define FEDERATED_LIKE " LIKE " -#define FEDERATED_LIKE_LEN sizeof(FEDERATED_LIKE) +#define FEDERATED_LIKE_LEN (sizeof(FEDERATED_LIKE) -1) #define FEDERATED_TRUNCATE "TRUNCATE " -#define FEDERATED_TRUNCATE_LEN sizeof(FEDERATED_TRUNCATE) +#define FEDERATED_TRUNCATE_LEN (sizeof(FEDERATED_TRUNCATE) -1) #define FEDERATED_DELETE "DELETE " -#define FEDERATED_DELETE_LEN sizeof(FEDERATED_DELETE) +#define FEDERATED_DELETE_LEN (sizeof(FEDERATED_DELETE) -1) #define FEDERATED_INSERT "INSERT INTO " -#define FEDERATED_INSERT_LEN sizeof(FEDERATED_INSERT) +#define FEDERATED_INSERT_LEN (sizeof(FEDERATED_INSERT) -1) #define FEDERATED_OPTIMIZE "OPTIMIZE TABLE " -#define FEDERATED_OPTIMIZE_LEN sizeof(FEDERATED_OPTIMIZE) +#define FEDERATED_OPTIMIZE_LEN (sizeof(FEDERATED_OPTIMIZE) -1) #define FEDERATED_REPAIR "REPAIR TABLE " -#define FEDERATED_REPAIR_LEN sizeof(FEDERATED_REPAIR) +#define FEDERATED_REPAIR_LEN (sizeof(FEDERATED_REPAIR) -1) #define FEDERATED_QUICK " QUICK" -#define FEDERATED_QUICK_LEN sizeof(FEDERATED_QUICK) +#define FEDERATED_QUICK_LEN (sizeof(FEDERATED_QUICK) -1) #define FEDERATED_EXTENDED " EXTENDED" -#define FEDERATED_EXTENDED_LEN sizeof(FEDERATED_EXTENDED) +#define FEDERATED_EXTENDED_LEN (sizeof(FEDERATED_EXTENDED) -1) #define FEDERATED_USE_FRM " USE_FRM" -#define FEDERATED_USE_FRM_LEN sizeof(FEDERATED_USE_FRM) +#define FEDERATED_USE_FRM_LEN (sizeof(FEDERATED_USE_FRM) -1) #define FEDERATED_LIMIT1 " LIMIT 1" -#define FEDERATED_LIMIT1_LEN sizeof(FEDERATED_LIMIT1) +#define FEDERATED_LIMIT1_LEN (sizeof(FEDERATED_LIMIT1) -1) #define FEDERATED_VALUES "VALUES " -#define FEDERATED_VALUES_LEN sizeof(FEDERATED_VALUES) +#define FEDERATED_VALUES_LEN (sizeof(FEDERATED_VALUES) -1) #define FEDERATED_UPDATE "UPDATE " -#define FEDERATED_UPDATE_LEN sizeof(FEDERATED_UPDATE) -#define FEDERATED_SET "SET " -#define FEDERATED_SET_LEN sizeof(FEDERATED_SET) +#define FEDERATED_UPDATE_LEN (sizeof(FEDERATED_UPDATE) -1) +#define FEDERATED_SET " SET " +#define FEDERATED_SET_LEN (sizeof(FEDERATED_SET) -1) #define FEDERATED_AND " AND " -#define FEDERATED_AND_LEN sizeof(FEDERATED_AND) +#define FEDERATED_AND_LEN (sizeof(FEDERATED_AND) -1) #define FEDERATED_CONJUNCTION ") AND (" -#define FEDERATED_CONJUNCTION_LEN sizeof(FEDERATED_CONJUNCTION) +#define FEDERATED_CONJUNCTION_LEN (sizeof(FEDERATED_CONJUNCTION) -1) #define FEDERATED_OR " OR " -#define FEDERATED_OR_LEN sizeof(FEDERATED_OR) +#define FEDERATED_OR_LEN (sizeof(FEDERATED_OR) -1) #define FEDERATED_NOT " NOT " -#define FEDERATED_NOT_LEN sizeof(FEDERATED_NOT) +#define FEDERATED_NOT_LEN (sizeof(FEDERATED_NOT) -1) #define FEDERATED_STAR "* " -#define FEDERATED_STAR_LEN sizeof(FEDERATED_STAR) +#define FEDERATED_STAR_LEN (sizeof(FEDERATED_STAR) -1) #define FEDERATED_SPACE " " -#define FEDERATED_SPACE_LEN sizeof(FEDERATED_SPACE) +#define FEDERATED_SPACE_LEN (sizeof(FEDERATED_SPACE) -1) #define FEDERATED_SQUOTE "'" -#define FEDERATED_SQUOTE_LEN sizeof(FEDERATED_SQUOTE) +#define FEDERATED_SQUOTE_LEN (sizeof(FEDERATED_SQUOTE) -1) #define FEDERATED_COMMA ", " -#define FEDERATED_COMMA_LEN sizeof(FEDERATED_COMMA) +#define FEDERATED_COMMA_LEN (sizeof(FEDERATED_COMMA) -1) #define FEDERATED_BTICK "`" -#define FEDERATED_BTICK_LEN sizeof(FEDERATED_BTICK) +#define FEDERATED_BTICK_LEN (sizeof(FEDERATED_BTICK) -1) #define FEDERATED_OPENPAREN " (" -#define FEDERATED_OPENPAREN_LEN sizeof(FEDERATED_OPENPAREN) +#define FEDERATED_OPENPAREN_LEN (sizeof(FEDERATED_OPENPAREN) -1) #define FEDERATED_CLOSEPAREN ") " -#define FEDERATED_CLOSEPAREN_LEN sizeof(FEDERATED_CLOSEPAREN) +#define FEDERATED_CLOSEPAREN_LEN (sizeof(FEDERATED_CLOSEPAREN) -1) #define FEDERATED_NE " != " -#define FEDERATED_NE_LEN sizeof(FEDERATED_NE) +#define FEDERATED_NE_LEN (sizeof(FEDERATED_NE) -1) #define FEDERATED_GT " > " -#define FEDERATED_GT_LEN sizeof(FEDERATED_GT) +#define FEDERATED_GT_LEN (sizeof(FEDERATED_GT) -1) #define FEDERATED_LT " < " -#define FEDERATED_LT_LEN sizeof(FEDERATED_LT) +#define FEDERATED_LT_LEN (sizeof(FEDERATED_LT) -1) #define FEDERATED_LE " <= " -#define FEDERATED_LE_LEN sizeof(FEDERATED_LE) +#define FEDERATED_LE_LEN (sizeof(FEDERATED_LE) -1) #define FEDERATED_GE " >= " -#define FEDERATED_GE_LEN sizeof(FEDERATED_GE) +#define FEDERATED_GE_LEN (sizeof(FEDERATED_GE) -1) #define FEDERATED_EQ " = " -#define FEDERATED_EQ_LEN sizeof(FEDERATED_EQ) +#define FEDERATED_EQ_LEN (sizeof(FEDERATED_EQ) -1) #define FEDERATED_FALSE " 1=0" -#define FEDERATED_FALSE_LEN sizeof(FEDERATED_FALSE) +#define FEDERATED_FALSE_LEN (sizeof(FEDERATED_FALSE) -1) /* FEDERATED_SHARE is a structure that will be shared amoung all open handlers @@ -168,7 +168,7 @@ private: bool create_where_from_key(String *to, KEY *key_info, const key_range *start_key, const key_range *end_key, - bool records_in_range); + bool records_in_range, bool eq_range); int stash_remote_error(); public: @@ -192,12 +192,12 @@ public: implements. The current table flags are documented in handler.h */ - ulong table_flags() const + ulonglong table_flags() const { /* fix server to be able to get remote server table flags */ - return (HA_NOT_EXACT_COUNT | - HA_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED | HA_REC_NOT_IN_SEQ | - HA_AUTO_PART_KEY | HA_CAN_INDEX_BLOBS| HA_NO_PREFIX_CHAR_KEYS); + return (HA_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED | HA_REC_NOT_IN_SEQ | + HA_AUTO_PART_KEY | HA_CAN_INDEX_BLOBS| HA_NO_PREFIX_CHAR_KEYS | + HA_PRIMARY_KEY_REQUIRED_FOR_DELETE | HA_PARTIAL_COLUMN_READ); } /* This is a bitmap of flags that says how the storage engine @@ -231,8 +231,8 @@ public: */ double scan_time() { - DBUG_PRINT("info", ("records %lu", (ulong) records)); - return (double)(records*1000); + DBUG_PRINT("info", ("records %lu", (ulong) stats.records)); + return (double)(stats.records*1000); } /* The next method will never be called if you do not implement indexes. @@ -302,7 +302,6 @@ public: int external_lock(THD *thd, int lock_type); int connection_commit(); int connection_rollback(); - bool has_transactions() { return 1; } int connection_autocommit(bool state); int execute_simple_query(const char *query, int len); }; |