1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge 10.3 into 10.4

The MDEV-17262 commit 26432e49d3
was skipped. In Galera 4, the implementation would seem to require
changes to the streaming replication.

In the tests archive.rnd_pos main.profiling, disable_ps_protocol
for SHOW STATUS and SHOW PROFILE commands until MDEV-18974
has been fixed.
This commit is contained in:
Marko Mäkelä
2019-03-20 10:26:49 +02:00
152 changed files with 1645 additions and 975 deletions

View File

@ -1,6 +1,6 @@
/*
Copyright (c) 2000, 2016, Oracle and/or its affiliates.
Copyright (c) 2009, 2017, MariaDB Corporation.
Copyright (c) 2009, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -3847,8 +3847,8 @@ public:
void add_changed_table(TABLE *table);
void add_changed_table(const char *key, size_t key_length);
CHANGED_TABLE_LIST * changed_table_dup(const char *key, size_t key_length);
void prepare_explain_fields(select_result *result, List<Item> *field_list,
uint8 explain_flags, bool is_analyze);
int prepare_explain_fields(select_result *result, List<Item> *field_list,
uint8 explain_flags, bool is_analyze);
int send_explain_fields(select_result *result, uint8 explain_flags,
bool is_analyze);
void make_explain_field_list(List<Item> &field_list, uint8 explain_flags,
@ -5033,11 +5033,6 @@ public:
Item *sp_prepare_func_item(Item **it_addr, uint cols= 1);
bool sp_eval_expr(Field *result_field, Item **expr_item_ptr);
inline void prepare_logs_for_admin_command()
{
query_plan_flags|= QPLAN_ADMIN;
}
bool having_pushdown;
};
@ -5130,6 +5125,7 @@ public:
void reset(THD *thd_arg) { thd= thd_arg; }
};
class select_result_interceptor;
/*
Interface for sending tabular data, together with some other stuff:
@ -5228,11 +5224,10 @@ public:
/*
This returns
- FALSE if the class sends output row to the client
- TRUE if the output is set elsewhere (a file, @variable, or table).
Currently all intercepting classes derive from select_result_interceptor.
- NULL if the class sends output row to the client
- this if the output is set elsewhere (a file, @variable, or table).
*/
virtual bool is_result_interceptor()=0;
virtual select_result_interceptor *result_interceptor()=0;
/*
This method is used to distinguish an normal SELECT from the cursor
@ -5308,7 +5303,7 @@ public:
} /* Remove gcc warning */
uint field_count(List<Item> &fields) const { return 0; }
bool send_result_set_metadata(List<Item> &fields, uint flag) { return FALSE; }
bool is_result_interceptor() { return true; }
select_result_interceptor *result_interceptor() { return this; }
/*
Instruct the object to not call my_ok(). Client output will be handled
@ -5442,7 +5437,7 @@ public:
virtual bool check_simple_select() const { return FALSE; }
void abort_result_set();
virtual void cleanup();
bool is_result_interceptor() { return false; }
select_result_interceptor *result_interceptor() { return NULL; }
};
@ -6485,28 +6480,33 @@ public:
*/
#define CF_UPDATES_DATA (1U << 18)
/**
Not logged into slow log as "admin commands"
*/
#define CF_ADMIN_COMMAND (1U << 19)
/**
SP Bulk execution safe
*/
#define CF_SP_BULK_SAFE (1U << 19)
#define CF_SP_BULK_SAFE (1U << 20)
/**
SP Bulk execution optimized
*/
#define CF_SP_BULK_OPTIMIZED (1U << 20)
#define CF_SP_BULK_OPTIMIZED (1U << 21)
/**
If command creates or drops a table
*/
#define CF_SCHEMA_CHANGE (1U << 21)
#define CF_SCHEMA_CHANGE (1U << 22)
/**
If command creates or drops a database
*/
#define CF_DB_CHANGE (1U << 22)
#define CF_DB_CHANGE (1U << 23)
#ifdef WITH_WSREP
/**
DDL statement that may be subject to error filtering.
*/
#define CF_WSREP_MAY_IGNORE_ERRORS (1U << 23)
#define CF_WSREP_MAY_IGNORE_ERRORS (1U << 24)
#endif /* WITH_WSREP */