mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into ramayana.hindu.god:/home/tsmith/m/bk/maint/50
This commit is contained in:
@ -6,6 +6,7 @@
|
|||||||
*.bin
|
*.bin
|
||||||
*.vcproj.cmake
|
*.vcproj.cmake
|
||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
|
*.cdf
|
||||||
*.core
|
*.core
|
||||||
*.d
|
*.d
|
||||||
*.da
|
*.da
|
||||||
|
@ -139,21 +139,47 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR
|
|||||||
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE")
|
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE")
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
IF(EMBED_MANIFESTS)
|
||||||
# Search for the Manifest tool. CMake will first search it's defaults
|
# Search for the tools (mt, makecat, signtool) necessary for embedding
|
||||||
# (CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and
|
# manifests and signing executables with the MySQL AB authenticode cert.
|
||||||
# the system PATH) followed by the listed paths which are the current
|
#
|
||||||
# possible defaults and should be updated when necessary. The custom
|
# CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH,
|
||||||
# manifests are designed to be compatible with all mt versions.
|
# CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed
|
||||||
|
# by the listed paths which are the current possible defaults and should be
|
||||||
|
# updated when necessary.
|
||||||
|
#
|
||||||
|
# The custom manifests are designed to be compatible with all mt versions.
|
||||||
|
# The MySQL AB Authenticode certificate is available only internally.
|
||||||
|
# Others should store a single signing certificate in a local cryptographic
|
||||||
|
# service provider and alter the signtool command as necessary.
|
||||||
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
|
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
|
||||||
PATHS
|
PATHS
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
||||||
|
FIND_PROGRAM(HAVE_CATALOG_TOOL NAMES makecat
|
||||||
|
PATHS
|
||||||
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin")
|
||||||
|
FIND_PROGRAM(HAVE_SIGN_TOOL NAMES signtool
|
||||||
|
PATHS
|
||||||
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
||||||
|
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
||||||
|
|
||||||
IF(HAVE_MANIFEST_TOOL)
|
IF(HAVE_MANIFEST_TOOL)
|
||||||
MESSAGE(STATUS "Found Mainfest Tool. Embedding custom manifests.")
|
MESSAGE(STATUS "Found Mainfest Tool.")
|
||||||
ELSE(HAVE_MANIFEST_TOOL)
|
ELSE(HAVE_MANIFEST_TOOL)
|
||||||
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
|
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
|
||||||
ENDIF(HAVE_MANIFEST_TOOL)
|
ENDIF(HAVE_MANIFEST_TOOL)
|
||||||
|
IF(HAVE_CATALOG_TOOL)
|
||||||
|
MESSAGE(STATUS "Found Catalog Tool.")
|
||||||
|
ELSE(HAVE_CATALOG_TOOL)
|
||||||
|
MESSAGE(FATAL_ERROR "Catalog tool, makecat.exe, can't be found.")
|
||||||
|
ENDIF(HAVE_CATALOG_TOOL)
|
||||||
|
IF(HAVE_SIGN_TOOL)
|
||||||
|
MESSAGE(STATUS "Found Sign Tool. Embedding custom manifests and signing executables.")
|
||||||
|
ELSE(HAVE_SIGN_TOOL)
|
||||||
|
MESSAGE(FATAL_ERROR "Sign tool, signtool.exe, can't be found.")
|
||||||
|
ENDIF(HAVE_SIGN_TOOL)
|
||||||
|
|
||||||
# Disable automatic manifest generation.
|
# Disable automatic manifest generation.
|
||||||
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
|
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
|
||||||
${CMAKE_EXE_LINKER_FLAGS})
|
${CMAKE_EXE_LINKER_FLAGS})
|
||||||
|
@ -127,14 +127,9 @@ AC_DEFUN([MYSQL_SYS_LARGEFILE],
|
|||||||
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
|
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
|
||||||
ac_cv_sys_largefile_source=1 ;;
|
ac_cv_sys_largefile_source=1 ;;
|
||||||
esac])
|
esac])
|
||||||
AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
|
|
||||||
ac_cv_sys_large_files,
|
# AIX 4.2 and later -- do nothing, include standards.h instead.
|
||||||
[Large files support on AIX-style hosts.],
|
# this goes for both GNU and IBM C and C++ compilers.
|
||||||
[case "$host_os" in
|
|
||||||
# AIX 4.2 and later
|
|
||||||
aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
|
|
||||||
ac_cv_sys_large_files=1 ;;
|
|
||||||
esac])
|
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -2898,6 +2898,12 @@ then
|
|||||||
ndb_opt_subdirs="$ndb_opt_subdirs docs"
|
ndb_opt_subdirs="$ndb_opt_subdirs docs"
|
||||||
ndb_bin_am_ldflags=""
|
ndb_bin_am_ldflags=""
|
||||||
fi
|
fi
|
||||||
|
# building dynamic breaks on AIX. (If you want to try it and get unresolved
|
||||||
|
# __vec__delete2 and some such, try linking against libhC.)
|
||||||
|
case "$host_os" in
|
||||||
|
aix3.* | aix4.0.* | aix4.1.*) ;;
|
||||||
|
*) ndb_bin_am_ldflags="-static";;
|
||||||
|
esac
|
||||||
AC_SUBST([ndb_bin_am_ldflags])
|
AC_SUBST([ndb_bin_am_ldflags])
|
||||||
AC_SUBST([ndb_opt_subdirs])
|
AC_SUBST([ndb_opt_subdirs])
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ void Base64Decoder::Decode()
|
|||||||
{
|
{
|
||||||
word32 bytes = coded_.size();
|
word32 bytes = coded_.size();
|
||||||
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
|
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
|
||||||
plainSz = (plainSz * 3 + 3) / 4;
|
plainSz = ((plainSz * 3) / 4) + 3;
|
||||||
decoded_.New(plainSz);
|
decoded_.New(plainSz);
|
||||||
|
|
||||||
word32 i = 0;
|
word32 i = 0;
|
||||||
|
@ -27,6 +27,10 @@
|
|||||||
#ifndef _mysql_h
|
#ifndef _mysql_h
|
||||||
#define _mysql_h
|
#define _mysql_h
|
||||||
|
|
||||||
|
#ifdef _AIX /* large-file support will break without this */
|
||||||
|
#include <standards.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
|
#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
|
||||||
#undef WIN
|
#undef WIN
|
||||||
#undef _WIN
|
#undef _WIN
|
||||||
|
@ -1844,6 +1844,43 @@ C3A4C3B6C3BCC39F
|
|||||||
D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
|
D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
|
||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
|
CREATE TABLE federated.t1 (
|
||||||
|
categoryId int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
domainId varchar(745) NOT NULL DEFAULT '',
|
||||||
|
categoryName varchar(255) NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (categoryId),
|
||||||
|
UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
|
||||||
|
KEY idx_category_domainId (domainId)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
CREATE TABLE federated.t1 (
|
||||||
|
categoryId int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
domainId varchar(745) NOT NULL DEFAULT '',
|
||||||
|
categoryName varchar(255) NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (categoryId),
|
||||||
|
UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
|
||||||
|
KEY idx_category_domainId (domainId)
|
||||||
|
) ENGINE=FEDERATED DEFAULT CHARSET=latin1
|
||||||
|
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ('a', 'b');
|
||||||
|
select categoryId from federated.t1 order by domainId, categoryName;
|
||||||
|
categoryId
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
|
||||||
|
categoryId
|
||||||
|
3
|
||||||
|
select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
|
||||||
|
categoryId
|
||||||
|
3
|
||||||
|
select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
|
||||||
|
categoryId
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table federated.t1;
|
||||||
|
drop table federated.t1;
|
||||||
create table federated.t1 (a int primary key, b varchar(64))
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
DEFAULT CHARSET=utf8;
|
DEFAULT CHARSET=utf8;
|
||||||
create table federated.t1 (a int primary key, b varchar(64))
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
@ -418,7 +418,7 @@ DROP TABLE t1,t2;
|
|||||||
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
||||||
character set utf8 collate utf8_general_ci;
|
character set utf8 collate utf8_general_ci;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1071 Specified key was too long; max key length is 765 bytes
|
Warning 1071 Specified key was too long; max key length is 767 bytes
|
||||||
insert into t1 values('aaa');
|
insert into t1 values('aaa');
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
|
||||||
@ -1035,4 +1035,16 @@ CALL p1();
|
|||||||
CALL p1();
|
CALL p1();
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1(a text) engine=innodb default charset=utf8;
|
||||||
|
insert into t1 values('aaa');
|
||||||
|
alter table t1 add index(a(1024));
|
||||||
|
Warnings:
|
||||||
|
Warning 1071 Specified key was too long; max key length is 767 bytes
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` text,
|
||||||
|
KEY `a` (`a`(255))
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||||
|
drop table t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -318,4 +318,11 @@ INSERT INTO t1 VALUES ('0123456789');
|
|||||||
flush logs;
|
flush logs;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# Query thread_id=REMOVED exec_time=REMOVED error_code=REMOVED
|
# Query thread_id=REMOVED exec_time=REMOVED error_code=REMOVED
|
||||||
|
flush logs;
|
||||||
|
create table t1(a int);
|
||||||
|
insert into t1 values(connection_id());
|
||||||
|
flush logs;
|
||||||
|
drop table t1;
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
2
mysql-test/r/ssl_8k_key.result
Normal file
2
mysql-test/r/ssl_8k_key.result
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Variable_name Value
|
||||||
|
Ssl_cipher DHE-RSA-AES256-SHA
|
51
mysql-test/std_data/server8k-cert.pem
Normal file
51
mysql-test/std_data/server8k-cert.pem
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
99
mysql-test/std_data/server8k-key.pem
Normal file
99
mysql-test/std_data/server8k-key.pem
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END RSA PRIVATE KEY-----
|
@ -1578,6 +1578,46 @@ drop table federated.t1;
|
|||||||
connection slave;
|
connection slave;
|
||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#26909: Specified key was too long; max key length is 255 bytes
|
||||||
|
# when creating a table
|
||||||
|
#
|
||||||
|
connection slave;
|
||||||
|
CREATE TABLE federated.t1 (
|
||||||
|
categoryId int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
domainId varchar(745) NOT NULL DEFAULT '',
|
||||||
|
categoryName varchar(255) NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (categoryId),
|
||||||
|
UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
|
||||||
|
KEY idx_category_domainId (domainId)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
eval CREATE TABLE federated.t1 (
|
||||||
|
categoryId int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
domainId varchar(745) NOT NULL DEFAULT '',
|
||||||
|
categoryName varchar(255) NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (categoryId),
|
||||||
|
UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
|
||||||
|
KEY idx_category_domainId (domainId)
|
||||||
|
) ENGINE=FEDERATED DEFAULT CHARSET=latin1
|
||||||
|
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||||
|
|
||||||
|
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
|
||||||
|
insert into federated.t1 (domainId, categoryName) values ('a', 'b');
|
||||||
|
|
||||||
|
select categoryId from federated.t1 order by domainId, categoryName;
|
||||||
|
select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
|
||||||
|
select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
|
||||||
|
select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
|
||||||
|
|
||||||
|
drop table federated.t1;
|
||||||
|
|
||||||
|
connection slave;
|
||||||
|
drop table federated.t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#21019 Federated Engine does not support REPLACE/INSERT IGNORE/UPDATE IGNORE
|
# BUG#21019 Federated Engine does not support REPLACE/INSERT IGNORE/UPDATE IGNORE
|
||||||
|
@ -873,5 +873,13 @@ DISCONNECT con2;
|
|||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28125: ERROR 2013 when adding index.
|
||||||
|
#
|
||||||
|
create table t1(a text) engine=innodb default charset=utf8;
|
||||||
|
insert into t1 values('aaa');
|
||||||
|
alter table t1 add index(a(1024));
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -216,4 +216,25 @@ flush logs;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
--exec $MYSQL_BINLOG --hexdump --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000011 | grep 'Query' | sed 's/[0-9]\{1,\}/REMOVED/g'
|
--exec $MYSQL_BINLOG --hexdump --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000011 | grep 'Query' | sed 's/[0-9]\{1,\}/REMOVED/g'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29928: incorrect connection_id() restoring from mysqlbinlog out
|
||||||
|
#
|
||||||
|
flush logs;
|
||||||
|
create table t1(a int);
|
||||||
|
insert into t1 values(connection_id());
|
||||||
|
let $a= `select a from t1`;
|
||||||
|
flush logs;
|
||||||
|
--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000013 > $MYSQLTEST_VARDIR/tmp/bug29928.sql
|
||||||
|
drop table t1;
|
||||||
|
connect (con1, localhost, root, , test);
|
||||||
|
connection con1;
|
||||||
|
--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29928.sql
|
||||||
|
--remove_file $MYSQLTEST_VARDIR/tmp/bug29928.sql
|
||||||
|
let $b= `select a from t1`;
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
let $c= `select $a=$b`;
|
||||||
|
--echo $c
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
6
mysql-test/t/ssl_8k_key.test
Normal file
6
mysql-test/t/ssl_8k_key.test
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
-- source include/have_ssl.inc
|
||||||
|
#
|
||||||
|
# Bug#29784 YaSSL assertion failure when reading 8k key.
|
||||||
|
#
|
||||||
|
--exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
|
||||||
|
|
@ -50,7 +50,7 @@ File_class::size(FILE* f)
|
|||||||
MY_STAT s;
|
MY_STAT s;
|
||||||
|
|
||||||
// Note that my_fstat behaves *differently* than my_stat. ARGGGHH!
|
// Note that my_fstat behaves *differently* than my_stat. ARGGGHH!
|
||||||
if(my_fstat(::fileno(f), &s, MYF(0)))
|
if(my_fstat(fileno(f), &s, MYF(0)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return s.st_size;
|
return s.st_size;
|
||||||
@ -196,7 +196,7 @@ File_class::flush() const
|
|||||||
{
|
{
|
||||||
#if defined NDB_OSE || defined NDB_SOFTOSE
|
#if defined NDB_OSE || defined NDB_SOFTOSE
|
||||||
::fflush(m_file);
|
::fflush(m_file);
|
||||||
return ::fsync(::fileno(m_file));
|
return ::fsync(fileno(m_file));
|
||||||
#else
|
#else
|
||||||
return ::fflush(m_file);;
|
return ::fflush(m_file);;
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,6 +36,7 @@ INCLUDES += -I$(top_srcdir)/ndb/include/mgmapi \
|
|||||||
LDADD_LOC = $(noinst_LTLIBRARIES) \
|
LDADD_LOC = $(noinst_LTLIBRARIES) \
|
||||||
../common/portlib/libportlib.la \
|
../common/portlib/libportlib.la \
|
||||||
@readline_link@ \
|
@readline_link@ \
|
||||||
|
$(top_builddir)/ndb/src/libndbclient.la \
|
||||||
$(top_builddir)/dbug/libdbug.a \
|
$(top_builddir)/dbug/libdbug.a \
|
||||||
$(top_builddir)/mysys/libmysys.a \
|
$(top_builddir)/mysys/libmysys.a \
|
||||||
$(top_builddir)/strings/libmystrings.a \
|
$(top_builddir)/strings/libmystrings.a \
|
||||||
|
@ -38,7 +38,7 @@ INCLUDES_LOC = -I$(top_srcdir)/ndb/src/ndbapi \
|
|||||||
-I$(top_srcdir)/ndb/src/common/mgmcommon \
|
-I$(top_srcdir)/ndb/src/common/mgmcommon \
|
||||||
-I$(top_srcdir)/ndb/src/mgmclient
|
-I$(top_srcdir)/ndb/src/mgmclient
|
||||||
|
|
||||||
LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CommandInterpreter.o \
|
LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CommandInterpreter.lo \
|
||||||
$(top_builddir)/ndb/src/libndbclient.la \
|
$(top_builddir)/ndb/src/libndbclient.la \
|
||||||
$(top_builddir)/dbug/libdbug.a \
|
$(top_builddir)/dbug/libdbug.a \
|
||||||
$(top_builddir)/mysys/libmysys.a \
|
$(top_builddir)/mysys/libmysys.a \
|
||||||
|
@ -41,7 +41,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 256
|
#define NDB_MAXTHREADS 256
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXATTRSIZE 8000
|
#define MAXATTRSIZE 8000
|
||||||
#define START_TIMER NdbTimer timer; timer.doStart();
|
#define START_TIMER NdbTimer timer; timer.doStart();
|
||||||
#define STOP_TIMER timer.doStop();
|
#define STOP_TIMER timer.doStop();
|
||||||
@ -56,18 +63,18 @@ struct ThreadNdb
|
|||||||
Ndb* NdbRef;
|
Ndb* NdbRef;
|
||||||
};
|
};
|
||||||
|
|
||||||
static NdbThread* threadLife[MAXTHREADS];
|
static NdbThread* threadLife[NDB_MAXTHREADS];
|
||||||
static unsigned int tNoOfThreads;
|
static unsigned int tNoOfThreads;
|
||||||
static unsigned int tNoOfOpsPerExecute;
|
static unsigned int tNoOfOpsPerExecute;
|
||||||
static unsigned int tNoOfRecords;
|
static unsigned int tNoOfRecords;
|
||||||
static unsigned int tNoOfOperations;
|
static unsigned int tNoOfOperations;
|
||||||
static int ThreadReady[MAXTHREADS];
|
static int ThreadReady[NDB_MAXTHREADS];
|
||||||
static int ThreadStart[MAXTHREADS];
|
static int ThreadStart[NDB_MAXTHREADS];
|
||||||
|
|
||||||
NDB_COMMAND(benchronja, "benchronja", "benchronja", "benchronja", 65535){
|
NDB_COMMAND(benchronja, "benchronja", "benchronja", "benchronja", 65535){
|
||||||
ndb_init();
|
ndb_init();
|
||||||
|
|
||||||
ThreadNdb tabThread[MAXTHREADS];
|
ThreadNdb tabThread[NDB_MAXTHREADS];
|
||||||
int i = 0 ;
|
int i = 0 ;
|
||||||
int cont = 0 ;
|
int cont = 0 ;
|
||||||
Ndb* pMyNdb = NULL ; //( "TEST_DB" );
|
Ndb* pMyNdb = NULL ; //( "TEST_DB" );
|
||||||
@ -84,7 +91,7 @@ NDB_COMMAND(benchronja, "benchronja", "benchronja", "benchronja", 65535){
|
|||||||
{
|
{
|
||||||
if (strcmp(argv[i], "-t") == 0){
|
if (strcmp(argv[i], "-t") == 0){
|
||||||
tNoOfThreads = atoi(argv[i+1]);
|
tNoOfThreads = atoi(argv[i+1]);
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)) goto error_input;
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)) goto error_input;
|
||||||
}else if (strcmp(argv[i], "-o") == 0){
|
}else if (strcmp(argv[i], "-o") == 0){
|
||||||
tNoOfOperations = atoi(argv[i+1]);
|
tNoOfOperations = atoi(argv[i+1]);
|
||||||
if (tNoOfOperations < 1) goto error_input;
|
if (tNoOfOperations < 1) goto error_input;
|
||||||
|
@ -35,7 +35,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 128
|
#define NDB_MAXTHREADS 128
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXPAR 1024
|
#define MAXPAR 1024
|
||||||
#define MAXATTRSIZE 1000
|
#define MAXATTRSIZE 1000
|
||||||
#define PKSIZE 2
|
#define PKSIZE 2
|
||||||
@ -76,10 +83,10 @@ struct ThreadNdb
|
|||||||
int ThreadNo;
|
int ThreadNo;
|
||||||
};
|
};
|
||||||
|
|
||||||
static NdbThread* threadLife[MAXTHREADS];
|
static NdbThread* threadLife[NDB_MAXTHREADS];
|
||||||
static int tNodeId;
|
static int tNodeId;
|
||||||
static int ThreadReady[MAXTHREADS];
|
static int ThreadReady[NDB_MAXTHREADS];
|
||||||
static StartType ThreadStart[MAXTHREADS];
|
static StartType ThreadStart[NDB_MAXTHREADS];
|
||||||
static char tableName[MAXTABLES][MAXSTRLEN+1];
|
static char tableName[MAXTABLES][MAXSTRLEN+1];
|
||||||
static char attrName[MAXATTR][MAXSTRLEN+1];
|
static char attrName[MAXATTR][MAXSTRLEN+1];
|
||||||
|
|
||||||
@ -160,7 +167,7 @@ NDB_COMMAND(flexAsynch, "flexAsynch", "flexAsynch", "flexAsynch", 65535)
|
|||||||
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
pThreadData = new ThreadNdb[MAXTHREADS];
|
pThreadData = new ThreadNdb[NDB_MAXTHREADS];
|
||||||
|
|
||||||
ndbout << endl << "FLEXASYNCH - Starting normal mode" << endl;
|
ndbout << endl << "FLEXASYNCH - Starting normal mode" << endl;
|
||||||
ndbout << "Perform benchmark of insert, update and delete transactions";
|
ndbout << "Perform benchmark of insert, update and delete transactions";
|
||||||
@ -844,7 +851,7 @@ readArguments(int argc, const char** argv){
|
|||||||
while (argc > 1){
|
while (argc > 1){
|
||||||
if (strcmp(argv[i], "-t") == 0){
|
if (strcmp(argv[i], "-t") == 0){
|
||||||
tNoOfThreads = atoi(argv[i+1]);
|
tNoOfThreads = atoi(argv[i+1]);
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)){
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)){
|
||||||
ndbout_c("Invalid no of threads");
|
ndbout_c("Invalid no of threads");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,14 @@ ErrorData * flexHammerErrorData;
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 256
|
#define NDB_MAXTHREADS 256
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXATTRSIZE 100
|
#define MAXATTRSIZE 100
|
||||||
// Max number of retries if something fails
|
// Max number of retries if something fails
|
||||||
#define MaxNoOfAttemptsC 10
|
#define MaxNoOfAttemptsC 10
|
||||||
@ -122,8 +129,8 @@ static int tAttributeSize;
|
|||||||
static int tNoOfOperations;
|
static int tNoOfOperations;
|
||||||
static int tNoOfRecords;
|
static int tNoOfRecords;
|
||||||
static int tNoOfLoops;
|
static int tNoOfLoops;
|
||||||
static ReadyType ThreadReady[MAXTHREADS];
|
static ReadyType ThreadReady[NDB_MAXTHREADS];
|
||||||
static StartType ThreadStart[MAXTHREADS];
|
static StartType ThreadStart[NDB_MAXTHREADS];
|
||||||
static char tableName[MAXTABLES][MAXSTRLEN];
|
static char tableName[MAXTABLES][MAXSTRLEN];
|
||||||
static char attrName[MAXATTR][MAXSTRLEN];
|
static char attrName[MAXATTR][MAXSTRLEN];
|
||||||
static int theSimpleFlag = 0;
|
static int theSimpleFlag = 0;
|
||||||
@ -643,7 +650,7 @@ readArguments (int argc, const char** argv)
|
|||||||
while (argc > 1) {
|
while (argc > 1) {
|
||||||
if (strcmp(argv[i], "-t") == 0) {
|
if (strcmp(argv[i], "-t") == 0) {
|
||||||
tNoOfThreads = atoi(argv[i+1]);
|
tNoOfThreads = atoi(argv[i+1]);
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
else if (strcmp(argv[i], "-o") == 0) {
|
else if (strcmp(argv[i], "-o") == 0) {
|
||||||
|
@ -68,7 +68,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 256
|
#define NDB_MAXTHREADS 256
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXATTRSIZE 64
|
#define MAXATTRSIZE 64
|
||||||
|
|
||||||
enum StartType {
|
enum StartType {
|
||||||
@ -860,7 +867,7 @@ static int readArguments(int argc, const char** argv)
|
|||||||
if (strcmp(argv[i], "-t") == 0) {
|
if (strcmp(argv[i], "-t") == 0) {
|
||||||
if (argv[i + 1] != NULL) {
|
if (argv[i + 1] != NULL) {
|
||||||
tNoOfThreads = atoi(argv[i + 1]);
|
tNoOfThreads = atoi(argv[i + 1]);
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)) {
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)) {
|
||||||
retValue = -1;
|
retValue = -1;
|
||||||
} // if
|
} // if
|
||||||
} // if
|
} // if
|
||||||
|
@ -35,7 +35,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 128
|
#define NDB_MAXTHREADS 128
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXPAR 1024
|
#define MAXPAR 1024
|
||||||
#define MAXATTRSIZE 1000
|
#define MAXATTRSIZE 1000
|
||||||
#define PKSIZE 1
|
#define PKSIZE 1
|
||||||
@ -101,10 +108,10 @@ static void input_error();
|
|||||||
|
|
||||||
ErrorData * flexTTErrorData;
|
ErrorData * flexTTErrorData;
|
||||||
|
|
||||||
static NdbThread* threadLife[MAXTHREADS];
|
static NdbThread* threadLife[NDB_MAXTHREADS];
|
||||||
static int tNodeId;
|
static int tNodeId;
|
||||||
static int ThreadReady[MAXTHREADS];
|
static int ThreadReady[NDB_MAXTHREADS];
|
||||||
static StartType ThreadStart[MAXTHREADS];
|
static StartType ThreadStart[NDB_MAXTHREADS];
|
||||||
static char tableName[1][MAXSTRLEN+1];
|
static char tableName[1][MAXSTRLEN+1];
|
||||||
static char attrName[5][MAXSTRLEN+1];
|
static char attrName[5][MAXSTRLEN+1];
|
||||||
|
|
||||||
@ -184,7 +191,7 @@ NDB_COMMAND(flexTT, "flexTT", "flexTT", "flexTT", 65535)
|
|||||||
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
pThreadData = new ThreadNdb[MAXTHREADS];
|
pThreadData = new ThreadNdb[NDB_MAXTHREADS];
|
||||||
|
|
||||||
ndbout << endl << "FLEXTT - Starting normal mode" << endl;
|
ndbout << endl << "FLEXTT - Starting normal mode" << endl;
|
||||||
ndbout << "Perform TimesTen benchmark" << endl;
|
ndbout << "Perform TimesTen benchmark" << endl;
|
||||||
@ -798,7 +805,7 @@ readArguments(int argc, const char** argv){
|
|||||||
while (argc > 1){
|
while (argc > 1){
|
||||||
if (strcmp(argv[i], "-t") == 0){
|
if (strcmp(argv[i], "-t") == 0){
|
||||||
tNoOfThreads = atoi(argv[i+1]);
|
tNoOfThreads = atoi(argv[i+1]);
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS)){
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS)){
|
||||||
ndbout_c("Invalid no of threads");
|
ndbout_c("Invalid no of threads");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 256
|
#define NDB_MAXTHREADS 256
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXATTRSIZE 1000
|
#define MAXATTRSIZE 1000
|
||||||
#define PKSIZE 1
|
#define PKSIZE 1
|
||||||
|
|
||||||
@ -95,10 +102,10 @@ static int failed = 0 ; // lame global variable that keeps track of failed trans
|
|||||||
// incremented in executeCallback() and reset in main()
|
// incremented in executeCallback() and reset in main()
|
||||||
/************************************************************* < epaulsa */
|
/************************************************************* < epaulsa */
|
||||||
|
|
||||||
static NdbThread* threadLife[MAXTHREADS];
|
static NdbThread* threadLife[NDB_MAXTHREADS];
|
||||||
static int tNodeId;
|
static int tNodeId;
|
||||||
static int ThreadReady[MAXTHREADS];
|
static int ThreadReady[NDB_MAXTHREADS];
|
||||||
static StartType ThreadStart[MAXTHREADS];
|
static StartType ThreadStart[NDB_MAXTHREADS];
|
||||||
static char tableName[MAXTABLES][MAXSTRLEN+1];
|
static char tableName[MAXTABLES][MAXSTRLEN+1];
|
||||||
static char attrName[MAXATTR][MAXSTRLEN+1];
|
static char attrName[MAXATTR][MAXSTRLEN+1];
|
||||||
static int *getAttrValueTable;
|
static int *getAttrValueTable;
|
||||||
@ -174,7 +181,7 @@ void deleteAttributeSpace(){
|
|||||||
NDB_COMMAND(flexTimedAsynch, "flexTimedAsynch", "flexTimedAsynch [-tpoilcas]", "flexTimedAsynch", 65535)
|
NDB_COMMAND(flexTimedAsynch, "flexTimedAsynch", "flexTimedAsynch [-tpoilcas]", "flexTimedAsynch", 65535)
|
||||||
{
|
{
|
||||||
ndb_init();
|
ndb_init();
|
||||||
ThreadNdb tabThread[MAXTHREADS];
|
ThreadNdb tabThread[NDB_MAXTHREADS];
|
||||||
int tLoops=0;
|
int tLoops=0;
|
||||||
int returnValue;
|
int returnValue;
|
||||||
//NdbOut flexTimedAsynchNdbOut;
|
//NdbOut flexTimedAsynchNdbOut;
|
||||||
@ -615,8 +622,8 @@ void readArguments(int argc, const char** argv)
|
|||||||
if (strcmp(argv[i], "-t") == 0)
|
if (strcmp(argv[i], "-t") == 0)
|
||||||
{
|
{
|
||||||
tNoOfThreads = atoi(argv[i+1]);
|
tNoOfThreads = atoi(argv[i+1]);
|
||||||
// if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
|
// if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
|
||||||
if ((tNoOfThreads < 1) || (tNoOfThreads > MAXTHREADS))
|
if ((tNoOfThreads < 1) || (tNoOfThreads > NDB_MAXTHREADS))
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
else if (strcmp(argv[i], "-i") == 0)
|
else if (strcmp(argv[i], "-i") == 0)
|
||||||
@ -628,7 +635,7 @@ void readArguments(int argc, const char** argv)
|
|||||||
else if (strcmp(argv[i], "-p") == 0)
|
else if (strcmp(argv[i], "-p") == 0)
|
||||||
{
|
{
|
||||||
tNoOfTransInBatch = atoi(argv[i+1]);
|
tNoOfTransInBatch = atoi(argv[i+1]);
|
||||||
//if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > MAXTHREADS))
|
//if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > NDB_MAXTHREADS))
|
||||||
if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > 10000))
|
if ((tNoOfTransInBatch < 1) || (tNoOfTransInBatch > 10000))
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,14 @@
|
|||||||
#define MAXSTRLEN 16
|
#define MAXSTRLEN 16
|
||||||
#define MAXATTR 64
|
#define MAXATTR 64
|
||||||
#define MAXTABLES 64
|
#define MAXTABLES 64
|
||||||
#define MAXTHREADS 256
|
#define NDB_MAXTHREADS 256
|
||||||
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
#define MAXATTRSIZE 8000
|
#define MAXATTRSIZE 8000
|
||||||
|
|
||||||
static unsigned int tNoOfRecords;
|
static unsigned int tNoOfRecords;
|
||||||
|
@ -97,11 +97,6 @@ OperationTestCase matrix[] = {
|
|||||||
result = NDBT_FAILED; \
|
result = NDBT_FAILED; \
|
||||||
break; }
|
break; }
|
||||||
|
|
||||||
#define C3(b) if (!(b)) { \
|
|
||||||
g_err << "ERR: "<< step->getName() \
|
|
||||||
<< " failed on line " << __LINE__ << endl; \
|
|
||||||
abort(); return NDBT_FAILED; }
|
|
||||||
|
|
||||||
#define C3(b) if (!(b)) { \
|
#define C3(b) if (!(b)) { \
|
||||||
g_err << "ERR: failed on line " << __LINE__ << endl; \
|
g_err << "ERR: failed on line " << __LINE__ << endl; \
|
||||||
return NDBT_FAILED; }
|
return NDBT_FAILED; }
|
||||||
|
@ -49,7 +49,15 @@ const char COL_LEN = 7;
|
|||||||
* there are six columns, 'i', 'j', 'k', 'l', 'm', 'n', and each on is equal to 1 or 1,
|
* there are six columns, 'i', 'j', 'k', 'l', 'm', 'n', and each on is equal to 1 or 1,
|
||||||
* Since each tuple should be unique in this case, then TUPLE_NUM = 2 power 6 = 64
|
* Since each tuple should be unique in this case, then TUPLE_NUM = 2 power 6 = 64
|
||||||
*/
|
*/
|
||||||
const int TUPLE_NUM = (int)pow(2, COL_LEN-1);
|
#ifdef _AIX
|
||||||
|
/*
|
||||||
|
IBM xlC_r breaks on the initialization with pow():
|
||||||
|
"The expression must be an integral constant expression."
|
||||||
|
*/
|
||||||
|
const int TUPLE_NUM = 64;
|
||||||
|
#else
|
||||||
|
const int TUPLE_NUM = (int)pow(2, COL_LEN-1);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* the recursive level of random scan filter, can
|
* the recursive level of random scan filter, can
|
||||||
@ -479,7 +487,7 @@ int get_column_id(char ch)
|
|||||||
*/
|
*/
|
||||||
bool check_col_equal_one(int tuple_no, int col_id)
|
bool check_col_equal_one(int tuple_no, int col_id)
|
||||||
{
|
{
|
||||||
int i = (int)pow(2, 6 - col_id);
|
int i = (int)pow((double)2, (double)(6 - col_id));
|
||||||
int j = tuple_no / i;
|
int j = tuple_no / i;
|
||||||
if(j % 2)
|
if(j % 2)
|
||||||
return true;
|
return true;
|
||||||
|
@ -27,7 +27,14 @@ using namespace std; //
|
|||||||
#define MAXROW 64
|
#define MAXROW 64
|
||||||
#define DEFROW 8
|
#define DEFROW 8
|
||||||
|
|
||||||
#define MAXTHREADS 24
|
/*
|
||||||
|
NDB_MAXTHREADS used to be just MAXTHREADS, which collides with a
|
||||||
|
#define from <sys/thread.h> on AIX (IBM compiler). We explicitly
|
||||||
|
#undef it here lest someone use it by habit and get really funny
|
||||||
|
results. K&R says we may #undef non-existent symbols, so let's go.
|
||||||
|
*/
|
||||||
|
#undef MAXTHREADS
|
||||||
|
#define NDB_MAXTHREADS 24
|
||||||
#define DEFTHREADS 2
|
#define DEFTHREADS 2
|
||||||
|
|
||||||
#define MAXTABLES 16
|
#define MAXTABLES 16
|
||||||
@ -83,7 +90,7 @@ int main(int argc, char* argv[]){
|
|||||||
char* szTableNames = (char*)malloc(sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
|
char* szTableNames = (char*)malloc(sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
|
||||||
memset(szTableNames, 0, sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
|
memset(szTableNames, 0, sizeof(char)*nNoOfTables*MAX_TABLE_NAME) ;
|
||||||
|
|
||||||
UintPtr pThreadHandles[MAXTHREADS] = { NULL } ;
|
UintPtr pThreadHandles[NDB_MAXTHREADS] = { NULL } ;
|
||||||
|
|
||||||
AssignTableNames(szTableNames, nNoOfTables) ;
|
AssignTableNames(szTableNames, nNoOfTables) ;
|
||||||
|
|
||||||
@ -313,7 +320,7 @@ void ParseArguments(int argc, const char** argv){
|
|||||||
if (strcmp(argv[i], "-t") == 0)
|
if (strcmp(argv[i], "-t") == 0)
|
||||||
{
|
{
|
||||||
nNoOfThreads = atoi(argv[i+1]);
|
nNoOfThreads = atoi(argv[i+1]);
|
||||||
if ((nNoOfThreads < 1) || (nNoOfThreads > MAXTHREADS))
|
if ((nNoOfThreads < 1) || (nNoOfThreads > NDB_MAXTHREADS))
|
||||||
nNoOfThreads = DEFTHREADS ;
|
nNoOfThreads = DEFTHREADS ;
|
||||||
}
|
}
|
||||||
else if (strcmp(argv[i], "-c") == 0)
|
else if (strcmp(argv[i], "-c") == 0)
|
||||||
|
@ -19,13 +19,14 @@
|
|||||||
## 1.3 Applied patch provided by Martin Mokrejs <mmokrejs@natur.cuni.cz>
|
## 1.3 Applied patch provided by Martin Mokrejs <mmokrejs@natur.cuni.cz>
|
||||||
## (General code cleanup, use the GRANT statement instead of updating
|
## (General code cleanup, use the GRANT statement instead of updating
|
||||||
## the privilege tables directly, added option to revoke privileges)
|
## the privilege tables directly, added option to revoke privileges)
|
||||||
|
## 1.4 Remove option 6 which attempted to erroneously grant global privileges
|
||||||
|
|
||||||
#### TODO
|
#### TODO
|
||||||
#
|
#
|
||||||
# empty ... suggestions ... mail them to me ...
|
# empty ... suggestions ... mail them to me ...
|
||||||
|
|
||||||
|
|
||||||
$version="1.3";
|
$version="1.4";
|
||||||
|
|
||||||
use DBI;
|
use DBI;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
@ -103,13 +104,9 @@ sub q1 { # first question ...
|
|||||||
print " existing database and host combination (user can do\n";
|
print " existing database and host combination (user can do\n";
|
||||||
print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,\n";
|
print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,\n";
|
||||||
print " LOCK TABLES,CREATE TEMPORARY TABLES)\n";
|
print " LOCK TABLES,CREATE TEMPORARY TABLES)\n";
|
||||||
print " 6. Create/append database administrative privileges for an\n";
|
print " 6. Create/append full privileges for an existing database\n";
|
||||||
print " existing database and host combination (user can do\n";
|
|
||||||
print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,\n";
|
|
||||||
print " CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS)\n";
|
|
||||||
print " 7. Create/append full privileges for an existing database\n";
|
|
||||||
print " and host combination (user has FULL privilege)\n";
|
print " and host combination (user has FULL privilege)\n";
|
||||||
print " 8. Remove all privileges for for an existing database and\n";
|
print " 7. Remove all privileges for for an existing database and\n";
|
||||||
print " host combination.\n";
|
print " host combination.\n";
|
||||||
print " (user will have all permission fields set to N)\n";
|
print " (user will have all permission fields set to N)\n";
|
||||||
print " 0. exit this program\n";
|
print " 0. exit this program\n";
|
||||||
@ -117,10 +114,10 @@ sub q1 { # first question ...
|
|||||||
while (<STDIN>) {
|
while (<STDIN>) {
|
||||||
$answer = $_;
|
$answer = $_;
|
||||||
chomp($answer);
|
chomp($answer);
|
||||||
if ($answer =~ /^[12345678]$/) {
|
if ($answer =~ /^[1234567]$/) {
|
||||||
if ($answer == 1) {
|
if ($answer == 1) {
|
||||||
setpwd();
|
setpwd();
|
||||||
} elsif ($answer =~ /^[2345678]$/) {
|
} elsif ($answer =~ /^[234567]$/) {
|
||||||
addall($answer);
|
addall($answer);
|
||||||
} else {
|
} else {
|
||||||
print "Sorry, something went wrong. With such option number you should not get here.\n\n";
|
print "Sorry, something went wrong. With such option number you should not get here.\n\n";
|
||||||
@ -233,7 +230,7 @@ sub addall {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ( !$todo ) or not ( $todo =~ m/^[2-8]$/ ) ) {
|
if ( ( !$todo ) or not ( $todo =~ m/^[2-7]$/ ) ) {
|
||||||
print STDERR "Sorry, select option $todo isn't known inside the program .. See ya\n";
|
print STDERR "Sorry, select option $todo isn't known inside the program .. See ya\n";
|
||||||
quit();
|
quit();
|
||||||
}
|
}
|
||||||
@ -256,12 +253,9 @@ sub addall {
|
|||||||
# user privileges: SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES
|
# user privileges: SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES
|
||||||
$sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES ON $db.* TO $user@\"$host\" IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
|
$sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES ON $db.* TO $user@\"$host\" IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
|
||||||
} elsif ($todo == 6) {
|
} elsif ($todo == 6) {
|
||||||
# admin privileges: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS
|
|
||||||
$sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES,SHOW DATABASES,PROCESS ON $db.* TO $user@\"$host\" IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
|
|
||||||
} elsif ($todo == 7) {
|
|
||||||
# all privileges
|
# all privileges
|
||||||
$sth = $dbh->do("GRANT ALL ON $db.* TO \'$user\'\@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
|
$sth = $dbh->do("GRANT ALL ON $db.* TO \'$user\'\@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr;
|
||||||
} elsif ($todo == 8) {
|
} elsif ($todo == 7) {
|
||||||
# all privileges set to N
|
# all privileges set to N
|
||||||
$sth = $dbh->do("REVOKE ALL ON *.* FROM \'$user\'\@\'$host\'") || die $dbh->errstr;
|
$sth = $dbh->do("REVOKE ALL ON *.* FROM \'$user\'\@\'$host\'") || die $dbh->errstr;
|
||||||
}
|
}
|
||||||
|
@ -138,6 +138,10 @@ ADD_CUSTOM_COMMAND(
|
|||||||
)
|
)
|
||||||
ADD_DEPENDENCIES(mysqld${MYSQLD_EXE_SUFFIX} gen_lex_hash)
|
ADD_DEPENDENCIES(mysqld${MYSQLD_EXE_SUFFIX} gen_lex_hash)
|
||||||
|
|
||||||
|
# Remove the auto-generated files as part of 'Clean Solution'
|
||||||
|
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
|
||||||
|
"lex_hash.h;message.rc;message.h;sql_yacc.h;sql_yacc.cc")
|
||||||
|
|
||||||
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
|
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
|
||||||
ADD_DEPENDENCIES(udf_example strings)
|
ADD_DEPENDENCIES(udf_example strings)
|
||||||
TARGET_LINK_LIBRARIES(udf_example wsock32)
|
TARGET_LINK_LIBRARIES(udf_example wsock32)
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#define FEDERATED_QUERY_BUFFER_SIZE STRING_BUFFER_USUAL_SIZE * 5
|
#define FEDERATED_QUERY_BUFFER_SIZE STRING_BUFFER_USUAL_SIZE * 5
|
||||||
#define FEDERATED_RECORDS_IN_RANGE 2
|
#define FEDERATED_RECORDS_IN_RANGE 2
|
||||||
|
|
||||||
|
#define FEDERATED_MAX_KEY_LENGTH 3500 // Same as innodb
|
||||||
#define FEDERATED_INFO " SHOW TABLE STATUS LIKE "
|
#define FEDERATED_INFO " SHOW TABLE STATUS LIKE "
|
||||||
#define FEDERATED_INFO_LEN sizeof(FEDERATED_INFO)
|
#define FEDERATED_INFO_LEN sizeof(FEDERATED_INFO)
|
||||||
#define FEDERATED_SELECT "SELECT "
|
#define FEDERATED_SELECT "SELECT "
|
||||||
@ -230,7 +231,8 @@ public:
|
|||||||
uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
|
uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
|
||||||
uint max_supported_keys() const { return MAX_KEY; }
|
uint max_supported_keys() const { return MAX_KEY; }
|
||||||
uint max_supported_key_parts() const { return MAX_REF_PARTS; }
|
uint max_supported_key_parts() const { return MAX_REF_PARTS; }
|
||||||
uint max_supported_key_length() const { return MAX_KEY_LENGTH; }
|
uint max_supported_key_length() const { return FEDERATED_MAX_KEY_LENGTH; }
|
||||||
|
uint max_supported_key_part_length() const { return FEDERATED_MAX_KEY_LENGTH; }
|
||||||
/*
|
/*
|
||||||
Called in test_quick_select to determine if indexes should be used.
|
Called in test_quick_select to determine if indexes should be used.
|
||||||
Normally, we need to know number of blocks . For federated we need to
|
Normally, we need to know number of blocks . For federated we need to
|
||||||
|
@ -70,7 +70,9 @@ Item *create_func_ceiling(Item* a)
|
|||||||
|
|
||||||
Item *create_func_connection_id(void)
|
Item *create_func_connection_id(void)
|
||||||
{
|
{
|
||||||
current_thd->lex->safe_to_cache_query= 0;
|
THD *thd= current_thd;
|
||||||
|
thd->lex->safe_to_cache_query= 0;
|
||||||
|
thd->thread_specific_used= TRUE;
|
||||||
return new Item_func_connection_id();
|
return new Item_func_connection_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -649,16 +649,7 @@ bool Item_func_connection_id::fix_fields(THD *thd, Item **ref)
|
|||||||
{
|
{
|
||||||
if (Item_int_func::fix_fields(thd, ref))
|
if (Item_int_func::fix_fields(thd, ref))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
value= thd->variables.pseudo_thread_id;
|
||||||
/*
|
|
||||||
To replicate CONNECTION_ID() properly we should use
|
|
||||||
pseudo_thread_id on slave, which contains the value of thread_id
|
|
||||||
on master.
|
|
||||||
*/
|
|
||||||
value= ((thd->slave_thread) ?
|
|
||||||
thd->variables.pseudo_thread_id :
|
|
||||||
thd->thread_id);
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1303,8 +1303,9 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
|
|||||||
ulong query_length, bool using_trans,
|
ulong query_length, bool using_trans,
|
||||||
bool suppress_use, THD::killed_state killed_status_arg)
|
bool suppress_use, THD::killed_state killed_status_arg)
|
||||||
:Log_event(thd_arg,
|
:Log_event(thd_arg,
|
||||||
((thd_arg->tmp_table_used ? LOG_EVENT_THREAD_SPECIFIC_F : 0)
|
((thd_arg->tmp_table_used || thd_arg->thread_specific_used) ?
|
||||||
| (suppress_use ? LOG_EVENT_SUPPRESS_USE_F : 0)),
|
LOG_EVENT_THREAD_SPECIFIC_F : 0) |
|
||||||
|
(suppress_use ? LOG_EVENT_SUPPRESS_USE_F : 0),
|
||||||
using_trans),
|
using_trans),
|
||||||
data_buf(0), query(query_arg), catalog(thd_arg->catalog),
|
data_buf(0), query(query_arg), catalog(thd_arg->catalog),
|
||||||
db(thd_arg->db), q_len((uint32) query_length),
|
db(thd_arg->db), q_len((uint32) query_length),
|
||||||
@ -2689,8 +2690,10 @@ Load_log_event::Load_log_event(THD *thd_arg, sql_exchange *ex,
|
|||||||
List<Item> &fields_arg,
|
List<Item> &fields_arg,
|
||||||
enum enum_duplicates handle_dup,
|
enum enum_duplicates handle_dup,
|
||||||
bool ignore, bool using_trans)
|
bool ignore, bool using_trans)
|
||||||
:Log_event(thd_arg, !thd_arg->tmp_table_used ?
|
:Log_event(thd_arg,
|
||||||
0 : LOG_EVENT_THREAD_SPECIFIC_F, using_trans),
|
(thd_arg->tmp_table_used || thd_arg->thread_specific_used) ?
|
||||||
|
LOG_EVENT_THREAD_SPECIFIC_F : 0,
|
||||||
|
using_trans),
|
||||||
thread_id(thd_arg->thread_id),
|
thread_id(thd_arg->thread_id),
|
||||||
slave_proxy_id(thd_arg->variables.pseudo_thread_id),
|
slave_proxy_id(thd_arg->variables.pseudo_thread_id),
|
||||||
num_fields(0),fields(0),
|
num_fields(0),fields(0),
|
||||||
|
@ -6181,7 +6181,8 @@ The minimum value for this variable is 4096.",
|
|||||||
(gptr*) &opt_date_time_formats[MYSQL_TIMESTAMP_TIME],
|
(gptr*) &opt_date_time_formats[MYSQL_TIMESTAMP_TIME],
|
||||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"tmp_table_size", OPT_TMP_TABLE_SIZE,
|
{"tmp_table_size", OPT_TMP_TABLE_SIZE,
|
||||||
"If an in-memory temporary table exceeds this size, MySQL will automatically convert it to an on-disk MyISAM table.",
|
"If an internal in-memory temporary table exceeds this size, MySQL will"
|
||||||
|
" automatically convert it to an on-disk MyISAM table.",
|
||||||
(gptr*) &global_system_variables.tmp_table_size,
|
(gptr*) &global_system_variables.tmp_table_size,
|
||||||
(gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL,
|
(gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL,
|
||||||
REQUIRED_ARG, 32*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0},
|
REQUIRED_ARG, 32*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0},
|
||||||
|
@ -197,7 +197,7 @@ THD::THD()
|
|||||||
count_cuted_fields= CHECK_FIELD_IGNORE;
|
count_cuted_fields= CHECK_FIELD_IGNORE;
|
||||||
killed= NOT_KILLED;
|
killed= NOT_KILLED;
|
||||||
db_length= col_access=0;
|
db_length= col_access=0;
|
||||||
query_error= tmp_table_used= 0;
|
query_error= tmp_table_used= thread_specific_used= 0;
|
||||||
next_insert_id=last_insert_id=0;
|
next_insert_id=last_insert_id=0;
|
||||||
hash_clear(&handler_tables_hash);
|
hash_clear(&handler_tables_hash);
|
||||||
tmp_table=0;
|
tmp_table=0;
|
||||||
|
@ -1469,6 +1469,9 @@ public:
|
|||||||
bool in_lock_tables;
|
bool in_lock_tables;
|
||||||
bool query_error, bootstrap, cleanup_done;
|
bool query_error, bootstrap, cleanup_done;
|
||||||
bool tmp_table_used;
|
bool tmp_table_used;
|
||||||
|
|
||||||
|
/** is set if some thread specific value(s) used in a statement. */
|
||||||
|
bool thread_specific_used;
|
||||||
bool charset_is_system_charset, charset_is_collation_connection;
|
bool charset_is_system_charset, charset_is_collation_connection;
|
||||||
bool charset_is_character_set_filesystem;
|
bool charset_is_character_set_filesystem;
|
||||||
bool enable_slow_log; /* enable slow log for current statement */
|
bool enable_slow_log; /* enable slow log for current statement */
|
||||||
|
@ -1357,6 +1357,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
length);
|
length);
|
||||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_TOO_LONG_KEY, warn_buff);
|
ER_TOO_LONG_KEY, warn_buff);
|
||||||
|
/* Align key length to multibyte char boundary */
|
||||||
|
length-= length % sql_field->charset->mbmaxlen;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1387,8 +1389,6 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
if (length > file->max_key_part_length() && key->type != Key::FULLTEXT)
|
if (length > file->max_key_part_length() && key->type != Key::FULLTEXT)
|
||||||
{
|
{
|
||||||
length= file->max_key_part_length();
|
length= file->max_key_part_length();
|
||||||
/* Align key length to multibyte char boundary */
|
|
||||||
length-= length % sql_field->charset->mbmaxlen;
|
|
||||||
if (key->type == Key::MULTIPLE)
|
if (key->type == Key::MULTIPLE)
|
||||||
{
|
{
|
||||||
/* not a critical problem */
|
/* not a critical problem */
|
||||||
@ -1397,6 +1397,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
length);
|
length);
|
||||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_TOO_LONG_KEY, warn_buff);
|
ER_TOO_LONG_KEY, warn_buff);
|
||||||
|
/* Align key length to multibyte char boundary */
|
||||||
|
length-= length % sql_field->charset->mbmaxlen;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,8 @@ The options right now are
|
|||||||
DISABLE_GRANT_OPTIONS Disables the use of --init-file and --skip-grant-tables
|
DISABLE_GRANT_OPTIONS Disables the use of --init-file and --skip-grant-tables
|
||||||
options of mysqld.exe
|
options of mysqld.exe
|
||||||
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
|
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
|
||||||
default will be used.
|
default will be used. (Note - This option should only be
|
||||||
|
used by MySQL AB.)
|
||||||
|
|
||||||
|
|
||||||
So the command line could look like:
|
So the command line could look like:
|
||||||
|
@ -56,7 +56,7 @@ try
|
|||||||
manifest_xml+= "\t<assemblyIdentity name=\'" + app_name + "\'";
|
manifest_xml+= "\t<assemblyIdentity name=\'" + app_name + "\'";
|
||||||
manifest_xml+= " version=\'" + app_version + "\'";
|
manifest_xml+= " version=\'" + app_version + "\'";
|
||||||
manifest_xml+= " processorArchitecture=\'" + app_arch + "\'";
|
manifest_xml+= " processorArchitecture=\'" + app_arch + "\'";
|
||||||
// TOADD - Add publicKeyToken attribute once we have Authenticode key.
|
manifest_xml+= " publicKeyToken=\'02ad33b422233ae3\'";
|
||||||
manifest_xml+= " type=\'win32\' />\r\n";
|
manifest_xml+= " type=\'win32\' />\r\n";
|
||||||
// Identify the application security requirements.
|
// Identify the application security requirements.
|
||||||
manifest_xml+= "\t<trustInfo xmlns=\'urn:schemas-microsoft-com:asm.v2\'>\r\n";
|
manifest_xml+= "\t<trustInfo xmlns=\'urn:schemas-microsoft-com:asm.v2\'>\r\n";
|
||||||
|
@ -14,7 +14,8 @@ MACRO(MYSQL_EMBED_MANIFEST _target_name _required_privs)
|
|||||||
ADD_CUSTOM_COMMAND(
|
ADD_CUSTOM_COMMAND(
|
||||||
TARGET ${_target_name}
|
TARGET ${_target_name}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND mt.exe
|
COMMAND mt.exe ARGS -nologo -hashupdate -makecdfs -manifest $(IntDir)\\$(TargetFileName).intermediate.manifest -outputresource:$(TargetPath)
|
||||||
ARGS -nologo -manifest $(IntDir)\\$(TargetFileName).intermediate.manifest -outputresource:$(TargetPath)
|
COMMAND makecat.exe ARGS $(IntDir)\\$(TargetFileName).intermediate.manifest.cdf
|
||||||
COMMENT "Embeds the manifest contents.")
|
COMMAND signtool.exe ARGS sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll $(TargetPath)
|
||||||
|
COMMENT "Embeds the manifest contents, creates a cryptographic catalog, signs the target with Authenticode certificate.")
|
||||||
ENDMACRO(MYSQL_EMBED_MANIFEST)
|
ENDMACRO(MYSQL_EMBED_MANIFEST)
|
||||||
|
Reference in New Issue
Block a user