From 2019d0a6830203c6761f510f1d2209b508ce46c7 Mon Sep 17 00:00:00 2001 From: lujiashun Date: Tue, 31 Jan 2023 14:31:51 +0800 Subject: [PATCH] feat(stonedb): show stonedb tag version. (#1251) --- CMakeLists.txt | 6 ++++++ mysql-test/suite/tianmu/r/issue1251.result | 3 +++ mysql-test/suite/tianmu/t/issue1251.test | 2 ++ sql/build_info.h.ini | 1 + sql/build_info_t.h | 2 ++ sql/mysqld.cc | 21 +++++++++++++++++++++ 6 files changed, 35 insertions(+) create mode 100644 mysql-test/suite/tianmu/r/issue1251.result create mode 100644 mysql-test/suite/tianmu/t/issue1251.test diff --git a/CMakeLists.txt b/CMakeLists.txt index 564ad7a43..6f3945c99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -835,11 +835,17 @@ IF (UNIX) OUTPUT_VARIABLE ER_BUILD_TIME) string(STRIP "${ER_BUILD_TIME}" ER_BUILD_TIME) + EXECUTE_PROCESS(COMMAND bash "-c" "git describe --tags `git rev-list --tags --max-count=1` |head -n 1 |awk -F'-' '{print $2}'" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE ER_TAG_NAME) + string(STRIP "${ER_TAG_NAME}" ER_TAG_NAME) + SET(STONEDB_REPO_ADDR "${ER_REPO_NAME}:${ER_BRANCH_NAME}") SET(STONEDB_BRANCH_NAME "${ER_BRANCH_NAME}") SET(STONEDB_COMMIT_ID "${ER_COMMIT_ID}") SET(STONEDB_COMMIT_TIME "${ER_COMMIT_TIME}") SET(STONEDB_BUILD_TIME "Date: ${ER_BUILD_TIME}") + SET(STONEDB_TAG_NAME "${ER_TAG_NAME}") ENDIF() CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/my_config.h) diff --git a/mysql-test/suite/tianmu/r/issue1251.result b/mysql-test/suite/tianmu/r/issue1251.result new file mode 100644 index 000000000..5e992931f --- /dev/null +++ b/mysql-test/suite/tianmu/r/issue1251.result @@ -0,0 +1,3 @@ +select (select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*$') or (select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9a-z]{9}$'); +(select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*$') or (select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9a-z]{9}$') +1 diff --git a/mysql-test/suite/tianmu/t/issue1251.test b/mysql-test/suite/tianmu/t/issue1251.test new file mode 100644 index 000000000..ebf86eccc --- /dev/null +++ b/mysql-test/suite/tianmu/t/issue1251.test @@ -0,0 +1,2 @@ +-- source include/have_tianmu.inc +select (select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*$') or (select version() regexp '^5.7.36-StoneDB-v[0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9a-z]{9}$'); \ No newline at end of file diff --git a/sql/build_info.h.ini b/sql/build_info.h.ini index 88e1f25a7..d89f04b3a 100644 --- a/sql/build_info.h.ini +++ b/sql/build_info.h.ini @@ -23,5 +23,6 @@ #cmakedefine STONEDB_COMMIT_ID "@STONEDB_COMMIT_ID@" #cmakedefine STONEDB_COMMIT_TIME "@STONEDB_COMMIT_TIME@" #cmakedefine STONEDB_BUILD_TIME "@STONEDB_BUILD_TIME@" +#cmakedefine STONEDB_TAG_NAME "@STONEDB_TAG_NAME@" #endif //BUILD_INFO_T_H diff --git a/sql/build_info_t.h b/sql/build_info_t.h index be47e8926..161b6be2a 100755 --- a/sql/build_info_t.h +++ b/sql/build_info_t.h @@ -4,4 +4,6 @@ #define STONEDB_BRANCH_NAME "AS_BRANCH_NAME" #define STONEDB_COMMIT_ID "AS_COMMIT_ID" #define STONEDB_COMMIT_TIME "AS_COMMIT_TIME" +#define STONEDB_TAG_NAME "AS_TAG_NAME" + #endif diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d1bab41f1..ca6016feb 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -8103,6 +8103,9 @@ static void set_server_version(void) { char *end= strxmov(server_version, MYSQL_SERVER_VERSION, MYSQL_SERVER_SUFFIX_STR, NullS); + //for release version: 5.7.36-StoneDB-v0.0.2 + //for debug version: 5.7.36-StoneDB-v0.0.2.abcdef123, abcdef123 means commit id; +#if 0 #ifdef EMBEDDED_LIBRARY end= my_stpcpy(end, "-embedded"); #endif @@ -8122,6 +8125,24 @@ static void set_server_version(void) static_cast(sizeof("-asan"))) end= my_stpcpy(end, "-asan"); #endif +#endif + + if (SERVER_VERSION_LENGTH - (end - server_version) > + static_cast(sizeof("-"))) + end = my_stpcpy(end, "-"); + if (SERVER_VERSION_LENGTH - (end - server_version) > + static_cast(sizeof(STONEDB_TAG_NAME))) + end = my_stpcpy(end, STONEDB_TAG_NAME); + +#ifndef NDEBUG + if (SERVER_VERSION_LENGTH - (end - server_version) > + static_cast(sizeof("."))) + end = my_stpcpy(end, "."); + if (SERVER_VERSION_LENGTH - (end - server_version) > + static_cast(sizeof(STONEDB_COMMIT_ID))) + end = my_stpcpy(end, STONEDB_COMMIT_ID); +#endif + }