Skip to content

Commit 2b94bd1

Browse files
authored
Merge pull request #315 from datastax/2.4.3_docs
2.4.3 release prep
2 parents 5e8133a + 276d918 commit 2b94bd1

File tree

11 files changed

+72
-58
lines changed

11 files changed

+72
-58
lines changed

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
2.4.3
2+
===========
3+
August 22, 2016
4+
5+
Features
6+
--------
7+
* Contact points are now randomized by default (CPP-193)
8+
* Token-aware routing can be used without enabling schema metadata (CPP-387)
9+
* Multiple IP addresses can be resolved from a single domain (CPP-364)
10+
11+
Other
12+
--------
13+
* Fixed issue that would cause quadradic ring processing with invalid
14+
replilcation factors (CPP-298)
15+
* Fixed issue where schema change handler could hang if an error is returned by
16+
Cassandra (CPP-381)
17+
* Fixed crash caused by connecting seperate sessions in multiple threads
18+
(CPP-385)
19+
* Fixed issue where the control connection could timeout as a result of schema
20+
or token map processing (CPP-388)
21+
* Greatly improved the performance of building the token map for token aware
22+
routing (CPP-389)
23+
* Fixed issue where heartbeats were restarted on unresponseive connections and
24+
prevented the connection from being terminated (CPP-392)
25+
126
2.4.2
227
===========
328
June 24, 2016

README.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Cassandra's native protocol and Cassandra Query Language v3.
2121
- [Blacklist], [whitelist DC], and [blacklist DC] load balancing policies
2222
- [Custom] authenticators
2323
- [Reverse DNS] with SSL peer identity verification support
24+
- Randomized contact points
2425

2526
More information about features included in 2.3 can be found in this [blog
2627
post](http://www.datastax.com/dev/blog/datastax-c-driver-2-3-ga-released).
@@ -93,14 +94,18 @@ There are several examples provided here: [examples](https://github.com/datastax
9394
#include <cassandra.h>
9495
#include <stdio.h>
9596

96-
int main() {
97+
int main(int argc, char* argv[]) {
9798
/* Setup and connect to cluster */
9899
CassFuture* connect_future = NULL;
99100
CassCluster* cluster = cass_cluster_new();
100101
CassSession* session = cass_session_new();
102+
char* hosts = "127.0.0.1";
103+
if (argc > 1) {
104+
hosts = argv[1];
105+
}
101106

102107
/* Add contact points */
103-
cass_cluster_set_contact_points(cluster, "127.0.0.1,127.0.0.2,127.0.0.3");
108+
cass_cluster_set_contact_points(cluster, hosts);
104109

105110
/* Provide the cluster object as configuration to connect the session */
106111
connect_future = cass_session_connect(session, cluster);
@@ -109,37 +114,32 @@ int main() {
109114
CassFuture* close_future = NULL;
110115

111116
/* Build statement and execute query */
112-
CassStatement* statement
113-
= cass_statement_new("SELECT keyspace_name "
114-
"FROM system.schema_keyspaces", 0);
117+
const char* query = "SELECT release_version FROM system.local";
118+
CassStatement* statement = cass_statement_new(query, 0);
115119

116120
CassFuture* result_future = cass_session_execute(session, statement);
117121

118-
if(cass_future_error_code(result_future) == CASS_OK) {
119-
/* Retrieve result set and iterate over the rows */
122+
if (cass_future_error_code(result_future) == CASS_OK) {
123+
/* Retrieve result set and get the first row */
120124
const CassResult* result = cass_future_get_result(result_future);
121-
CassIterator* rows = cass_iterator_from_result(result);
125+
const CassRow* row = cass_result_first_row(result);
122126

123-
while(cass_iterator_next(rows)) {
124-
const CassRow* row = cass_iterator_get_row(rows);
125-
const CassValue* value = cass_row_get_column_by_name(row, "keyspace_name");
127+
if (row) {
128+
const CassValue* value = cass_row_get_column_by_name(row, "release_version");
126129

127-
const char* keyspace;
128-
size_t keyspace_length;
129-
cass_value_get_string(value, &keyspace, &keyspace_length);
130-
printf("keyspace_name: '%.*s'\n",
131-
(int)keyspace_length, keyspace);
130+
const char* release_version;
131+
size_t release_version_length;
132+
cass_value_get_string(value, &release_version, &release_version_length);
133+
printf("release_version: '%.*s'\n", (int)release_version_length, release_version);
132134
}
133135

134136
cass_result_free(result);
135-
cass_iterator_free(rows);
136137
} else {
137138
/* Handle error */
138139
const char* message;
139140
size_t message_length;
140141
cass_future_error_message(result_future, &message, &message_length);
141-
fprintf(stderr, "Unable to run query: '%.*s'\n",
142-
(int)message_length, message);
142+
fprintf(stderr, "Unable to run query: '%.*s'\n", (int)message_length, message);
143143
}
144144

145145
cass_statement_free(statement);
@@ -154,8 +154,7 @@ int main() {
154154
const char* message;
155155
size_t message_length;
156156
cass_future_error_message(connect_future, &message, &message_length);
157-
fprintf(stderr, "Unable to connect: '%.*s'\n",
158-
(int)message_length, message);
157+
fprintf(stderr, "Unable to connect: '%.*s'\n", (int)message_length, message);
159158
}
160159

161160
cass_future_free(connect_future);

cmake/modules/CppDriver.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.6.4)
44
# Includes
55
#-----------
66
include(FindPackageHandleStandardArgs)
7-
include(CheckCXXSymbolExists)
7+
include(CheckSymbolExists)
88

99
#-----------
1010
# Policies
@@ -497,8 +497,8 @@ macro(CassFindSourceFiles)
497497
endmacro()
498498

499499
macro(CassConfigure)
500-
check_cxx_symbol_exists(SO_NOSIGPIPE "sys/socket.h;sys/types.h" HAVE_NOSIGPIPE)
501-
check_cxx_symbol_exists(sigtimedwait "signal.h" HAVE_SIGTIMEDWAIT)
500+
check_symbol_exists(SO_NOSIGPIPE "sys/socket.h;sys/types.h" HAVE_NOSIGPIPE)
501+
check_symbol_exists(sigtimedwait "signal.h" HAVE_SIGTIMEDWAIT)
502502
if (NOT WIN32 AND NOT HAVE_NOSIGPIPE AND NOT HAVE_SIGTIMEDWAIT)
503503
message(WARNING "Unable to handle SIGPIPE on your platform")
504504
endif()

examples/simple/simple.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,30 +48,27 @@ int main(int argc, char* argv[]) {
4848
CassFuture* close_future = NULL;
4949

5050
/* Build statement and execute query */
51-
const char* query = "SELECT keyspace_name "
52-
"FROM system.schema_keyspaces;";
51+
const char* query = "SELECT release_version FROM system.local";
5352
CassStatement* statement = cass_statement_new(query, 0);
5453

5554
CassFuture* result_future = cass_session_execute(session, statement);
5655

5756
if (cass_future_error_code(result_future) == CASS_OK) {
58-
/* Retrieve result set and iterate over the rows */
57+
/* Retrieve result set and get the first row */
5958
const CassResult* result = cass_future_get_result(result_future);
60-
CassIterator* rows = cass_iterator_from_result(result);
59+
const CassRow* row = cass_result_first_row(result);
6160

62-
while (cass_iterator_next(rows)) {
63-
const CassRow* row = cass_iterator_get_row(rows);
64-
const CassValue* value = cass_row_get_column_by_name(row, "keyspace_name");
61+
if (row) {
62+
const CassValue* value = cass_row_get_column_by_name(row, "release_version");
6563

66-
const char* keyspace_name;
67-
size_t keyspace_name_length;
68-
cass_value_get_string(value, &keyspace_name, &keyspace_name_length);
69-
printf("keyspace_name: '%.*s'\n", (int)keyspace_name_length,
70-
keyspace_name);
64+
const char* release_version;
65+
size_t release_version_length;
66+
cass_value_get_string(value, &release_version, &release_version_length);
67+
printf("release_version: '%.*s'\n", (int)release_version_length,
68+
release_version);
7169
}
7270

7371
cass_result_free(result);
74-
cass_iterator_free(rows);
7572
} else {
7673
/* Handle error */
7774
const char* message;

examples/ssl/ssl.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -91,30 +91,27 @@ int main(int argc, char* argv[]) {
9191
CassFuture* close_future = NULL;
9292

9393
/* Build statement and execute query */
94-
const char* query = "SELECT keyspace_name "
95-
"FROM system.schema_keyspaces;";
94+
const char* query = "SELECT release_version FROM system.local";
9695
CassStatement* statement = cass_statement_new(query, 0);
9796

9897
CassFuture* result_future = cass_session_execute(session, statement);
9998

10099
if (cass_future_error_code(result_future) == CASS_OK) {
101-
/* Retrieve result set and iterator over the rows */
100+
/* Retrieve result set and get the first row */
102101
const CassResult* result = cass_future_get_result(result_future);
103-
CassIterator* rows = cass_iterator_from_result(result);
102+
const CassRow* row = cass_result_first_row(result);
104103

105-
while (cass_iterator_next(rows)) {
106-
const CassRow* row = cass_iterator_get_row(rows);
107-
const CassValue* value = cass_row_get_column_by_name(row, "keyspace_name");
104+
if (row) {
105+
const CassValue* value = cass_row_get_column_by_name(row, "release_version");
108106

109-
const char* keyspace_name;
110-
size_t keyspace_name_length;
111-
cass_value_get_string(value, &keyspace_name, &keyspace_name_length);
112-
printf("keyspace_name: '%.*s'\n", (int)keyspace_name_length,
113-
keyspace_name);
107+
const char* release_version;
108+
size_t release_version_length;
109+
cass_value_get_string(value, &release_version, &release_version_length);
110+
printf("release_version: '%.*s'\n", (int)release_version_length,
111+
release_version);
114112
}
115113

116114
cass_result_free(result);
117-
cass_iterator_free(rows);
118115
} else {
119116
/* Handle error */
120117
const char* message;

include/cassandra.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
#define CASS_VERSION_MAJOR 2
5454
#define CASS_VERSION_MINOR 4
55-
#define CASS_VERSION_PATCH 2
55+
#define CASS_VERSION_PATCH 3
5656
#define CASS_VERSION_SUFFIX ""
5757

5858
#ifdef __cplusplus

packaging/build_deb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ release=1
3333
dist=$(lsb_release -s -c)
3434
base="cassandra-cpp-driver-$version"
3535
archive="$base.tar.gz"
36-
files="CMakeLists.txt cmake cmake_uninstall.cmake.in include src"
36+
files="CMakeLists.txt cmake cmake_uninstall.cmake.in cassconfig.hpp.in include src"
3737

3838
echo "Building version $version"
3939

packaging/build_rpm.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fi
3636
version=$(header_version "../include/cassandra.h")
3737
base="cassandra-cpp-driver-$version"
3838
archive="$base.tar.gz"
39-
files="CMakeLists.txt cmake cmake_uninstall.cmake.in include src README.md LICENSE.txt"
39+
files="CMakeLists.txt cmake cmake_uninstall.cmake.in cassconfig.hpp.in include src README.md LICENSE.txt"
4040

4141
echo "Building version $version"
4242

topics/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ Here are some features that are missing from the C/C++ driver, but are included
184184
- Query tracing
185185
- Event registration and notification
186186
- Callback interfaces for load balancing, authentication, reconnection and retry
187-
- Generic SASL authentication interface
188187
189188
[`cass_int32_t`]: http://datastax.github.io/cpp-driver/api/cassandra.h/#cass-int32-t
190189
[`cass_result_first_row()`]: http://datastax.github.io/cpp-driver/api/CassResult/#cass-result-first-row

topics/basics/schema_metadata/README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ overhead. This can be useful to improve the startup performance of the
4848
short-lived sessions or an environment where up-to-date schema metadata is
4949
unnecessary.
5050
51-
**Important**: This also disables token-aware routing because it depends on
52-
schema metadata.
53-
5451
```c
5552
/* Disable schema metdata */
5653
cass_cluster_set_use_schema(cluster, cass_false);

0 commit comments

Comments
 (0)