mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge branch '10.4' into bb-10.4-mdev16188
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
#define HANDLER_INCLUDED
|
||||
/*
|
||||
Copyright (c) 2000, 2016, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2018, MariaDB
|
||||
Copyright (c) 2009, 2019, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
@ -320,6 +320,11 @@ enum enum_alter_inplace_result {
|
||||
/* Safe for online backup */
|
||||
#define HA_CAN_ONLINE_BACKUPS (1ULL << 56)
|
||||
|
||||
/** whether every data field explicitly stores length
|
||||
(holds for InnoDB ROW_FORMAT=REDUNDANT) */
|
||||
#define HA_EXTENDED_TYPES_CONVERSION (1ULL << 57)
|
||||
#define HA_LAST_TABLE_FLAG HA_EXTENDED_TYPES_CONVERSION
|
||||
|
||||
/* bits in index_flags(index_number) for what you can do with index */
|
||||
#define HA_READ_NEXT 1 /* TODO really use this flag */
|
||||
#define HA_READ_PREV 2 /* supports ::index_prev */
|
||||
@ -625,6 +630,8 @@ typedef ulonglong alter_table_operations;
|
||||
#define ALTER_KEYS_ONOFF (1ULL << 9)
|
||||
// Set for FORCE, ENGINE(same engine), by mysql_recreate_table()
|
||||
#define ALTER_RECREATE (1ULL << 10)
|
||||
// Set for CONVERT TO
|
||||
#define ALTER_CONVERT_TO (1ULL << 11)
|
||||
// Set for ADD FOREIGN KEY
|
||||
#define ALTER_ADD_FOREIGN_KEY (1ULL << 21)
|
||||
// Set for DROP FOREIGN KEY
|
||||
@ -739,6 +746,19 @@ typedef ulonglong alter_table_operations;
|
||||
*/
|
||||
#define ALTER_PARTITIONED (1ULL << 59)
|
||||
|
||||
/**
|
||||
Change in index length such that it doesn't require index rebuild.
|
||||
*/
|
||||
#define ALTER_COLUMN_INDEX_LENGTH (1ULL << 60)
|
||||
|
||||
/**
|
||||
Change the column length or type such that no rebuild is needed.
|
||||
Only set if ALTER_COLUMN_EQUAL_PACK_LENGTH does not apply, and
|
||||
if HA_EXTENDED_TYPES_CONVERSION holds.
|
||||
@see IS_EQUAL_PACK_LENGTH_EXT
|
||||
*/
|
||||
#define ALTER_COLUMN_EQUAL_PACK_LENGTH_EXT (1ULL << 61)
|
||||
|
||||
/*
|
||||
Flags set in partition_flags when altering partitions
|
||||
*/
|
||||
@ -991,6 +1011,7 @@ enum enum_schema_tables
|
||||
SCH_KEY_CACHES,
|
||||
SCH_KEY_COLUMN_USAGE,
|
||||
SCH_OPEN_TABLES,
|
||||
SCH_OPT_TRACE,
|
||||
SCH_PARAMETERS,
|
||||
SCH_PARTITIONS,
|
||||
SCH_PLUGINS,
|
||||
@ -1209,6 +1230,8 @@ struct handler_iterator {
|
||||
|
||||
class handler;
|
||||
class group_by_handler;
|
||||
class derived_handler;
|
||||
class select_handler;
|
||||
struct Query;
|
||||
typedef class st_select_lex SELECT_LEX;
|
||||
typedef struct st_order ORDER;
|
||||
@ -1527,6 +1550,21 @@ struct handlerton
|
||||
*/
|
||||
group_by_handler *(*create_group_by)(THD *thd, Query *query);
|
||||
|
||||
/*
|
||||
Create and return a derived_handler if the storage engine can execute
|
||||
the derived table 'derived', otherwise return NULL.
|
||||
In a general case 'derived' may contain tables not from the engine.
|
||||
If the engine cannot handle or does not want to handle such pushed derived
|
||||
the function create_group_by has to return NULL.
|
||||
*/
|
||||
derived_handler *(*create_derived)(THD *thd, TABLE_LIST *derived);
|
||||
|
||||
/*
|
||||
Create and return a select_handler if the storage engine can execute
|
||||
the select statement 'select, otherwise return NULL
|
||||
*/
|
||||
select_handler *(*create_select) (THD *thd, SELECT_LEX *select);
|
||||
|
||||
/*********************************************************************
|
||||
Table discovery API.
|
||||
It allows the server to "discover" tables that exist in the storage
|
||||
@ -3178,7 +3216,11 @@ public:
|
||||
/**
|
||||
The cached_table_flags is set at ha_open and ha_external_lock
|
||||
*/
|
||||
Table_flags ha_table_flags() const { return cached_table_flags; }
|
||||
Table_flags ha_table_flags() const
|
||||
{
|
||||
DBUG_ASSERT(cached_table_flags < (HA_LAST_TABLE_FLAG << 1));
|
||||
return cached_table_flags;
|
||||
}
|
||||
/**
|
||||
These functions represent the public interface to *users* of the
|
||||
handler class, hence they are *not* virtual. For the inheritance
|
||||
|
Reference in New Issue
Block a user