Skip to content

Commit c86d449

Browse files
committed
wl#9306 X Protocol connectivity through unix sockets
Approved by Lalit Choudhary <[email protected]>
1 parent c39e7df commit c86d449

File tree

137 files changed

+8886
-4169
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+8886
-4169
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
perl mysql-test-run.pl --timer --debug-server --force --parallel=auto --comment=x --vardir=var-x --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list --unit-tests-report --suite=x
2+
3+
perl mysql-test-run.pl --timer --force --parallel=auto --comment=x --vardir=var-x --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list --unit-tests-report --suite=x
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
perl mysql-test-run.pl --timer --debug-server --force --parallel=auto --comment=x --vardir=var-x --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list --unit-tests-report --suite=x
2+
3+
perl mysql-test-run.pl --timer --force --parallel=auto --comment=x --vardir=var-x --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list --unit-tests-report --suite=x
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
perl mysql-test-run.pl --timer --debug-server --force --parallel=auto --comment=x --vardir=var-x --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list --unit-tests-report --suite=x

mysql-test/include/default_my.cnf

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
# Copyright (c) 2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc.
2-
# Use is subject to license terms
3-
#
4-
# This program is free software; you can redistribute it and/or modify
5-
# it under the terms of the GNU General Public License as published by
6-
# the Free Software Foundation; version 2 of the License.
7-
#
8-
# This program is distributed in the hope that it will be useful,
9-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11-
# GNU General Public License for more details.
12-
#
13-
# You should have received a copy of the GNU General Public License
14-
# along with this program; if not, write to the Free Software
15-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16-
171
# Use default setting for mysqld processes
182
!include default_mysqld.cnf
193
!include default_client.cnf
@@ -34,3 +18,4 @@ disable-force-if-open
3418
[ENV]
3519
MASTER_MYPORT= @mysqld.1.port
3620
MASTER_MYSOCK= @mysqld.1.socket
21+
MASTER_X_MYSOCK= @mysqld.1.loose-mysqlx-socket

mysql-test/lib/My/ConfigFactory.pm

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@ sub fix_server_id {
134134
return $server_id;
135135
}
136136

137+
sub fix_x_socket {
138+
my $result = fix_socket(@_);
139+
$result =~ s/mysqld\.([0-9]+)\.sock$/mysqlx\.$1\.sock/;
140+
141+
return $result;
142+
}
143+
137144
sub fix_socket {
138145
my ($self, $config, $group_name, $group)= @_;
139146
# Put socket file in tmpdir
@@ -148,6 +155,7 @@ sub fix_socket {
148155
my $port = $group->value('port');
149156
$socket = "$dir/mysqld-$port.sock";
150157
}
158+
151159
return $socket;
152160
}
153161

@@ -257,6 +265,7 @@ my @mysqld_rules=
257265
{ '#host' => \&fix_host },
258266
{ 'port' => \&fix_port },
259267
{ 'socket' => \&fix_socket },
268+
{ 'loose-mysqlx-socket' => \&fix_x_socket },
260269
{ '#log-error' => \&fix_log_error },
261270
{ 'general_log' => 1 },
262271
{ 'general_log_file' => \&fix_log },
@@ -273,6 +282,7 @@ my @mysqld_rules=
273282
{ 'loose-sha256_password_auto_generate_rsa_keys' => "0"},
274283
);
275284

285+
276286
if (IS_WINDOWS)
277287
{
278288
# For simplicity, we use the same names for shared memory and

mysql-test/suite/rpl/rpl_1slave_base.cnf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ slave-load-tmpdir= ../../tmp
4040
[ENV]
4141
MASTER_MYPORT= @mysqld.1.port
4242
MASTER_MYSOCK= @mysqld.1.socket
43+
MASTER_X_MYSOCK= @mysqld.1.loose-mysqlx-socket
4344

4445
SLAVE_MYPORT= @mysqld.2.port
4546
SLAVE_MYSOCK= @mysqld.2.socket
47+
SLAVE_X_MYSOCK= @mysqld.2.loose-mysqlx-socket
4648

rapid/plugin/x/CMakeLists.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,26 @@ INCLUDE(mysqlx_protobuf.cmake)
3535
IF(NOT PROTOBUF_FOUND)
3636
MESSAGE(WARNING "Disabling mysqlx plugin.")
3737
ELSE()
38+
INCLUDE(mysqlx_variables.cmake)
3839
INCLUDE(source_files.cmake)
39-
40-
INCLUDE(mysqlx_error.cmake)
40+
INCLUDE(mysqlx_configure.cmake)
4141

4242
SET(GENERATED_LITE_PROTO_FILES)
4343
# Generate protobuf-lite versions of proto files.
4444
FOREACH(PROTOBUF_MYSQLX_FILE ${PROTOBUF_MYSQLX_FILES})
4545
GET_FILENAME_COMPONENT(MYSQLX_NAME_WD ${PROTOBUF_MYSQLX_FILE} NAME)
4646
LIST(APPEND GENERATED_LITE_PROTO_FILES
47-
${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${MYSQLX_NAME_WD})
47+
${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${MYSQLX_NAME_WD})
4848
ADD_CUSTOM_COMMAND(
49-
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${MYSQLX_NAME_WD}"
49+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${MYSQLX_NAME_WD}"
5050
COMMAND ${CMAKE_COMMAND}
5151
-D CURRENT_BINARY_DIR="${CMAKE_CURRENT_BINARY_DIR}"
5252
-D PROTO_FILE="${PROTOBUF_MYSQLX_FILE}"
5353
-D PROTO_FILE_FLAGS="PROTOBUF_LITE"
5454
-P ${CMAKE_CURRENT_SOURCE_DIR}/process_protobuf_file.cmake
5555
DEPENDS ${PROTOBUF_MYSQLX_FILE})
5656
SET_SOURCE_FILES_PROPERTIES(
57-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${MYSQLX_NAME_WD}"
57+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${MYSQLX_NAME_WD}"
5858
PROPERTIES GENERATED TRUE)
5959
ENDFOREACH()
6060

@@ -103,11 +103,11 @@ ELSE()
103103

104104
IF(XPLUGIN_NO_LITE_PROTOBUF)
105105
SET(xplugin_PROTOBUF_SRC ${PROTO_SRCS} ${PROTO_HDRS})
106-
SET(xplugin_PROTOBUF_DIR "${CMAKE_CURRENT_BINARY_DIR}/protobuf")
106+
SET(xplugin_PROTOBUF_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf")
107107
SET(xplugin_PROTOBUF_LIB ${PROTOBUF_LIBRARY})
108108
ELSE()
109109
SET(xplugin_PROTOBUF_SRC ${PROTO_LITE_SRCS} ${PROTO_LITE_HDRS})
110-
SET(xplugin_PROTOBUF_DIR "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite")
110+
SET(xplugin_PROTOBUF_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite")
111111
SET(xplugin_PROTOBUF_LIB ${PROTOBUF_LITE_LIBRARY})
112112
ENDIF()
113113

@@ -132,7 +132,9 @@ ELSE()
132132
src/xpl_plugin.cc
133133
src/xpl_performance_schema.cc
134134
${xplugin_SRC} ${xplugin_PROTOBUF_SRC}
135-
COMPILE_FLAGS "-I${xplugin_PROTOBUF_DIR}")
135+
COMPILE_FLAGS
136+
"-I${xplugin_PROTOBUF_DIR}"
137+
"-I${CMAKE_CURRENT_BINARY_DIR}/generated/")
136138

137139
TARGET_LINK_LIBRARIES(xplugin ${LIBEVENT_LIBRARY} ${LIBEVENT_LIBRARIES})
138140
IF(MSVC)
@@ -199,7 +201,8 @@ ELSE()
199201
ENDIF()
200202

201203
GET_PROPERTY(OLD_COMPILE_FLAGS TARGET mysqlxtest PROPERTY COMPILE_FLAGS)
202-
SET_PROPERTY(TARGET mysqlxtest PROPERTY COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -I${CMAKE_CURRENT_BINARY_DIR}/protobuf")
204+
SET_PROPERTY(TARGET mysqlxtest PROPERTY COMPILE_FLAGS
205+
"${OLD_COMPILE_FLAGS} -I${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf -I${CMAKE_CURRENT_BINARY_DIR}/generated/")
203206

204207
GET_TARGET_PROPERTY(mysqlxtest_compile_definitions
205208
mysqlxtest COMPILE_DEFINITIONS)

rapid/plugin/x/mysqlx_error.cmake renamed to rapid/plugin/x/mysqlx_configure.cmake

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,15 @@ GENERATE_XERRORS(${MYSQLX_PROJECT_DIR}/ngs/include/ngs/ngs_error.h NGS_ERROR)
2424
GENERATE_XERRORS(${MYSQLX_PROJECT_DIR}/src/xpl_error.h XPL_ERROR)
2525

2626
CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/mysqlx_error.h.in
27-
${CMAKE_CURRENT_BINARY_DIR}/mysqlx_error.h)
27+
${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_error.h)
2828

29-
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysqlx_error.h
29+
CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/mysqlx_version.h.in
30+
${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_version.h )
31+
32+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_error.h
33+
DESTINATION ${INSTALL_INCLUDEDIR}
34+
COMPONENT Developement)
35+
36+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_version.h
3037
DESTINATION ${INSTALL_INCLUDEDIR}
3138
COMPONENT Developement)

rapid/plugin/x/mysqlx_protobuf.cmake

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,33 +34,33 @@ FUNCTION(MYSQLX_PROTOBUF_GENERATE_CPP SRCS HDRS SRCS_LITE HDRS_LITE)
3434
GET_FILENAME_COMPONENT(ABS_FIL ${FIL} ABSOLUTE)
3535
GET_FILENAME_COMPONENT(FIL_WE ${FIL} NAME_WE)
3636

37-
LIST(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.cc")
38-
LIST(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.h")
37+
LIST(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf/${FIL_WE}.pb.cc")
38+
LIST(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf/${FIL_WE}.pb.h")
3939
LIST(APPEND ${SRCS_LITE}
40-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.pb.cc")
40+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.pb.cc")
4141
LIST(APPEND ${HDRS_LITE}
42-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.pb.h")
42+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.pb.h")
4343

4444
ADD_CUSTOM_COMMAND(
45-
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.cc"
46-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.h"
45+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf/${FIL_WE}.pb.cc"
46+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf/${FIL_WE}.pb.h"
4747
COMMAND ${CMAKE_COMMAND}
48-
-E make_directory "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
48+
-E make_directory "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf"
4949
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
50-
ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
50+
ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf"
5151
-I "${CMAKE_CURRENT_SOURCE_DIR}/protocol" ${ABS_FIL}
5252
DEPENDS ${ABS_FIL} ${PROTOBUF_PROTOC_EXECUTABLE}
5353
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
5454
VERBATIM)
5555

5656
ADD_CUSTOM_COMMAND(
57-
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.pb.cc"
58-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.pb.h"
57+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.pb.cc"
58+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.pb.h"
5959
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
60-
ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite"
61-
-I "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite"
62-
"${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.proto"
63-
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/protobuf_lite/${FIL_WE}.proto"
60+
ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite"
61+
-I "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite"
62+
"${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.proto"
63+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generated/protobuf_lite/${FIL_WE}.proto"
6464
${PROTOBUF_PROTOC_EXECUTABLE} GenLiteProtos
6565
COMMENT "Running C++ protocol buffer compiler (lite) on ${FIL}"
6666
VERBATIM)
@@ -95,7 +95,7 @@ FUNCTION(MYSQLX_PROTOBUF_GENERATE_CPP_NAMES SRC_NAMES)
9595
FOREACH(FIL ${ARGN})
9696
GET_FILENAME_COMPONENT(FIL_WE ${FIL} NAME_WE)
9797
LIST(APPEND ${SRC_NAMES}
98-
"${CMAKE_BINARY_DIR}/rapid/plugin/x/protobuf/${FIL_WE}.pb.cc")
98+
"${CMAKE_BINARY_DIR}/rapid/plugin/x/generated/protobuf/${FIL_WE}.pb.cc")
9999
ENDFOREACH()
100100

101101
SET_SOURCE_FILES_PROPERTIES(${${SRC_NAMES}} PROPERTIES GENERATED TRUE)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
2+
#
3+
# This program is free software; you can redistribute it and/or modify
4+
# it under the terms of the GNU General Public License as published by
5+
# the Free Software Foundation; version 2 of the License.
6+
#
7+
# This program is distributed in the hope that it will be useful,
8+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10+
# GNU General Public License for more details.
11+
#
12+
# You should have received a copy of the GNU General Public License
13+
# along with this program; if not, write to the Free Software
14+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
15+
16+
SET(MYSQLX_PLUGIN_VERSION_MAJOR 1)
17+
SET(MYSQLX_PLUGIN_VERSION_MINOR 0)
18+
SET(MYSQLX_PLUGIN_VERSION_PATCH 2)
19+
20+
SET(MYSQLX_PLUGIN_NAME "mysqlx")
21+
22+
STRING(SUBSTRING ${MYSQLX_PLUGIN_NAME} 0 1 MYSQLX_PLUGIN_NAME_FIRST_LETTER)
23+
STRING(SUBSTRING ${MYSQLX_PLUGIN_NAME} 1 -1 MYSQLX_PLUGIN_NAME_REST)
24+
STRING(TOUPPER ${MYSQLX_PLUGIN_NAME_FIRST_LETTER} MYSQLX_PLUGIN_NAME_FIRST_LETTER)
25+
26+
SET(MYSQLX_STATUS_VARIABLE_NAME "${MYSQLX_PLUGIN_NAME_FIRST_LETTER}${MYSQLX_PLUGIN_NAME_REST}")
27+
28+
SET(MYSQLX_TCP_PORT 33060)
29+
30+
IF(NOT MYSQLX_UNIX_ADDR)
31+
GET_FILENAME_COMPONENT(DIR_OF_UNIX_ADDR "${MYSQL_UNIX_ADDR}" PATH)
32+
SET(MYSQLX_UNIX_ADDR "${DIR_OF_UNIX_ADDR}/mysqlx.sock")
33+
ENDIF()
34+
35+
SET(MYSQLX_NAMEDPIPE "MySQLX")

0 commit comments

Comments
 (0)