summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2019-07-09 13:02:26 +0400
committerSergey Vojtovich <svoj@mariadb.org>2019-07-09 13:02:52 +0400
commit0940e25d69cea59d6026f894b1fd9a5ebb55378c (patch)
tree59d777f2f0b31725ca05dbaeb47755235840fb8a
parenta179de04025443032745ee811a97d8da7afe8996 (diff)
downloadmariadb-git-0940e25d69cea59d6026f894b1fd9a5ebb55378c.tar.gz
MDEV-19991 Turn I_S tables GEOMETRY_COLUMNS and SPATIAL_REF_SYS into a plugin
Cleanups.
-rw-r--r--plugin/type_geom/plugin.cc39
-rw-r--r--sql/sql_show.cc2
-rw-r--r--sql/sql_show.h1
3 files changed, 7 insertions, 35 deletions
diff --git a/plugin/type_geom/plugin.cc b/plugin/type_geom/plugin.cc
index bcca9011bec..3e9f1fb5572 100644
--- a/plugin/type_geom/plugin.cc
+++ b/plugin/type_geom/plugin.cc
@@ -74,18 +74,11 @@ exit:
}
-static int fill_table_spatial_ref_sys(THD *thd, TABLE_LIST* tables, COND* cond)
-{
- spatial_ref_sys_fill(thd, tables, cond);
- return 0;
-}
-
-
static int plugin_init_spatial_ref_sys(void *p)
{
ST_SCHEMA_TABLE *schema= (ST_SCHEMA_TABLE *)p;
schema->fields_info= spatial_ref_sys_fields_info;
- schema->fill_table= fill_table_spatial_ref_sys;
+ schema->fill_table= spatial_ref_sys_fill;
return 0;
}
@@ -203,35 +196,15 @@ static int get_geometry_column_record(THD *thd, TABLE_LIST *tables,
}
-static ST_SCHEMA_TABLE geometry_columns=
-{
- "GEOMETRY_COLUMNS", // table_name
- geometry_columns_fields_info, // fields_info
- 0, // reset_table
- NULL, // fill_table
- NULL, // old_format
- get_geometry_column_record, // process_table
- 1, // idx_field1
- 2, // idx_field2
- 0, // hidden
- OPTIMIZE_I_S_TABLE|OPEN_VIEW_FULL // i_s_requested_object
-};
-
-
-static int fill_table_geometry_columns(THD *thd, TABLE_LIST* tables, COND* cond)
-{
- tables->schema_table= &geometry_columns;
- optimize_for_get_all_tables(thd, tables, cond);
- get_all_tables(thd, tables, cond);
- return 0;
-}
-
-
static int plugin_init_geometry_columns(void *p)
{
ST_SCHEMA_TABLE *schema= (ST_SCHEMA_TABLE *)p;
schema->fields_info= geometry_columns_fields_info;
- schema->fill_table= fill_table_geometry_columns;
+ schema->fill_table= get_all_tables;
+ schema->process_table= get_geometry_column_record;
+ schema->idx_field1= 1;
+ schema->idx_field2= 2;
+ schema->i_s_requested_object= OPTIMIZE_I_S_TABLE | OPEN_VIEW_FULL;
return 0;
}
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 3fc662ed954..1cf1050983f 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -8417,7 +8417,7 @@ int make_schema_select(THD *thd, SELECT_LEX *sel,
*/
-bool optimize_for_get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
+static bool optimize_for_get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
{
SELECT_LEX *lsel= tables->schema_select_lex;
ST_SCHEMA_TABLE *schema_table= tables->schema_table;
diff --git a/sql/sql_show.h b/sql/sql_show.h
index fc3024c5a8b..a98ba451088 100644
--- a/sql/sql_show.h
+++ b/sql/sql_show.h
@@ -78,7 +78,6 @@ typedef struct system_status_var STATUS_VAR;
typedef enum { WITHOUT_DB_NAME, WITH_DB_NAME } enum_with_db_name;
int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond);
-bool optimize_for_get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond);
int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet,
Table_specification_st *create_info_arg,