1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-07 03:22:57 +03:00

MCOL-2178 Merging with 10.4

SELECT_LEX had been moved in THD so changed all references.
        Avoid writing CS decimal scales into MDB decimal fields
            d-only dec attribute. WIP
        Replaced infinidb_vtable with a singleton MIGR.
        Merged with MCOL-2121.
        Added new wsrep include paths needed by UDaF code.
        Removed .vcxproj from Connector code.
This commit is contained in:
Roman Nozdrin
2019-02-19 20:37:44 +03:00
committed by Gagan Goel
parent 2071716ebd
commit 6fd5b2f22d
9 changed files with 335 additions and 359 deletions

View File

@@ -111,6 +111,69 @@ inline char* idb_mysql_query_str(THD* thd)
}
}
class MIGR
{
public:
enum infinidb_state
{
INFINIDB_INIT_CONNECT = 0, // intend to use to drop leftover vtable when logon. not being used now.
INFINIDB_INIT,
INFINIDB_CREATE_VTABLE,
INFINIDB_ALTER_VTABLE,
INFINIDB_SELECT_VTABLE,
INFINIDB_DROP_VTABLE,
INFINIDB_DISABLE_VTABLE,
INFINIDB_REDO_PHASE1, // post process requires to re-create vtable
INFINIDB_ORDER_BY, // for InfiniDB handler to ignore the 2nd scan for order by
INFINIDB_REDO_QUERY, // redo query with the normal mysql path
INFINIDB_ERROR_REDO_PHASE1,
INFINIDB_ERROR = 32,
};
struct INFINIDB_VTABLE
{
String original_query;
String create_vtable_query;
String alter_vtable_query;
String select_vtable_query;
String drop_vtable_query;
String insert_vtable_query;
infinidb_state vtable_state; // flag for InfiniDB MySQL virtual table structure
bool autoswitch;
bool has_order_by;
bool duplicate_field_name; // @bug 1928. duplicate field name in create_phase will be ingored.
bool call_sp;
bool override_largeside_estimate;
void* cal_conn_info;
bool isUnion;
bool impossibleWhereOnUnion;
bool isInsertSelect;
bool isUpdateWithDerive;
bool isInfiniDBDML; // default false
bool hasInfiniDBTable; // default false
bool isNewQuery;
INFINIDB_VTABLE() : cal_conn_info(NULL) {init();}
void init()
{
vtable_state = INFINIDB_INIT_CONNECT;
autoswitch = false;
has_order_by = false;
duplicate_field_name = false;
call_sp = false;
override_largeside_estimate = false;
isUnion = false;
impossibleWhereOnUnion = false;
isUpdateWithDerive = false;
isInfiniDBDML = false;
hasInfiniDBTable = false;
isNewQuery = true;
}
};
static INFINIDB_VTABLE infinidb_vtable; // InfiniDB custom structure
};
#endif
// vim:ts=4 sw=4: