Below is the list of changes that have just been committed into a local
5.0 repository of jan. When jan does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-01-26 12:43:59+02:00, jan@midearth.(none) +46 -0
Merge bk://mysql.bkbits.net/mysql-5.0
into midearth.(none):/home/jan/solid/MySQL/l2x/mysql-5.0-bk
MERGE: 1.2248.188.1
BUILD/Makefile.am@stripped, 2007-01-26 12:06:34+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.10.1.1
BUILD/SETUP.sh@stripped, 2007-01-26 12:43:53+02:00, jan@midearth.(none) +0 -3
Merge bk://mysql.bkbits.net/mysql-5.0
into midearth.(none):/home/jan/solid/MySQL/l2x/mysql-5.0-bk
MERGE: 1.60.1.1
BitKeeper/deleted/.del-INSTALL@stripped, 2007-01-26 12:08:13+02:00, jan@midearth.(none) +0 -0
Delete: extra/yassl/taocrypt/INSTALL
BitKeeper/deleted/.del-README@stripped, 2007-01-26 12:08:57+02:00, jan@midearth.(none) +0 -0
Delete: extra/yassl/taocrypt/README
BitKeeper/deleted/.del-algorithm.hpp~1@stripped, 2007-01-26 12:09:02+02:00,
jan@midearth.(none) +0 -0
Delete: extra/yassl/taocrypt/mySTL/algorithm.hpp
BitKeeper/deleted/.del-crypto.cpp@stripped, 2007-01-26 12:38:19+02:00, jan@midearth.(none) +0
-0
Delete: extra/yassl/taocrypt/src/crypto.cpp
BitKeeper/deleted/.del-execution_constants.result@stripped, 2007-01-26 12:38:23+02:00,
jan@midearth.(none) +0 -0
Delete: mysql-test/r/execution_constants.result
BitKeeper/deleted/.del-execution_constants.test@stripped, 2007-01-26 12:38:27+02:00,
jan@midearth.(none) +0 -0
Delete: mysql-test/t/execution_constants.test
BitKeeper/deleted/.del-helpers.hpp~1@stripped, 2007-01-26 12:09:06+02:00, jan@midearth.(none)
+0 -0
Delete: extra/yassl/taocrypt/mySTL/helpers.hpp
BitKeeper/deleted/.del-list.hpp~1@stripped, 2007-01-26 12:09:11+02:00, jan@midearth.(none) +0
-0
Delete: extra/yassl/taocrypt/mySTL/list.hpp
BitKeeper/deleted/.del-memory.hpp~1@stripped, 2007-01-26 12:09:13+02:00, jan@midearth.(none)
+0 -0
Delete: extra/yassl/taocrypt/mySTL/memory.hpp
BitKeeper/deleted/.del-memory_array.hpp@stripped, 2007-01-26 12:38:12+02:00,
jan@midearth.(none) +0 -0
Delete: extra/yassl/taocrypt/mySTL/memory_array.hpp
BitKeeper/deleted/.del-mtr_im.pl~1@stripped, 2007-01-26 12:38:21+02:00, jan@midearth.(none)
+0 -0
Delete: mysql-test/lib/mtr_im.pl
BitKeeper/deleted/.del-pair.hpp~1@stripped, 2007-01-26 12:38:14+02:00, jan@midearth.(none) +0
-0
Delete: extra/yassl/taocrypt/mySTL/pair.hpp
BitKeeper/deleted/.del-round.result@stripped, 2007-01-26 12:38:25+02:00, jan@midearth.(none)
+0 -0
Delete: mysql-test/r/round.result
BitKeeper/deleted/.del-round.test@stripped, 2007-01-26 12:38:29+02:00, jan@midearth.(none) +0
-0
Delete: mysql-test/t/round.test
BitKeeper/deleted/.del-stdexcept.hpp~1@stripped, 2007-01-26 12:38:15+02:00,
jan@midearth.(none) +0 -0
Delete: extra/yassl/taocrypt/mySTL/stdexcept.hpp
BitKeeper/deleted/.del-vector.hpp~1@stripped, 2007-01-26 12:38:17+02:00, jan@midearth.(none)
+0 -0
Delete: extra/yassl/taocrypt/mySTL/vector.hpp
configure.in@stripped, 2007-01-26 12:06:34+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.398.2.1
libmysqld/Makefile.am@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.69.1.1
scripts/Makefile.am@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.52.1.1
sql/Makefile.am@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.122.1.2
sql/examples/ha_example.cc@stripped, 2007-01-26 12:06:39+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.20.1.1
sql/examples/ha_tina.cc@stripped, 2007-01-26 12:06:40+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.24.1.1
sql/ha_archive.cc@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.74.1.1
sql/ha_berkeley.cc@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.162.1.1
sql/ha_blackhole.cc@stripped, 2007-01-26 12:06:35+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.23.1.1
sql/ha_federated.cc@stripped, 2007-01-26 12:06:36+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.68.2.1
sql/ha_heap.cc@stripped, 2007-01-26 12:06:36+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.78.1.1
sql/ha_innodb.cc@stripped, 2007-01-26 12:06:36+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.299.1.1
sql/ha_myisam.cc@stripped, 2007-01-26 12:06:36+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.168.1.1
sql/ha_myisammrg.cc@stripped, 2007-01-26 12:06:36+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.80.1.1
sql/ha_ndbcluster.cc@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.277.3.3
sql/handler.cc@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.220.4.1
sql/handler.h@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.179.1.1
sql/lex.h@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.144.1.1
sql/log.cc@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.194.2.1
sql/mysql_priv.h@stripped, 2007-01-26 12:06:37+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.412.3.1
sql/mysqld.cc@stripped, 2007-01-26 12:43:53+02:00, jan@midearth.(none) +0 -3
Merge bk://mysql.bkbits.net/mysql-5.0
into midearth.(none):/home/jan/solid/MySQL/l2x/mysql-5.0-bk
MERGE: 1.573.1.1
sql/set_var.cc@stripped, 2007-01-26 12:06:38+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.163.1.3
sql/sp_head.cc@stripped, 2007-01-26 12:06:38+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.224.2.1
sql/sql_class.h@stripped, 2007-01-26 12:06:38+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.300.1.3
sql/sql_lex.h@stripped, 2007-01-26 12:06:39+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.225.9.1
sql/sql_parse.cc@stripped, 2007-01-26 12:06:39+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.582.4.1
sql/sql_yacc.yy@stripped, 2007-01-26 12:06:39+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.491.3.1
support-files/Makefile.am@stripped, 2007-01-26 12:06:40+02:00, jan@midearth.(none) +0 -0
Auto merged
MERGE: 1.31.1.1
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: jan
# Host: midearth.(none)
# Root: /home/jan/solid/MySQL/l2x/mysql-5.0-bk/RESYNC
--- 1.421/configure.in 2007-01-26 12:44:13 +02:00
+++ 1.422/configure.in 2007-01-26 12:44:13 +02:00
@@ -45,6 +45,7 @@
sinclude(config/ac-macros/ha_innodb.m4)
sinclude(config/ac-macros/ha_ndbcluster.m4)
sinclude(config/ac-macros/ha_tina.m4)
+sinclude(config/ac-macros/ha_soliddb.m4)
sinclude(config/ac-macros/large_file.m4)
sinclude(config/ac-macros/misc.m4)
sinclude(config/ac-macros/openssl.m4)
@@ -1181,7 +1182,7 @@
sql/Makefile.in)
# Use gen_lex_hash.linux instead of gen_lex_hash
# Add library dependencies to mysqld_DEPENDENCIES
- lib_DEPENDENCIES="\$(bdb_libs_with_path) \$(innodb_libs) \$(ndbcluster_libs)
\$(pstack_libs) \$(innodb_system_libs) \$(openssl_libs) \$(yassl_libs)"
+ lib_DEPENDENCIES="\$(bdb_libs_with_path) \$(innodb_libs) \$(ndbcluster_libs)
\$(pstack_libs) \$(innodb_system_libs) \$(soliddb_libs) \$(openssl_libs) \$(yassl_libs)"
cat > $filesed << EOF
s,\(^.*\$(MAKE) gen_lex_hash\)\$(EXEEXT),#\1,
s,\(\./gen_lex_hash\)\$(EXEEXT),\1.linux,
@@ -2497,6 +2498,7 @@
MYSQL_CHECK_MAX_INDEXES
MYSQL_CHECK_BDB
MYSQL_CHECK_INNODB
+MYSQL_CHECK_SOLIDDB
MYSQL_CHECK_EXAMPLEDB
MYSQL_CHECK_ARCHIVEDB
MYSQL_CHECK_CSVDB
@@ -2640,6 +2642,13 @@
innodb_conf_flags=""
sql_server_dirs="$sql_server_dirs innobase"
AC_CONFIG_SUBDIRS(innobase)
+ fi
+
+ if test X"$have_solid" = Xyes
+ then
+ soliddb_conf_flags=""
+ sql_server_dirs="$sql_server_dirs soliddb"
+ AC_CONFIG_SUBDIRS(soliddb)
fi
case $SYSTEM_TYPE-$MACHINE_TYPE-$ac_cv_prog_gcc-$have_ndbcluster in
--- 1.55/scripts/Makefile.am 2007-01-26 12:44:13 +02:00
+++ 1.56/scripts/Makefile.am 2007-01-26 12:44:13 +02:00
@@ -68,7 +68,7 @@
mysqlbug \
make_win_bin_dist
-dist_pkgdata_DATA = fill_help_tables.sql mysql_fix_privilege_tables.sql
+dist_pkgdata_DATA = fill_help_tables.sql mysql_fix_privilege_tables.sql
soliddb_system_tables.sql
# mysqlbug should be distributed built so that people can report build
# failures with it.
--- 1.130/sql/Makefile.am 2007-01-26 12:44:13 +02:00
+++ 1.131/sql/Makefile.am 2007-01-26 12:44:13 +02:00
@@ -40,7 +40,7 @@
mysqld_LDADD = @MYSQLD_EXTRA_LDFLAGS@ \
@bdb_libs@ @innodb_libs@ @pstack_libs@ \
- @innodb_system_libs@ \
+ @innodb_system_libs@ $(top_srcdir)/soliddb/libsoliddb.a \
@ndbcluster_libs@ @ndbcluster_system_libs@ \
$(LDADD) $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
@yassl_libs@ @openssl_libs@
@@ -59,7 +59,7 @@
log_event.h sql_repl.h slave.h \
stacktrace.h sql_sort.h sql_cache.h set_var.h \
spatial.h gstream.h client_settings.h tzfile.h \
- tztime.h my_decimal.h\
+ tztime.h my_decimal.h ha_soliddb.h \
sp_head.h sp_pcontext.h sp_rcontext.h sp.h sp_cache.h \
parse_file.h sql_view.h sql_trigger.h \
sql_array.h sql_cursor.h \
@@ -87,7 +87,7 @@
records.cc filesort.cc handler.cc \
ha_heap.cc ha_myisam.cc ha_myisammrg.cc \
ha_berkeley.cc ha_innodb.cc \
- ha_ndbcluster.cc \
+ ha_ndbcluster.cc ha_soliddb.cc \
sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
@@ -163,6 +163,10 @@
lex_hash.h: gen_lex_hash.cc lex.h
$(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT)
./gen_lex_hash$(EXEEXT) > $@
+
+ha_soliddb.o: ha_soliddb.cc ha_soliddb.h
+ $(CXXCOMPILE) -I$(top_srcdir)/soliddb/include -DSS_MYSQL -DWITH_SOLIDDB_STORAGE_ENGINE
-DSS_UNIX $(LM_CFLAGS) -c $<
+
# For testing of udf_example.so
noinst_LTLIBRARIES= udf_example.la
--- 1.165/sql/ha_berkeley.cc 2007-01-26 12:44:13 +02:00
+++ 1.166/sql/ha_berkeley.cc 2007-01-26 12:44:13 +02:00
@@ -127,6 +127,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CLOSE_CURSORS_AT_COMMIT
};
--- 1.82/sql/ha_heap.cc 2007-01-26 12:44:13 +02:00
+++ 1.83/sql/ha_heap.cc 2007-01-26 12:44:13 +02:00
@@ -43,6 +43,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.172/sql/ha_myisam.cc 2007-01-26 12:44:13 +02:00
+++ 1.173/sql/ha_myisam.cc 2007-01-26 12:44:13 +02:00
@@ -72,6 +72,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
/*
MyISAM doesn't support transactions and doesn't have
transaction-dependent context: cursors can survive a commit.
--- 1.87/sql/ha_myisammrg.cc 2007-01-26 12:44:13 +02:00
+++ 1.88/sql/ha_myisammrg.cc 2007-01-26 12:44:13 +02:00
@@ -54,6 +54,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.225/sql/handler.cc 2007-01-26 12:44:13 +02:00
+++ 1.226/sql/handler.cc 2007-01-26 12:44:13 +02:00
@@ -30,6 +30,18 @@
We have dummy hanldertons in case the handler has not been compiled
in. This will be removed in 5.1.
*/
+#ifdef HAVE_SOLID_DB
+#include <ha_soliddb.h>
+extern handlerton solid_hton;
+#else
+handlerton solid_hton = { "solidDB", SHOW_OPTION_NO,
+ "Fully transactional disk-based engine with multiversion optimistic/pessimistic
concurrency control",
+ DB_TYPE_SOLID_DB, NULL,
+ 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, HTON_NO_FLAGS };
+#endif
+
+
#ifdef HAVE_BERKELEY_DB
#include "ha_berkeley.h"
extern handlerton berkeley_hton;
@@ -37,7 +49,7 @@
handlerton berkeley_hton = { "BerkeleyDB", SHOW_OPTION_NO,
"Supports transactions and page-level locking", DB_TYPE_BERKELEY_DB, NULL,
0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, HTON_NO_FLAGS };
+ NULL, NULL, NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_BLACKHOLE_DB
#include "ha_blackhole.h"
@@ -47,7 +59,7 @@
"/dev/null storage engine (anything you write to it disappears)",
DB_TYPE_BLACKHOLE_DB, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_EXAMPLE_DB
#include "examples/ha_example.h"
@@ -57,7 +69,7 @@
"Example storage engine",
DB_TYPE_EXAMPLE_DB, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#if defined(HAVE_ARCHIVE_DB)
#include "ha_archive.h"
@@ -66,7 +78,7 @@
handlerton archive_hton = { "ARCHIVE", SHOW_OPTION_NO,
"Archive storage engine", DB_TYPE_ARCHIVE_DB, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_CSV_DB
#include "examples/ha_tina.h"
@@ -75,7 +87,7 @@
handlerton tina_hton = { "CSV", SHOW_OPTION_NO, "CSV storage engine",
DB_TYPE_CSV_DB, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_INNOBASE_DB
#include "ha_innodb.h"
@@ -85,7 +97,7 @@
"Supports transactions, row-level locking, and foreign keys",
DB_TYPE_INNODB, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_NDBCLUSTER_DB
#include "ha_ndbcluster.h"
@@ -95,7 +107,7 @@
"Clustered, fault-tolerant, memory-based tables",
DB_TYPE_NDBCLUSTER, NULL, 0, 0, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#ifdef HAVE_FEDERATED_DB
#include "ha_federated.h"
@@ -104,7 +116,7 @@
handlerton federated_hton = { "FEDERATED", SHOW_OPTION_NO,
"Federated MySQL storage engine", DB_TYPE_FEDERATED_DB, NULL, 0, 0, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- HTON_NO_FLAGS };
+ NULL,HTON_NO_FLAGS };
#endif
#include <myisampack.h>
#include <errno.h>
@@ -119,7 +131,7 @@
*/
handlerton isam_hton = { "ISAM", SHOW_OPTION_NO, "Obsolete storage engine",
DB_TYPE_ISAM, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, HTON_NO_FLAGS };
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, HTON_NO_FLAGS };
/* static functions defined in this file */
@@ -138,6 +150,7 @@
*/
handlerton *sys_table_types[]=
{
+ &solid_hton,
&myisam_hton,
&heap_hton,
&innobase_hton,
@@ -156,6 +169,7 @@
struct show_table_alias_st sys_table_aliases[]=
{
+ {"SOLID", "solidDB"},
{"INNOBASE", "InnoDB"},
{"NDB", "NDBCLUSTER"},
{"BDB", "BERKELEYDB"},
@@ -295,6 +309,14 @@
handler *get_new_handler(TABLE *table, MEM_ROOT *alloc, enum db_type db_type)
{
switch (db_type) {
+
+#ifdef HAVE_SOLID_DB
+ case DB_TYPE_SOLID_DB:
+ if (have_soliddb == SHOW_OPTION_YES)
+ return new (alloc) ha_soliddb(table);
+ return NULL;
+#endif
+
#ifndef NO_HASH
case DB_TYPE_HASH:
return new (alloc) ha_hash(table);
@@ -516,6 +538,13 @@
error|=heap_panic(flag);
error|=mi_panic(flag);
error|=myrg_panic(flag);
+
+#ifdef HAVE_SOLID_DB
+ if (have_soliddb == SHOW_OPTION_YES) {
+ error|=solid_end();
+ }
+#endif
+
#ifdef HAVE_BERKELEY_DB
if (have_berkeley_db == SHOW_OPTION_YES)
error|=berkeley_end();
@@ -555,6 +584,12 @@
if (have_ndbcluster == SHOW_OPTION_YES)
ndbcluster_drop_database(path);
#endif
+
+#ifdef HAVE_SOLID_DB
+ if (have_soliddb == SHOW_OPTION_YES)
+ solid_drop_database(path);
+#endif
+
}
/* don't bother to rollback here, it's done already */
@@ -751,10 +786,82 @@
for (ht=trans->ht; *ht; ht++)
{
int err;
+
if ((err= (*(*ht)->commit)(thd, all)))
{
- my_error(ER_ERROR_DURING_COMMIT, MYF(0), err);
- error=1;
+ int errcode;
+
+ /* Note that errors are possible on commit phase on some
+ storage engines */
+
+ switch (err) {
+ case HA_ERR_ROW_IS_REFERENCED:
+ {
+ String str;
+ TABLE *table=NULL;
+
+ int key_nr = (*(*ht)->get_error_message)(thd, &table, err,
&str);
+ my_error(ER_ROW_IS_REFERENCED_2, MYF(0), str.c_ptr_safe());
+ error = 1;
+ break;
+ }
+ case HA_ERR_NO_REFERENCED_ROW:
+ {
+ String str;
+ TABLE *table=NULL;
+
+ int key_nr = (*(*ht)->get_error_message)(thd, &table, err,
&str);
+ my_error(ER_NO_REFERENCED_ROW_2, MYF(0), str.c_ptr_safe());
+ error = 1;
+ break;
+ }
+ case HA_ERR_WRONG_COMMAND:
+ errcode = ER_ILLEGAL_HA;
+ break;
+ case HA_ERR_FOUND_DUPP_KEY:
+ {
+ char key[MAX_KEY_LENGTH];
+ TABLE *table;
+ String str(key,sizeof(key),system_charset_info);
+
+ uint key_nr = (*(*ht)->get_error_message)(thd, &table, error,
&str);
+
+ if ((int) key_nr >= 0)
+ {
+ /* Write the dupplicated key in the error message */
+ key_unpack(&str,table,(uint) key_nr);
+ uint max_length=MYSQL_ERRMSG_SIZE-(uint) strlen(ER(ER_DUP_ENTRY));
+ if (str.length() >= max_length)
+ {
+ str.length(max_length-4);
+ str.append(STRING_WITH_LEN("..."));
+ }
+ my_error(ER_DUP_ENTRY, MYF(0), str.c_ptr(), key_nr+1);
+ error = 1;
+ }
+
+ errcode=ER_DUP_KEY;
+ break;
+ }
+ case HA_ERR_LOCK_WAIT_TIMEOUT:
+ errcode = ER_LOCK_WAIT_TIMEOUT;
+ break;
+ case HA_ERR_LOCK_DEADLOCK:
+ errcode = ER_LOCK_DEADLOCK;
+ break;
+ case HA_ERR_READ_ONLY_TRANSACTION:
+ errcode = ER_READ_ONLY_TRANSACTION;
+ break;
+ default:
+ errcode = ER_ERROR_DURING_COMMIT;
+ break;
+ }
+
+ if (!error) {
+ my_error(errcode, MYF(0), err);
+ }
+
+ error=1;
}
statistic_increment(thd->status_var.ha_commit_count,&LOCK_status);
*ht= 0;
--- 1.182/sql/handler.h 2007-01-26 12:44:13 +02:00
+++ 1.183/sql/handler.h 2007-01-26 12:44:13 +02:00
@@ -28,7 +28,7 @@
#endif
#if defined(HAVE_BERKELEY_DB) || defined(HAVE_INNOBASE_DB) || \
- defined(HAVE_NDBCLUSTER_DB)
+ defined(HAVE_NDBCLUSTER_DB) || defined(HAVE_SOLID_DB)
#define USING_TRANSACTIONS
#endif
@@ -119,10 +119,10 @@
/*
Note: the following includes binlog and closing 0.
so: innodb + bdb + ndb + binlog + myisam + myisammrg + archive +
- example + csv + heap + blackhole + federated + 0
+ example + csv + heap + blackhole + federated + solidb + 0
(yes, the sum is deliberately inaccurate)
*/
-#define MAX_HA 14
+#define MAX_HA 15
/*
Bits in index_ddl_flags(KEY *wanted_index)
@@ -186,6 +186,7 @@
DB_TYPE_EXAMPLE_DB, DB_TYPE_ARCHIVE_DB, DB_TYPE_CSV_DB,
DB_TYPE_FEDERATED_DB,
DB_TYPE_BLACKHOLE_DB,
+ DB_TYPE_SOLID_DB,
DB_TYPE_DEFAULT // Must be last
};
@@ -301,6 +302,16 @@
#define MAX_XID_LIST_SIZE (1024*128)
#endif
+/* The handler for a table type. Will be included in the TABLE structure */
+
+struct st_table;
+typedef struct st_table TABLE;
+struct st_foreign_key_info;
+typedef struct st_foreign_key_info FOREIGN_KEY_INFO;
+
+typedef struct st_savepoint SAVEPOINT;
+extern ulong savepoint_alloc_size;
+
/*
handlerton is a singleton structure - one instance per storage engine -
to provide access to storage engine functionality that works on the
@@ -395,6 +406,7 @@
void *(*create_cursor_read_view)();
void (*set_cursor_read_view)(void *);
void (*close_cursor_read_view)(void *);
+ int (*get_error_message)(THD *thd, TABLE**,int, String* buf);
uint32 flags; /* global handler flags */
} handlerton;
@@ -450,16 +462,6 @@
bool varchar; /* 1 if table has a VARCHAR */
} HA_CREATE_INFO;
-
-/* The handler for a table type. Will be included in the TABLE structure */
-
-struct st_table;
-typedef struct st_table TABLE;
-struct st_foreign_key_info;
-typedef struct st_foreign_key_info FOREIGN_KEY_INFO;
-
-typedef struct st_savepoint SAVEPOINT;
-extern ulong savepoint_alloc_size;
/* Forward declaration for condition pushdown to storage engine */
typedef class Item COND;
--- 1.145/sql/lex.h 2007-01-26 12:44:13 +02:00
+++ 1.146/sql/lex.h 2007-01-26 12:44:13 +02:00
@@ -434,6 +434,7 @@
{ "SLAVE", SYM(SLAVE)},
{ "SNAPSHOT", SYM(SNAPSHOT_SYM)},
{ "SMALLINT", SYM(SMALLINT)},
+ { "SOLIDDB", SYM(SOLIDDB_SYM)},
{ "SOME", SYM(ANY_SYM)},
{ "SONAME", SYM(UDF_SONAME_SYM)},
{ "SOUNDS", SYM(SOUNDS_SYM)},
--- 1.200/sql/log.cc 2007-01-26 12:44:13 +02:00
+++ 1.201/sql/log.cc 2007-01-26 12:44:13 +02:00
@@ -68,6 +68,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_HIDDEN
};
--- 1.429/sql/mysql_priv.h 2007-01-26 12:44:13 +02:00
+++ 1.430/sql/mysql_priv.h 2007-01-26 12:44:13 +02:00
@@ -1313,6 +1313,13 @@
/* optional things, have_* variables */
+#ifdef HAVE_SOLID_DB
+extern handlerton solid_hton;
+#define have_soliddb solid_hton.state
+#else
+extern SHOW_COMP_OPTION have_soliddb;
+#endif
+
#ifdef HAVE_INNOBASE_DB
extern handlerton innobase_hton;
#define have_innodb innobase_hton.state
--- 1.590/sql/mysqld.cc 2007-01-26 12:44:13 +02:00
+++ 1.591/sql/mysqld.cc 2007-01-26 12:44:13 +02:00
@@ -28,6 +28,9 @@
#ifdef HAVE_INNOBASE_DB
#include "ha_innodb.h"
#endif
+#ifdef HAVE_SOLID_DB
+#include "ha_soliddb.h"
+#endif
#include "ha_myisam.h"
#ifdef HAVE_NDBCLUSTER_DB
#include "ha_ndbcluster.h"
@@ -38,6 +41,13 @@
#else
#define OPT_INNODB_DEFAULT 0
#endif
+
+#ifdef HAVE_SOLID_DB
+#define OPT_SOLIDDB_DEFAULT 1
+#else
+#define OPT_SOLIDDB_DEFAULT 0
+#endif
+
#define OPT_BDB_DEFAULT 0
#ifdef HAVE_NDBCLUSTER_DB
#define OPT_NDBCLUSTER_DEFAULT 0
@@ -356,6 +366,8 @@
my_bool opt_show_slave_auth_info, opt_sql_bin_update = 0;
my_bool opt_log_slave_updates= 0;
my_bool opt_innodb;
+my_bool opt_soliddb;
+
#ifdef HAVE_NDBCLUSTER_DB
const char *opt_ndbcluster_connectstring= 0;
const char *opt_ndb_connectstring= 0;
@@ -4698,7 +4710,27 @@
OPT_TABLE_LOCK_WAIT_TIMEOUT,
OPT_PORT_OPEN_TIMEOUT,
OPT_MERGE,
- OPT_INNODB_ROLLBACK_ON_TIMEOUT
+ OPT_SOLIDDB,
+ OPT_SOLIDDB_CACHE_SIZE,
+ OPT_SOLIDDB_DURABILITY_LEVEL,
+ OPT_SOLIDDB_LOGDIR,
+ OPT_SOLIDDB_BACKUPDIR,
+ OPT_SOLIDDB_ADMIN_COMMAND,
+ OPT_SOLIDDB_CHECKPOINT_DELETELOG,
+ OPT_SOLIDDB_FILESPEC,
+ OPT_SOLIDDB_LOCK_WAIT_TIMEOUT,
+ OPT_SOLIDDB_DB_BLOCK_SIZE,
+ OPT_SOLIDDB_LOG_BLOCK_SIZE,
+ OPT_SOLIDDB_BACKUP_BLOCK_SIZE,
+ OPT_SOLIDDB_CHECKPOINT_INTERVAL,
+ OPT_SOLIDDB_IO_THREADS,
+ OPT_SOLIDDB_LOCKHASH_SIZE,
+ OPT_SOLIDDB_CHECKPOINT_TIME,
+ OPT_SOLIDDB_LOG_ENABLED,
+ OPT_SOLIDDB_PESSIMISTIC,
+ OPT_SOLIDDB_WRITE_THREADS,
+ OPT_SOLIDDB_EXTEND_INCREMENT,
+ OPT_SOLIDDB_READAHEAD
};
@@ -4913,6 +4945,93 @@
Disable with --skip-innodb (will save memory).",
(gptr*) &opt_innodb, (gptr*) &opt_innodb, 0, GET_BOOL, NO_ARG,
OPT_INNODB_DEFAULT, 0, 0,
0, 0, 0},
+ {"soliddb", OPT_SOLIDDB, "Enable solidDB (if this version of MySQL supports it). \
+Disable with --skip-soliddb (will save memory).",
+ (gptr*) &opt_soliddb, (gptr*) &opt_soliddb, 0, GET_BOOL, NO_ARG,
OPT_SOLIDDB_DEFAULT, 0, 0,
+ 0, 0, 0},
+#ifdef HAVE_SOLID_DB
+ {"soliddb_cache_size", OPT_SOLIDDB_CACHE_SIZE,
+ "The size of the main memory solidDB allocates for the cache",
(gptr*)&soliddb_cache_size,
+ (gptr*) &soliddb_cache_size, 0, GET_LL, REQUIRED_ARG, 64*1024*1024L, 1024*1024L,
+ LONGLONG_MAX, 0, 1024*1024L, 0},
+ {"soliddb_durability_level", OPT_SOLIDDB_DURABILITY_LEVEL,
+ "Durability level of the logging in solidDB",
+ (gptr*)&soliddb_durability_level, (gptr*)&soliddb_durability_level, 0,
GET_LONG, OPT_ARG,
+ 3, 1, 3, 0, 0, 0},
+ {"soliddb_logdir", OPT_SOLIDDB_LOGDIR,
+ "Log files are created automatically to the directory specified",
+ (gptr*)&soliddb_logdir, (gptr*)&soliddb_logdir,
+ 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"soliddb_backupdir", OPT_SOLIDDB_BACKUPDIR,
+ "Backup files are created automatically to the directory specified",
+ (gptr*)&soliddb_backupdir, (gptr*)&soliddb_backupdir,
+ 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"soliddb_admin_command", OPT_SOLIDDB_ADMIN_COMMAND,
+ "User can specify admin commands using this parameter",
+ (gptr*)&soliddb_admin_command, (gptr*)&soliddb_admin_command,
+ 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"soliddb_checkpoint_deletelog", OPT_SOLIDDB_CHECKPOINT_DELETELOG,
+ "If checkpoint_deletelog parameter is set to true, then the SoliDB server deletes "
+ "the transaction log files after each successful checkpoint.",
+ (gptr*)&soliddb_checkpoint_deletelog, (gptr*)&soliddb_checkpoint_deletelog,
+ 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
+ {"soliddb_filespec", OPT_SOLIDDB_FILESPEC,
+ "Describes the location and the maximum size of the database file(s).",
+ (gptr*)&soliddb_filespec, (gptr*)&soliddb_filespec,
+ 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"soliddb_lock_wait_timeout", OPT_SOLIDDB_LOCK_WAIT_TIMEOUT,
+ "Lock wait timeout for solidDB storage engine.",
+ (gptr*)&soliddb_lock_wait_timeout, (gptr*)&soliddb_lock_wait_timeout,
+ 0, GET_LONG, REQUIRED_ARG, 30, 1, 1000, 0, 1, 0},
+ {"soliddb_db_block_size", OPT_SOLIDDB_DB_BLOCK_SIZE,
+ "Sets the block size of database files.",
+ (gptr*)&soliddb_db_block_size, (gptr*)&soliddb_db_block_size,
+ 0, GET_LONG, REQUIRED_ARG, 0, 512, LONG_MAX, 0, 0, 0},
+ {"soliddb_log_block_size", OPT_SOLIDDB_LOG_BLOCK_SIZE,
+ "Sets the block size of log files.",
+ (gptr*)&soliddb_log_block_size, (gptr*)&soliddb_log_block_size,
+ 0, GET_LONG, REQUIRED_ARG, 0, 512, LONG_MAX, 0, 0, 0},
+ {"soliddb_backup_block_size", OPT_SOLIDDB_BACKUP_BLOCK_SIZE,
+ "Sets the block size of backup file.",
+ (gptr*)&soliddb_backup_block_size, (gptr*)&soliddb_backup_block_size,
+ 0, GET_LONG, REQUIRED_ARG, 0, 512, LONG_MAX, 0, 0, 0},
+ {"soliddb_checkpoint_interval", OPT_SOLIDDB_CHECKPOINT_INTERVAL,
+ "The number of writes to the log files made in the database which causes automatic
checkpoint creation.",
+ (gptr*)&soliddb_checkpoint_interval, (gptr*)&soliddb_checkpoint_interval,
+ 0, GET_LL, REQUIRED_ARG, 50000, 1024, LONGLONG_MAX, 0, 0, 0},
+ {"soliddb_io_threads", OPT_SOLIDDB_IO_THREADS,
+ "Number of helper I/O threads (per IO device) for read and write purposes.",
+ (gptr*)&soliddb_io_threads, (gptr*)&soliddb_io_threads,
+ 0, GET_LONG, REQUIRED_ARG, 5, 1, LONG_MAX, 0, 0, 0},
+ {"soliddb_lockhash_size", OPT_SOLIDDB_LOCKHASH_SIZE,
+ "Number of elements in lock hash table.",
+ (gptr*)&soliddb_lockhash_size, (gptr*)&soliddb_lockhash_size,
+ 0, GET_LL, REQUIRED_ARG, 1000000, 100000, LONGLONG_MAX, 0, 0, 0},
+ {"soliddb_checkpoint_time", OPT_SOLIDDB_CHECKPOINT_TIME,
+ "Specifies the minimum time in seconds between two checkpoint operations.",
+ (gptr*)&soliddb_checkpoint_time, (gptr*)&soliddb_checkpoint_time,
+ 0, GET_LONG, REQUIRED_ARG, 0, 0, LONG_MAX, 0, 0, 0},
+ {"soliddb_log_enabled", OPT_SOLIDDB_LOG_ENABLED,
+ "Specifies whether transaction logging is enabled or not.",
+ (gptr*)&soliddb_log_enabled, (gptr*)&soliddb_log_enabled,
+ 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
+ {"soliddb_pessimistic", OPT_SOLIDDB_PESSIMISTIC,
+ "Specifies whether pessimistic concurrency control is used.",
+ (gptr*)&soliddb_pessimistic, (gptr*)&soliddb_pessimistic,
+ 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"soliddb_write_threads", OPT_SOLIDDB_WRITE_THREADS,
+ "Number of helper threads dedicated to writing task (per I/O drive).",
+ (gptr*)&soliddb_write_threads, (gptr*)&soliddb_write_threads,
+ 0, GET_LONG, REQUIRED_ARG, 1, 1, LONG_MAX, 0, 0, 0},
+ {"soliddb_extend_increment", OPT_SOLIDDB_EXTEND_INCREMENT,
+ "Sets the number of blocks of disk space that are allocated at one time.",
+ (gptr*)&soliddb_extend_increment, (gptr*)&soliddb_extend_increment,
+ 0, GET_LONG, REQUIRED_ARG, 500, 1, LONG_MAX, 0, 0, 0},
+ {"soliddb_readahead", OPT_SOLIDDB_READAHEAD,
+ "Sets the number of prefetched index reads during long sequential searches",
+ (gptr*)&soliddb_readahead, (gptr*)&soliddb_readahead,
+ 0, GET_LONG, REQUIRED_ARG, 4, 1, LONG_MAX, 0, 0, 0},
+#endif /* HAVE_SOLID_DB */
#ifdef HAVE_INNOBASE_DB
{"innodb_checksums", OPT_INNODB_CHECKSUMS, "Enable InnoDB checksums validation (enabled
by default). \
Disable with --skip-innodb-checksums.", (gptr*) &innobase_use_checksums,
@@ -6150,6 +6269,7 @@
{"Com_show_fields", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_FIELDS]), SHOW_LONG_STATUS},
{"Com_show_grants", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_GRANTS]), SHOW_LONG_STATUS},
{"Com_show_innodb_status", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_INNODB_STATUS]), SHOW_LONG_STATUS},
+ {"Com_show_soliddb_status", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_SOLIDDB_STATUS]), SHOW_LONG_STATUS},
{"Com_show_keys", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_KEYS]), SHOW_LONG_STATUS},
{"Com_show_logs", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_LOGS]), SHOW_LONG_STATUS},
{"Com_show_master_status", (char*) offsetof(STATUS_VAR, com_stat[(uint)
SQLCOM_SHOW_MASTER_STAT]), SHOW_LONG_STATUS},
@@ -6506,6 +6626,11 @@
#else
have_innodb=SHOW_OPTION_NO;
#endif
+#ifdef HAVE_SOLID_DB
+ have_soliddb=SHOW_OPTION_YES;
+#else
+ have_soliddb=SHOW_OPTION_NO;
+#endif
have_isam=SHOW_OPTION_NO;
#ifdef HAVE_EXAMPLE_DB
have_example_db= SHOW_OPTION_YES;
@@ -7064,6 +7189,14 @@
have_innodb= SHOW_OPTION_DISABLED;
#endif
break;
+ case OPT_SOLIDDB:
+#ifdef HAVE_SOLID_DB
+ if (opt_soliddb)
+ have_soliddb= SHOW_OPTION_YES;
+ else
+ have_soliddb= SHOW_OPTION_DISABLED;
+#endif
+ break;
case OPT_INNODB_DATA_FILE_PATH:
#ifdef HAVE_INNOBASE_DB
innobase_data_file_path= argument;
@@ -7230,6 +7363,10 @@
if (opt_innodb)
sql_print_warning("this binary does not contain INNODB storage engine");
#endif
+#ifndef HAVE_SOLID_DB
+ if (opt_soliddb)
+ sql_print_warning("this binary does not contain SOLIDDB storage engine");
+#endif
#ifndef HAVE_ISAM
if (opt_isam)
sql_print_warning("this binary does not contain ISAM storage engine");
@@ -7581,6 +7718,7 @@
*****************************************************************************/
#undef have_berkeley_db
#undef have_innodb
+#undef have_soliddb
#undef have_ndbcluster
#undef have_example_db
#undef have_archive_db
@@ -7591,6 +7729,7 @@
SHOW_COMP_OPTION have_berkeley_db= SHOW_OPTION_NO;
SHOW_COMP_OPTION have_innodb= SHOW_OPTION_NO;
+SHOW_COMP_OPTION have_soliddb= SHOW_OPTION_NO;
SHOW_COMP_OPTION have_ndbcluster= SHOW_OPTION_NO;
SHOW_COMP_OPTION have_example_db= SHOW_OPTION_NO;
SHOW_COMP_OPTION have_archive_db= SHOW_OPTION_NO;
--- 1.317/sql/sql_class.h 2007-01-26 12:44:13 +02:00
+++ 1.318/sql/sql_class.h 2007-01-26 12:44:13 +02:00
@@ -437,7 +437,7 @@
Table_ident *table, List<key_part_spec> &ref_cols,
uint delete_opt_arg, uint update_opt_arg, uint match_opt_arg)
:Key(FOREIGN_KEY, name_arg, HA_KEY_ALG_UNDEF, 0, cols),
- ref_table(table), ref_columns(cols),
+ ref_table(table), ref_columns(ref_cols),
delete_opt(delete_opt_arg), update_opt(update_opt_arg),
match_opt(match_opt_arg)
{}
--- 1.237/sql/sql_lex.h 2007-01-26 12:44:13 +02:00
+++ 1.238/sql/sql_lex.h 2007-01-26 12:44:13 +02:00
@@ -57,6 +57,8 @@
SQLCOM_SHOW_DATABASES, SQLCOM_SHOW_TABLES, SQLCOM_SHOW_FIELDS,
SQLCOM_SHOW_KEYS, SQLCOM_SHOW_VARIABLES, SQLCOM_SHOW_LOGS, SQLCOM_SHOW_STATUS,
SQLCOM_SHOW_INNODB_STATUS, SQLCOM_SHOW_NDBCLUSTER_STATUS, SQLCOM_SHOW_MUTEX_STATUS,
+ SQLCOM_SHOW_SOLIDDB_STATUS,
+ SQLCOM_SHOW_SOLIDDB_MUTEX,
SQLCOM_SHOW_PROCESSLIST, SQLCOM_SHOW_MASTER_STAT, SQLCOM_SHOW_SLAVE_STAT,
SQLCOM_SHOW_GRANTS, SQLCOM_SHOW_CREATE, SQLCOM_SHOW_CHARSETS,
SQLCOM_SHOW_COLLATIONS, SQLCOM_SHOW_CREATE_DB, SQLCOM_SHOW_TABLE_STATUS,
--- 1.601/sql/sql_parse.cc 2007-01-26 12:44:13 +02:00
+++ 1.602/sql/sql_parse.cc 2007-01-26 12:44:13 +02:00
@@ -25,6 +25,10 @@
#include "ha_innodb.h"
#endif
+#ifdef HAVE_SOLID_DB
+#include "ha_soliddb.h"
+#endif
+
#ifdef HAVE_NDBCLUSTER_DB
#include "ha_ndbcluster.h"
#endif
@@ -2838,6 +2842,24 @@
break;
}
#endif
+
+#ifdef HAVE_SOLID_DB
+ case SQLCOM_SHOW_SOLIDDB_STATUS:
+ {
+ if (check_global_access(thd, SUPER_ACL))
+ goto error;
+ res = soliddb_show_status(thd);
+ break;
+ }
+ case SQLCOM_SHOW_SOLIDDB_MUTEX:
+ {
+ if (check_global_access(thd, SUPER_ACL))
+ goto error;
+ res = soliddb_show_mutex_status(thd);
+ break;
+ }
+#endif /* HAVE_SOLID_DB */
+
#ifdef HAVE_REPLICATION
case SQLCOM_LOAD_MASTER_TABLE:
{
--- 1.501/sql/sql_yacc.yy 2007-01-26 12:44:13 +02:00
+++ 1.502/sql/sql_yacc.yy 2007-01-26 12:44:13 +02:00
@@ -759,6 +759,7 @@
%token SLAVE
%token SMALLINT
%token SNAPSHOT_SYM
+%token SOLIDDB_SYM
%token SOUNDS_SYM
%token SPATIAL_SYM
%token SPECIFIC_SYM
@@ -3310,7 +3311,7 @@
| UNICODE_SYM opt_bin_mod
{
if (!(Lex->charset=get_charset_by_csname("ucs2",
- MY_CS_PRIMARY,MYF(0))))
+ MY_CS_BINSORT,MYF(0))))
{
my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
YYABORT;
@@ -3329,7 +3330,7 @@
| UNICODE_SYM
{
if (!(Lex->charset=get_charset_by_csname("ucs2",
- MY_CS_PRIMARY,MYF(0))))
+ MY_CS_BINSORT,MYF(0))))
{
my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
YYABORT;
@@ -6804,6 +6805,10 @@
}
| INNOBASE_SYM STATUS_SYM
{ Lex->sql_command = SQLCOM_SHOW_INNODB_STATUS; WARN_DEPRECATED("SHOW INNODB
STATUS", "SHOW ENGINE INNODB STATUS"); }
+ | SOLIDDB_SYM STATUS_SYM
+ { Lex->sql_command = SQLCOM_SHOW_SOLIDDB_STATUS; WARN_DEPRECATED("SHOW
SOLIDDB STATUS", "SHOW ENGINE SOLIDDB STATUS"); }
+ | SOLIDDB_SYM MUTEX_SYM
+ { Lex->sql_command = SQLCOM_SHOW_SOLIDDB_MUTEX;}
| MUTEX_SYM STATUS_SYM
{ Lex->sql_command = SQLCOM_SHOW_MUTEX_STATUS; }
| opt_full PROCESSLIST_SYM
@@ -6950,6 +6955,9 @@
case DB_TYPE_INNODB:
Lex->sql_command = SQLCOM_SHOW_INNODB_STATUS;
break;
+ case DB_TYPE_SOLID_DB:
+ Lex->sql_command = SQLCOM_SHOW_SOLIDDB_STATUS;
+ break;
default:
my_error(ER_NOT_SUPPORTED_YET, MYF(0), "STATUS");
YYABORT;
@@ -8042,6 +8050,7 @@
| SHARE_SYM {}
| SHUTDOWN {}
| SNAPSHOT_SYM {}
+ | SOLIDDB_SYM {}
| SOUNDS_SYM {}
| SQL_CACHE_SYM {}
| SQL_BUFFER_RESULT {}
--- 1.33/support-files/Makefile.am 2007-01-26 12:44:13 +02:00
+++ 1.34/support-files/Makefile.am 2007-01-26 12:44:13 +02:00
@@ -18,46 +18,30 @@
## Process this file with automake to create Makefile.in
EXTRA_DIST = mysql.spec.sh \
- my-small.cnf.sh \
- my-medium.cnf.sh \
- my-large.cnf.sh \
- my-huge.cnf.sh \
- my-innodb-heavy-4G.cnf.sh \
+ my-soliddb.cnf.sh \
mysql-log-rotate.sh \
mysql.server.sh \
binary-configure.sh \
magic \
- MySQL-shared-compat.spec.sh \
- ndb-config-2-node.ini.sh
-
+ MySQL-shared-compat.spec.sh
SUBDIRS = MacOSX
-pkgdata_DATA = my-small.cnf \
- my-medium.cnf \
- my-large.cnf \
- my-huge.cnf \
- my-innodb-heavy-4G.cnf \
+pkgdata_DATA = my-soliddb.cnf \
mysql-log-rotate \
- binary-configure \
- ndb-config-2-node.ini
+ binary-configure
pkgdata_SCRIPTS = mysql.server
noinst_DATA = mysql-@VERSION@.spec \
MySQL-shared-compat.spec
-CLEANFILES = my-small.cnf \
- my-medium.cnf \
- my-large.cnf \
- my-huge.cnf \
- my-innodb-heavy-4G.cnf \
+CLEANFILES = my-soliddb.cnf \
mysql.spec \
mysql-@VERSION@.spec \
mysql-log-rotate \
mysql.server \
binary-configure \
- MySQL-shared-compat.spec \
- ndb-config-2-node.ini
+ MySQL-shared-compat.spec
mysql-@VERSION@.spec: mysql.spec
rm -f $@
--- 1.79/sql/ha_archive.cc 2007-01-26 12:44:13 +02:00
+++ 1.80/sql/ha_archive.cc 2007-01-26 12:44:13 +02:00
@@ -165,6 +165,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_NO_FLAGS
};
--- 1.26/sql/examples/ha_tina.cc 2007-01-26 12:44:13 +02:00
+++ 1.27/sql/examples/ha_tina.cc 2007-01-26 12:44:13 +02:00
@@ -74,6 +74,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.22/sql/examples/ha_example.cc 2007-01-26 12:44:13 +02:00
+++ 1.23/sql/examples/ha_example.cc 2007-01-26 12:44:13 +02:00
@@ -93,6 +93,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.25/sql/ha_blackhole.cc 2007-01-26 12:44:13 +02:00
+++ 1.26/sql/ha_blackhole.cc 2007-01-26 12:44:13 +02:00
@@ -46,6 +46,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.298/sql/ha_ndbcluster.cc 2007-01-26 12:44:14 +02:00
+++ 1.299/sql/ha_ndbcluster.cc 2007-01-26 12:44:14 +02:00
@@ -70,6 +70,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_CAN_RECREATE
};
--- 1.307/sql/ha_innodb.cc 2007-01-26 12:44:14 +02:00
+++ 1.308/sql/ha_innodb.cc 2007-01-26 12:44:14 +02:00
@@ -223,6 +223,7 @@
innobase_create_cursor_view,
innobase_set_cursor_view,
innobase_close_cursor_view,
+ NULL, /* get_error_message */
HTON_NO_FLAGS
};
--- 1.12/BUILD/Makefile.am 2007-01-26 12:44:14 +02:00
+++ 1.13/BUILD/Makefile.am 2007-01-26 12:44:14 +02:00
@@ -28,13 +28,18 @@
compile-alpha-debug \
compile-amd64-debug-max \
compile-amd64-max \
+ compile-amd64-soliddb \
compile-darwin-mwcc \
compile-dist \
compile-hpux11-parisc2-aCC \
compile-ia64-debug-max \
compile-irix-mips64-mipspro \
compile-pentium \
+ compile-pentium-soliddb \
+ compile-pentium-soliddb-prof \
+ compile-pentium-sem-soliddb \
compile-pentium-debug \
+ compile-pentium-debug-soliddb \
compile-pentium-debug-max \
compile-pentium-debug-max-no-embedded \
compile-pentium-debug-max-no-ndb \
--- 1.176/sql/set_var.cc 2007-01-26 12:44:14 +02:00
+++ 1.177/sql/set_var.cc 2007-01-26 12:44:14 +02:00
@@ -64,6 +64,9 @@
#ifdef HAVE_INNOBASE_DB
#include "ha_innodb.h"
#endif
+#ifdef HAVE_SOLID_DB
+#include "ha_soliddb.h"
+#endif
#ifdef HAVE_NDBCLUSTER_DB
#include "ha_ndbcluster.h"
#endif
@@ -458,6 +461,36 @@
&srv_flush_log_at_trx_commit);
#endif
+#ifdef HAVE_SOLID_DB
+
+sys_var_long_ptr sys_soliddb_durability_level("soliddb_durability_level",
+ (ulong *)&soliddb_durability_level,
+ soliddb_update_durability_level);
+
+sys_var_long_ptr sys_soliddb_checkpoint_time("soliddb_checkpoint_time",
+ (ulong *)&soliddb_checkpoint_time,
+ soliddb_update_checkpoint_time);
+
+sys_var_long_ptr sys_soliddb_lock_wait_timeout("soliddb_lock_wait_timeout",
+ (ulong *)&soliddb_lock_wait_timeout,
+ soliddb_update_lock_wait_timeout);
+
+sys_var_ulonglong_ptr sys_soliddb_checkpoint_interval("soliddb_checkpoint_interval",
+ (ulonglong
*)&soliddb_checkpoint_interval,
+
soliddb_update_checkpoint_interval);
+
+sys_var_str sys_soliddb_filespec("soliddb_filespec",
+ soliddb_check_filespec, soliddb_add_filespec, 0, 0);
+
+sys_var_str sys_soliddb_backupdir("soliddb_backupdir",
+ soliddb_check_backupdir, soliddb_update_backupdir, 0,
+ soliddb_backupdir);
+
+sys_var_str sys_soliddb_admin_command("soliddb_admin_command",
+ soliddb_check_admin_command,
soliddb_update_admin_command, 0, 0);
+
+#endif /* HAVE_SOLID_DB */
+
/* Condition pushdown to storage engine */
sys_var_thd_bool
sys_engine_condition_pushdown("engine_condition_pushdown",
@@ -781,6 +814,15 @@
&sys_innodb_commit_concurrency,
&sys_innodb_flush_log_at_trx_commit,
#endif
+#ifdef HAVE_SOLID_DB
+ &sys_soliddb_durability_level,
+ &sys_soliddb_checkpoint_time,
+ &sys_soliddb_lock_wait_timeout,
+ &sys_soliddb_checkpoint_interval,
+ &sys_soliddb_filespec,
+ &sys_soliddb_backupdir,
+ &sys_soliddb_admin_command,
+#endif
&sys_trust_routine_creators,
&sys_trust_function_creators,
&sys_engine_condition_pushdown,
@@ -860,6 +902,7 @@
{"have_csv", (char*) &have_csv_db, SHOW_HAVE},
{"have_dynamic_loading", (char*) &have_dlopen, SHOW_HAVE},
{"have_example_engine", (char*) &have_example_db, SHOW_HAVE},
+ {"have_soliddb", (char*) &have_soliddb, SHOW_HAVE},
{"have_federated_engine", (char*) &have_federated_db, SHOW_HAVE},
{"have_geometry", (char*) &have_geometry, SHOW_HAVE},
{"have_innodb", (char*) &have_innodb, SHOW_HAVE},
@@ -910,6 +953,27 @@
{sys_innodb_thread_concurrency.name, (char*) &sys_innodb_thread_concurrency,
SHOW_SYS},
{sys_innodb_thread_sleep_delay.name, (char*) &sys_innodb_thread_sleep_delay,
SHOW_SYS},
#endif
+#ifdef HAVE_SOLID_DB
+ {"soliddb_cache_size", (char*)&soliddb_cache_size, SHOW_LONGLONG },
+ {sys_soliddb_durability_level.name,(char*)&sys_soliddb_durability_level, SHOW_SYS},
+ {"soliddb_logdir",(char *)&soliddb_logdir, SHOW_CHAR_PTR},
+ {sys_soliddb_backupdir.name,(char *)&soliddb_backupdir, SHOW_CHAR_PTR},
+ {sys_soliddb_admin_command.name,(char *)&soliddb_admin_command, SHOW_CHAR_PTR},
+ {"soliddb_checkpoint_deletelog",(char *)&soliddb_checkpoint_deletelog,
SHOW_MY_BOOL},
+ {sys_soliddb_filespec.name,(char *)&soliddb_filespec, SHOW_CHAR_PTR},
+ {sys_soliddb_lock_wait_timeout.name,(char*)&sys_soliddb_lock_wait_timeout,
SHOW_SYS},
+ {"soliddb_db_block_size",(char*)&soliddb_db_block_size, SHOW_LONG},
+ {"soliddb_log_block_size",(char*)&soliddb_log_block_size, SHOW_LONG},
+ {"soliddb_backup_block_size",(char*)&soliddb_backup_block_size, SHOW_LONG},
+ {sys_soliddb_checkpoint_interval.name,(char*)&sys_soliddb_checkpoint_interval,
SHOW_SYS},
+ {sys_soliddb_checkpoint_time.name,(char *)&sys_soliddb_checkpoint_time, SHOW_SYS},
+ {"soliddb_io_threads",(char *)&soliddb_io_threads, SHOW_LONG},
+ {"soliddb_lockhash_size",(char *)&soliddb_lockhash_size, SHOW_LONGLONG},
+ {"soliddb_pessimistic",(char *)&soliddb_pessimistic, SHOW_MY_BOOL},
+ {"soliddb_write_threads",(char *)&soliddb_write_threads, SHOW_LONG},
+ {"soliddb_extend_increment",(char *)&soliddb_extend_increment, SHOW_LONG},
+ {"soliddb_readahead",(char *)&soliddb_readahead, SHOW_LONG},
+#endif /* HAVE_SOLID_DB */
{sys_interactive_timeout.name,(char*) &sys_interactive_timeout, SHOW_SYS},
{sys_join_buffer_size.name, (char*) &sys_join_buffer_size, SHOW_SYS},
{sys_key_buffer_size.name, (char*) &sys_key_buffer_size, SHOW_SYS},
--- 1.72/libmysqld/Makefile.am 2007-01-26 12:44:14 +02:00
+++ 1.73/libmysqld/Makefile.am 2007-01-26 12:44:14 +02:00
@@ -43,7 +43,7 @@
noinst_HEADERS = embedded_priv.h emb_qcache.h
sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
- ha_innodb.cc ha_berkeley.cc ha_heap.cc ha_federated.cc \
+ ha_innodb.cc ha_soliddb.cc ha_berkeley.cc ha_heap.cc ha_federated.cc \
ha_myisam.cc ha_myisammrg.cc handler.cc sql_handler.cc \
hostname.cc init.cc password.c \
item.cc item_buff.cc item_cmpfunc.cc item_create.cc \
@@ -77,7 +77,7 @@
$(top_builddir)/myisam/libmyisam.a \
$(top_builddir)/myisammrg/libmyisammrg.a \
$(top_builddir)/heap/libheap.a \
- @innodb_libs@ @bdb_libs_with_path@ \
+ @innodb_libs@ @soliddb_libs@ @bdb_libs_with_path@ \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/strings/libmystrings.a \
$(top_builddir)/dbug/libdbug.a \
@@ -110,6 +110,9 @@
$(RANLIB) libmysqld.a ; \
fi
endif
+
+ha_soliddb.o: ha_soliddb.cc $(top_srcdir)/sql/ha_soliddb.h
+ $(CXXCOMPILE) -I../soliddb/include $(LM_CFLAGS) -c $<
## XXX: any time the client interface changes, we'll need to bump
## the version info for libmysqld; however, it's possible for the
--- 1.73/sql/ha_federated.cc 2007-01-26 12:44:14 +02:00
+++ 1.74/sql/ha_federated.cc 2007-01-26 12:44:14 +02:00
@@ -372,6 +372,7 @@
NULL, /* create_cursor_read_view */
NULL, /* set_cursor_read_view */
NULL, /* close_cursor_read_view */
+ NULL,
HTON_ALTER_NOT_SUPPORTED
};
--- 1.230/sql/sp_head.cc 2007-01-26 12:44:14 +02:00
+++ 1.231/sql/sp_head.cc 2007-01-26 12:44:14 +02:00
@@ -181,6 +181,7 @@
case SQLCOM_SHOW_FIELDS:
case SQLCOM_SHOW_GRANTS:
case SQLCOM_SHOW_INNODB_STATUS:
+ case SQLCOM_SHOW_SOLIDDB_STATUS:
case SQLCOM_SHOW_KEYS:
case SQLCOM_SHOW_LOGS:
case SQLCOM_SHOW_MASTER_STAT:
--- 1.61/BUILD/SETUP.sh 2007-01-26 12:44:14 +02:00
+++ 1.62/BUILD/SETUP.sh 2007-01-26 12:44:14 +02:00
@@ -56,9 +56,9 @@
#debug_extra_warnings="-Wuninitialized"
c_warnings="$global_warnings -Wunused"
cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder
-Wctor-dtor-privacy -Wnon-virtual-dtor"
-base_max_configs="--with-innodb --with-ndbcluster --with-archive-storage-engine
--with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine
--with-csv-storage-engine $SSL_LIBRARY"
-base_max_no_ndb_configs="--with-innodb --without-ndbcluster --with-archive-storage-engine
--with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine
--with-csv-storage-engine $SSL_LIBRARY"
-max_leave_isam_configs="--with-innodb --with-ndbcluster --with-archive-storage-engine
--with-federated-storage-engine --with-blackhole-storage-engine --with-csv-storage-engine
$SSL_LIBRARY --with-embedded-server --with-big-tables"
+base_max_configs="--with-innodb --with-soliddb --with-berkeley-db --with-ndbcluster
--with-archive-storage-engine --with-big-tables --with-blackhole-storage-engine
--with-federated-storage-engine --with-csv-storage-engine $SSL_LIBRARY"
+base_max_no_ndb_configs="--with-innodb --with-soliddb --with-berkeley-db
--without-ndbcluster --with-archive-storage-engine --with-big-tables
--with-blackhole-storage-engine --with-federated-storage-engine --with-csv-storage-engine
$SSL_LIBRARY"
+max_leave_isam_configs="--with-innodb --with-soliddb --with-berkeley-db --with-ndbcluster
--with-archive-storage-engine --with-federated-storage-engine
--with-blackhole-storage-engine --with-csv-storage-engine $SSL_LIBRARY
--with-embedded-server --with-big-tables"
max_configs="$base_max_configs --with-embedded-server"
max_no_ndb_configs="$base_max_no_ndb_configs --with-embedded-server"
@@ -79,7 +79,8 @@
reckless_cflags="-O3 -fomit-frame-pointer "
debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC
-DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX"
-debug_extra_cflags="-O1 -Wuninitialized"
+#debug_extra_cflags="-O1 -Wuninitialized"
+debug_extra_cflags=""
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
amd64_cxxflags="" # If dropping '--with-big-tables', add here "-DBIG_TABLES"
| Thread |
|---|
| • bk commit into 5.0 tree (jan:1.2388) | jan.lindstrom | 26 Jan |