Commit 8e7d6652 authored by Sergei Golubchik's avatar Sergei Golubchik

CRLF->LF

parent 6bd76f8b
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. # the Free Software Foundation; version 2 of the License.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Add executable plus some additional MySQL specific stuff # Add executable plus some additional MySQL specific stuff
# Usage (same as for standard CMake's ADD_EXECUTABLE) # Usage (same as for standard CMake's ADD_EXECUTABLE)
# #
# MYSQL_ADD_EXECUTABLE(target source1...sourceN) # MYSQL_ADD_EXECUTABLE(target source1...sourceN)
# #
# MySQL specifics: # MySQL specifics:
# - instruct CPack to install executable under ${CMAKE_INSTALL_PREFIX}/bin directory # - instruct CPack to install executable under ${CMAKE_INSTALL_PREFIX}/bin directory
# On Windows : # On Windows :
# - add version resource # - add version resource
# - instruct CPack to do autenticode signing if SIGNCODE is set # - instruct CPack to do autenticode signing if SIGNCODE is set
INCLUDE(cmake_parse_arguments) INCLUDE(cmake_parse_arguments)
FUNCTION (MYSQL_ADD_EXECUTABLE) FUNCTION (MYSQL_ADD_EXECUTABLE)
# Pass-through arguments for ADD_EXECUTABLE # Pass-through arguments for ADD_EXECUTABLE
MYSQL_PARSE_ARGUMENTS(ARG MYSQL_PARSE_ARGUMENTS(ARG
"WIN32;MACOSX_BUNDLE;EXCLUDE_FROM_ALL;DESTINATION;COMPONENT" "WIN32;MACOSX_BUNDLE;EXCLUDE_FROM_ALL;DESTINATION;COMPONENT"
"" ""
${ARGN} ${ARGN}
) )
LIST(GET ARG_DEFAULT_ARGS 0 target) LIST(GET ARG_DEFAULT_ARGS 0 target)
LIST(REMOVE_AT ARG_DEFAULT_ARGS 0) LIST(REMOVE_AT ARG_DEFAULT_ARGS 0)
SET(sources ${ARG_DEFAULT_ARGS}) SET(sources ${ARG_DEFAULT_ARGS})
ADD_VERSION_INFO(${target} EXECUTABLE sources) ADD_VERSION_INFO(${target} EXECUTABLE sources)
ADD_EXECUTABLE(${target} ${ARG_WIN32} ${ARG_MACOSX_BUNDLE} ${ARG_EXCLUDE_FROM_ALL} ${sources}) ADD_EXECUTABLE(${target} ${ARG_WIN32} ${ARG_MACOSX_BUNDLE} ${ARG_EXCLUDE_FROM_ALL} ${sources})
# tell CPack where to install # tell CPack where to install
IF(NOT ARG_EXCLUDE_FROM_ALL) IF(NOT ARG_EXCLUDE_FROM_ALL)
IF(NOT ARG_DESTINATION) IF(NOT ARG_DESTINATION)
SET(ARG_DESTINATION ${INSTALL_BINDIR}) SET(ARG_DESTINATION ${INSTALL_BINDIR})
ENDIF() ENDIF()
IF(ARG_COMPONENT) IF(ARG_COMPONENT)
SET(COMP COMPONENT ${ARG_COMPONENT}) SET(COMP COMPONENT ${ARG_COMPONENT})
ELSEIF(MYSQL_INSTALL_COMPONENT) ELSEIF(MYSQL_INSTALL_COMPONENT)
SET(COMP COMPONENT ${MYSQL_INSTALL_COMPONENT}) SET(COMP COMPONENT ${MYSQL_INSTALL_COMPONENT})
ELSE() ELSE()
SET(COMP COMPONENT Client) SET(COMP COMPONENT Client)
ENDIF() ENDIF()
MYSQL_INSTALL_TARGETS(${target} DESTINATION ${ARG_DESTINATION} ${COMP}) MYSQL_INSTALL_TARGETS(${target} DESTINATION ${ARG_DESTINATION} ${COMP})
ENDIF() ENDIF()
ENDFUNCTION() ENDFUNCTION()
// Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. // Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License. // the Free Software Foundation; version 2 of the License.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <windows.h> #include <windows.h>
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,@TINY_VERSION@ FILEVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,@TINY_VERSION@
PRODUCTVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,@TINY_VERSION@ PRODUCTVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,@TINY_VERSION@
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0 FILEFLAGS 0
FILEOS VOS__WINDOWS32 FILEOS VOS__WINDOWS32
FILETYPE @FILETYPE@ FILETYPE @FILETYPE@
FILESUBTYPE VFT2_UNKNOWN FILESUBTYPE VFT2_UNKNOWN
BEGIN BEGIN
BLOCK "StringFileInfo" BLOCK "StringFileInfo"
BEGIN BEGIN
BLOCK "040904E4" BLOCK "040904E4"
BEGIN BEGIN
VALUE "FileVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@\0" VALUE "FileVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@\0"
VALUE "ProductVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@\0" VALUE "ProductVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
BEGIN BEGIN
VALUE "Translation", 0x409, 1252 VALUE "Translation", 0x409, 1252
END END
END END
# Italian (it) translation of debconf templates for mysql-dfsg-5.1 # Italian (it) translation of debconf templates for mysql-dfsg-5.1
# Copyright (C) 2009 Software in the Public Interest # Copyright (C) 2009 Software in the Public Interest
# This file is distributed under the same license as the mysql-dfsg-5.1 package. # This file is distributed under the same license as the mysql-dfsg-5.1 package.
# Luca Monducci <luca.mo@tiscali.it>, 2006 - 2009. # Luca Monducci <luca.mo@tiscali.it>, 2006 - 2009.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.1.37 italian debconf templates\n" "Project-Id-Version: mysql-dfsg-5.1 5.1.37 italian debconf templates\n"
......
# Translation of mysql-dfsg-5.1 debconf template to Swedish # Translation of mysql-dfsg-5.1 debconf template to Swedish
# Copyright (C) 2009 Martin Bagge <brother@bsnet.se> # Copyright (C) 2009 Martin Bagge <brother@bsnet.se>
# This file is distributed under the same license as the mysql-dfsg-5.1 package. # This file is distributed under the same license as the mysql-dfsg-5.1 package.
# #
# Andreas Henriksson <andreas@fatal.se>, 2007 # Andreas Henriksson <andreas@fatal.se>, 2007
# Martin Bagge <brother@bsnet.se>, 2009 # Martin Bagge <brother@bsnet.se>, 2009
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.0.21-3\n" "Project-Id-Version: mysql-dfsg-5.1 5.0.21-3\n"
......
...@@ -45,8 +45,8 @@ INSERT INTO t3 VALUES (1),(2); ...@@ -45,8 +45,8 @@ INSERT INTO t3 VALUES (1),(2);
INSERT INTO test1.t1 VALUES (3,3); INSERT INTO test1.t1 VALUES (3,3);
USE test1; USE test1;
LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
DELETE FROM test3.t3 WHERE a=1; DELETE FROM test3.t3 WHERE a=1;
flush logs; flush logs;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
# Test case for MDEV-246, lp:992983 # Test case for MDEV-246, lp:992983
# Check that ordinary connect/disconnect does not increase aborted_clients # Check that ordinary connect/disconnect does not increase aborted_clients
# status variable, but KILL connection does # status variable, but KILL connection does
-- source include/not_embedded.inc -- source include/not_embedded.inc
-- source include/count_sessions.inc -- source include/count_sessions.inc
FLUSH STATUS; FLUSH STATUS;
# Connect/Disconnect look that aborted_clients stays 0 # Connect/Disconnect look that aborted_clients stays 0
connect (con1,localhost,root,,); connect (con1,localhost,root,,);
disconnect con1; disconnect con1;
connection default; connection default;
-- source include/wait_until_count_sessions.inc -- source include/wait_until_count_sessions.inc
# Check that there is 0 aborted clients so far # Check that there is 0 aborted clients so far
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aborted_clients'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aborted_clients';
# Kill a connection, check that aborted_clients is incremented # Kill a connection, check that aborted_clients is incremented
connect(con2,localhost,root,,); connect(con2,localhost,root,,);
--disable_reconnect --disable_reconnect
--error ER_CONNECTION_KILLED --error ER_CONNECTION_KILLED
KILL CONNECTION_ID(); KILL CONNECTION_ID();
disconnect con2; disconnect con2;
connection default; connection default;
-- source include/wait_until_count_sessions.inc -- source include/wait_until_count_sessions.inc
# aborted clients must be 1 now # aborted clients must be 1 now
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aborted_clients'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aborted_clients';
FLUSH STATUS; FLUSH STATUS;
--source include/have_plugin_auth.inc --source include/have_plugin_auth.inc
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/master-slave.inc --source include/master-slave.inc
# #
# Check that replication slave can connect to master using an account # Check that replication slave can connect to master using an account
# which authenticates with an external authentication plugin (bug#12897501). # which authenticates with an external authentication plugin (bug#12897501).
# #
# First stop the slave to guarantee that nothing is replicated. # First stop the slave to guarantee that nothing is replicated.
# #
--connection slave --connection slave
--echo [connection slave] --echo [connection slave]
--source include/stop_slave.inc --source include/stop_slave.inc
# #
# Create an replication account on the master. # Create an replication account on the master.
# #
--connection master --connection master
--echo [connection master] --echo [connection master]
CREATE USER 'plug_user' IDENTIFIED WITH 'test_plugin_server' AS 'plug_user'; CREATE USER 'plug_user' IDENTIFIED WITH 'test_plugin_server' AS 'plug_user';
GRANT REPLICATION SLAVE ON *.* TO plug_user; GRANT REPLICATION SLAVE ON *.* TO plug_user;
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
# #
# Now go to slave and change the replication user. # Now go to slave and change the replication user.
# #
--connection slave --connection slave
--echo [connection slave] --echo [connection slave]
--let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1) --let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1)
CHANGE MASTER TO CHANGE MASTER TO
MASTER_USER= 'plug_user', MASTER_USER= 'plug_user',
MASTER_PASSWORD= 'plug_user'; MASTER_PASSWORD= 'plug_user';
# #
# Start slave with new replication account - this should trigger connection # Start slave with new replication account - this should trigger connection
# to the master server. # to the master server.
# #
--source include/start_slave.inc --source include/start_slave.inc
# Replicate all statements executed on master, in this case, # Replicate all statements executed on master, in this case,
# (creation of the plug_user account). # (creation of the plug_user account).
# #
--connection master --connection master
--sync_slave_with_master --sync_slave_with_master
--echo # Slave in-sync with master now. --echo # Slave in-sync with master now.
SELECT user, plugin, authentication_string FROM mysql.user WHERE user LIKE 'plug_user'; SELECT user, plugin, authentication_string FROM mysql.user WHERE user LIKE 'plug_user';
# #
# Now we can stop the slave and clean up. # Now we can stop the slave and clean up.
# #
# Note: it is important that slave is stopped at this # Note: it is important that slave is stopped at this
# moment - otherwise master's cleanup statements # moment - otherwise master's cleanup statements
# would be replicated on slave! # would be replicated on slave!
# #
--echo # Cleanup (on slave). --echo # Cleanup (on slave).
--source include/stop_slave.inc --source include/stop_slave.inc
eval CHANGE MASTER TO MASTER_USER='$master_user'; eval CHANGE MASTER TO MASTER_USER='$master_user';
DROP USER 'plug_user'; DROP USER 'plug_user';
--echo # Cleanup (on master). --echo # Cleanup (on master).
--connection master --connection master
DROP USER 'plug_user'; DROP USER 'plug_user';
--let $rpl_only_running_threads= 1 --let $rpl_only_running_threads= 1
--source include/rpl_end.inc --source include/rpl_end.inc
...@@ -49,9 +49,9 @@ select grp,group_concat(c order by grp desc) from t1 group by grp order by grp; ...@@ -49,9 +49,9 @@ select grp,group_concat(c order by grp desc) from t1 group by grp order by grp;
# Test transfer to real values # Test transfer to real values
select grp, group_concat(a separator "")+0 from t1 group by grp; select grp, group_concat(a separator "")+0 from t1 group by grp;
select grp, group_concat(a separator "")+0.0 from t1 group by grp; select grp, group_concat(a separator "")+0.0 from t1 group by grp;
select grp, ROUND(group_concat(a separator "")) from t1 group by grp; select grp, ROUND(group_concat(a separator "")) from t1 group by grp;
drop table t1; drop table t1;
# Test NULL values # Test NULL values
......
--source include/have_case_insensitive_file_system.inc --source include/have_case_insensitive_file_system.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--echo # --echo #
--echo # Bug#46941 crash with lower_case_table_names=2 and --echo # Bug#46941 crash with lower_case_table_names=2 and
--echo # foreign data dictionary confusion --echo # foreign data dictionary confusion
--echo # --echo #
CREATE DATABASE XY; CREATE DATABASE XY;
USE XY; USE XY;
# #
# Logs are disabled, since the number of creates tables # Logs are disabled, since the number of creates tables
# and subsequent select statements may vary between # and subsequent select statements may vary between
# versions # versions
# #
--disable_query_log --disable_query_log
--disable_result_log --disable_result_log
let $tcs = `SELECT @@table_open_cache + 1`; let $tcs = `SELECT @@table_open_cache + 1`;
let $i = $tcs; let $i = $tcs;
while ($i) while ($i)
{ {
eval CREATE TABLE XY.T_$i (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT, eval CREATE TABLE XY.T_$i (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT,
primary key(a, b), unique(b)) ENGINE=InnoDB; primary key(a, b), unique(b)) ENGINE=InnoDB;
dec $i; dec $i;
} }
eval ALTER TABLE XY.T_$tcs ADD INDEX I1 (c, b), eval ALTER TABLE XY.T_$tcs ADD INDEX I1 (c, b),
ADD CONSTRAINT C1 FOREIGN KEY (c, b) REFERENCES XY.T_1 (a, b); ADD CONSTRAINT C1 FOREIGN KEY (c, b) REFERENCES XY.T_1 (a, b);
eval ALTER TABLE XY.T_$tcs ADD INDEX I2 (b), eval ALTER TABLE XY.T_$tcs ADD INDEX I2 (b),
ADD CONSTRAINT C2 FOREIGN KEY (b) REFERENCES XY.T_1(a); ADD CONSTRAINT C2 FOREIGN KEY (b) REFERENCES XY.T_1(a);
let $i = $tcs; let $i = $tcs;
while ($i) while ($i)
{ {
eval SELECT * FROM XY.T_$i LIMIT 1; eval SELECT * FROM XY.T_$i LIMIT 1;
dec $i; dec $i;
} }
DROP DATABASE XY; DROP DATABASE XY;
CREATE DATABASE XY; CREATE DATABASE XY;
USE XY; USE XY;
eval CREATE TABLE XY.T_$tcs (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT, eval CREATE TABLE XY.T_$tcs (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT,
PRIMARY KEY(a, b), UNIQUE(b)) ENGINE=InnoDB; PRIMARY KEY(a, b), UNIQUE(b)) ENGINE=InnoDB;
# #
# The bug causes this SELECT to err # The bug causes this SELECT to err
eval SELECT * FROM XY.T_$tcs LIMIT 1; eval SELECT * FROM XY.T_$tcs LIMIT 1;
--enable_query_log --enable_query_log
--enable_result_log --enable_result_log
DROP DATABASE XY; DROP DATABASE XY;
USE TEST; USE TEST;
--echo # --echo #
--echo # Bug55222 Mysqldump table names case bug in REFERENCES clause --echo # Bug55222 Mysqldump table names case bug in REFERENCES clause
--echo # InnoDB did not handle lower_case_table_names=2 for --echo # InnoDB did not handle lower_case_table_names=2 for
--echo # foreign_table_names and referenced_table_names. --echo # foreign_table_names and referenced_table_names.
--echo # --echo #
SHOW VARIABLES LIKE 'lower_case_table_names'; SHOW VARIABLES LIKE 'lower_case_table_names';
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS `Table2`; DROP TABLE IF EXISTS `Table2`;
DROP TABLE IF EXISTS `Table1`; DROP TABLE IF EXISTS `Table1`;
--disable_warnings --disable_warnings
CREATE TABLE `Table1`(c1 INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE `Table1`(c1 INT PRIMARY KEY) ENGINE=InnoDB;
CREATE TABLE `Table2`(c1 INT PRIMARY KEY, c2 INT) ENGINE=InnoDB; CREATE TABLE `Table2`(c1 INT PRIMARY KEY, c2 INT) ENGINE=InnoDB;
ALTER TABLE `Table2` ADD CONSTRAINT fk1 FOREIGN KEY(c2) REFERENCES `Table1`(c1); ALTER TABLE `Table2` ADD CONSTRAINT fk1 FOREIGN KEY(c2) REFERENCES `Table1`(c1);
query_vertical SHOW CREATE TABLE `Table2`; query_vertical SHOW CREATE TABLE `Table2`;
query_vertical SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS; query_vertical SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
DROP TABLE `Table2`; DROP TABLE `Table2`;
DROP TABLE `Table1`; DROP TABLE `Table1`;
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS Product_Order; DROP TABLE IF EXISTS Product_Order;
DROP TABLE IF EXISTS Product; DROP TABLE IF EXISTS Product;
DROP TABLE IF EXISTS Customer; DROP TABLE IF EXISTS Customer;
--enable_warnings --enable_warnings
CREATE TABLE Product (Category INT NOT NULL, Id INT NOT NULL, CREATE TABLE Product (Category INT NOT NULL, Id INT NOT NULL,
Price DECIMAL, PRIMARY KEY(Category, Id)) ENGINE=InnoDB; Price DECIMAL, PRIMARY KEY(Category, Id)) ENGINE=InnoDB;
CREATE TABLE Customer (Id INT NOT NULL, PRIMARY KEY (Id)) ENGINE=InnoDB; CREATE TABLE Customer (Id INT NOT NULL, PRIMARY KEY (Id)) ENGINE=InnoDB;
CREATE TABLE Product_Order (No INT NOT NULL AUTO_INCREMENT, CREATE TABLE Product_Order (No INT NOT NULL AUTO_INCREMENT,
Product_Category INT NOT NULL, Product_Category INT NOT NULL,
Product_Id INT NOT NULL, Product_Id INT NOT NULL,
Customer_Id INT NOT NULL, Customer_Id INT NOT NULL,
PRIMARY KEY(No), PRIMARY KEY(No),
INDEX (Product_Category, Product_Id), INDEX (Product_Category, Product_Id),
FOREIGN KEY (Product_Category, Product_Id) FOREIGN KEY (Product_Category, Product_Id)
REFERENCES Product(Category, Id) ON UPDATE CASCADE ON DELETE RESTRICT, REFERENCES Product(Category, Id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX (Customer_Id), INDEX (Customer_Id),
FOREIGN KEY (Customer_Id) FOREIGN KEY (Customer_Id)
REFERENCES Customer(Id) REFERENCES Customer(Id)
) ENGINE=INNODB; ) ENGINE=INNODB;
query_vertical SHOW CREATE TABLE Product_Order; query_vertical SHOW CREATE TABLE Product_Order;
query_vertical SHOW CREATE TABLE Product; query_vertical SHOW CREATE TABLE Product;
query_vertical SHOW CREATE TABLE Customer; query_vertical SHOW CREATE TABLE Customer;
query_vertical SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS; query_vertical SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
DROP TABLE Product_Order; DROP TABLE Product_Order;
DROP TABLE Product; DROP TABLE Product;
DROP TABLE Customer; DROP TABLE Customer;
...@@ -130,7 +130,7 @@ my_bool my_gethwaddr(uchar *to) ...@@ -130,7 +130,7 @@ my_bool my_gethwaddr(uchar *to)
#elif defined(_WIN32) #elif defined(_WIN32)
#include <winsock2.h> #include <winsock2.h>
#include <iphlpapi.h> #include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib") #pragma comment(lib, "iphlpapi.lib")
#define ETHER_ADDR_LEN 6 #define ETHER_ADDR_LEN 6
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#include <locale.h> #include <locale.h>
#include <crtdbg.h> #include <crtdbg.h>
/* WSAStartup needs winsock library*/ /* WSAStartup needs winsock library*/
#pragma comment(lib, "ws2_32") #pragma comment(lib, "ws2_32")
#endif #endif
my_bool have_tcpip=0; my_bool have_tcpip=0;
......
# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. # the Free Software Foundation; version 2 of the License.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
IF(ESSENTIALS) IF(ESSENTIALS)
SET(CPACK_COMPONENTS_USED "Server;Client;DataFiles") SET(CPACK_COMPONENTS_USED "Server;Client;DataFiles")
SET(CPACK_WIX_UI "WixUI_InstallDir") SET(CPACK_WIX_UI "WixUI_InstallDir")
IF(CMAKE_SIZEOF_VOID_P MATCHES 8) IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
SET(CPACK_PACKAGE_FILE_NAME "mysql-essential-${VERSION}-winx64") SET(CPACK_PACKAGE_FILE_NAME "mysql-essential-${VERSION}-winx64")
ELSE() ELSE()
SET(CPACK_PACKAGE_FILE_NAME "mysql-essential-${VERSION}-win32") SET(CPACK_PACKAGE_FILE_NAME "mysql-essential-${VERSION}-win32")
ENDIF() ENDIF()
ELSE() ELSE()
SET(CPACK_COMPONENTS_USED SET(CPACK_COMPONENTS_USED
"Server;Client;DataFiles;Development;SharedLibraries;Documentation;IniFiles;Readme;Server_Scripts;DebugBinaries") "Server;Client;DataFiles;Development;SharedLibraries;Documentation;IniFiles;Readme;Server_Scripts;DebugBinaries")
ENDIF() ENDIF()
# Some components like Embedded are optional # Some components like Embedded are optional
# We will build MSI without embedded if it was not selected for build # We will build MSI without embedded if it was not selected for build
#(need to modify CPACK_COMPONENTS_ALL for that) #(need to modify CPACK_COMPONENTS_ALL for that)
SET(CPACK_ALL) SET(CPACK_ALL)
FOREACH(comp1 ${CPACK_COMPONENTS_USED}) FOREACH(comp1 ${CPACK_COMPONENTS_USED})
SET(found) SET(found)
FOREACH(comp2 ${CPACK_COMPONENTS_ALL}) FOREACH(comp2 ${CPACK_COMPONENTS_ALL})
IF(comp1 STREQUAL comp2) IF(comp1 STREQUAL comp2)
SET(found 1) SET(found 1)
BREAK() BREAK()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
IF(found) IF(found)
SET(CPACK_ALL ${CPACK_ALL} ${comp1}) SET(CPACK_ALL ${CPACK_ALL} ${comp1})
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
SET(CPACK_COMPONENTS_ALL ${CPACK_ALL}) SET(CPACK_COMPONENTS_ALL ${CPACK_ALL})
# Always install (hidden), includes Readme files # Always install (hidden), includes Readme files
SET(CPACK_COMPONENT_GROUP_ALWAYSINSTALL_HIDDEN 1) SET(CPACK_COMPONENT_GROUP_ALWAYSINSTALL_HIDDEN 1)
SET(CPACK_COMPONENT_README_GROUP "AlwaysInstall") SET(CPACK_COMPONENT_README_GROUP "AlwaysInstall")
# Feature MySQL Server # Feature MySQL Server
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DISPLAY_NAME "MySQL Server") SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DISPLAY_NAME "MySQL Server")
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_EXPANDED "1") SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_EXPANDED "1")
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DESCRIPTION "Install MySQL Server") SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DESCRIPTION "Install MySQL Server")
# Subfeature "Server" (hidden) # Subfeature "Server" (hidden)
SET(CPACK_COMPONENT_SERVER_GROUP "MySQLServer") SET(CPACK_COMPONENT_SERVER_GROUP "MySQLServer")
SET(CPACK_COMPONENT_SERVER_HIDDEN 1) SET(CPACK_COMPONENT_SERVER_HIDDEN 1)
# Subfeature "Client" # Subfeature "Client"
SET(CPACK_COMPONENT_CLIENT_GROUP "MySQLServer") SET(CPACK_COMPONENT_CLIENT_GROUP "MySQLServer")
SET(CPACK_COMPONENT_CLIENT_DISPLAY_NAME "Client Programs") SET(CPACK_COMPONENT_CLIENT_DISPLAY_NAME "Client Programs")
SET(CPACK_COMPONENT_CLIENT_DESCRIPTION SET(CPACK_COMPONENT_CLIENT_DESCRIPTION
"Various helpful (commandline) tools including the mysql command line client" ) "Various helpful (commandline) tools including the mysql command line client" )
# Subfeature "Debug binaries" # Subfeature "Debug binaries"
SET(CPACK_COMPONENT_DEBUGBINARIES_GROUP "MySQLServer") SET(CPACK_COMPONENT_DEBUGBINARIES_GROUP "MySQLServer")
SET(CPACK_COMPONENT_DEBUGBINARIES_DISPLAY_NAME "Debug binaries") SET(CPACK_COMPONENT_DEBUGBINARIES_DISPLAY_NAME "Debug binaries")
SET(CPACK_COMPONENT_DEBUGBINARIES_DESCRIPTION SET(CPACK_COMPONENT_DEBUGBINARIES_DESCRIPTION
"Debug/trace versions of executables and libraries" ) "Debug/trace versions of executables and libraries" )
#SET(CPACK_COMPONENT_DEBUGBINARIES_WIX_LEVEL 2) #SET(CPACK_COMPONENT_DEBUGBINARIES_WIX_LEVEL 2)
#Subfeature "Data Files" #Subfeature "Data Files"
SET(CPACK_COMPONENT_DATAFILES_GROUP "MySQLServer") SET(CPACK_COMPONENT_DATAFILES_GROUP "MySQLServer")
SET(CPACK_COMPONENT_DATAFILES_DISPLAY_NAME "Server data files") SET(CPACK_COMPONENT_DATAFILES_DISPLAY_NAME "Server data files")
SET(CPACK_COMPONENT_DATAFILES_DESCRIPTION "Server data files" ) SET(CPACK_COMPONENT_DATAFILES_DESCRIPTION "Server data files" )
SET(CPACK_COMPONENT_DATAFILES_HIDDEN 1) SET(CPACK_COMPONENT_DATAFILES_HIDDEN 1)
#Feature "Devel" #Feature "Devel"
SET(CPACK_COMPONENT_GROUP_DEVEL_DISPLAY_NAME "Development Components") SET(CPACK_COMPONENT_GROUP_DEVEL_DISPLAY_NAME "Development Components")
SET(CPACK_COMPONENT_GROUP_DEVEL_DESCRIPTION "Installs C/C++ header files and libraries") SET(CPACK_COMPONENT_GROUP_DEVEL_DESCRIPTION "Installs C/C++ header files and libraries")
#Subfeature "Development" #Subfeature "Development"
SET(CPACK_COMPONENT_DEVELOPMENT_GROUP "Devel") SET(CPACK_COMPONENT_DEVELOPMENT_GROUP "Devel")
SET(CPACK_COMPONENT_DEVELOPMENT_HIDDEN 1) SET(CPACK_COMPONENT_DEVELOPMENT_HIDDEN 1)
#Subfeature "Shared libraries" #Subfeature "Shared libraries"
SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "Devel") SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "Devel")
SET(CPACK_COMPONENT_SHAREDLIBRARIES_DISPLAY_NAME "Client C API library (shared)") SET(CPACK_COMPONENT_SHAREDLIBRARIES_DISPLAY_NAME "Client C API library (shared)")
SET(CPACK_COMPONENT_SHAREDLIBRARIES_DESCRIPTION "Installs shared client library") SET(CPACK_COMPONENT_SHAREDLIBRARIES_DESCRIPTION "Installs shared client library")
#Subfeature "Embedded" #Subfeature "Embedded"
SET(CPACK_COMPONENT_EMBEDDED_GROUP "Devel") SET(CPACK_COMPONENT_EMBEDDED_GROUP "Devel")
SET(CPACK_COMPONENT_EMBEDDED_DISPLAY_NAME "Embedded server library") SET(CPACK_COMPONENT_EMBEDDED_DISPLAY_NAME "Embedded server library")
SET(CPACK_COMPONENT_EMBEDDED_DESCRIPTION "Installs embedded server library") SET(CPACK_COMPONENT_EMBEDDED_DESCRIPTION "Installs embedded server library")
SET(CPACK_COMPONENT_EMBEDDED_WIX_LEVEL 2) SET(CPACK_COMPONENT_EMBEDDED_WIX_LEVEL 2)
#Feature Debug Symbols #Feature Debug Symbols
SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DISPLAY_NAME "Debug Symbols") SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DISPLAY_NAME "Debug Symbols")
SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DESCRIPTION "Installs Debug Symbols") SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DESCRIPTION "Installs Debug Symbols")
SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_WIX_LEVEL 2) SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_WIX_LEVEL 2)
SET(CPACK_COMPONENT_DEBUGINFO_GROUP "DebugSymbols") SET(CPACK_COMPONENT_DEBUGINFO_GROUP "DebugSymbols")
SET(CPACK_COMPONENT_DEBUGINFO_HIDDEN 1) SET(CPACK_COMPONENT_DEBUGINFO_HIDDEN 1)
#Feature Documentation #Feature Documentation
SET(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation") SET(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation")
SET(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "Installs documentation") SET(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "Installs documentation")
SET(CPACK_COMPONENT_DOCUMENTATION_WIX_LEVEL 2) SET(CPACK_COMPONENT_DOCUMENTATION_WIX_LEVEL 2)
#Feature tests #Feature tests
SET(CPACK_COMPONENT_TEST_DISPLAY_NAME "Tests") SET(CPACK_COMPONENT_TEST_DISPLAY_NAME "Tests")
SET(CPACK_COMPONENT_TEST_DESCRIPTION "Installs unittests (requires Perl to run)") SET(CPACK_COMPONENT_TEST_DESCRIPTION "Installs unittests (requires Perl to run)")
SET(CPACK_COMPONENT_TEST_WIX_LEVEL 2) SET(CPACK_COMPONENT_TEST_WIX_LEVEL 2)
#Feature Misc (hidden, installs only if everything is installed) #Feature Misc (hidden, installs only if everything is installed)
SET(CPACK_COMPONENT_GROUP_MISC_HIDDEN 1) SET(CPACK_COMPONENT_GROUP_MISC_HIDDEN 1)
SET(CPACK_COMPONENT_GROUP_MISC_WIX_LEVEL 100) SET(CPACK_COMPONENT_GROUP_MISC_WIX_LEVEL 100)
SET(CPACK_COMPONENT_INIFILES_GROUP "Misc") SET(CPACK_COMPONENT_INIFILES_GROUP "Misc")
SET(CPACK_COMPONENT_SERVER_SCRIPTS_GROUP "Misc") SET(CPACK_COMPONENT_SERVER_SCRIPTS_GROUP "Misc")
# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. # the Free Software Foundation; version 2 of the License.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@") SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
SET(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") SET(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
SET(CANDLE_EXECUTABLE "@CANDLE_EXECUTABLE@") SET(CANDLE_EXECUTABLE "@CANDLE_EXECUTABLE@")
SET(LIGHT_EXECUTABLE "@LIGHT_EXECUTABLE@") SET(LIGHT_EXECUTABLE "@LIGHT_EXECUTABLE@")
SET(CMAKE_COMMAND "@CMAKE_COMMAND@") SET(CMAKE_COMMAND "@CMAKE_COMMAND@")
SET(CMAKE_CFG_INTDIR "@CMAKE_CFG_INTDIR@") SET(CMAKE_CFG_INTDIR "@CMAKE_CFG_INTDIR@")
SET(VERSION "@VERSION@") SET(VERSION "@VERSION@")
SET(MAJOR_VERSION "@MAJOR_VERSION@") SET(MAJOR_VERSION "@MAJOR_VERSION@")
SET(MINOR_VERSION "@MINOR_VERSION@") SET(MINOR_VERSION "@MINOR_VERSION@")
SET(PATCH_VERSION "@PATCH_VERSION@") SET(PATCH_VERSION "@PATCH_VERSION@")
SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@) SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@)
SET(MANUFACTURER "@MANUFACTURER@") SET(MANUFACTURER "@MANUFACTURER@")
SET(WIXCA_LOCATION "@WIXCA_LOCATION@") SET(WIXCA_LOCATION "@WIXCA_LOCATION@")
SET(COPYING_RTF "@COPYING_RTF@") SET(COPYING_RTF "@COPYING_RTF@")
SET(CPACK_WIX_CONFIG "@CPACK_WIX_CONFIG@") SET(CPACK_WIX_CONFIG "@CPACK_WIX_CONFIG@")
SET(CPACK_WIX_INCLUDE "@CPACK_WIX_INCLUDE@") SET(CPACK_WIX_INCLUDE "@CPACK_WIX_INCLUDE@")
LIST(APPEND EXCLUDE_DIRS LIST(APPEND EXCLUDE_DIRS
bin/debug bin/debug
data/test data/test
lib/plugin/debug lib/plugin/debug
mysql-test mysql-test
scripts scripts
sql-bench sql-bench
) )
LIST(APPEND EXCLUDE_FILES LIST(APPEND EXCLUDE_FILES
bin/echo.exe bin/echo.exe
bin/mysql_client_test_embedded.exe bin/mysql_client_test_embedded.exe
bin/mysqld-debug.exe bin/mysqld-debug.exe
bin/mysqltest_embedded.exe bin/mysqltest_embedded.exe
bin/replace.exe bin/replace.exe
lib/debug/mysqlserver.lib lib/debug/mysqlserver.lib
lib/libmysqld.dll lib/libmysqld.dll
lib/libmysqld.lib lib/libmysqld.lib
lib/mysqlserver.lib lib/mysqlserver.lib
lib/mysqlservices.lib lib/mysqlservices.lib
) )
IF(CMAKE_SIZEOF_VOID_P EQUAL 8) IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(Win64 " Win64='yes'") SET(Win64 " Win64='yes'")
SET(Platform x64) SET(Platform x64)
SET(PlatformProgramFilesFolder ProgramFiles64Folder) SET(PlatformProgramFilesFolder ProgramFiles64Folder)
ELSE() ELSE()
SET(Platform x86) SET(Platform x86)
SET(PlatformProgramFilesFolder ProgramFilesFolder) SET(PlatformProgramFilesFolder ProgramFilesFolder)
SET(Win64) SET(Win64)
ENDIF() ENDIF()
SET(ENV{VS_UNICODE_OUTPUT}) SET(ENV{VS_UNICODE_OUTPUT})
# Switch off the monolithic install # Switch off the monolithic install
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=0 ${CMAKE_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=0 ${CMAKE_BINARY_DIR}
OUTPUT_QUIET OUTPUT_QUIET
) )
INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig.cmake) INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig.cmake)
IF(CPACK_WIX_CONFIG) IF(CPACK_WIX_CONFIG)
INCLUDE(${CPACK_WIX_CONFIG}) INCLUDE(${CPACK_WIX_CONFIG})
ENDIF() ENDIF()
IF(NOT CPACK_WIX_UI) IF(NOT CPACK_WIX_UI)
SET(CPACK_WIX_UI "WixUI_Mondo_Custom") SET(CPACK_WIX_UI "WixUI_Mondo_Custom")
ENDIF() ENDIF()
SET(WIX_FEATURES) SET(WIX_FEATURES)
FOREACH(comp ${CPACK_COMPONENTS_ALL}) FOREACH(comp ${CPACK_COMPONENTS_ALL})
STRING(TOUPPER "${comp}" comp_upper) STRING(TOUPPER "${comp}" comp_upper)
IF(NOT CPACK_COMPONENT_${comp_upper}_GROUP) IF(NOT CPACK_COMPONENT_${comp_upper}_GROUP)
SET(WIX_FEATURE_${comp_upper}_COMPONENTS "${comp}") SET(WIX_FEATURE_${comp_upper}_COMPONENTS "${comp}")
SET(CPACK_COMPONENT_${comp_upper}_HIDDEN 1) SET(CPACK_COMPONENT_${comp_upper}_HIDDEN 1)
SET(CPACK_COMPONENT_GROUP_${comp_upper}_DISPLAY_NAME ${CPACK_COMPONENT_${comp_upper}_DISPLAY_NAME}) SET(CPACK_COMPONENT_GROUP_${comp_upper}_DISPLAY_NAME ${CPACK_COMPONENT_${comp_upper}_DISPLAY_NAME})
SET(CPACK_COMPONENT_GROUP_${comp_upper}_DESCRIPTION ${CPACK_COMPONENT_${comp_upper}_DESCRIPTION}) SET(CPACK_COMPONENT_GROUP_${comp_upper}_DESCRIPTION ${CPACK_COMPONENT_${comp_upper}_DESCRIPTION})
SET(CPACK_COMPONENT_GROUP_${comp_upper}_WIX_LEVEL ${CPACK_COMPONENT_${comp_upper}_WIX_LEVEL}) SET(CPACK_COMPONENT_GROUP_${comp_upper}_WIX_LEVEL ${CPACK_COMPONENT_${comp_upper}_WIX_LEVEL})
SET(WIX_FEATURES ${WIX_FEATURES} WIX_FEATURE_${comp_upper}) SET(WIX_FEATURES ${WIX_FEATURES} WIX_FEATURE_${comp_upper})
ELSE() ELSE()
SET(FEATURE_NAME WIX_FEATURE_${CPACK_COMPONENT_${comp_upper}_GROUP}) SET(FEATURE_NAME WIX_FEATURE_${CPACK_COMPONENT_${comp_upper}_GROUP})
SET(WIX_FEATURES ${WIX_FEATURES} ${FEATURE_NAME}) SET(WIX_FEATURES ${WIX_FEATURES} ${FEATURE_NAME})
LIST(APPEND ${FEATURE_NAME}_COMPONENTS ${comp}) LIST(APPEND ${FEATURE_NAME}_COMPONENTS ${comp})
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
LIST(REMOVE_DUPLICATES WIX_FEATURES) LIST(REMOVE_DUPLICATES WIX_FEATURES)
SET(CPACK_WIX_FEATURES) SET(CPACK_WIX_FEATURES)
FOREACH(f ${WIX_FEATURES}) FOREACH(f ${WIX_FEATURES})
STRING(TOUPPER "${f}" f_upper) STRING(TOUPPER "${f}" f_upper)
STRING(REPLACE "WIX_FEATURE_" "" f_upper ${f_upper}) STRING(REPLACE "WIX_FEATURE_" "" f_upper ${f_upper})
IF (CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME) IF (CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME)
SET(TITLE ${CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME}) SET(TITLE ${CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME})
ELSE() ELSE()
SET(TITLE CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME) SET(TITLE CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME)
ENDIF() ENDIF()
IF (CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION) IF (CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION)
SET(DESCRIPTION ${CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION}) SET(DESCRIPTION ${CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION})
ELSE() ELSE()
SET(DESCRIPTION CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION) SET(DESCRIPTION CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION)
ENDIF() ENDIF()
IF(CPACK_COMPONENT_${f_upper}_WIX_LEVEL) IF(CPACK_COMPONENT_${f_upper}_WIX_LEVEL)
SET(Level ${CPACK_COMPONENT_${f_upper}_WIX_LEVEL}) SET(Level ${CPACK_COMPONENT_${f_upper}_WIX_LEVEL})
ELSE() ELSE()
SET(Level 1) SET(Level 1)
ENDIF() ENDIF()
IF(CPACK_COMPONENT_GROUP_${f_upper}_HIDDEN) IF(CPACK_COMPONENT_GROUP_${f_upper}_HIDDEN)
SET(DISPLAY "Display='hidden'") SET(DISPLAY "Display='hidden'")
SET(TITLE ${f_upper}) SET(TITLE ${f_upper})
SET(DESCRIPTION ${f_upper}) SET(DESCRIPTION ${f_upper})
ELSE() ELSE()
SET(DISPLAY) SET(DISPLAY)
IF(CPACK_COMPONENT_GROUP_${f_upper}_EXPANDED) IF(CPACK_COMPONENT_GROUP_${f_upper}_EXPANDED)
SET(DISPLAY "Display='expand'") SET(DISPLAY "Display='expand'")
ENDIF() ENDIF()
IF (CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME) IF (CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME)
SET(TITLE ${CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME}) SET(TITLE ${CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME})
ELSE() ELSE()
SET(TITLE CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME) SET(TITLE CPACK_COMPONENT_GROUP_${f_upper}_DISPLAY_NAME)
ENDIF() ENDIF()
IF (CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION) IF (CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION)
SET(DESCRIPTION ${CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION}) SET(DESCRIPTION ${CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION})
ELSE() ELSE()
SET(DESCRIPTION CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION) SET(DESCRIPTION CPACK_COMPONENT_GROUP_${f_upper}_DESCRIPTION)
ENDIF() ENDIF()
ENDIF() ENDIF()
SET(CPACK_WIX_FEATURES SET(CPACK_WIX_FEATURES
"${CPACK_WIX_FEATURES} "${CPACK_WIX_FEATURES}
<Feature Id='${f_upper}' <Feature Id='${f_upper}'
Title='${TITLE}' Title='${TITLE}'
Description='${DESCRIPTION}' Description='${DESCRIPTION}'
ConfigurableDirectory='INSTALLDIR' ConfigurableDirectory='INSTALLDIR'
Level='${Level}' ${DISPLAY} >" Level='${Level}' ${DISPLAY} >"
) )
FOREACH(c ${${f}_COMPONENTS}) FOREACH(c ${${f}_COMPONENTS})
STRING(TOUPPER "${c}" c_upper) STRING(TOUPPER "${c}" c_upper)
IF (CPACK_COMPONENT_${c_upper}_DISPLAY_NAME) IF (CPACK_COMPONENT_${c_upper}_DISPLAY_NAME)
SET(TITLE ${CPACK_COMPONENT_${c_upper}_DISPLAY_NAME}) SET(TITLE ${CPACK_COMPONENT_${c_upper}_DISPLAY_NAME})
ELSE() ELSE()
SET(TITLE CPACK_COMPONENT_${c_upper}_DISPLAY_NAME) SET(TITLE CPACK_COMPONENT_${c_upper}_DISPLAY_NAME)
ENDIF() ENDIF()
IF (CPACK_COMPONENT_${c_upper}_DESCRIPTION) IF (CPACK_COMPONENT_${c_upper}_DESCRIPTION)
SET(DESCRIPTION ${CPACK_COMPONENT_${c_upper}_DESCRIPTION}) SET(DESCRIPTION ${CPACK_COMPONENT_${c_upper}_DESCRIPTION})
ELSE() ELSE()
SET(DESCRIPTION CPACK_COMPONENT_${c_upper}_DESCRIPTION) SET(DESCRIPTION CPACK_COMPONENT_${c_upper}_DESCRIPTION)
ENDIF() ENDIF()
IF(CPACK_COMPONENT_${c_upper}_WIX_LEVEL) IF(CPACK_COMPONENT_${c_upper}_WIX_LEVEL)
SET(Level ${CPACK_COMPONENT_${c_upper}_WIX_LEVEL}) SET(Level ${CPACK_COMPONENT_${c_upper}_WIX_LEVEL})
ELSE() ELSE()
SET(Level 1) SET(Level 1)
ENDIF() ENDIF()
IF(CPACK_COMPONENT_${c_upper}_HIDDEN) IF(CPACK_COMPONENT_${c_upper}_HIDDEN)
SET(CPACK_WIX_FEATURES SET(CPACK_WIX_FEATURES
"${CPACK_WIX_FEATURES} "${CPACK_WIX_FEATURES}
<ComponentGroupRef Id='componentgroup.${c}'/>") <ComponentGroupRef Id='componentgroup.${c}'/>")
ELSE() ELSE()
SET(CPACK_WIX_FEATURES SET(CPACK_WIX_FEATURES
"${CPACK_WIX_FEATURES} "${CPACK_WIX_FEATURES}
<Feature Id='${c}' <Feature Id='${c}'
Title='${TITLE}' Title='${TITLE}'
Description='${DESCRIPTION}' Description='${DESCRIPTION}'
ConfigurableDirectory='INSTALLDIR' ConfigurableDirectory='INSTALLDIR'
Level='${Level}'> Level='${Level}'>
<ComponentGroupRef Id='componentgroup.${c}'/> <ComponentGroupRef Id='componentgroup.${c}'/>
</Feature>") </Feature>")
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
SET(CPACK_WIX_FEATURES SET(CPACK_WIX_FEATURES
"${CPACK_WIX_FEATURES} "${CPACK_WIX_FEATURES}
</Feature> </Feature>
") ")
ENDFOREACH() ENDFOREACH()
IF(CMAKE_INSTALL_CONFIG_NAME) IF(CMAKE_INSTALL_CONFIG_NAME)
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "${CMAKE_INSTALL_CONFIG_NAME}" STRING(REPLACE "${CMAKE_CFG_INTDIR}" "${CMAKE_INSTALL_CONFIG_NAME}"
WIXCA_LOCATION "${WIXCA_LOCATION}") WIXCA_LOCATION "${WIXCA_LOCATION}")
SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_INSTALL_CONFIG_NAME}") SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_INSTALL_CONFIG_NAME}")
ENDIF() ENDIF()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in
${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs) ${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs)
FOREACH(comp ${CPACK_COMPONENTS_ALL}) FOREACH(comp ${CPACK_COMPONENTS_ALL})
SET(ENV{DESTDIR} testinstall/${comp}) SET(ENV{DESTDIR} testinstall/${comp})
SET(DIRS ${DIRS} testinstall/${comp}) SET(DIRS ${DIRS} testinstall/${comp})
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} ${CONFIG_PARAM} -DCMAKE_INSTALL_COMPONENT=${comp} COMMAND ${CMAKE_COMMAND} ${CONFIG_PARAM} -DCMAKE_INSTALL_COMPONENT=${comp}
-DCMAKE_INSTALL_PREFIX= -P ${CMAKE_BINARY_DIR}/cmake_install.cmake -DCMAKE_INSTALL_PREFIX= -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
OUTPUT_QUIET OUTPUT_QUIET
) )
ENDFOREACH() ENDFOREACH()
MACRO(GENERATE_GUID VarName) MACRO(GENERATE_GUID VarName)
EXECUTE_PROCESS(COMMAND uuidgen -c EXECUTE_PROCESS(COMMAND uuidgen -c
OUTPUT_VARIABLE ${VarName} OUTPUT_VARIABLE ${VarName}
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
ENDMACRO() ENDMACRO()
SET(INC_VAR 0) SET(INC_VAR 0)
MACRO(MAKE_WIX_IDENTIFIER str varname) MACRO(MAKE_WIX_IDENTIFIER str varname)
STRING(REPLACE "/" "." ${varname} "${str}") STRING(REPLACE "/" "." ${varname} "${str}")
STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}") STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}")
STRING(LENGTH "${${varname}}" len) STRING(LENGTH "${${varname}}" len)
# Identifier should be smaller than 72 character # Identifier should be smaller than 72 character
# We have to cut down the length to 70 chars, since we add 2 char prefix # We have to cut down the length to 70 chars, since we add 2 char prefix
# pretty often # pretty often
IF(len GREATER 70) IF(len GREATER 70)
STRING(SUBSTRING "${${varname}}" 0 67 shortstr) STRING(SUBSTRING "${${varname}}" 0 67 shortstr)
MATH(EXPR INC_VAR ${INC_VAR}+1) MATH(EXPR INC_VAR ${INC_VAR}+1)
SET(${varname} "${shortstr}${INC_VAR}") SET(${varname} "${shortstr}${INC_VAR}")
ENDIF() ENDIF()
ENDMACRO() ENDMACRO()
FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root)
FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) FILE(RELATIVE_PATH dir_rel ${topdir} ${dir})
IF(dir_rel) IF(dir_rel)
LIST(FIND EXCLUDE_DIRS ${dir_rel} TO_EXCLUDE) LIST(FIND EXCLUDE_DIRS ${dir_rel} TO_EXCLUDE)
IF(NOT TO_EXCLUDE EQUAL -1) IF(NOT TO_EXCLUDE EQUAL -1)
MESSAGE(STATUS "excluding directory: ${dir_rel}") MESSAGE(STATUS "excluding directory: ${dir_rel}")
RETURN() RETURN()
ENDIF() ENDIF()
ENDIF() ENDIF()
FILE(GLOB all_files ${dir}/*) FILE(GLOB all_files ${dir}/*)
IF(NOT all_files) IF(NOT all_files)
RETURN() RETURN()
ENDIF() ENDIF()
IF(dir_rel) IF(dir_rel)
MAKE_DIRECTORY(${dir_root}/${dir_rel}) MAKE_DIRECTORY(${dir_root}/${dir_rel})
MAKE_WIX_IDENTIFIER("${dir_rel}" id) MAKE_WIX_IDENTIFIER("${dir_rel}" id)
SET(DirectoryRefId "D.${id}") SET(DirectoryRefId "D.${id}")
ELSE() ELSE()
SET(DirectoryRefId "INSTALLDIR") SET(DirectoryRefId "INSTALLDIR")
ENDIF() ENDIF()
FILE(APPEND ${file} "<DirectoryRef Id='${DirectoryRefId}'>\n") FILE(APPEND ${file} "<DirectoryRef Id='${DirectoryRefId}'>\n")
SET(NONEXEFILES) SET(NONEXEFILES)
FOREACH(f ${all_files}) FOREACH(f ${all_files})
IF(NOT IS_DIRECTORY ${f}) IF(NOT IS_DIRECTORY ${f})
FILE(RELATIVE_PATH rel ${topdir} ${f}) FILE(RELATIVE_PATH rel ${topdir} ${f})
SET(TO_EXCLUDE) SET(TO_EXCLUDE)
IF(rel MATCHES "\\.pdb$") IF(rel MATCHES "\\.pdb$")
SET(TO_EXCLUDE TRUE) SET(TO_EXCLUDE TRUE)
ELSE() ELSE()
LIST(FIND EXCLUDE_FILES ${rel} RES) LIST(FIND EXCLUDE_FILES ${rel} RES)
IF(NOT RES EQUAL -1) IF(NOT RES EQUAL -1)
SET(TO_EXCLUDE TRUE) SET(TO_EXCLUDE TRUE)
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(TO_EXCLUDE) IF(TO_EXCLUDE)
MESSAGE(STATUS "excluding file: ${rel}") MESSAGE(STATUS "excluding file: ${rel}")
ELSE() ELSE()
MAKE_WIX_IDENTIFIER("${rel}" id) MAKE_WIX_IDENTIFIER("${rel}" id)
FILE(TO_NATIVE_PATH ${f} f_native) FILE(TO_NATIVE_PATH ${f} f_native)
GET_FILENAME_COMPONENT(f_ext "${f}" EXT) GET_FILENAME_COMPONENT(f_ext "${f}" EXT)
# According to MSDN each DLL or EXE should be in the own component # According to MSDN each DLL or EXE should be in the own component
IF(f_ext MATCHES ".exe" OR f_ext MATCHES ".dll") IF(f_ext MATCHES ".exe" OR f_ext MATCHES ".dll")
FILE(APPEND ${file} " <Component Id='C.${id}' Guid='*' ${Win64}>\n") FILE(APPEND ${file} " <Component Id='C.${id}' Guid='*' ${Win64}>\n")
FILE(APPEND ${file} " <File Id='F.${id}' KeyPath='yes' Source='${f_native}'/>\n") FILE(APPEND ${file} " <File Id='F.${id}' KeyPath='yes' Source='${f_native}'/>\n")
FILE(APPEND ${file} " </Component>\n") FILE(APPEND ${file} " </Component>\n")
FILE(APPEND ${file_comp} " <ComponentRef Id='C.${id}'/>\n") FILE(APPEND ${file_comp} " <ComponentRef Id='C.${id}'/>\n")
ELSE() ELSE()
SET(NONEXEFILES "${NONEXEFILES}\n<File Id='F.${id}' Source='${f_native}'/>" ) SET(NONEXEFILES "${NONEXEFILES}\n<File Id='F.${id}' Source='${f_native}'/>" )
ENDIF() ENDIF()
ENDIF() ENDIF()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
FILE(APPEND ${file} "</DirectoryRef>\n") FILE(APPEND ${file} "</DirectoryRef>\n")
IF(NONEXEFILES) IF(NONEXEFILES)
GENERATE_GUID(guid) GENERATE_GUID(guid)
SET(ComponentId "C._files_${COMP_NAME}.${DirectoryRefId}") SET(ComponentId "C._files_${COMP_NAME}.${DirectoryRefId}")
FILE(APPEND ${file} FILE(APPEND ${file}
"<DirectoryRef Id='${DirectoryRefId}'>\n<Component Guid='${guid}' Id='${ComponentId}' ${Win64}>${NONEXEFILES}\n</Component></DirectoryRef>\n") "<DirectoryRef Id='${DirectoryRefId}'>\n<Component Guid='${guid}' Id='${ComponentId}' ${Win64}>${NONEXEFILES}\n</Component></DirectoryRef>\n")
FILE(APPEND ${file_comp} " <ComponentRef Id='${ComponentId}'/>\n") FILE(APPEND ${file_comp} " <ComponentRef Id='${ComponentId}'/>\n")
ENDIF() ENDIF()
FOREACH(f ${all_files}) FOREACH(f ${all_files})
IF(IS_DIRECTORY ${f}) IF(IS_DIRECTORY ${f})
TRAVERSE_FILES(${f} ${topdir} ${file} ${file_comp} ${dir_root}) TRAVERSE_FILES(${f} ${topdir} ${file} ${file_comp} ${dir_root})
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
ENDFUNCTION() ENDFUNCTION()
FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix) FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix)
FILE(RELATIVE_PATH rel ${topdir} ${dir}) FILE(RELATIVE_PATH rel ${topdir} ${dir})
IF(rel) IF(rel)
MAKE_WIX_IDENTIFIER("${rel}" id) MAKE_WIX_IDENTIFIER("${rel}" id)
GET_FILENAME_COMPONENT(name ${dir} NAME) GET_FILENAME_COMPONENT(name ${dir} NAME)
FILE(APPEND ${file} "${prefix}<Directory Id='D.${id}' Name='${name}'>\n") FILE(APPEND ${file} "${prefix}<Directory Id='D.${id}' Name='${name}'>\n")
ENDIF() ENDIF()
FILE(GLOB all_files ${dir}/*) FILE(GLOB all_files ${dir}/*)
FOREACH(f ${all_files}) FOREACH(f ${all_files})
IF(IS_DIRECTORY ${f}) IF(IS_DIRECTORY ${f})
TRAVERSE_DIRECTORIES(${f} ${topdir} ${file} "${prefix} ") TRAVERSE_DIRECTORIES(${f} ${topdir} ${file} "${prefix} ")
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
IF(rel) IF(rel)
FILE(APPEND ${file} "${prefix}</Directory>\n") FILE(APPEND ${file} "${prefix}</Directory>\n")
ENDIF() ENDIF()
ENDFUNCTION() ENDFUNCTION()
SET(CPACK_WIX_COMPONENTS) SET(CPACK_WIX_COMPONENTS)
SET(CPACK_WIX_COMPONENT_GROUPS) SET(CPACK_WIX_COMPONENT_GROUPS)
GET_FILENAME_COMPONENT(abs . ABSOLUTE) GET_FILENAME_COMPONENT(abs . ABSOLUTE)
FOREACH(d ${DIRS}) FOREACH(d ${DIRS})
GET_FILENAME_COMPONENT(d ${d} ABSOLUTE) GET_FILENAME_COMPONENT(d ${d} ABSOLUTE)
GET_FILENAME_COMPONENT(d_name ${d} NAME) GET_FILENAME_COMPONENT(d_name ${d} NAME)
FILE(WRITE ${abs}/${d_name}_component_group.wxs "<ComponentGroup Id='componentgroup.${d_name}'>") FILE(WRITE ${abs}/${d_name}_component_group.wxs "<ComponentGroup Id='componentgroup.${d_name}'>")
SET(COMP_NAME ${d_name}) SET(COMP_NAME ${d_name})
TRAVERSE_FILES(${d} ${d} ${abs}/${d_name}.wxs ${abs}/${d_name}_component_group.wxs "${abs}/dirs") TRAVERSE_FILES(${d} ${d} ${abs}/${d_name}.wxs ${abs}/${d_name}_component_group.wxs "${abs}/dirs")
FILE(APPEND ${abs}/${d_name}_component_group.wxs "</ComponentGroup>") FILE(APPEND ${abs}/${d_name}_component_group.wxs "</ComponentGroup>")
IF(EXISTS ${d_name}.wxs) IF(EXISTS ${d_name}.wxs)
FILE(READ ${d_name}.wxs WIX_TMP) FILE(READ ${d_name}.wxs WIX_TMP)
SET(CPACK_WIX_COMPONENTS "${CPACK_WIX_COMPONENTS}\n${WIX_TMP}") SET(CPACK_WIX_COMPONENTS "${CPACK_WIX_COMPONENTS}\n${WIX_TMP}")
FILE(REMOVE ${d_name}.wxs) FILE(REMOVE ${d_name}.wxs)
ENDIF() ENDIF()
FILE(READ ${d_name}_component_group.wxs WIX_TMP) FILE(READ ${d_name}_component_group.wxs WIX_TMP)
SET(CPACK_WIX_COMPONENT_GROUPS "${CPACK_WIX_COMPONENT_GROUPS}\n${WIX_TMP}") SET(CPACK_WIX_COMPONENT_GROUPS "${CPACK_WIX_COMPONENT_GROUPS}\n${WIX_TMP}")
FILE(REMOVE ${d_name}_component_group.wxs) FILE(REMOVE ${d_name}_component_group.wxs)
ENDFOREACH() ENDFOREACH()
FILE(WRITE directories.wxs "<DirectoryRef Id='INSTALLDIR'>\n") FILE(WRITE directories.wxs "<DirectoryRef Id='INSTALLDIR'>\n")
TRAVERSE_DIRECTORIES(${abs}/dirs ${abs}/dirs directories.wxs "") TRAVERSE_DIRECTORIES(${abs}/dirs ${abs}/dirs directories.wxs "")
FILE(APPEND directories.wxs "</DirectoryRef>\n") FILE(APPEND directories.wxs "</DirectoryRef>\n")
FILE(READ directories.wxs CPACK_WIX_DIRECTORIES) FILE(READ directories.wxs CPACK_WIX_DIRECTORIES)
FILE(REMOVE directories.wxs) FILE(REMOVE directories.wxs)
FOREACH(src ${CPACK_WIX_INCLUDE}) FOREACH(src ${CPACK_WIX_INCLUDE})
SET(CPACK_WIX_INCLUDES SET(CPACK_WIX_INCLUDES
"${CPACK_WIX_INCLUDES} "${CPACK_WIX_INCLUDES}
<?include ${src}?>" <?include ${src}?>"
) )
ENDFOREACH() ENDFOREACH()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in
${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs) ${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs)
SET(EXTRA_CANDLE_ARGS) SET(EXTRA_CANDLE_ARGS)
IF("$ENV{EXTRA_CANDLE_ARGS}") IF("$ENV{EXTRA_CANDLE_ARGS}")
SET(EXTRA_CANDLE_ARGS "$ENV{EXTRA_CANDLE_ARGS}") SET(EXTRA_CANDLE_ARGS "$ENV{EXTRA_CANDLE_ARGS}")
ENDIF() ENDIF()
SET(EXTRA_LIGHT_ARGS) SET(EXTRA_LIGHT_ARGS)
IF("$ENV{EXTRA_LIGHT_ARGS}") IF("$ENV{EXTRA_LIGHT_ARGS}")
SET(EXTRA_LIGHT_ARGS "$ENV{EXTRA_LIGHT_ARGS}") SET(EXTRA_LIGHT_ARGS "$ENV{EXTRA_LIGHT_ARGS}")
ENDIF() ENDIF()
FILE(REMOVE mysql_server.wixobj) FILE(REMOVE mysql_server.wixobj)
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${CANDLE_EXECUTABLE} -ext WixUtilExtension mysql_server.wxs ${EXTRA_CANDLE_ARGS} COMMAND ${CANDLE_EXECUTABLE} -ext WixUtilExtension mysql_server.wxs ${EXTRA_CANDLE_ARGS}
RESULT_VARIABLE CANDLE_RESULT RESULT_VARIABLE CANDLE_RESULT
) )
IF(CANDLE_RESULT) IF(CANDLE_RESULT)
MESSAGE(FATAL_ERROR "ERROR: can't run candle") MESSAGE(FATAL_ERROR "ERROR: can't run candle")
ENDIF() ENDIF()
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension -ext WixUtilExtension COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension -ext WixUtilExtension
mysql_server.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi mysql_server.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi
${EXTRA_LIGHT_ARGS} ${EXTRA_LIGHT_ARGS}
RESULT_VARIABLE LIGHT_RESULT RESULT_VARIABLE LIGHT_RESULT
) )
IF(LIGHT_RESULT) IF(LIGHT_RESULT)
MESSAGE(FATAL_ERROR "ERROR: can't run light") MESSAGE(FATAL_ERROR "ERROR: can't run light")
ENDIF() ENDIF()
# Switch monolithic install on again # Switch monolithic install on again
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=1 ${CMAKE_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=1 ${CMAKE_BINARY_DIR}
) )
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi" <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<!-- <!--
Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--> -->
<UI Id="WixUI_Mondo_Custom"> <UI Id="WixUI_Mondo_Custom">
<Dialog Id="CustomWelcomeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <Dialog Id="CustomWelcomeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="220" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)"> <Control Id="Next" Type="PushButton" X="220" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">NOT OLDERVERSIONBEINGUPGRADED</Publish> <Publish Event="NewDialog" Value="LicenseAgreementDlg">NOT OLDERVERSIONBEINGUPGRADED</Publish>
<Publish Event="NewDialog" Value="UpgradeDlg">OLDERVERSIONBEINGUPGRADED</Publish> <Publish Event="NewDialog" Value="UpgradeDlg">OLDERVERSIONBEINGUPGRADED</Publish>
</Control> </Control>
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" Disabled="yes" /> <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" Disabled="yes" />
<Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" /> <Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" /> <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
<Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved." /> <Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved." />
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" /> <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
</Dialog> </Dialog>
<Dialog Id="UpgradeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <Dialog Id="UpgradeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="Upgrade"> <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="Upgrade">
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish> <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish> <Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish> <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish> <Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish> <Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)"> <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)">
<Condition Action="default">WixUI_InstallMode = "Remove"</Condition> <Condition Action="default">WixUI_InstallMode = "Remove"</Condition>
</Control> </Control>
<Control Id="InstallTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallTitle)"> <Control Id="InstallTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallTitle)">
<Condition Action="show">NOT Installed</Condition> <Condition Action="show">NOT Installed</Condition>
</Control> </Control>
<Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallText)"> <Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallText)">
<Condition Action="show">NOT Installed</Condition> <Condition Action="show">NOT Installed</Condition>
</Control> </Control>
<Control Id="UpgradeText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="no" NoPrefix="yes" <Control Id="UpgradeText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="no" NoPrefix="yes"
Text="Click Upgrade to upgrade your installation from version [OLDERVERSION] to version [ProductVersion]. Click Cancel to exit the upgrade."/> Text="Click Upgrade to upgrade your installation from version [OLDERVERSION] to version [ProductVersion]. Click Cancel to exit the upgrade."/>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.VerifyReadyDlgBannerBitmap)" /> <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.VerifyReadyDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
</Dialog> </Dialog>
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="Mondo" /> <Property Id="WixUI_Mode" Value="Mondo" />
<DialogRef Id="ErrorDlg" /> <DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" /> <DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" /> <DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" /> <DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" /> <DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" /> <DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" /> <DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" /> <DialogRef Id="UserExit" />
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish> <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">LicenseAccepted = "1"</Publish> <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">LicenseAccepted = "1"</Publish>
<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
<Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" Value="CustomizeDlg">1</Publish> <Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">WixUI_InstallMode = "Change"</Publish> <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">WixUI_InstallMode = "Change"</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish> <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<Publish Dialog="UpgradeDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish> <Publish Dialog="UpgradeDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish>
<InstallUISequence> <InstallUISequence>
<Show Dialog="CustomWelcomeDlg" Before="ProgressDlg">NOT Installed</Show> <Show Dialog="CustomWelcomeDlg" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence> </InstallUISequence>
</UI> </UI>
<UIRef Id="WixUI_Common" /> <UIRef Id="WixUI_Common" />
</Include> </Include>
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi" <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<!-- <!--
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--> -->
<!-- Datafiles that installation will copy to CommonAppData (initial database) <!-- Datafiles that installation will copy to CommonAppData (initial database)
They are declared Permanent and NeverOverwrite since it is user data --> They are declared Permanent and NeverOverwrite since it is user data -->
<DirectoryRef Id='TARGETDIR'> <DirectoryRef Id='TARGETDIR'>
<Directory Id="CommonAppDataFolder"> <Directory Id="CommonAppDataFolder">
<Directory Id="datadir.mysql" Name="MySQL"> <Directory Id="datadir.mysql" Name="MySQL">
<Directory Id="datadir.mysql.mysqlserver" <Directory Id="datadir.mysql.mysqlserver"
Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@"> Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@">
<Directory Id="DATADIR" Name="."> <Directory Id="DATADIR" Name=".">
<Component Id="component.datadir" Guid="d3491319-5dbc-4477-95f3-4f809ef1dd2d"> <Component Id="component.datadir" Guid="d3491319-5dbc-4477-95f3-4f809ef1dd2d">
<CreateFolder> <CreateFolder>
<util:PermissionEx User="[LogonUser]" GenericAll="yes" /> <util:PermissionEx User="[LogonUser]" GenericAll="yes" />
</CreateFolder> </CreateFolder>
</Component> </Component>
<Directory Id="datadir.mysql.mysqlserver.data" Name="data"> <Directory Id="datadir.mysql.mysqlserver.data" Name="data">
<Directory Id="datadir.mysql.mysqlserver.data.mysql" Name="mysql"> <Directory Id="datadir.mysql.mysqlserver.data.mysql" Name="mysql">
<Component Id="component.datadir.mysql" <Component Id="component.datadir.mysql"
Guid="19ec0f1f-1a7f-424e-a788-b09346c0a709" Guid="19ec0f1f-1a7f-424e-a788-b09346c0a709"
Permanent="yes" NeverOverwrite="yes"> Permanent="yes" NeverOverwrite="yes">
<CreateFolder> <CreateFolder>
<util:PermissionEx User="[LogonUser]" GenericAll="yes" /> <util:PermissionEx User="[LogonUser]" GenericAll="yes" />
</CreateFolder> </CreateFolder>
@DATADIR_MYSQL_FILES@ @DATADIR_MYSQL_FILES@
</Component> </Component>
</Directory> </Directory>
<Directory Id="datadir.mysql.mysqlserver.data.performance_schema" <Directory Id="datadir.mysql.mysqlserver.data.performance_schema"
Name="performance_schema"> Name="performance_schema">
<Component Id="component.datadir.performance_schema" <Component Id="component.datadir.performance_schema"
Guid="af2a6776-2655-431f-a748-9e9f4645acc3" Guid="af2a6776-2655-431f-a748-9e9f4645acc3"
Permanent="yes" NeverOverwrite="yes"> Permanent="yes" NeverOverwrite="yes">
<CreateFolder> <CreateFolder>
<util:PermissionEx User="[LogonUser]" GenericAll="yes" /> <util:PermissionEx User="[LogonUser]" GenericAll="yes" />
</CreateFolder> </CreateFolder>
@DATADIR_PERFORMANCE_SCHEMA_FILES@ @DATADIR_PERFORMANCE_SCHEMA_FILES@
</Component> </Component>
</Directory> </Directory>
<Directory Id="datadir.mysql.mysqlserver.data.test" Name="test"> <Directory Id="datadir.mysql.mysqlserver.data.test" Name="test">
<Component Id="component.datadir.test" Guid="52fa9f0a-fcd1-420a-b2ac-95a8f70ad20a"> <Component Id="component.datadir.test" Guid="52fa9f0a-fcd1-420a-b2ac-95a8f70ad20a">
<CreateFolder/> <CreateFolder/>
</Component> </Component>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</DirectoryRef> </DirectoryRef>
<Feature Id='UserEditableDataFiles' <Feature Id='UserEditableDataFiles'
Title='Server data files' Title='Server data files'
Description='Server data files' Description='Server data files'
ConfigurableDirectory='DATADIR' ConfigurableDirectory='DATADIR'
Level='1'> Level='1'>
<ComponentRef Id="component.datadir"/> <ComponentRef Id="component.datadir"/>
<ComponentRef Id="component.datadir.mysql"/> <ComponentRef Id="component.datadir.mysql"/>
<ComponentRef Id="component.datadir.performance_schema"/> <ComponentRef Id="component.datadir.performance_schema"/>
<ComponentRef Id="component.datadir.test"/> <ComponentRef Id="component.datadir.test"/>
</Feature> </Feature>
</Include> </Include>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<!-- <!--
Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--> -->
<Product <Product
Id="*" Id="*"
UpgradeCode="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3" UpgradeCode="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3"
Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@" Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@"
Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@" Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
Language="1033" Language="1033"
Manufacturer="@MANUFACTURER@"> Manufacturer="@MANUFACTURER@">
<Package Id='*' <Package Id='*'
Keywords='Installer' Keywords='Installer'
Description="MySQL Database Server" Description="MySQL Database Server"
Manufacturer='@MANUFACTURER@' Manufacturer='@MANUFACTURER@'
InstallerVersion='200' InstallerVersion='200'
Languages='1033' Languages='1033'
Compressed='yes' Compressed='yes'
SummaryCodepage='1252' SummaryCodepage='1252'
Platform='@Platform@' Platform='@Platform@'
InstallScope="perMachine"/> InstallScope="perMachine"/>
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' /> <Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
<!-- Upgrade --> <!-- Upgrade -->
<Upgrade Id="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3"> <Upgrade Id="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3">
<UpgradeVersion <UpgradeVersion
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0" Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0"
IncludeMinimum="yes" IncludeMinimum="yes"
Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@" Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
IncludeMaximum="yes" IncludeMaximum="yes"
Property="OLDERVERSIONBEINGUPGRADED" Property="OLDERVERSIONBEINGUPGRADED"
MigrateFeatures="yes" MigrateFeatures="yes"
/> />
<UpgradeVersion <UpgradeVersion
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@" Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
IncludeMinimum="no" IncludeMinimum="no"
OnlyDetect="yes" OnlyDetect="yes"
Property="NEWERVERSIONDETECTED" /> Property="NEWERVERSIONDETECTED" />
</Upgrade> </Upgrade>
<Condition Message="A later version of [ProductName] is already installed. Setup will now exit."> <Condition Message="A later version of [ProductName] is already installed. Setup will now exit.">
NOT NEWERVERSIONDETECTED OR Installed NOT NEWERVERSIONDETECTED OR Installed
</Condition> </Condition>
<InstallExecuteSequence> <InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/> <RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence> </InstallExecuteSequence>
<!-- Save/restore install location --> <!-- Save/restore install location -->
<CustomAction Id="SaveTargetDir" Property="ARPINSTALLLOCATION" Value="[INSTALLDIR]" /> <CustomAction Id="SaveTargetDir" Property="ARPINSTALLLOCATION" Value="[INSTALLDIR]" />
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="SaveTargetDir" After="InstallValidate"> <Custom Action="SaveTargetDir" After="InstallValidate">
NOT NOT
Installed Installed
</Custom> </Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<InstallUISequence> <InstallUISequence>
<!-- App search is what does FindInstallLocation, and it is dependent on FindRelatedProducts --> <!-- App search is what does FindInstallLocation, and it is dependent on FindRelatedProducts -->
<AppSearch After="FindRelatedProducts"/> <AppSearch After="FindRelatedProducts"/>
</InstallUISequence> </InstallUISequence>
<!-- Find previous installation --> <!-- Find previous installation -->
<Property Id="INSTALLDIR"> <Property Id="INSTALLDIR">
<RegistrySearch Id="FindInstallLocation" <RegistrySearch Id="FindInstallLocation"
Root="HKLM" Root="HKLM"
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
Name="InstallLocation" Name="InstallLocation"
Type="raw" /> Type="raw" />
</Property> </Property>
<?if @Platform@ != "x64" ?> <?if @Platform@ != "x64" ?>
<Property Id="OLDERVERSION"> <Property Id="OLDERVERSION">
<RegistrySearch Id="FindOlderVersion" <RegistrySearch Id="FindOlderVersion"
Root="HKLM" Root="HKLM"
Win64 = "no" Win64 = "no"
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
Name="DisplayVersion" Name="DisplayVersion"
Type="raw" /> Type="raw" />
</Property> </Property>
<?else ?> <?else ?>
<Property Id="OLDERVERSION"> <Property Id="OLDERVERSION">
<RegistrySearch Id="FindOlderVersion" <RegistrySearch Id="FindOlderVersion"
Root="HKLM" Root="HKLM"
Win64 = "yes" Win64 = "yes"
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
Name="DisplayVersion" Name="DisplayVersion"
Type="raw" /> Type="raw" />
</Property> </Property>
<?endif ?> <?endif ?>
<Property Id="DATADIR"> <Property Id="DATADIR">
<RegistrySearch Id="FindDataDir" <RegistrySearch Id="FindDataDir"
Root="HKLM" Root="HKLM"
Key="SOFTWARE\MySQL AB\[ProductName]" Key="SOFTWARE\MySQL AB\[ProductName]"
Name="DataLocation" Name="DataLocation"
Type="raw" /> Type="raw" />
</Property> </Property>
<Property Id="INSTALLDIR2"> <Property Id="INSTALLDIR2">
<RegistrySearch Id="FindInstallLocation2" <RegistrySearch Id="FindInstallLocation2"
Root="HKLM" Root="HKLM"
Key="SOFTWARE\MySQL AB\[ProductName]" Key="SOFTWARE\MySQL AB\[ProductName]"
Name="Location" Name="Location"
Type="raw" /> Type="raw" />
</Property> </Property>
<CustomAction Id="SetInstallDir2" Property="INSTALLDIR" Value="[INSTALLDIR2]" /> <CustomAction Id="SetInstallDir2" Property="INSTALLDIR" Value="[INSTALLDIR2]" />
<InstallUISequence> <InstallUISequence>
<Custom Action="SetInstallDir2" After="AppSearch">INSTALLDIR2</Custom> <Custom Action="SetInstallDir2" After="AppSearch">INSTALLDIR2</Custom>
</InstallUISequence> </InstallUISequence>
<!-- UI --> <!-- UI -->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
<UIRef Id="@CPACK_WIX_UI@" /> <UIRef Id="@CPACK_WIX_UI@" />
<UIRef Id="WixUI_ErrorProgressText" /> <UIRef Id="WixUI_ErrorProgressText" />
<WixVariable <WixVariable
Id="WixUIBannerBmp" Id="WixUIBannerBmp"
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminHeader.jpg" /> Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminHeader.jpg" />
<WixVariable <WixVariable
Id="WixUIDialogBmp" Id="WixUIDialogBmp"
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminBackground.jpg" /> Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminBackground.jpg" />
<Icon <Icon
Id="icon.ico" Id="icon.ico"
SourceFile="@CMAKE_CURRENT_SOURCE_DIR@/MySQLServer.ico"/> SourceFile="@CMAKE_CURRENT_SOURCE_DIR@/MySQLServer.ico"/>
<Property <Property
Id="ARPPRODUCTICON" Id="ARPPRODUCTICON"
Value="icon.ico" /> Value="icon.ico" />
<!-- License --> <!-- License -->
<WixVariable <WixVariable
Id="WixUILicenseRtf" Id="WixUILicenseRtf"
Value="@COPYING_RTF@"/> Value="@COPYING_RTF@"/>
<!-- How to remove the service on uninstall --> <!-- How to remove the service on uninstall -->
<Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' /> <Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
<CustomAction Id="UnregisterProperty" Property="UnregisterService" Value="[INSTALLDIR]" Return="check" /> <CustomAction Id="UnregisterProperty" Property="UnregisterService" Value="[INSTALLDIR]" Return="check" />
<CustomAction Id="UnregisterPropertySilent" Property="UnregisterServiceSilently" Value="[INSTALLDIR]" Return="check" /> <CustomAction Id="UnregisterPropertySilent" Property="UnregisterServiceSilently" Value="[INSTALLDIR]" Return="check" />
<CustomAction Id="UnregisterService" <CustomAction Id="UnregisterService"
BinaryKey="wixca.dll" BinaryKey="wixca.dll"
DllEntry="RemoveService" DllEntry="RemoveService"
Execute="deferred" Execute="deferred"
Impersonate="no" Impersonate="no"
Return="check" /> Return="check" />
<CustomAction Id="UnregisterServiceSilently" <CustomAction Id="UnregisterServiceSilently"
BinaryKey="wixca.dll" BinaryKey="wixca.dll"
DllEntry="RemoveServiceNoninteractive" DllEntry="RemoveServiceNoninteractive"
Execute="deferred" Execute="deferred"
Impersonate="no" Impersonate="no"
Return="check" /> Return="check" />
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="UnregisterProperty" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom> <Custom Action="UnregisterProperty" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom>
<Custom Action="UnregisterPropertySilent" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom> <Custom Action="UnregisterPropertySilent" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom>
<Custom Action="UnregisterService" After="UnregisterProperty">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel&gt;4</Custom> <Custom Action="UnregisterService" After="UnregisterProperty">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel&gt;4</Custom>
<Custom Action="UnregisterServiceSilently" After="UnregisterPropertySilent">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel&lt;=4</Custom> <Custom Action="UnregisterServiceSilently" After="UnregisterPropertySilent">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel&lt;=4</Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<!-- Installation root--> <!-- Installation root-->
<Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='@PlatformProgramFilesFolder@'> <Directory Id='@PlatformProgramFilesFolder@'>
<Directory Id='directory.MySQL' Name='MySQL'> <Directory Id='directory.MySQL' Name='MySQL'>
<Directory Id='INSTALLDIR' Name='MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@'> <Directory Id='INSTALLDIR' Name='MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@'>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
<!-- CPACK_WIX_FEATURES --> <!-- CPACK_WIX_FEATURES -->
@CPACK_WIX_FEATURES@ @CPACK_WIX_FEATURES@
<!-- CPACK_WIX_DIRECTORIES --> <!-- CPACK_WIX_DIRECTORIES -->
@CPACK_WIX_DIRECTORIES@ @CPACK_WIX_DIRECTORIES@
<!--CPACK_WIX_COMPONENTS--> <!--CPACK_WIX_COMPONENTS-->
@CPACK_WIX_COMPONENTS@ @CPACK_WIX_COMPONENTS@
<!--CPACK_WIX_COMPONENTS_GROUPS --> <!--CPACK_WIX_COMPONENTS_GROUPS -->
@CPACK_WIX_COMPONENT_GROUPS@ @CPACK_WIX_COMPONENT_GROUPS@
<!--CPACK_WIX_INCLUDES --> <!--CPACK_WIX_INCLUDES -->
@CPACK_WIX_INCLUDES@ @CPACK_WIX_INCLUDES@
</Product> </Product>
</Wix> </Wix>
#This file is automaticly generated by crash-me 1.37 #This file is automaticly generated by crash-me 1.37
NEG=yes # update of column= -column NEG=yes # update of column= -column
alter_add_col=yes # Alter table add column alter_add_col=yes # Alter table add column
alter_add_multi_col=without add # Alter table add many columns alter_add_multi_col=without add # Alter table add many columns
alter_alter_col=no # Alter table alter column alter_alter_col=no # Alter table alter column
alter_change_col=no # Alter table change column alter_change_col=no # Alter table change column
alter_drop_col=yes # Alter table drop column alter_drop_col=yes # Alter table drop column
alter_modify_col=no # Alter table modify column alter_modify_col=no # Alter table modify column
alter_rename_table=no # Alter table rename table alter_rename_table=no # Alter table rename table
atomic_updates=no # atomic updates atomic_updates=no # atomic updates
binary_items=yes # binary items (0x41) binary_items=yes # binary items (0x41)
case_insensitive_strings=yes # case insensitive compare case_insensitive_strings=yes # case insensitive compare
char_is_space_filled=no # char are space filled char_is_space_filled=no # char are space filled
column_alias=yes # Column alias column_alias=yes # Column alias
columns_in_group_by=11 # number of columns in group by columns_in_group_by=11 # number of columns in group by
columns_in_order_by=11 # number of columns in order by columns_in_order_by=11 # number of columns in order by
comment_#=no # # as comment comment_#=no # # as comment
comment_--=no # -- as comment comment_--=no # -- as comment
comment_/**/=no # /* */ as comment comment_/**/=no # /* */ as comment
comment_//=no # // as comment comment_//=no # // as comment
compute=no # Compute compute=no # Compute
connections=64 # Simultaneous connections connections=64 # Simultaneous connections
constraint_check=no # CHECK constraint constraint_check=no # CHECK constraint
constraint_null=yes # NULL constraint (SyBase style) constraint_null=yes # NULL constraint (SyBase style)
crash_me_safe=no # crash me safe crash_me_safe=no # crash me safe
crash_me_version=1.37 # crash me version crash_me_version=1.37 # crash me version
create_default=no # default value for column create_default=no # default value for column
create_default_func=no # default value function for column create_default_func=no # default value function for column
create_if_not_exists=no # create table if not exists create_if_not_exists=no # create table if not exists
create_index=yes # create index create_index=yes # create index
create_table_select=no # create table from select create_table_select=no # create table from select
cross_join=no # cross join (same as from a,b) cross_join=no # cross join (same as from a,b)
date_as_string=error # String functions on date columns date_as_string=error # String functions on date columns
date_with_YY=yes # Supports YY-MM-DD 2000 compilant dates date_with_YY=yes # Supports YY-MM-DD 2000 compilant dates
date_zero=no # Supports 0000-00-00 dates date_zero=no # Supports 0000-00-00 dates
double_quotes=yes # Double '' as ' in strings double_quotes=yes # Double '' as ' in strings
drop_if_exists=no # drop table if exists drop_if_exists=no # drop table if exists
drop_index=with 'ON' # drop index drop_index=with 'ON' # drop index
end_colon=yes # allows end ';' end_colon=yes # allows end ';'
except=no # except except=no # except
except_all=no # except all except_all=no # except all
float_int_expr=yes # mixing of integer and float in expression float_int_expr=yes # mixing of integer and float in expression
foreign_key_syntax=no # foreign key syntax foreign_key_syntax=no # foreign key syntax
full_outer_join=no # full outer join full_outer_join=no # full outer join
func_extra_!=no # Function NOT as '!' in SELECT func_extra_!=no # Function NOT as '!' in SELECT
func_extra_%=no # Function MOD as % func_extra_%=no # Function MOD as %
func_extra_&=error # Function & (bitwise and) func_extra_&=error # Function & (bitwise and)
func_extra_&&=no # Function AND as '&&' func_extra_&&=no # Function AND as '&&'
func_extra_<>=yes # Function <> in SELECT func_extra_<>=yes # Function <> in SELECT
func_extra_==yes # Function = func_extra_==yes # Function =
func_extra_add_months=no # Function ADD_MONTHS func_extra_add_months=no # Function ADD_MONTHS
func_extra_and_or=yes # Function AND and OR in SELECT func_extra_and_or=yes # Function AND and OR in SELECT
func_extra_atn2=no # Function ATN2 func_extra_atn2=no # Function ATN2
func_extra_auto_num2string=no # Function automatic num->string convert func_extra_auto_num2string=no # Function automatic num->string convert
func_extra_auto_string2num=yes # Function automatic string->num convert func_extra_auto_string2num=yes # Function automatic string->num convert
func_extra_between=yes # Function BETWEEN in SELECT func_extra_between=yes # Function BETWEEN in SELECT
func_extra_binary_shifts=no # Function << and >> (bitwise shifts) func_extra_binary_shifts=no # Function << and >> (bitwise shifts)
func_extra_bit_count=no # Function BIT_COUNT func_extra_bit_count=no # Function BIT_COUNT
func_extra_ceil=no # Function CEIL func_extra_ceil=no # Function CEIL
func_extra_charindex=no # Function CHARINDEX func_extra_charindex=no # Function CHARINDEX
func_extra_chr=yes # Function CHR func_extra_chr=yes # Function CHR
func_extra_coalesce=no # Function COALESCE func_extra_coalesce=no # Function COALESCE
func_extra_concat_as_+=yes # Function concatenation with + func_extra_concat_as_+=yes # Function concatenation with +
func_extra_concat_list=no # Function CONCAT(list) func_extra_concat_list=no # Function CONCAT(list)
func_extra_convert=no # Function CONVERT func_extra_convert=no # Function CONVERT
func_extra_cosh=no # Function COSH func_extra_cosh=no # Function COSH
func_extra_date_format=no # Function DATE_FORMAT func_extra_date_format=no # Function DATE_FORMAT
func_extra_dateadd=no # Function DATEADD func_extra_dateadd=no # Function DATEADD
func_extra_datediff=no # Function DATEDIFF func_extra_datediff=no # Function DATEDIFF
func_extra_datename=no # Function DATENAME func_extra_datename=no # Function DATENAME
func_extra_datepart=no # Function DATEPART func_extra_datepart=no # Function DATEPART
func_extra_elt=no # Function ELT func_extra_elt=no # Function ELT
func_extra_encrypt=no # Function ENCRYPT func_extra_encrypt=no # Function ENCRYPT
func_extra_field=no # Function FIELD func_extra_field=no # Function FIELD
func_extra_format=error # Function FORMAT func_extra_format=error # Function FORMAT
func_extra_from_days=no # Function FROM_DAYS func_extra_from_days=no # Function FROM_DAYS
func_extra_from_unixtime=no # Function FROM_UNIXTIME func_extra_from_unixtime=no # Function FROM_UNIXTIME
func_extra_getdate=no # Function GETDATE func_extra_getdate=no # Function GETDATE
func_extra_greatest=no # Function GREATEST func_extra_greatest=no # Function GREATEST
func_extra_if=no # Function IF func_extra_if=no # Function IF
func_extra_in_num=yes # Function IN on numbers in SELECT func_extra_in_num=yes # Function IN on numbers in SELECT
func_extra_in_str=yes # Function IN on strings in SELECT func_extra_in_str=yes # Function IN on strings in SELECT
func_extra_initcap=no # Function INITCAP func_extra_initcap=no # Function INITCAP
func_extra_instr=yes # Function LOCATE as INSTR func_extra_instr=yes # Function LOCATE as INSTR
func_extra_instr_oracle=no # Function INSTR (Oracle syntax) func_extra_instr_oracle=no # Function INSTR (Oracle syntax)
func_extra_instrb=no # Function INSTRB func_extra_instrb=no # Function INSTRB
func_extra_interval=no # Function INTERVAL func_extra_interval=no # Function INTERVAL
func_extra_last_day=no # Function LAST_DAY func_extra_last_day=no # Function LAST_DAY
func_extra_last_insert_id=no # Function LAST_INSERT_ID func_extra_last_insert_id=no # Function LAST_INSERT_ID
func_extra_least=no # Function LEAST func_extra_least=no # Function LEAST
func_extra_lengthb=no # Function LENGTHB func_extra_lengthb=no # Function LENGTHB
func_extra_like=yes # Function LIKE in SELECT func_extra_like=yes # Function LIKE in SELECT
func_extra_like_escape=no # Function LIKE ESCAPE in SELECT func_extra_like_escape=no # Function LIKE ESCAPE in SELECT
func_extra_ln=no # Function LN func_extra_ln=no # Function LN
func_extra_log(m_n)=no # Function LOG(m,n) func_extra_log(m_n)=no # Function LOG(m,n)
func_extra_logn=no # Function LOGN func_extra_logn=no # Function LOGN
func_extra_lpad=no # Function LPAD func_extra_lpad=no # Function LPAD
func_extra_mdy=no # Function MDY func_extra_mdy=no # Function MDY
func_extra_mid=yes # Function SUBSTRING as MID func_extra_mid=yes # Function SUBSTRING as MID
func_extra_months_between=no # Function MONTHS_BETWEEN func_extra_months_between=no # Function MONTHS_BETWEEN
func_extra_not=yes # Function NOT in SELECT func_extra_not=yes # Function NOT in SELECT
func_extra_not_between=yes # Function NOT BETWEEN in SELECT func_extra_not_between=yes # Function NOT BETWEEN in SELECT
func_extra_not_like=yes # Function NOT LIKE in SELECT func_extra_not_like=yes # Function NOT LIKE in SELECT
func_extra_odbc_convert=no # Function ODBC CONVERT func_extra_odbc_convert=no # Function ODBC CONVERT
func_extra_password=no # Function PASSWORD func_extra_password=no # Function PASSWORD
func_extra_patindex=no # Function PATINDEX func_extra_patindex=no # Function PATINDEX
func_extra_period_add=no # Function PERIOD_ADD func_extra_period_add=no # Function PERIOD_ADD
func_extra_period_diff=no # Function PERIOD_DIFF func_extra_period_diff=no # Function PERIOD_DIFF
func_extra_pow=no # Function POW func_extra_pow=no # Function POW
func_extra_range=no # Function RANGE func_extra_range=no # Function RANGE
func_extra_regexp=no # Function REGEXP in SELECT func_extra_regexp=no # Function REGEXP in SELECT
func_extra_replicate=no # Function REPLICATE func_extra_replicate=no # Function REPLICATE
func_extra_reverse=no # Function REVERSE func_extra_reverse=no # Function REVERSE
func_extra_root=no # Function ROOT func_extra_root=no # Function ROOT
func_extra_round1=yes # Function ROUND(1 arg) func_extra_round1=yes # Function ROUND(1 arg)
func_extra_rpad=no # Function RPAD func_extra_rpad=no # Function RPAD
func_extra_sec_to_time=no # Function SEC_TO_TIME func_extra_sec_to_time=no # Function SEC_TO_TIME
func_extra_sinh=no # Function SINH func_extra_sinh=no # Function SINH
func_extra_str=no # Function STR func_extra_str=no # Function STR
func_extra_strcmp=no # Function STRCMP func_extra_strcmp=no # Function STRCMP
func_extra_stuff=no # Function STUFF func_extra_stuff=no # Function STUFF
func_extra_substrb=no # Function SUBSTRB func_extra_substrb=no # Function SUBSTRB
func_extra_substring_index=no # Function SUBSTRING_INDEX func_extra_substring_index=no # Function SUBSTRING_INDEX
func_extra_sysdate=no # Function SYSDATE func_extra_sysdate=no # Function SYSDATE
func_extra_tanh=no # Function TANH func_extra_tanh=no # Function TANH
func_extra_time_to_sec=no # Function TIME_TO_SEC func_extra_time_to_sec=no # Function TIME_TO_SEC
func_extra_to_days=no # Function TO_DAYS func_extra_to_days=no # Function TO_DAYS
func_extra_translate=no # Function TRANSLATE func_extra_translate=no # Function TRANSLATE
func_extra_trim_many_char=no # Function TRIM; Many char extension func_extra_trim_many_char=no # Function TRIM; Many char extension
func_extra_trim_substring=no # Function TRIM; Substring extension func_extra_trim_substring=no # Function TRIM; Substring extension
func_extra_trunc=no # Function TRUNC func_extra_trunc=no # Function TRUNC
func_extra_uid=no # Function UID func_extra_uid=no # Function UID
func_extra_unix_timestamp=no # Function UNIX_TIMESTAMP func_extra_unix_timestamp=no # Function UNIX_TIMESTAMP
func_extra_userenv=no # Function USERENV func_extra_userenv=no # Function USERENV
func_extra_version=no # Function VERSION func_extra_version=no # Function VERSION
func_extra_weekday=error # Function WEEKDAY func_extra_weekday=error # Function WEEKDAY
func_extra_|=no # Function | (bitwise or) func_extra_|=no # Function | (bitwise or)
func_extra_||=no # Function OR as '||' func_extra_||=no # Function OR as '||'
func_odbc_abs=yes # Function ABS func_odbc_abs=yes # Function ABS
func_odbc_acos=no # Function ACOS func_odbc_acos=no # Function ACOS
func_odbc_ascii=no # Function ASCII func_odbc_ascii=no # Function ASCII
func_odbc_asin=no # Function ASIN func_odbc_asin=no # Function ASIN
func_odbc_atan=no # Function ATAN func_odbc_atan=no # Function ATAN
func_odbc_atan2=no # Function ATAN2 func_odbc_atan2=no # Function ATAN2
func_odbc_ceiling=no # Function CEILING func_odbc_ceiling=no # Function CEILING
func_odbc_char=no # Function CHAR func_odbc_char=no # Function CHAR
func_odbc_concat=no # Function CONCAT(2 arg) func_odbc_concat=no # Function CONCAT(2 arg)
func_odbc_cos=yes # Function COS func_odbc_cos=yes # Function COS
func_odbc_cot=no # Function COT func_odbc_cot=no # Function COT
func_odbc_curdate=no # Function CURDATE func_odbc_curdate=no # Function CURDATE
func_odbc_curtime=no # Function CURTIME func_odbc_curtime=no # Function CURTIME
func_odbc_database=no # Function DATABASE func_odbc_database=no # Function DATABASE
func_odbc_dayname=no # Function DAYNAME func_odbc_dayname=no # Function DAYNAME
func_odbc_dayofmonth=no # Function DAYOFMONTH func_odbc_dayofmonth=no # Function DAYOFMONTH
func_odbc_dayofweek=no # Function DAYOFWEEK func_odbc_dayofweek=no # Function DAYOFWEEK
func_odbc_dayofyear=no # Function DAYOFYEAR func_odbc_dayofyear=no # Function DAYOFYEAR
func_odbc_degrees=no # Function DEGREES func_odbc_degrees=no # Function DEGREES
func_odbc_difference=no # Function DIFFERENCE() func_odbc_difference=no # Function DIFFERENCE()
func_odbc_exp=yes # Function EXP func_odbc_exp=yes # Function EXP
func_odbc_extract=no # Function EXTRACT func_odbc_extract=no # Function EXTRACT
func_odbc_floor=no # Function FLOOR func_odbc_floor=no # Function FLOOR
func_odbc_fn_left=yes # Function ODBC syntax LEFT & RIGHT func_odbc_fn_left=yes # Function ODBC syntax LEFT & RIGHT
func_odbc_hour=yes # Function HOUR func_odbc_hour=yes # Function HOUR
func_odbc_hour_time=no # Function ANSI HOUR func_odbc_hour_time=no # Function ANSI HOUR
func_odbc_ifnull=no # Function IFNULL func_odbc_ifnull=no # Function IFNULL
func_odbc_insert=no # Function INSERT func_odbc_insert=no # Function INSERT
func_odbc_lcase=yes # Function LCASE func_odbc_lcase=yes # Function LCASE
func_odbc_left=yes # Function LEFT func_odbc_left=yes # Function LEFT
func_odbc_length=no # Function REAL LENGTH func_odbc_length=no # Function REAL LENGTH
func_odbc_length_without_space=no # Function ODBC LENGTH func_odbc_length_without_space=no # Function ODBC LENGTH
func_odbc_locate_2=no # Function LOCATE(2 arg) func_odbc_locate_2=no # Function LOCATE(2 arg)
func_odbc_locate_3=no # Function LOCATE(3 arg) func_odbc_locate_3=no # Function LOCATE(3 arg)
func_odbc_log=yes # Function LOG func_odbc_log=yes # Function LOG
func_odbc_log10=no # Function LOG10 func_odbc_log10=no # Function LOG10
func_odbc_ltrim=yes # Function LTRIM func_odbc_ltrim=yes # Function LTRIM
func_odbc_minute=yes # Function MINUTE func_odbc_minute=yes # Function MINUTE
func_odbc_mod=no # Function MOD func_odbc_mod=no # Function MOD
func_odbc_month=yes # Function MONTH func_odbc_month=yes # Function MONTH
func_odbc_monthname=no # Function MONTHNAME func_odbc_monthname=no # Function MONTHNAME
func_odbc_now=yes # Function NOW func_odbc_now=yes # Function NOW
func_odbc_pi=no # Function PI func_odbc_pi=no # Function PI
func_odbc_power=no # Function POWER func_odbc_power=no # Function POWER
func_odbc_quarter=no # Function QUARTER func_odbc_quarter=no # Function QUARTER
func_odbc_radians=no # Function RADIANS func_odbc_radians=no # Function RADIANS
func_odbc_rand=no # Function RAND func_odbc_rand=no # Function RAND
func_odbc_repeat=no # Function REPEAT func_odbc_repeat=no # Function REPEAT
func_odbc_replace=no # Function REPLACE func_odbc_replace=no # Function REPLACE
func_odbc_right=yes # Function RIGHT func_odbc_right=yes # Function RIGHT
func_odbc_round=yes # Function ROUND(2 arg) func_odbc_round=yes # Function ROUND(2 arg)
func_odbc_rtrim=yes # Function RTRIM func_odbc_rtrim=yes # Function RTRIM
func_odbc_second=yes # Function SECOND func_odbc_second=yes # Function SECOND
func_odbc_sign=no # Function SIGN func_odbc_sign=no # Function SIGN
func_odbc_sin=yes # Function SIN func_odbc_sin=yes # Function SIN
func_odbc_soundex=no # Function SOUNDEX func_odbc_soundex=no # Function SOUNDEX
func_odbc_space=yes # Function SPACE func_odbc_space=yes # Function SPACE
func_odbc_sqrt=no # Function SQRT func_odbc_sqrt=no # Function SQRT
func_odbc_substring=no # Function ODBC SUBSTRING func_odbc_substring=no # Function ODBC SUBSTRING
func_odbc_tan=yes # Function TAN func_odbc_tan=yes # Function TAN
func_odbc_timestampadd=no # Function TIMESTAMPADD func_odbc_timestampadd=no # Function TIMESTAMPADD
func_odbc_timestampdiff=no # Function TIMESTAMPDIFF func_odbc_timestampdiff=no # Function TIMESTAMPDIFF
func_odbc_truncate=no # Function TRUNCATE func_odbc_truncate=no # Function TRUNCATE
func_odbc_ucase=yes # Function UCASE func_odbc_ucase=yes # Function UCASE
func_odbc_user()=no # Function USER() func_odbc_user()=no # Function USER()
func_odbc_week=no # Function WEEK func_odbc_week=no # Function WEEK
func_odbc_year=yes # Function YEAR func_odbc_year=yes # Function YEAR
func_sql_+=yes # Function +, -, * and / func_sql_+=yes # Function +, -, * and /
func_sql_bit_length=no # Function BIT_LENGTH func_sql_bit_length=no # Function BIT_LENGTH
func_sql_case=no # Function CASE func_sql_case=no # Function CASE
func_sql_cast=no # Function CAST func_sql_cast=no # Function CAST
func_sql_char_length=no # Function CHAR_LENGTH func_sql_char_length=no # Function CHAR_LENGTH
func_sql_char_length(constant)=no # Function CHAR_LENGTH(constant) func_sql_char_length(constant)=no # Function CHAR_LENGTH(constant)
func_sql_character_length=no # Function CHARACTER_LENGTH func_sql_character_length=no # Function CHARACTER_LENGTH
func_sql_concat_as_||=no # Function concatenation with || func_sql_concat_as_||=no # Function concatenation with ||
func_sql_current_date=no # Function CURRENT_DATE func_sql_current_date=no # Function CURRENT_DATE
func_sql_current_time=no # Function CURRENT_TIME func_sql_current_time=no # Function CURRENT_TIME
func_sql_current_timestamp=no # Function CURRENT_TIMESTAMP func_sql_current_timestamp=no # Function CURRENT_TIMESTAMP
func_sql_current_user=no # Function CURRENT_USER func_sql_current_user=no # Function CURRENT_USER
func_sql_lower=no # Function LOWER func_sql_lower=no # Function LOWER
func_sql_octet_length=no # Function OCTET_LENGTH func_sql_octet_length=no # Function OCTET_LENGTH
func_sql_position=no # Function POSITION func_sql_position=no # Function POSITION
func_sql_session_user=no # Function SESSION_USER func_sql_session_user=no # Function SESSION_USER
func_sql_substring=no # Function ANSI SQL SUBSTRING func_sql_substring=no # Function ANSI SQL SUBSTRING
func_sql_system_user=no # Function SYSTEM_USER func_sql_system_user=no # Function SYSTEM_USER
func_sql_trim=no # Function TRIM func_sql_trim=no # Function TRIM
func_sql_upper=no # Function UPPER func_sql_upper=no # Function UPPER
func_sql_user=no # Function USER func_sql_user=no # Function USER
func_where_between=yes # Function BETWEEN func_where_between=yes # Function BETWEEN
func_where_eq_all=yes # Function = ALL func_where_eq_all=yes # Function = ALL
func_where_eq_any=yes # Function = ANY func_where_eq_any=yes # Function = ANY
func_where_eq_some=yes # Function = SOME func_where_eq_some=yes # Function = SOME
func_where_exists=yes # Function EXISTS func_where_exists=yes # Function EXISTS
func_where_in_num=yes # Function IN on numbers func_where_in_num=yes # Function IN on numbers
func_where_like=yes # Function LIKE func_where_like=yes # Function LIKE
func_where_like_escape=no # Function LIKE ESCAPE func_where_like_escape=no # Function LIKE ESCAPE
func_where_match=no # Function MATCH func_where_match=no # Function MATCH
func_where_match_unique=no # Function MATCH UNIQUE func_where_match_unique=no # Function MATCH UNIQUE
func_where_matches=no # Function MATCHES func_where_matches=no # Function MATCHES
func_where_not_between=yes # Function NOT BETWEEN func_where_not_between=yes # Function NOT BETWEEN
func_where_not_exists=yes # Function NOT EXISTS func_where_not_exists=yes # Function NOT EXISTS
func_where_not_like=yes # Function NOT LIKE func_where_not_like=yes # Function NOT LIKE
func_where_not_unique=no # Function NOT UNIQUE func_where_not_unique=no # Function NOT UNIQUE
func_where_unique=no # Function UNIQUE func_where_unique=no # Function UNIQUE
functions=yes # Functions functions=yes # Functions
group_by=yes # Group by group_by=yes # Group by
group_by_alias=no # Group by alias group_by_alias=no # Group by alias
group_by_null=yes # group on column with null values group_by_null=yes # group on column with null values
group_by_position=no # Group by position group_by_position=no # Group by position
group_distinct_functions=no # Group functions with distinct group_distinct_functions=no # Group functions with distinct
group_func_extra_bit_and=no # Group function BIT_AND group_func_extra_bit_and=no # Group function BIT_AND
group_func_extra_bit_or=no # Group function BIT_OR group_func_extra_bit_or=no # Group function BIT_OR
group_func_extra_count_distinct_list=no # Group function COUNT(DISTINCT expr,expr,...) group_func_extra_count_distinct_list=no # Group function COUNT(DISTINCT expr,expr,...)
group_func_extra_std=no # Group function STD group_func_extra_std=no # Group function STD
group_func_extra_stddev=no # Group function STDDEV group_func_extra_stddev=no # Group function STDDEV
group_func_extra_variance=no # Group function VARIANCE group_func_extra_variance=no # Group function VARIANCE
group_func_sql_avg=yes # Group function AVG group_func_sql_avg=yes # Group function AVG
group_func_sql_count_*=yes # Group function COUNT (*) group_func_sql_count_*=yes # Group function COUNT (*)
group_func_sql_count_column=yes # Group function COUNT column name group_func_sql_count_column=yes # Group function COUNT column name
group_func_sql_count_distinct=no # Group function COUNT(DISTINCT expr) group_func_sql_count_distinct=no # Group function COUNT(DISTINCT expr)
group_func_sql_max=yes # Group function MAX on numbers group_func_sql_max=yes # Group function MAX on numbers
group_func_sql_max_str=yes # Group function MAX on strings group_func_sql_max_str=yes # Group function MAX on strings
group_func_sql_min=yes # Group function MIN on numbers group_func_sql_min=yes # Group function MIN on numbers
group_func_sql_min_str=yes # Group function MIN on strings group_func_sql_min_str=yes # Group function MIN on strings
group_func_sql_sum=yes # Group function SUM group_func_sql_sum=yes # Group function SUM
group_functions=yes # Group functions group_functions=yes # Group functions
having=yes # Having having=yes # Having
having_with_alias=no # Having on alias having_with_alias=no # Having on alias
having_with_group=yes # Having with group function having_with_group=yes # Having with group function
ignore_end_space=yes # ignore end space in compare ignore_end_space=yes # ignore end space in compare
index_in_create=no # index in create table index_in_create=no # index in create table
index_namespace=yes # different namespace for index index_namespace=yes # different namespace for index
index_parts=no # index on column part (extension) index_parts=no # index on column part (extension)
insert_empty_string=yes # insert empty string insert_empty_string=yes # insert empty string
insert_select=no # insert INTO ... SELECT ... insert_select=no # insert INTO ... SELECT ...
insert_with_set=no # INSERT with set syntax insert_with_set=no # INSERT with set syntax
intersect=no # intersect intersect=no # intersect
intersect_all=no # intersect all intersect_all=no # intersect all
join_tables=32 # tables in join join_tables=32 # tables in join
left_outer_join=yes # left outer join left_outer_join=yes # left outer join
left_outer_join_using=no # left outer join using left_outer_join_using=no # left outer join using
like_with_column=yes # column LIKE column like_with_column=yes # column LIKE column
like_with_number=yes # LIKE on numbers like_with_number=yes # LIKE on numbers
lock_tables=no # lock table lock_tables=no # lock table
logical_value=-1 # Value of logical operation (1=1) logical_value=-1 # Value of logical operation (1=1)
max_big_expressions=1 # big expressions max_big_expressions=1 # big expressions
max_char_size=255 # max char() size max_char_size=255 # max char() size
max_column_name=59 # column name length max_column_name=59 # column name length
max_columns=255 # Columns in table max_columns=255 # Columns in table
max_conditions=97 # OR and AND in WHERE max_conditions=97 # OR and AND in WHERE
max_expressions=+10000 # simple expressions max_expressions=+10000 # simple expressions
max_index=32 # max index max_index=32 # max index
max_index_length=2026 # index length max_index_length=2026 # index length
max_index_name=64 # index name length max_index_name=64 # index name length
max_index_part_length=255 # max index part length max_index_part_length=255 # max index part length
max_index_parts=10 # index parts max_index_parts=10 # index parts
max_index_varchar_part_length=85 # index varchar part length max_index_varchar_part_length=85 # index varchar part length
max_row_length=2025 # max table row length (without blobs) max_row_length=2025 # max table row length (without blobs)
max_row_length_with_null=2025 # table row length with nulls (without blobs) max_row_length_with_null=2025 # table row length with nulls (without blobs)
max_select_alias_name=64 # select alias name length max_select_alias_name=64 # select alias name length
max_stack_expression=14 # stacked expressions max_stack_expression=14 # stacked expressions
max_table_alias_name=253 # table alias name length max_table_alias_name=253 # table alias name length
max_table_name=64 # table name length max_table_name=64 # table name length
max_text_size=17 # max text or blob size max_text_size=17 # max text or blob size
max_unique_index=32 # unique indexes max_unique_index=32 # unique indexes
max_varchar_size=85 # max varchar() size max_varchar_size=85 # max varchar() size
minus=no # minus minus=no # minus
minus_neg=yes # Calculate 1--1 minus_neg=yes # Calculate 1--1
multi_drop=yes # many tables to drop table multi_drop=yes # many tables to drop table
multi_strings=no # Multiple line strings multi_strings=no # Multiple line strings
multi_table_delete=yes # DELETE FROM table1,table2... multi_table_delete=yes # DELETE FROM table1,table2...
multi_table_update=yes # Update with many tables multi_table_update=yes # Update with many tables
insert_multi_value=no # Value lists in INSERT insert_multi_value=no # Value lists in INSERT
natural_join=no # natural join natural_join=no # natural join
natural_left_outer_join=no # natural left outer join natural_left_outer_join=no # natural left outer join
no_primary_key=yes # Tables without primary key no_primary_key=yes # Tables without primary key
null_in_index=yes # null in index null_in_index=yes # null in index
null_in_unique=yes # null in unique null_in_unique=yes # null in unique
odbc_left_outer_join=yes # left outer join odbc style odbc_left_outer_join=yes # left outer join odbc style
operating_system=Windows 98 [Version 4.10.1998] # crash-me tested on operating_system=Windows 98 [Version 4.10.1998] # crash-me tested on
order_by=yes # Order by order_by=yes # Order by
order_by_alias=no # Order by alias order_by_alias=no # Order by alias
order_by_function=yes # Order by function order_by_function=yes # Order by function
order_by_position=yes # Order by position order_by_position=yes # Order by position
order_by_remember_desc=no # Order by DESC is remembered order_by_remember_desc=no # Order by DESC is remembered
primary_key_in_create=yes # primary key in create table primary_key_in_create=yes # primary key in create table
query_size=16777216 # query size query_size=16777216 # query size
quote_ident_with_"=yes # " as identifier quote (ANSI SQL) quote_ident_with_"=yes # " as identifier quote (ANSI SQL)
quote_ident_with_[=yes # [] as identifier quote quote_ident_with_[=yes # [] as identifier quote
quote_ident_with_`=yes # ` as identifier quote quote_ident_with_`=yes # ` as identifier quote
quote_with_"=no # Allows ' and " as string markers quote_with_"=no # Allows ' and " as string markers
recursive_subqueries=49 # recursive subqueries recursive_subqueries=49 # recursive subqueries
remember_end_space=no # Remembers end space in char() remember_end_space=no # Remembers end space in char()
remember_end_space_varchar=yes # Remembers end space in varchar() remember_end_space_varchar=yes # Remembers end space in varchar()
right_outer_join=yes # right outer join right_outer_join=yes # right outer join
rowid=no # Type for row id rowid=no # Type for row id
select_constants=yes # Select constants select_constants=yes # Select constants
select_limit=no # SELECT with LIMIT select_limit=no # SELECT with LIMIT
select_limit2=no # SELECT with LIMIT #,# select_limit2=no # SELECT with LIMIT #,#
select_string_size=516076 # constant string size in SELECT select_string_size=516076 # constant string size in SELECT
select_table_update=no # Update with sub select select_table_update=no # Update with sub select
select_without_from=yes # SELECT without FROM select_without_from=yes # SELECT without FROM
server_version=Access 2000 # server version server_version=Access 2000 # server version
simple_joins=yes # ANSI SQL simple joins simple_joins=yes # ANSI SQL simple joins
subqueries=yes # subqueries subqueries=yes # subqueries
table_alias=yes # Table alias table_alias=yes # Table alias
table_name_case=yes # case independent table names table_name_case=yes # case independent table names
table_wildcard=yes # Select table_name.* table_wildcard=yes # Select table_name.*
tempoary_table=no # temporary tables tempoary_table=no # temporary tables
transactions=yes # transactions transactions=yes # transactions
type_extra_abstime=no # Type abstime type_extra_abstime=no # Type abstime
type_extra_bfile=no # Type bfile type_extra_bfile=no # Type bfile
type_extra_blob=no # Type blob type_extra_blob=no # Type blob
type_extra_bool=no # Type bool type_extra_bool=no # Type bool
type_extra_box=no # Type box type_extra_box=no # Type box
type_extra_byte=yes # Type byte type_extra_byte=yes # Type byte
type_extra_char(1_arg)_binary=no # Type char(1 arg) binary type_extra_char(1_arg)_binary=no # Type char(1 arg) binary
type_extra_circle=no # Type circle type_extra_circle=no # Type circle
type_extra_clob=no # Type clob type_extra_clob=no # Type clob
type_extra_datetime=yes # Type datetime type_extra_datetime=yes # Type datetime
type_extra_double=yes # Type double type_extra_double=yes # Type double
type_extra_enum(1_arg)=no # Type enum(1 arg) type_extra_enum(1_arg)=no # Type enum(1 arg)
type_extra_float(2_arg)=no # Type float(2 arg) type_extra_float(2_arg)=no # Type float(2 arg)
type_extra_float4=yes # Type float4 type_extra_float4=yes # Type float4
type_extra_float8=yes # Type float8 type_extra_float8=yes # Type float8
type_extra_image=yes # Type image type_extra_image=yes # Type image
type_extra_int(1_arg)_zerofill=no # Type int(1 arg) zerofill type_extra_int(1_arg)_zerofill=no # Type int(1 arg) zerofill
type_extra_int1=no # Type int1 type_extra_int1=no # Type int1
type_extra_int2=no # Type int2 type_extra_int2=no # Type int2
type_extra_int3=no # Type int3 type_extra_int3=no # Type int3
type_extra_int4=no # Type int4 type_extra_int4=no # Type int4
type_extra_int8=no # Type int8 type_extra_int8=no # Type int8
type_extra_int_auto_increment=no # Type int not null auto_increment type_extra_int_auto_increment=no # Type int not null auto_increment
type_extra_int_unsigned=no # Type int unsigned type_extra_int_unsigned=no # Type int unsigned
type_extra_interval=no # Type interval type_extra_interval=no # Type interval
type_extra_line=no # Type line type_extra_line=no # Type line
type_extra_long=yes # Type long type_extra_long=yes # Type long
type_extra_long_raw=no # Type long raw type_extra_long_raw=no # Type long raw
type_extra_long_varbinary=no # Type long varbinary type_extra_long_varbinary=no # Type long varbinary
type_extra_long_varchar(1_arg)=no # Type long varchar(1 arg) type_extra_long_varchar(1_arg)=no # Type long varchar(1 arg)
type_extra_lseg=no # Type lseg type_extra_lseg=no # Type lseg
type_extra_mediumint=no # Type mediumint type_extra_mediumint=no # Type mediumint
type_extra_mediumtext=no # Type mediumtext type_extra_mediumtext=no # Type mediumtext
type_extra_middleint=no # Type middleint type_extra_middleint=no # Type middleint
type_extra_mlslabel=no # Type mlslabel type_extra_mlslabel=no # Type mlslabel
type_extra_money=yes # Type money type_extra_money=yes # Type money
type_extra_nclob=no # Type nclob type_extra_nclob=no # Type nclob
type_extra_number=yes # Type number type_extra_number=yes # Type number
type_extra_number(1_arg)=no # Type number(1 arg) type_extra_number(1_arg)=no # Type number(1 arg)
type_extra_number(2_arg)=no # Type number(2 arg) type_extra_number(2_arg)=no # Type number(2 arg)
type_extra_nvarchar2(1_arg)=no # Type nvarchar2(1 arg) type_extra_nvarchar2(1_arg)=no # Type nvarchar2(1 arg)
type_extra_path=no # Type path type_extra_path=no # Type path
type_extra_point=no # Type point type_extra_point=no # Type point
type_extra_polygon=no # Type polygon type_extra_polygon=no # Type polygon
type_extra_raw(1_arg)=no # Type raw(1 arg) type_extra_raw(1_arg)=no # Type raw(1 arg)
type_extra_reltime=no # Type reltime type_extra_reltime=no # Type reltime
type_extra_rowid=no # Type rowid type_extra_rowid=no # Type rowid
type_extra_serial=no # Type serial type_extra_serial=no # Type serial
type_extra_set(1_arg)=no # Type set(1 arg) type_extra_set(1_arg)=no # Type set(1 arg)
type_extra_smalldatetime=no # Type smalldatetime type_extra_smalldatetime=no # Type smalldatetime
type_extra_smallfloat=no # Type smallfloat type_extra_smallfloat=no # Type smallfloat
type_extra_smallmoney=no # Type smallmoney type_extra_smallmoney=no # Type smallmoney
type_extra_text=yes # Type text type_extra_text=yes # Type text
type_extra_text(1_arg)=yes # Type text(1 arg) type_extra_text(1_arg)=yes # Type text(1 arg)
type_extra_timespan=no # Type timespan type_extra_timespan=no # Type timespan
type_extra_uint=no # Type uint type_extra_uint=no # Type uint
type_extra_varchar2(1_arg)=no # Type varchar2(1 arg) type_extra_varchar2(1_arg)=no # Type varchar2(1 arg)
type_extra_year=no # Type year type_extra_year=no # Type year
type_odbc_bigint=no # Type bigint type_odbc_bigint=no # Type bigint
type_odbc_binary(1_arg)=yes # Type binary(1 arg) type_odbc_binary(1_arg)=yes # Type binary(1 arg)
type_odbc_datetime=yes # Type datetime type_odbc_datetime=yes # Type datetime
type_odbc_tinyint=no # Type tinyint type_odbc_tinyint=no # Type tinyint
type_odbc_varbinary(1_arg)=yes # Type varbinary(1 arg) type_odbc_varbinary(1_arg)=yes # Type varbinary(1 arg)
type_sql_bit=yes # Type bit type_sql_bit=yes # Type bit
type_sql_bit(1_arg)=no # Type bit(1 arg) type_sql_bit(1_arg)=no # Type bit(1 arg)
type_sql_bit_varying(1_arg)=no # Type bit varying(1 arg) type_sql_bit_varying(1_arg)=no # Type bit varying(1 arg)
type_sql_char(1_arg)=yes # Type char(1 arg) type_sql_char(1_arg)=yes # Type char(1 arg)
type_sql_char_varying(1_arg)=no # Type char varying(1 arg) type_sql_char_varying(1_arg)=no # Type char varying(1 arg)
type_sql_character(1_arg)=no # Type character(1 arg) type_sql_character(1_arg)=no # Type character(1 arg)
type_sql_character_varying(1_arg)=no # Type character varying(1 arg) type_sql_character_varying(1_arg)=no # Type character varying(1 arg)
type_sql_date=yes # Type date type_sql_date=yes # Type date
type_sql_dec(2_arg)=no # Type dec(2 arg) type_sql_dec(2_arg)=no # Type dec(2 arg)
type_sql_decimal(2_arg)=no # Type decimal(2 arg) type_sql_decimal(2_arg)=no # Type decimal(2 arg)
type_sql_double_precision=no # Type double precision type_sql_double_precision=no # Type double precision
type_sql_float=yes # Type float type_sql_float=yes # Type float
type_sql_float(1_arg)=no # Type float(1 arg) type_sql_float(1_arg)=no # Type float(1 arg)
type_sql_int=yes # Type int type_sql_int=yes # Type int
type_sql_integer=yes # Type integer type_sql_integer=yes # Type integer
type_sql_interval_day_to_second=no # Type interval day to second type_sql_interval_day_to_second=no # Type interval day to second
type_sql_interval_year=no # Type interval year type_sql_interval_year=no # Type interval year
type_sql_interval_year_to_month=no # Type interval year to month type_sql_interval_year_to_month=no # Type interval year to month
type_sql_national_char_varying(1_arg)=no # Type national char varying(1 arg) type_sql_national_char_varying(1_arg)=no # Type national char varying(1 arg)
type_sql_national_character(1_arg)=no # Type national character(1 arg) type_sql_national_character(1_arg)=no # Type national character(1 arg)
type_sql_national_character_varying(1_arg)=no # Type national character varying(1 arg) type_sql_national_character_varying(1_arg)=no # Type national character varying(1 arg)
type_sql_nchar(1_arg)=no # Type nchar(1 arg) type_sql_nchar(1_arg)=no # Type nchar(1 arg)
type_sql_nchar_varying(1_arg)=no # Type nchar varying(1 arg) type_sql_nchar_varying(1_arg)=no # Type nchar varying(1 arg)
type_sql_numeric(2_arg)=no # Type numeric(2 arg) type_sql_numeric(2_arg)=no # Type numeric(2 arg)
type_sql_real=yes # Type real type_sql_real=yes # Type real
type_sql_smallint=yes # Type smallint type_sql_smallint=yes # Type smallint
type_sql_time=yes # Type time type_sql_time=yes # Type time
type_sql_timestamp=yes # Type timestamp type_sql_timestamp=yes # Type timestamp
type_sql_timestamp_with_time_zone=no # Type timestamp with time zone type_sql_timestamp_with_time_zone=no # Type timestamp with time zone
type_sql_varchar(1_arg)=yes # Type varchar(1 arg) type_sql_varchar(1_arg)=yes # Type varchar(1 arg)
union=yes # union union=yes # union
union_all=yes # union all union_all=yes # union all
unique_in_create=yes # unique in create table unique_in_create=yes # unique in create table
unique_null_in_create=yes # unique null in create unique_null_in_create=yes # unique null in create
views=no # views views=no # views
where_string_size=258035 # constant string size in where where_string_size=258035 # constant string size in where
#ifndef MESSAGE_INCLUDED #ifndef MESSAGE_INCLUDED
#define MESSAGE_INCLUDED #define MESSAGE_INCLUDED
/* Copyright (c) 2008, 2009 Sun Microsystems, Inc. /* Copyright (c) 2008, 2009 Sun Microsystems, Inc.
Use is subject to license terms. Use is subject to license terms.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
/* /*
To change or add messages mysqld writes to the Windows error log, run To change or add messages mysqld writes to the Windows error log, run
mc.exe message.mc mc.exe message.mc
and checkin generated messages.h, messages.rc and msg000001.bin under the and checkin generated messages.h, messages.rc and msg000001.bin under the
source control. source control.
mc.exe can be installed with Windows SDK, some Visual Studio distributions mc.exe can be installed with Windows SDK, some Visual Studio distributions
do not include it. do not include it.
*/ */
// //
// Values are 32 bit values layed out as follows: // Values are 32 bit values layed out as follows:
// //
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
// +---+-+-+-----------------------+-------------------------------+ // +---+-+-+-----------------------+-------------------------------+
// |Sev|C|R| Facility | Code | // |Sev|C|R| Facility | Code |
// +---+-+-+-----------------------+-------------------------------+ // +---+-+-+-----------------------+-------------------------------+
// //
// where // where
// //
// Sev - is the severity code // Sev - is the severity code
// //
// 00 - Success // 00 - Success
// 01 - Informational // 01 - Informational
// 10 - Warning // 10 - Warning
// 11 - Error // 11 - Error
// //
// C - is the Customer code flag // C - is the Customer code flag
// //
// R - is a reserved bit // R - is a reserved bit
// //
// Facility - is the facility code // Facility - is the facility code
// //
// Code - is the facility's status code // Code - is the facility's status code
// //
// //
// Define the facility codes // Define the facility codes
// //
// //
// Define the severity codes // Define the severity codes
// //
// //
// MessageId: MSG_DEFAULT // MessageId: MSG_DEFAULT
// //
// MessageText: // MessageText:
// //
// %1For more information, see Help and Support Center at http://www.mysql.com. // %1For more information, see Help and Support Center at http://www.mysql.com.
// //
// //
// //
#define MSG_DEFAULT 0xC0000064L #define MSG_DEFAULT 0xC0000064L
#endif /* MESSAGE_INCLUDED */ #endif /* MESSAGE_INCLUDED */
LANGUAGE 0x9,0x1 LANGUAGE 0x9,0x1
1 11 MSG00001.bin 1 11 MSG00001.bin
...@@ -4738,8 +4738,8 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi, ...@@ -4738,8 +4738,8 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi,
mysql_options(mysql, MYSQL_SET_CHARSET_DIR, (char *) charsets_dir); mysql_options(mysql, MYSQL_SET_CHARSET_DIR, (char *) charsets_dir);
/* Set MYSQL_PLUGIN_DIR in case master asks for an external authentication plugin */ /* Set MYSQL_PLUGIN_DIR in case master asks for an external authentication plugin */
if (opt_plugin_dir_ptr && *opt_plugin_dir_ptr) if (opt_plugin_dir_ptr && *opt_plugin_dir_ptr)
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir_ptr); mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir_ptr);
/* we disallow empty users */ /* we disallow empty users */
if (mi->user == NULL || mi->user[0] == 0) if (mi->user == NULL || mi->user[0] == 0)
......
/* /*
Copyright (c) 2011, 2012, Monty Program Ab Copyright (c) 2011, 2012, Monty Program Ab
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* /*
Extract properties of a windows service binary path Extract properties of a windows service binary path
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <windows.h> #include <windows.h>
typedef struct mysqld_service_properties_st typedef struct mysqld_service_properties_st
{ {
char mysqld_exe[MAX_PATH]; char mysqld_exe[MAX_PATH];
char inifile[MAX_PATH]; char inifile[MAX_PATH];
char datadir[MAX_PATH]; char datadir[MAX_PATH];
int version_major; int version_major;
int version_minor; int version_minor;
int version_patch; int version_patch;
} mysqld_service_properties; } mysqld_service_properties;
extern int get_mysql_service_properties(const wchar_t *bin_path, extern int get_mysql_service_properties(const wchar_t *bin_path,
mysqld_service_properties *props); mysqld_service_properties *props);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
SET(FEDERATEDX_PLUGIN_STATIC "federatedx") SET(FEDERATEDX_PLUGIN_STATIC "federatedx")
SET(FEDERATEDX_PLUGIN_DYNAMIC "ha_federatedx") SET(FEDERATEDX_PLUGIN_DYNAMIC "ha_federatedx")
SET(FEDERATEDX_SOURCES ha_federatedx.cc federatedx_txn.cc federatedx_io.cc federatedx_io_null.cc federatedx_io_mysql.cc) SET(FEDERATEDX_SOURCES ha_federatedx.cc federatedx_txn.cc federatedx_io.cc federatedx_io_null.cc federatedx_io_mysql.cc)
MYSQL_ADD_PLUGIN(federatedx ${FEDERATEDX_SOURCES} STORAGE_ENGINE) MYSQL_ADD_PLUGIN(federatedx ${FEDERATEDX_SOURCES} STORAGE_ENGINE)
The following files are changed in order to build a new engine on Windows: The following files are changed in order to build a new engine on Windows:
- Update win\configure.js with - Update win\configure.js with
case "WITH_FEDERATEDX_STORAGE_ENGINE": case "WITH_FEDERATEDX_STORAGE_ENGINE":
to make sure it will pass WITH_FEDERATEDX_STORAGE_ENGINE in. to make sure it will pass WITH_FEDERATEDX_STORAGE_ENGINE in.
- Update CMakeFiles.txt under mysql root: - Update CMakeFiles.txt under mysql root:
IF(WITH_FEDERATEDX_STORAGE_ENGINE) IF(WITH_FEDERATEDX_STORAGE_ENGINE)
ADD_DEFINITIONS(-D WITH_FEDERATEDX_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_FEDERATEDX_STORAGE_ENGINE)
SET (mysql_plugin_defs SET (mysql_plugin_defs
"${mysql_plugin_defs},builtin_skeleton_plugin") "${mysql_plugin_defs},builtin_skeleton_plugin")
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE) ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
and, and,
IF(WITH_FEDERATEDX_STORAGE_ENGINE) IF(WITH_FEDERATEDX_STORAGE_ENGINE)
ADD_SUBDIRECTORY(storage/skeleton/src) ADD_SUBDIRECTORY(storage/skeleton/src)
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE) ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
- Update CMakeFiles.txt under sql: - Update CMakeFiles.txt under sql:
IF(WITH_FEDERATEDX_STORAGE_ENGINE) IF(WITH_FEDERATEDX_STORAGE_ENGINE)
TARGET_LINK_LIBRARIES(mysqld skeleton) TARGET_LINK_LIBRARIES(mysqld skeleton)
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE) ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
...@@ -43,7 +43,7 @@ my $error_log_name= "./var/log/master.err"; ...@@ -43,7 +43,7 @@ my $error_log_name= "./var/log/master.err";
my @cmd_output; my @cmd_output;
my $whatever; # garbage data my $whatever; # garbage data
$ENV{MTR_VERSION} = 1; # MTR2 does not have --start-and-exit $ENV{MTR_VERSION} = 1; # MTR2 does not have --start-and-exit
my $base_server_cmd= "perl mysql-test-run.pl --mysqld=--aria-force-start-after-recovery-failures=$force_after --suite=maria maria.maria-recover "; my $base_server_cmd= "perl mysql-test-run.pl --mysqld=--aria-force-start-after-recovery-failures=$force_after --suite=maria maria.maria-recover ";
if ($^O =~ /^mswin/i) if ($^O =~ /^mswin/i)
{ {
print <<EOF; print <<EOF;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment