summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLawrin Novitsky <lawrin.novitsky@mariadb.com>2022-09-13 16:18:29 +0200
committerLawrin Novitsky <lawrin.novitsky@mariadb.com>2022-09-13 16:18:29 +0200
commita684049512939251010d4c66d6a718089bb53e1c (patch)
tree8862f62e6b8934ea09a85a34086327a025326b01
parent313343513405a4ecc11b0a0e413de29fb8e6210a (diff)
downloadmariadb-git-10.7-mdev-29514.tar.gz
MDEV-29514 Extending plugins sql service with mysql_options,10.7-mdev-29514
mysql_fetch_lenghts, mysql_set_character_set, mysql_num_fields and mysql_select_db. sql service version has been changed to 0x0101 ABI files updated.
-rw-r--r--include/mysql/plugin_audit.h.pp6
-rw-r--r--include/mysql/plugin_auth.h.pp6
-rw-r--r--include/mysql/plugin_data_type.h.pp6
-rw-r--r--include/mysql/plugin_encryption.h.pp6
-rw-r--r--include/mysql/plugin_ftparser.h.pp6
-rw-r--r--include/mysql/plugin_function.h.pp6
-rw-r--r--include/mysql/plugin_password_validation.h.pp6
-rw-r--r--include/mysql/service_sql.h11
-rw-r--r--include/service_versions.h2
-rw-r--r--sql/sql_plugin_services.inl5
10 files changed, 59 insertions, 1 deletions
diff --git a/include/mysql/plugin_audit.h.pp b/include/mysql/plugin_audit.h.pp
index fedfb5862b4..d1e9580a053 100644
--- a/include/mysql/plugin_audit.h.pp
+++ b/include/mysql/plugin_audit.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_auth.h.pp b/include/mysql/plugin_auth.h.pp
index f4adae35ffd..2c89bc47de3 100644
--- a/include/mysql/plugin_auth.h.pp
+++ b/include/mysql/plugin_auth.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_data_type.h.pp b/include/mysql/plugin_data_type.h.pp
index 68333230b00..bd4ef6af15f 100644
--- a/include/mysql/plugin_data_type.h.pp
+++ b/include/mysql/plugin_data_type.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_encryption.h.pp b/include/mysql/plugin_encryption.h.pp
index a7dca09334d..96100d3791b 100644
--- a/include/mysql/plugin_encryption.h.pp
+++ b/include/mysql/plugin_encryption.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_ftparser.h.pp b/include/mysql/plugin_ftparser.h.pp
index 3270f88defd..4760e31c4bd 100644
--- a/include/mysql/plugin_ftparser.h.pp
+++ b/include/mysql/plugin_ftparser.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_function.h.pp b/include/mysql/plugin_function.h.pp
index 4f0c15e74eb..5c1f34d8184 100644
--- a/include/mysql/plugin_function.h.pp
+++ b/include/mysql/plugin_function.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/plugin_password_validation.h.pp b/include/mysql/plugin_password_validation.h.pp
index d8dbd8b0dfe..a56a177b8fa 100644
--- a/include/mysql/plugin_password_validation.h.pp
+++ b/include/mysql/plugin_password_validation.h.pp
@@ -481,6 +481,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
MYSQL *mysql_real_connect_local(MYSQL *mysql);
}
diff --git a/include/mysql/service_sql.h b/include/mysql/service_sql.h
index ef6de8b34ef..be9dcad669e 100644
--- a/include/mysql/service_sql.h
+++ b/include/mysql/service_sql.h
@@ -62,6 +62,12 @@ extern struct sql_service_st {
void (STDCALL *mysql_free_result_func)(MYSQL_RES *result);
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
void (STDCALL *mysql_close_func)(MYSQL *mysql);
+ int (STDCALL *mysql_options_func)(MYSQL *mysql, enum mysql_option option,
+ const void *arg);
+ unsigned long *(STDCALL *mysql_fetch_lengths_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_set_character_set_func)(MYSQL *mysql, const char *cs_name);
+ unsigned int (STDCALL *mysql_num_fields_func)(MYSQL_RES *res);
+ int (STDCALL *mysql_select_db_func)(MYSQL *mysql, const char *db);
} *sql_service;
#ifdef MYSQL_DYNAMIC_PLUGIN
@@ -78,6 +84,11 @@ extern struct sql_service_st {
#define mysql_free_result(R) sql_service->mysql_free_result_func(R)
#define mysql_fetch_row(R) sql_service->mysql_fetch_row_func(R)
#define mysql_close(M) sql_service->mysql_close_func(M)
+#define mysql_options(M,O,V) sql_service->mysql_options_func(M,O,V)
+#define mysql_fetch_lengths(R) sql_service->mysql_fetch_lengths_func(R)
+#define mysql_set_character_set(M,C) sql_service->mysql_set_character_set_func(M,C)
+#define mysql_num_fields(R) sql_service->mysql_num_fields_func(R)
+#define mysql_select_db(M,D) sql_service->mysql_select_db_func(M,D)
#else
diff --git a/include/service_versions.h b/include/service_versions.h
index acc50e73cc6..9abae740a7b 100644
--- a/include/service_versions.h
+++ b/include/service_versions.h
@@ -44,7 +44,7 @@
#define VERSION_wsrep 0x0500
#define VERSION_json 0x0100
#define VERSION_thd_mdl 0x0100
-#define VERSION_sql_service 0x0100
+#define VERSION_sql_service 0x0101
#define VERSION_provider_bzip2 0x0100
#define VERSION_provider_lz4 0x0100
diff --git a/sql/sql_plugin_services.inl b/sql/sql_plugin_services.inl
index 3dd41ffbed9..e883081e9f7 100644
--- a/sql/sql_plugin_services.inl
+++ b/sql/sql_plugin_services.inl
@@ -245,6 +245,11 @@ struct sql_service_st sql_service_handler=
mysql_free_result,
mysql_fetch_row,
mysql_close,
+ mysql_options,
+ mysql_fetch_lengths,
+ mysql_set_character_set,
+ mysql_num_fields,
+ mysql_select_db
};
#define DEFINE_warning_function(name, ret) { \