mirror of
https://github.com/MariaDB/server.git
synced 2025-12-12 08:01:43 +03:00
"Server Variables for Plugins"
Implement support for plugins to declare server variables.
Demonstrate functionality by removing InnoDB specific code from sql/*
New feature for HASH - HASH_UNIQUE flag
New feature for DYNAMIC_ARRAY - initializer accepts preallocated ptr.
Completed support for plugin reference counting.
include/hash.h:
New flag for HASH
HASH_UNIQUE
include/my_getopt.h:
New data types for options: ENUM and SET.
Use typelib to enumerate possible values.
New flag variable:
my_getopt_skip_unknown
include/my_sys.h:
change to DYNAMIC_ARRAY init functions to support pre-allocated buffers
include/mysql.h:
relocate inclusion of typelib due to longlong requirement
include/mysql/plugin.h:
wl2936
New declarations for plugin server variable support.
New functions for use by plugins
include/mysys_err.h:
new my_getopt return value: EXIT_ARGUMENT_INVALID
include/typelib.h:
new typelib function: find_typeset(), returns an int which is a SET of
the elements in the typelib
mysql-test/r/im_utils.result:
change to more specific command line settings
--skip-innodb => --skip-plugin-innodb
etc.
mysql-test/r/log_tables.result:
set default storage engine to MEMORY so that test will succeed even
when some of the other named storage engines are not present
mysql-test/r/ndb_dd_basic.result:
change in error message
mysql-test/r/partition_innodb.result:
change in results
mysql-test/r/ps_1general.result:
bdb doesn't exist, use myisam for a non-transactional engine
mysql-test/r/variables.result:
information schema doesn't sort row results for server variables.
mysql-test/t/log_tables.test:
set default storage engine to MEMORY so that test will succeed even
when some of the other named storage engines are not present
mysql-test/t/ndb_dd_basic.test:
ALTER LOGFILE GROUP no longer silently fail here
mysql-test/t/partition_innodb.test:
ALTER TABLE no longer silently fails for unknown storage engine
mysql-test/t/ps_1general.test:
remove unneccessary parts
use myisam as it is an always present non-transactional engine
mysql-test/t/variables.test:
information schema doesn't sort row results for server variables.
mysql-test/t/warnings_engine_disabled-master.opt:
use the new style command line option
mysys/array.c:
change to DYNAMIC_ARRAY init functions to support pre-allocated buffers
mysys/hash.c:
New flag for HASH
HASH_UNIQUE
Implement HASH_UNIQUE functionality by performing a hash_search
mysys/my_getopt.c:
New data types for options: ENUM and SET.
Use typelib to enumerate possible values.
New flag variable:
my_getopt_skip_unknown
mysys/typelib.c:
new typelib function: find_typeset(), returns an int which is a SET of
the elements in the typelib
sql/ha_ndbcluster.cc:
use ha_statistic_increment() method instead of
statistic_increment() function
ha_ndbcluster variable has gone away.
sql/ha_partition.cc:
fix for reference counting
sql/ha_partition.h:
fix for reference counting
sql/handler.cc:
fixes for reference counting
sql/handler.h:
fixes for reference counting
some new methods to aid storage engine writers
sql/item_func.cc:
find_sys_var() function now requires thd
sql/item_sum.cc:
fixes for ref counting
sql/mysql_priv.h:
remove unneccessary globals.
new lock: LOCK_system_variables_hash
sql/mysqld.cc:
Remove InnoBase specific code.
Support plugin command line processing.
sql/set_var.cc:
Remove InnoBase specific declarations
Remove redundant declarations
changes to permit new variables at run time
changes for ref counting
sql/set_var.h:
changes to permit new variables at run time
changes for ref counting
sql/sql_base.cc:
changes for ref counting
sql/sql_cache.cc:
mark code as needing work in the future
sql/sql_class.cc:
new functions to aid plugin authors
initialize variables for dynamic plugin variables
sql/sql_class.h:
remove InnoBase specific declarations
New declarations for plugin variables.
sql/sql_connect.cc:
initialization and cleanup of plugin variables
sql/sql_delete.cc:
change for ref counting
sql/sql_insert.cc:
change for ref counting
sql/sql_lex.cc:
changes for ref counting and plugin variables
sql/sql_lex.h:
add properties for plugin ref counting,
add to distructor to clean up
sql/sql_partition.cc:
changes for ref counting
sql/sql_plugin.cc:
WL2936
Plugin Variables
New methods and code to support server variables for plugins.
New code to complete plugin reference counting
Debug code adds further indirection so that malloc debugging can be
used to aid finding plugin ref count leaks
sql/sql_plugin.h:
WL2936
Plugin Variables
New methods and code to support server variables for plugins.
New code to complete plugin reference counting
Debug code adds further indirection so that malloc debugging can be
used to aid finding plugin ref count leaks
sql/sql_repl.cc:
replication system variables moved here from set_var.cc
sql/sql_repl.h:
new function to initialise replication server variables
sql/sql_select.cc:
changes for ref counting
sql/sql_show.cc:
changes for ref counting
sql/sql_table.cc:
changes for ref counting
sql/sql_tablespace.cc:
use supplied functions instead of digging into data structures manually
sql/sql_yacc.yy:
changes for ref counting
find_sys_var() now requires thd parameter
changes on reporting errors to keep user-visible behaviour the same.
sql/structs.h:
changes for ref counting
sql/table.cc:
changes for ref counting
sql/table.h:
changes for ref counting
storage/federated/ha_federated.cc:
use ha_statistic_increment() method instead of statistic_increment()
function
storage/heap/ha_heap.cc:
use ha_statistic_increment() method instead of statistic_increment()
function
storage/innobase/handler/ha_innodb.cc:
use ha_statistic_increment() method instead of statistic_increment()
function
WL2936
Move InnoBase specific code out of mysqld.cc and into here
Declare all required server variables for InnoBase
storage/innobase/include/trx0trx.h:
store a bit more state so that InnoBase does not have to dig into
mysqld internal data structures.
storage/myisam/ha_myisam.cc:
use ha_statistic_increment() method instead of statistic_increment()
function
storage/myisammrg/ha_myisammrg.cc:
use ha_statistic_increment() method instead of statistic_increment()
function
90 lines
2.6 KiB
C
90 lines
2.6 KiB
C
/* Copyright (C) 2000 MySQL AB
|
|
|
|
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
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef _mysys_err_h
|
|
#define _mysys_err_h
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define GLOBERRS (EE_ERROR_LAST - EE_ERROR_FIRST + 1) /* Nr of global errors */
|
|
#define EE(X) (globerrs[(X) - EE_ERROR_FIRST])
|
|
|
|
extern const char * NEAR globerrs[]; /* my_error_messages is here */
|
|
|
|
/* Error message numbers in global map */
|
|
/*
|
|
Do not add error numbers before EE_ERROR_FIRST.
|
|
If necessary to add lower numbers, change EE_ERROR_FIRST accordingly.
|
|
|
|
We start with error 1 to not confuse peoples with 'error 0'
|
|
*/
|
|
|
|
#define EE_ERROR_FIRST 1 /*Copy first error nr.*/
|
|
#define EE_CANTCREATEFILE 1
|
|
#define EE_READ 2
|
|
#define EE_WRITE 3
|
|
#define EE_BADCLOSE 4
|
|
#define EE_OUTOFMEMORY 5
|
|
#define EE_DELETE 6
|
|
#define EE_LINK 7
|
|
#define EE_EOFERR 9
|
|
#define EE_CANTLOCK 10
|
|
#define EE_CANTUNLOCK 11
|
|
#define EE_DIR 12
|
|
#define EE_STAT 13
|
|
#define EE_CANT_CHSIZE 14
|
|
#define EE_CANT_OPEN_STREAM 15
|
|
#define EE_GETWD 16
|
|
#define EE_SETWD 17
|
|
#define EE_LINK_WARNING 18
|
|
#define EE_OPEN_WARNING 19
|
|
#define EE_DISK_FULL 20
|
|
#define EE_CANT_MKDIR 21
|
|
#define EE_UNKNOWN_CHARSET 22
|
|
#define EE_OUT_OF_FILERESOURCES 23
|
|
#define EE_CANT_READLINK 24
|
|
#define EE_CANT_SYMLINK 25
|
|
#define EE_REALPATH 26
|
|
#define EE_SYNC 27
|
|
#define EE_UNKNOWN_COLLATION 28
|
|
#define EE_FILENOTFOUND 29
|
|
#define EE_FILE_NOT_CLOSED 30
|
|
#define EE_ERROR_LAST 30 /* Copy last error nr */
|
|
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
|
|
|
|
/* exit codes for all MySQL programs */
|
|
|
|
#define EXIT_UNSPECIFIED_ERROR 1
|
|
#define EXIT_UNKNOWN_OPTION 2
|
|
#define EXIT_AMBIGUOUS_OPTION 3
|
|
#define EXIT_NO_ARGUMENT_ALLOWED 4
|
|
#define EXIT_ARGUMENT_REQUIRED 5
|
|
#define EXIT_VAR_PREFIX_NOT_UNIQUE 6
|
|
#define EXIT_UNKNOWN_VARIABLE 7
|
|
#define EXIT_OUT_OF_MEMORY 8
|
|
#define EXIT_UNKNOWN_SUFFIX 9
|
|
#define EXIT_NO_PTR_TO_VARIABLE 10
|
|
#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
|
|
#define EXIT_OPTION_DISABLED 12
|
|
#define EXIT_ARGUMENT_INVALID 13
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|