Skip to content

Commit 2670a38

Browse files
author
Michael Fero
committed
Merge tag '1.9.0' into 2.13.0_release_prep
2 parents 356f41d + 08c85b3 commit 2670a38

File tree

529 files changed

+18871
-21243
lines changed

Some content is hidden

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

529 files changed

+18871
-21243
lines changed

.build.sh

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ build_driver() {
7373
(
7474
cd build
7575
cmake -DCMAKE_BUILD_TYPE=Release -D${driver_prefix}_BUILD_SHARED=On -D${driver_prefix}_BUILD_STATIC=On -D${driver_prefix}_BUILD_EXAMPLES=On -D${driver_prefix}_BUILD_UNIT_TESTS=On ..
76+
[[ -x $(which clang-format) ]] && make format-check
7677
make -j${PROCS}
7778
)
7879
}

.clang-format

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
BasedOnStyle: LLVM
3+
Language: Cpp
4+
Standard: Cpp03
5+
AccessModifierOffset: -2
6+
IndentWidth: 2
7+
TabWidth: 8
8+
ColumnLimit: 100
9+
UseTab: Never
10+
IndentCaseLabels: true
11+
AlignAfterOpenBracket: true
12+
AlignEscapedNewlines: Left
13+
BreakConstructorInitializers: BeforeComma
14+
AllowShortBlocksOnASingleLine: false
15+
DerivePointerAlignment: false
16+
PointerAlignment: Left
17+
BinPackParameters: true
18+
BinPackArguments: true
19+
AllowShortIfStatementsOnASingleLine: true
20+
CompactNamespaces: true
21+
AlignOperands: true
22+
SpacesInContainerLiterals: true
23+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
24+
Cpp11BracedListStyle: false
25+
AlwaysBreakTemplateDeclarations: true
26+
BreakBeforeInheritanceComma: true
27+
...

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Testing
5050
Debug
5151
demo/cassandra_demo
5252
test/unit_tests/cassandra_test
53-
src/cassconfig.hpp
53+
src/driver_config.hpp
5454

5555
# API docs files
5656
Doxyfile

CHANGELOG.md

+29-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,43 @@
1+
2.13.0
2+
===========
3+
4+
Features
5+
--------
6+
* [CPP-745] Exponential reconnection policy with jitter
7+
* [CPP-769] Use `clang-format` to fix up formatting
8+
* [CPP-775] Add `clang-format` to Windows
9+
10+
Other
11+
--------
12+
* [CPP-743] Move internal components from `namespace cass` to `namespace datastax::internal`
13+
* [CPP-764] Rename namespace from `cass` to `datastax`
14+
* [CPP-766] Allow RPM packaging script to build RPM packages for Amazon Linux
15+
* [CPP-770] Fix header files include guard (\_\_CASS_XXX to DATASTAX_XXX)
16+
* [CPP-772] Remove per cpp file LOG_FILE attribute to speed up Windows builds
17+
18+
Community
19+
--------
20+
* Fixed the location of the '[in]' information for Doxygen. (AlexisWilke)
21+
* Added header subdirectory installation capability. (accelerated)
22+
* Changed pkg_config templates to use the library variable name. (accelerated)
23+
* Fix generation of shlib deps file for debian packages. (jirkasilhan)
24+
125
2.12.0
226
===========
327

428
Features
529
--------
6-
[CPP-751] Call host listener callback for the initial set of hosts
30+
* [CPP-751] Call host listener callback for the initial set of hosts
731

832
Bug Fixes
933
--------
10-
[CPP-755] UDT metadata not being properly populated/updated
34+
* [CPP-755] UDT metadata not being properly populated/updated
1135

1236
Other
1337
--------
14-
[CPP-705] Deprecate DC-aware multi-DC settings (`used_hosts_per_remote_dc`
15-
and `allowRemoteDCsForLocalConsistencyLevel `)
16-
[CPP-720] Streamline custom allocator
38+
* [CPP-705] Deprecate DC-aware multi-DC settings (`used_hosts_per_remote_dc`
39+
and `allowRemoteDCsForLocalConsistencyLevel `)
40+
* [CPP-720] Streamline custom allocator
1741

1842
2.11.0
1943
===========

appveyor.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ Function Publish-Artifacts {
773773
}
774774

775775
# Create the Uri and FilePath components for the upload
776-
$base_uri = "$($Env:ARTIFACTORY_BASE_URI)/origin/$($Env:APPVEYOR_REPO_BRANCH)/$(Get-Commit-Sha)/windows"
776+
$base_uri = "$($Env:ARTIFACTORY_BASE_URI)/$($Env:DRIVER_VERSION)/$(Get-Commit-Sha)/windows"
777777
$driver_uri = "$($base_uri)/$($driver_type)/v$($Env:DRIVER_VERSION)/$($Env:DRIVER_ARTIFACT_ARCHIVE)"
778778
$driver_archive = "$($Env:DRIVER_ARTIFACTS_DIR)/$($Env:DRIVER_ARTIFACT_ARCHIVE)"
779779
$libuv_uri = "$($base_uri)/dependencies/libuv/v$($Env:LIBUV_VERSION)/$($Env:LIBUV_ARTIFACT_ARCHIVE)"

appveyor.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ environment:
4040
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
4141
DRIVER_TYPE: CASS
4242
BOOST_VERSION: 1.69.0
43-
LIBSSH2_VERSION: 1.8.2
44-
LIBUV_VERSION: 1.28.0
45-
OPENSSL_1_0_VERSION: 1.0.2r
46-
OPENSSL_1_1_VERSION: 1.1.1b
43+
LIBSSH2_VERSION: 1.9.0
44+
LIBUV_VERSION: 1.29.1
45+
OPENSSL_1_0_VERSION: 1.0.2s
46+
OPENSSL_1_1_VERSION: 1.1.1c
4747
matrix:
4848
- CMAKE_GENERATOR: Visual Studio 10 2010
4949
OPENSSL_MAJOR_MINOR: 1.0

build.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ os:
1919
- centos/7-64/cpp
2020
- osx/high-sierra
2121
env:
22-
LIBUV_VERSION: 1.28.0
22+
LIBUV_VERSION: 1.29.1
2323
build:
2424
- script: |
2525
. .build.sh

cmake/modules/ClangFormat.cmake

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#
2+
# Format and verify formatting using clang-format
3+
#
4+
cmake_minimum_required(VERSION 2.6.4)
5+
6+
include(FindPackageHandleStandardArgs)
7+
8+
if(NOT CLANG_FORMAT_EXE_NAME)
9+
set(CLANG_FORMAT_EXE_NAME clang-format)
10+
endif()
11+
12+
if(CLANG_FORMAT_ROOT_DIR)
13+
find_program(CLANG_FORMAT_EXE
14+
NAMES ${CLANG_FORMAT_EXE_NAME}
15+
PATHS ${CLANG_FORMAT_ROOT_DIR}
16+
NO_DEFAULT_PATH)
17+
endif()
18+
19+
find_program(CLANG_FORMAT_EXE NAMES ${CLANG_FORMAT_EXE_NAME})
20+
21+
find_package_handle_standard_args(CLANG_FORMAT DEFAULT_MSG CLANG_FORMAT_EXE)
22+
23+
mark_as_advanced(CLANG_FORMAT_EXE)
24+
25+
if(CLANG_FORMAT_FOUND)
26+
set(CLANG_FORMAT_FILE_EXTENSIONS ${CLANG_FORMAT_CXX_FILE_EXTENSIONS} *.cpp *.hpp *.c *.h)
27+
file(GLOB_RECURSE CLANG_FORMAT_ALL_SOURCE_FILES ${CLANG_FORMAT_FILE_EXTENSIONS})
28+
29+
set(CLANG_FORMAT_EXCLUDE_PATTERNS ${CLANG_FORMAT_EXCLUDE_PATTERNS} "/CMakeFiles/" "cmake" "/build/" "/vendor/" "/third_party/" "cassandra.h" "dse.h")
30+
31+
foreach(SOURCE_FILE ${CLANG_FORMAT_ALL_SOURCE_FILES})
32+
foreach(EXCLUDE_PATTERN ${CLANG_FORMAT_EXCLUDE_PATTERNS})
33+
string(FIND ${SOURCE_FILE} ${EXCLUDE_PATTERN} EXCLUDE_FOUND)
34+
if(NOT ${EXCLUDE_FOUND} EQUAL -1)
35+
list(REMOVE_ITEM CLANG_FORMAT_ALL_SOURCE_FILES ${SOURCE_FILE})
36+
endif()
37+
endforeach()
38+
endforeach()
39+
40+
if(WIN32)
41+
set(CLANG_FORMAT_FILENAME "clang-format.files")
42+
set(CLANG_FORMAT_ABSOLUTE_FILENAME "${CMAKE_BINARY_DIR}/${CLANG_FORMAT_FILENAME}")
43+
if (EXISTS ${CLANG_FORMAT_ABSOLUTE_FILENAME})
44+
file(REMOVE ${CLANG_FORMAT_ABSOLUTE_FILENAME})
45+
endif()
46+
47+
set(COUNT 1)
48+
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} CMAKE_WINDOWS_BINARY_DIR)
49+
foreach(SOURCE_FILE ${CLANG_FORMAT_ALL_SOURCE_FILES})
50+
file(RELATIVE_PATH RELATIVE_SOURCE_FILE ${CMAKE_BINARY_DIR} ${SOURCE_FILE})
51+
file(TO_NATIVE_PATH ${RELATIVE_SOURCE_FILE} NATIVE_RELATIVE_SOURCE_FILE)
52+
53+
if(COUNT EQUAL 50)
54+
file(APPEND ${CLANG_FORMAT_ABSOLUTE_FILENAME} " ${NATIVE_RELATIVE_SOURCE_FILE}\n")
55+
set(COUNT 1)
56+
else()
57+
file(APPEND ${CLANG_FORMAT_ABSOLUTE_FILENAME} " ${NATIVE_RELATIVE_SOURCE_FILE}")
58+
MATH(EXPR COUNT "${COUNT} + 1")
59+
endif()
60+
endforeach()
61+
62+
file(TO_NATIVE_PATH ${CLANG_FORMAT_EXE} CLANG_FORMAT_EXE)
63+
file(WRITE "${CMAKE_BINARY_DIR}/clang-format-windows.bat"
64+
"@REM Generated clang-format script for Windows\r\n"
65+
"@ECHO OFF\r\n"
66+
"SETLOCAL ENABLEDELAYEDEXPANSION\r\n"
67+
"SET IS_FAILED_CHECK=0\r\n"
68+
"PUSHD ${CMAKE_WINDOWS_BINARY_DIR}>NUL\r\n"
69+
"FOR /F \"TOKENS=*\" %%A IN (${CLANG_FORMAT_FILENAME}) do (\r\n"
70+
" IF %1 EQU 1 (\r\n"
71+
" \"${CLANG_FORMAT_EXE}\" -i -fallback-style=none -style=file %%A\r\n"
72+
" IF NOT !ERRORLEVEL! EQU 0 (\r\n"
73+
" SET IS_FAILED_CHECK=1\r\n"
74+
" )\r\n"
75+
" )\r\n"
76+
" IF %1 EQU 2 (\r\n"
77+
" \"${CLANG_FORMAT_EXE}\" -output-replacements-xml -fallback-style=none -style=file %%A 2>&1 | FINDSTR /C:\"replacement offset\">NUL\r\n"
78+
" IF !ERRORLEVEL! EQU 0 (\r\n"
79+
" SET IS_FAILED_CHECK=1\r\n"
80+
" )\r\n"
81+
" )\r\n"
82+
")\r\n"
83+
"IF NOT !IS_FAILED_CHECK! EQU 0 (\r\n"
84+
" POPD\r\n"
85+
" EXIT /B 1\r\n"
86+
")\r\n"
87+
"POPD\r\n"
88+
"ENDLOCAL\r\n"
89+
"EXIT /B 0\r\n")
90+
91+
add_custom_target(format
92+
COMMENT "Format source files using clang-format"
93+
COMMAND "${CMAKE_WINDOWS_BINARY_DIR}\\clang-format-windows.bat" 1)
94+
95+
add_custom_target(format-check
96+
COMMENT "Verify source files formatting using clang-format"
97+
COMMAND "${CMAKE_WINDOWS_BINARY_DIR}\\clang-format-windows.bat" 2)
98+
else()
99+
add_custom_target(format
100+
COMMENT "Format source files using clang-format"
101+
COMMAND ${CLANG_FORMAT_EXE} -i -fallback-style=none -style=file ${CLANG_FORMAT_ALL_SOURCE_FILES})
102+
103+
add_custom_target(format-check
104+
COMMENT "Verify source files formatting using clang-format"
105+
COMMAND ! ${CLANG_FORMAT_EXE} -output-replacements-xml -fallback-style=none -style=file ${CLANG_FORMAT_ALL_SOURCE_FILES} | tee replacements.xml | grep -q "replacement offset")
106+
endif()
107+
else()
108+
message(STATUS "Unable to find clang-format. Not creating format targets.")
109+
endif()

cmake/modules/CppDriver.cmake

+3-28
Original file line numberDiff line numberDiff line change
@@ -810,25 +810,6 @@ macro(CassSetCompilerFlags)
810810
add_definitions("/MP")
811811
endif()
812812

813-
# Enable link time optimization for all MSVC build configurations
814-
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
815-
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG")
816-
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
817-
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
818-
819-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /GL")
820-
string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO}")
821-
set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
822-
string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO}")
823-
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
824-
string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}")
825-
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
826-
827-
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /GL")
828-
set(CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL "${CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL} /LTCG")
829-
set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /LTCG")
830-
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /LTCG")
831-
832813
# On Visual C++ -pedantic flag is not used,
833814
# -fPIC is not used on Windows platform (all DLLs are
834815
# relocable), -Wall generates about 30k stupid warnings
@@ -1001,18 +982,12 @@ macro(CassFindSourceFiles)
1001982
endif()
1002983

1003984
set(CASS_ALL_SOURCE_FILES ${CASS_SRC_FILES} ${CASS_API_HEADER_FILES} ${CASS_INC_FILES})
1004-
1005-
# Shorten the source file pathing for log messages
1006-
foreach(SRC_FILE ${CASS_SRC_FILES})
1007-
string(REPLACE "${CASS_ROOT_DIR}/" "" LOG_FILE_ ${SRC_FILE})
1008-
set_source_files_properties(${SRC_FILE} PROPERTIES COMPILE_FLAGS -DLOG_FILE_=\\\"${LOG_FILE_}\\\")
1009-
endforeach()
1010985
endmacro()
1011986

1012987
#------------------------
1013988
# CassConfigure
1014989
#
1015-
# Generate cassconfig.hpp from cassconfig.hpp.in
990+
# Generate driver_config.hpp from driver_config.hpp.in
1016991
#
1017992
# Input: CASS_ROOT_DIR, CASS_SRC_DIR
1018993
#------------------------
@@ -1048,6 +1023,6 @@ macro(CassConfigure)
10481023
check_cxx_source_compiles("int main() { return __builtin_bswap64(42); }" HAVE_BUILTIN_BSWAP64)
10491024
endif()
10501025

1051-
# Generate the cassconfig.hpp file
1052-
configure_file(${CASS_ROOT_DIR}/cassconfig.hpp.in ${CASS_SRC_DIR}/cassconfig.hpp)
1026+
# Generate the driver_config.hpp file
1027+
configure_file(${CASS_ROOT_DIR}/driver_config.hpp.in ${CASS_SRC_DIR}/driver_config.hpp)
10531028
endmacro()

cmake/modules/ExternalProject-OpenSSL.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ endif()
2121
# OpenSSL related CMake options
2222
option(OPENSSL_VERSION "OpenSSL version to build and install")
2323
if(NOT OPENSSL_VERSION)
24-
# TODO: Should we default to OpenSSL 1.1 (e.g. 1.1.1b)?
25-
set(OPENSSL_VERSION "1.0.2r")
24+
# TODO: Should we default to OpenSSL 1.1 (e.g. 1.1.1c)?
25+
set(OPENSSL_VERSION "1.0.2s")
2626
endif()
2727
option(OPENSSL_INSTALL_PREFIX "OpenSSL installation prefix location")
2828
if(CASS_USE_ZLIB)

cmake/modules/ExternalProject-libssh2.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ if(NOT LIBSSH2_INSTALL_PREFIX)
2222
endif()
2323
option(LIBSSH2_VERSION "libssh2 version to build and install")
2424
if(NOT LIBSSH2_VERSION)
25-
set(LIBSSH2_VERSION "1.8.2")
25+
set(LIBSSH2_VERSION "1.9.0")
2626
endif()
2727
set(LIBSSH2_VERSION ${LIBSSH2_VERSION} CACHE STRING "libssh2 version to build and install" FORCE)
2828

cmake/modules/ExternalProject-libuv.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ if(NOT LIBUV_INSTALL_PREFIX)
2222
endif()
2323
option(LIBUV_VERSION "libuv version to build and install")
2424
if(NOT LIBUV_VERSION)
25-
set(LIBUV_VERSION "1.28.0")
25+
set(LIBUV_VERSION "1.29.1")
2626
endif()
2727
set(LIBUV_VERSION ${LIBUV_VERSION} CACHE STRING "libuv version to build and install" FORCE)
2828

docs.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,13 @@ rewrites:
5252
- ^examples/(.*): https://github.com/datastax/cpp-driver/blob/master/examples/\1
5353
- http://www.datastax.com/documentation/cql/3.1: https://docs.datastax.com/en/archived/cql/3.1
5454
- http://www.datastax.com/documentation/cassandra/2.: https://docs.datastax.com/en/archived/cassandra/2.
55+
- http://downloads.datastax.com/cpp-driver: https://downloads.datastax.com/cpp-driver/
5556
rules:
5657
use_path_nav_files_only: true
5758

5859
versions:
60+
- name: "2.13"
61+
ref: 2.13.0
5962
- name: "2.12"
6063
ref: 2.12.0
6164
- name: "2.11"

cassconfig.hpp.in driver_config.hpp.in

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef __CASSANDRA_CONFIG_HPP_INCLUDED__
2-
#define __CASSANDRA_CONFIG_HPP_INCLUDED__
1+
#ifndef DATASTAX_INTERNAL_DRIVER_CONFIG_HPP
2+
#define DATASTAX_INTERNAL_DRIVER_CONFIG_HPP
33

44
#cmakedefine HAVE_OPENSSL
55
#cmakedefine HAVE_STD_ATOMIC

examples/async/async.c

+4-8
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
*/
2727

2828
#include <assert.h>
29-
#include <string.h>
3029
#include <stdio.h>
3130
#include <stdlib.h>
31+
#include <string.h>
3232

3333
#include "cassandra.h"
3434

@@ -41,7 +41,6 @@ void print_error(CassFuture* future) {
4141
fprintf(stderr, "Error: %.*s\n", (int)message_length, message);
4242
}
4343

44-
4544
CassCluster* create_cluster(const char* hosts) {
4645
CassCluster* cluster = cass_cluster_new();
4746
cass_cluster_set_contact_points(cluster, hosts);
@@ -90,7 +89,7 @@ void insert_into_async(CassSession* session, const char* key) {
9089

9190
size_t i;
9291
for (i = 0; i < NUM_CONCURRENT_REQUESTS; ++i) {
93-
char key_buffer[64];
92+
char key_buffer[64];
9493
statement = cass_statement_new(query, 6);
9594

9695
sprintf(key_buffer, "%s%u", key, (unsigned int)i);
@@ -135,13 +134,10 @@ int main(int argc, char* argv[]) {
135134
return -1;
136135
}
137136

138-
execute_query(session,
139-
"CREATE KEYSPACE examples WITH replication = { \
137+
execute_query(session, "CREATE KEYSPACE examples WITH replication = { \
140138
'class': 'SimpleStrategy', 'replication_factor': '3' };");
141139

142-
143-
execute_query(session,
144-
"CREATE TABLE examples.async (key text, \
140+
execute_query(session, "CREATE TABLE examples.async (key text, \
145141
bln boolean, \
146142
flt float, dbl double,\
147143
i32 int, i64 bigint, \

0 commit comments

Comments
 (0)