From 76d74e8aa2419528d1c05b013d2e1d35eae68eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 4 Jul 2013 19:02:11 +0300 Subject: [PATCH] Fixed MySQL GTID events to print out the SID as hexadesimal representation to make it more readable --- replication_listener/examples/Makefile | 221 ++++++----------- .../examples/cmake_install.cmake | 10 + replication_listener/examples/jan_test.cpp | 10 +- .../examples/mysql2lucene/Makefile | 232 +++++------------- replication_listener/include/binlog_event.h | 2 + replication_listener/src/gtid.cpp | 14 +- replication_listener/src/protocol.cpp | 7 +- 7 files changed, 164 insertions(+), 332 deletions(-) diff --git a/replication_listener/examples/Makefile b/replication_listener/examples/Makefile index 896ec06c4..854e609ab 100644 --- a/replication_listener/examples/Makefile +++ b/replication_listener/examples/Makefile @@ -39,10 +39,10 @@ RM = /usr/bin/cmake -E remove -f EQUALS = = # The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener +CMAKE_SOURCE_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener/examples # The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener +CMAKE_BINARY_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener/examples #============================================================================= # Targets provided globally by CMake. @@ -57,67 +57,6 @@ edit_cache: edit_cache/fast: edit_cache .PHONY : edit_cache/fast -# Special rule for the target install -install: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake -P cmake_install.cmake -.PHONY : install - -# Special rule for the target install -install/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake -P cmake_install.cmake -.PHONY : install/fast - -# Special rule for the target install/local -install/local: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local - -# Special rule for the target install/local -install/local/fast: install/local -.PHONY : install/local/fast - -# Special rule for the target install/strip -install/strip: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip - -# Special rule for the target install/strip -install/strip/fast: install/strip -.PHONY : install/strip/fast - -# Special rule for the target list_install_components -list_install_components: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" -.PHONY : list_install_components - -# Special rule for the target list_install_components -list_install_components/fast: list_install_components -.PHONY : list_install_components/fast - -# Special rule for the target package -package: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..." - cd /home/jan/skysql/skygateway/skygateway/replication_listener && /usr/bin/cpack --config ./CPackConfig.cmake -.PHONY : package - -# Special rule for the target package -package/fast: package -.PHONY : package/fast - -# Special rule for the target package_source -package_source: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..." - cd /home/jan/skysql/skygateway/skygateway/replication_listener && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/jan/skysql/skygateway/skygateway/replication_listener/CPackSourceConfig.cmake -.PHONY : package_source - -# Special rule for the target package_source -package_source/fast: package_source -.PHONY : package_source/fast - # Special rule for the target rebuild_cache rebuild_cache: @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." @@ -130,14 +69,14 @@ rebuild_cache/fast: rebuild_cache # The main all target all: cmake_check_build_system - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/CMakeFiles /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles/progress.marks - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles 0 .PHONY : all # The main clean target clean: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/clean + $(MAKE) -f CMakeFiles/Makefile2 clean .PHONY : clean # The main clean target @@ -146,132 +85,115 @@ clean/fast: clean # Prepare targets for installation. preinstall: all - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/preinstall + $(MAKE) -f CMakeFiles/Makefile2 preinstall .PHONY : preinstall # Prepare targets for installation. preinstall/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/preinstall + $(MAKE) -f CMakeFiles/Makefile2 preinstall .PHONY : preinstall/fast # clear depends depend: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 .PHONY : depend -# Convenience name for target. -examples/CMakeFiles/basic-1.dir/rule: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/basic-1.dir/rule -.PHONY : examples/CMakeFiles/basic-1.dir/rule +#============================================================================= +# Target rules for targets named basic-1 -# Convenience name for target. -basic-1: examples/CMakeFiles/basic-1.dir/rule +# Build rule for target. +basic-1: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 basic-1 .PHONY : basic-1 # fast build rule for target. basic-1/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-1.dir/build.make examples/CMakeFiles/basic-1.dir/build + $(MAKE) -f CMakeFiles/basic-1.dir/build.make CMakeFiles/basic-1.dir/build .PHONY : basic-1/fast -# Convenience name for target. -examples/CMakeFiles/basic-2.dir/rule: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/basic-2.dir/rule -.PHONY : examples/CMakeFiles/basic-2.dir/rule +#============================================================================= +# Target rules for targets named basic-2 -# Convenience name for target. -basic-2: examples/CMakeFiles/basic-2.dir/rule +# Build rule for target. +basic-2: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 basic-2 .PHONY : basic-2 # fast build rule for target. basic-2/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-2.dir/build.make examples/CMakeFiles/basic-2.dir/build + $(MAKE) -f CMakeFiles/basic-2.dir/build.make CMakeFiles/basic-2.dir/build .PHONY : basic-2/fast -# Convenience name for target. -examples/CMakeFiles/jan_test.dir/rule: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/jan_test.dir/rule -.PHONY : examples/CMakeFiles/jan_test.dir/rule +#============================================================================= +# Target rules for targets named jan_test -# Convenience name for target. -jan_test: examples/CMakeFiles/jan_test.dir/rule +# Build rule for target. +jan_test: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 jan_test .PHONY : jan_test # fast build rule for target. jan_test/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/jan_test.dir/build.make examples/CMakeFiles/jan_test.dir/build + $(MAKE) -f CMakeFiles/jan_test.dir/build.make CMakeFiles/jan_test.dir/build .PHONY : jan_test/fast -basic-1.o: basic-1.cpp.o +#============================================================================= +# Target rules for targets named mysql2lucene + +# Build rule for target. +mysql2lucene: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene +.PHONY : mysql2lucene + +# fast build rule for target. +mysql2lucene/fast: + $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/build +.PHONY : mysql2lucene/fast + +# target to build an object file +basic-1.o: + $(MAKE) -f CMakeFiles/basic-1.dir/build.make CMakeFiles/basic-1.dir/basic-1.o .PHONY : basic-1.o -# target to build an object file -basic-1.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-1.dir/build.make examples/CMakeFiles/basic-1.dir/basic-1.cpp.o -.PHONY : basic-1.cpp.o - -basic-1.i: basic-1.cpp.i +# target to preprocess a source file +basic-1.i: + $(MAKE) -f CMakeFiles/basic-1.dir/build.make CMakeFiles/basic-1.dir/basic-1.i .PHONY : basic-1.i -# target to preprocess a source file -basic-1.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-1.dir/build.make examples/CMakeFiles/basic-1.dir/basic-1.cpp.i -.PHONY : basic-1.cpp.i - -basic-1.s: basic-1.cpp.s +# target to generate assembly for a file +basic-1.s: + $(MAKE) -f CMakeFiles/basic-1.dir/build.make CMakeFiles/basic-1.dir/basic-1.s .PHONY : basic-1.s -# target to generate assembly for a file -basic-1.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-1.dir/build.make examples/CMakeFiles/basic-1.dir/basic-1.cpp.s -.PHONY : basic-1.cpp.s - -basic-2.o: basic-2.cpp.o +# target to build an object file +basic-2.o: + $(MAKE) -f CMakeFiles/basic-2.dir/build.make CMakeFiles/basic-2.dir/basic-2.o .PHONY : basic-2.o -# target to build an object file -basic-2.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-2.dir/build.make examples/CMakeFiles/basic-2.dir/basic-2.cpp.o -.PHONY : basic-2.cpp.o - -basic-2.i: basic-2.cpp.i +# target to preprocess a source file +basic-2.i: + $(MAKE) -f CMakeFiles/basic-2.dir/build.make CMakeFiles/basic-2.dir/basic-2.i .PHONY : basic-2.i -# target to preprocess a source file -basic-2.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-2.dir/build.make examples/CMakeFiles/basic-2.dir/basic-2.cpp.i -.PHONY : basic-2.cpp.i - -basic-2.s: basic-2.cpp.s +# target to generate assembly for a file +basic-2.s: + $(MAKE) -f CMakeFiles/basic-2.dir/build.make CMakeFiles/basic-2.dir/basic-2.s .PHONY : basic-2.s -# target to generate assembly for a file -basic-2.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/basic-2.dir/build.make examples/CMakeFiles/basic-2.dir/basic-2.cpp.s -.PHONY : basic-2.cpp.s - -jan_test.o: jan_test.cpp.o +# target to build an object file +jan_test.o: + $(MAKE) -f CMakeFiles/jan_test.dir/build.make CMakeFiles/jan_test.dir/jan_test.o .PHONY : jan_test.o -# target to build an object file -jan_test.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/jan_test.dir/build.make examples/CMakeFiles/jan_test.dir/jan_test.cpp.o -.PHONY : jan_test.cpp.o - -jan_test.i: jan_test.cpp.i +# target to preprocess a source file +jan_test.i: + $(MAKE) -f CMakeFiles/jan_test.dir/build.make CMakeFiles/jan_test.dir/jan_test.i .PHONY : jan_test.i -# target to preprocess a source file -jan_test.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/jan_test.dir/build.make examples/CMakeFiles/jan_test.dir/jan_test.cpp.i -.PHONY : jan_test.cpp.i - -jan_test.s: jan_test.cpp.s -.PHONY : jan_test.s - # target to generate assembly for a file -jan_test.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/CMakeFiles/jan_test.dir/build.make examples/CMakeFiles/jan_test.dir/jan_test.cpp.s -.PHONY : jan_test.cpp.s +jan_test.s: + $(MAKE) -f CMakeFiles/jan_test.dir/build.make CMakeFiles/jan_test.dir/jan_test.s +.PHONY : jan_test.s # Help Target help: @@ -282,14 +204,9 @@ help: @echo "... basic-1" @echo "... basic-2" @echo "... edit_cache" - @echo "... install" - @echo "... install/local" - @echo "... install/strip" @echo "... jan_test" - @echo "... list_install_components" - @echo "... package" - @echo "... package_source" @echo "... rebuild_cache" + @echo "... mysql2lucene" @echo "... basic-1.o" @echo "... basic-1.i" @echo "... basic-1.s" @@ -310,6 +227,6 @@ help: # No rule that depends on this can have commands that come from listfiles # because they might be regenerated. cmake_check_build_system: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 .PHONY : cmake_check_build_system diff --git a/replication_listener/examples/cmake_install.cmake b/replication_listener/examples/cmake_install.cmake index d047589a4..57850f696 100644 --- a/replication_listener/examples/cmake_install.cmake +++ b/replication_listener/examples/cmake_install.cmake @@ -37,3 +37,13 @@ IF(NOT CMAKE_INSTALL_LOCAL_ONLY) ENDIF(NOT CMAKE_INSTALL_LOCAL_ONLY) +IF(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +ELSE(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +ENDIF(CMAKE_INSTALL_COMPONENT) + +FILE(WRITE "/home/jan/skysql/skygateway/skygateway/replication_listener/examples/${CMAKE_INSTALL_MANIFEST}" "") +FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES}) + FILE(APPEND "/home/jan/skysql/skygateway/skygateway/replication_listener/examples/${CMAKE_INSTALL_MANIFEST}" "${file}\n") +ENDFOREACH(file) diff --git a/replication_listener/examples/jan_test.cpp b/replication_listener/examples/jan_test.cpp index 390e67c36..ba199b9c8 100644 --- a/replication_listener/examples/jan_test.cpp +++ b/replication_listener/examples/jan_test.cpp @@ -69,11 +69,11 @@ void* binlog_reader(void * arg) Gtid_event *gevent = dynamic_cast(event); std::cout << "Thread: " << id << " server_id " << lheader->server_id - << " position " << lheader->next_position << " : Found event of type " - << event->get_event_type() - << " txt " << get_event_type_str(event->get_event_type()) - << " GTID " << gevent->domain_id << "-" << gevent->server_id << "-" << gevent->sequence_number - << std::endl; + << " position " << lheader->next_position << " : Found event of type " + << event->get_event_type() + << " txt " << get_event_type_str(event->get_event_type()) + << " GTID " << gevent->m_gtid.get_string() + << std::endl; break; diff --git a/replication_listener/examples/mysql2lucene/Makefile b/replication_listener/examples/mysql2lucene/Makefile index c537ea3aa..0e9b680e4 100644 --- a/replication_listener/examples/mysql2lucene/Makefile +++ b/replication_listener/examples/mysql2lucene/Makefile @@ -39,10 +39,10 @@ RM = /usr/bin/cmake -E remove -f EQUALS = = # The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener +CMAKE_SOURCE_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener/examples # The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener +CMAKE_BINARY_DIR = /home/jan/skysql/skygateway/skygateway/replication_listener/examples #============================================================================= # Targets provided globally by CMake. @@ -57,67 +57,6 @@ edit_cache: edit_cache/fast: edit_cache .PHONY : edit_cache/fast -# Special rule for the target install -install: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake -P cmake_install.cmake -.PHONY : install - -# Special rule for the target install -install/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake -P cmake_install.cmake -.PHONY : install/fast - -# Special rule for the target install/local -install/local: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local - -# Special rule for the target install/local -install/local/fast: install/local -.PHONY : install/local/fast - -# Special rule for the target install/strip -install/strip: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip - -# Special rule for the target install/strip -install/strip/fast: install/strip -.PHONY : install/strip/fast - -# Special rule for the target list_install_components -list_install_components: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" -.PHONY : list_install_components - -# Special rule for the target list_install_components -list_install_components/fast: list_install_components -.PHONY : list_install_components/fast - -# Special rule for the target package -package: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..." - cd /home/jan/skysql/skygateway/skygateway/replication_listener && /usr/bin/cpack --config ./CPackConfig.cmake -.PHONY : package - -# Special rule for the target package -package/fast: package -.PHONY : package/fast - -# Special rule for the target package_source -package_source: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..." - cd /home/jan/skysql/skygateway/skygateway/replication_listener && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/jan/skysql/skygateway/skygateway/replication_listener/CPackSourceConfig.cmake -.PHONY : package_source - -# Special rule for the target package_source -package_source/fast: package_source -.PHONY : package_source/fast - # Special rule for the target rebuild_cache rebuild_cache: @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." @@ -130,14 +69,14 @@ rebuild_cache/fast: rebuild_cache # The main all target all: cmake_check_build_system - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/CMakeFiles /home/jan/skysql/skygateway/skygateway/replication_listener/examples/mysql2lucene/CMakeFiles/progress.marks - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/mysql2lucene/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/CMakeFiles 0 + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles /home/jan/skysql/skygateway/skygateway/replication_listener/examples/mysql2lucene/CMakeFiles/progress.marks + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/jan/skysql/skygateway/skygateway/replication_listener/examples/CMakeFiles 0 .PHONY : all # The main clean target clean: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/mysql2lucene/clean + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene/clean .PHONY : clean # The main clean target @@ -146,152 +85,107 @@ clean/fast: clean # Prepare targets for installation. preinstall: all - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/mysql2lucene/preinstall + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene/preinstall .PHONY : preinstall # Prepare targets for installation. preinstall/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/mysql2lucene/preinstall + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene/preinstall .PHONY : preinstall/fast # clear depends depend: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 .PHONY : depend # Convenience name for target. -examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/rule: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f CMakeFiles/Makefile2 examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/rule -.PHONY : examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/rule +mysql2lucene/CMakeFiles/mysql2lucene.dir/rule: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f CMakeFiles/Makefile2 mysql2lucene/CMakeFiles/mysql2lucene.dir/rule +.PHONY : mysql2lucene/CMakeFiles/mysql2lucene.dir/rule # Convenience name for target. -mysql2lucene: examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/rule +mysql2lucene: mysql2lucene/CMakeFiles/mysql2lucene.dir/rule .PHONY : mysql2lucene # fast build rule for target. mysql2lucene/fast: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/build .PHONY : mysql2lucene/fast -main.o: main.cpp.o +# target to build an object file +main.o: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/main.o .PHONY : main.o -# target to build an object file -main.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/main.cpp.o -.PHONY : main.cpp.o - -main.i: main.cpp.i +# target to preprocess a source file +main.i: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/main.i .PHONY : main.i -# target to preprocess a source file -main.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/main.cpp.i -.PHONY : main.cpp.i - -main.s: main.cpp.s +# target to generate assembly for a file +main.s: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/main.s .PHONY : main.s -# target to generate assembly for a file -main.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/main.cpp.s -.PHONY : main.cpp.s - -table_delete.o: table_delete.cpp.o +# target to build an object file +table_delete.o: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.o .PHONY : table_delete.o -# target to build an object file -table_delete.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.cpp.o -.PHONY : table_delete.cpp.o - -table_delete.i: table_delete.cpp.i +# target to preprocess a source file +table_delete.i: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.i .PHONY : table_delete.i -# target to preprocess a source file -table_delete.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.cpp.i -.PHONY : table_delete.cpp.i - -table_delete.s: table_delete.cpp.s +# target to generate assembly for a file +table_delete.s: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.s .PHONY : table_delete.s -# target to generate assembly for a file -table_delete.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_delete.cpp.s -.PHONY : table_delete.cpp.s - -table_index.o: table_index.cpp.o +# target to build an object file +table_index.o: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.o .PHONY : table_index.o -# target to build an object file -table_index.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.cpp.o -.PHONY : table_index.cpp.o - -table_index.i: table_index.cpp.i +# target to preprocess a source file +table_index.i: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.i .PHONY : table_index.i -# target to preprocess a source file -table_index.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.cpp.i -.PHONY : table_index.cpp.i - -table_index.s: table_index.cpp.s +# target to generate assembly for a file +table_index.s: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.s .PHONY : table_index.s -# target to generate assembly for a file -table_index.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_index.cpp.s -.PHONY : table_index.cpp.s - -table_insert.o: table_insert.cpp.o +# target to build an object file +table_insert.o: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.o .PHONY : table_insert.o -# target to build an object file -table_insert.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.cpp.o -.PHONY : table_insert.cpp.o - -table_insert.i: table_insert.cpp.i +# target to preprocess a source file +table_insert.i: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.i .PHONY : table_insert.i -# target to preprocess a source file -table_insert.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.cpp.i -.PHONY : table_insert.cpp.i - -table_insert.s: table_insert.cpp.s +# target to generate assembly for a file +table_insert.s: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.s .PHONY : table_insert.s -# target to generate assembly for a file -table_insert.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_insert.cpp.s -.PHONY : table_insert.cpp.s - -table_update.o: table_update.cpp.o +# target to build an object file +table_update.o: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.o .PHONY : table_update.o -# target to build an object file -table_update.cpp.o: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.cpp.o -.PHONY : table_update.cpp.o - -table_update.i: table_update.cpp.i +# target to preprocess a source file +table_update.i: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.i .PHONY : table_update.i -# target to preprocess a source file -table_update.cpp.i: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.cpp.i -.PHONY : table_update.cpp.i - -table_update.s: table_update.cpp.s -.PHONY : table_update.s - # target to generate assembly for a file -table_update.cpp.s: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(MAKE) -f examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make examples/mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.cpp.s -.PHONY : table_update.cpp.s +table_update.s: + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(MAKE) -f mysql2lucene/CMakeFiles/mysql2lucene.dir/build.make mysql2lucene/CMakeFiles/mysql2lucene.dir/table_update.s +.PHONY : table_update.s # Help Target help: @@ -300,13 +194,7 @@ help: @echo "... clean" @echo "... depend" @echo "... edit_cache" - @echo "... install" - @echo "... install/local" - @echo "... install/strip" - @echo "... list_install_components" @echo "... mysql2lucene" - @echo "... package" - @echo "... package_source" @echo "... rebuild_cache" @echo "... main.o" @echo "... main.i" @@ -334,6 +222,6 @@ help: # No rule that depends on this can have commands that come from listfiles # because they might be regenerated. cmake_check_build_system: - cd /home/jan/skysql/skygateway/skygateway/replication_listener && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 + cd /home/jan/skysql/skygateway/skygateway/replication_listener/examples && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 .PHONY : cmake_check_build_system diff --git a/replication_listener/include/binlog_event.h b/replication_listener/include/binlog_event.h index c8f761c1a..89d7d3a9a 100644 --- a/replication_listener/include/binlog_event.h +++ b/replication_listener/include/binlog_event.h @@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA #include #include #include +#include "gtid.h" namespace mysql { @@ -186,6 +187,7 @@ public: boost::uint32_t server_id; boost::uint64_t sequence_number; std::string m_mysql_gtid; + Gtid m_gtid; }; class Rotate_event: public Binary_log_event diff --git a/replication_listener/src/gtid.cpp b/replication_listener/src/gtid.cpp index 904698c89..04cb82d20 100644 --- a/replication_listener/src/gtid.cpp +++ b/replication_listener/src/gtid.cpp @@ -48,7 +48,7 @@ namespace mysql m_server_id(0), m_sequence_number(gno), m_mysql_gtid(mysql_gtid), - m_server_type(MYSQL_SERVER_TYPE_MARIADB) + m_server_type(MYSQL_SERVER_TYPE_MYSQL) { } @@ -57,7 +57,17 @@ namespace mysql if (m_server_type == MYSQL_SERVER_TYPE_MARIADB) { return (to_string(m_domain_id) + std::string("-") + to_string(m_server_id) + std::string("-") + to_string(m_sequence_number)); } else { - return(m_mysql_gtid + std::string(":") + to_string(m_sequence_number)); + std::string hexs; + unsigned char *sid = (unsigned char *)m_mysql_gtid.c_str(); + unsigned char tmp[5]; + + // Dump the encoded SID using hexadesimal representation + // Making it little bit more usefull + for(size_t i=0;i < 16;i++) { + sprintf((char *)tmp, "%x", (unsigned char)sid[i]); + hexs.append(std::string((const char *)tmp)); + } + return(hexs + std::string(":") + to_string(m_sequence_number)); } } diff --git a/replication_listener/src/protocol.cpp b/replication_listener/src/protocol.cpp index a62464f27..ad5520398 100644 --- a/replication_listener/src/protocol.cpp +++ b/replication_listener/src/protocol.cpp @@ -423,6 +423,7 @@ Gtid_event *proto_gtid_event(std::istream &is, Log_event_header *header) // In MariaDB GTIDs are just sequence number followed by domain id is >> proto_gtid_event_sequence_number >> proto_gtid_event_domain_id; + gev->m_gtid= Gtid(gev->domain_id, gev->server_id, gev->sequence_number); } else { boost::uint8_t flags=0; Protocol_chunk proto_flags(flags); // commit flag @@ -432,9 +433,13 @@ Gtid_event *proto_gtid_event(std::istream &is, Log_event_header *header) >> proto_sid >> proto_gtid_event_sequence_number; - fprintf(stderr, "GTID: %s gno %lu\n", gev->m_mysql_gtid.c_str(), gev->sequence_number); + gev->m_gtid= Gtid(gev->m_mysql_gtid, gev->sequence_number); } + fprintf(stderr, "GTID: %s \n", gev->m_gtid.get_string().c_str()); + + + return gev; }