diff --git a/.build/build-cqlsh.xml b/.build/build-cqlsh.xml new file mode 100644 index 0000000000..45e0e46a49 --- /dev/null +++ b/.build/build-cqlsh.xml @@ -0,0 +1,24 @@ + + + + + version = "${base.version}"${line.separator} + + diff --git a/CHANGES.txt b/CHANGES.txt index 01a92485c8..82c91d9902 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -198,6 +198,11 @@ Merged from 4.0: * Partial compaction can resurrect deleted data (CASSANDRA-18507) Merged from 3.11: Merged from 3.0: + * CQLSH emits a warning when the server version doesn't match (CASSANDRA-18745) + * Fix missing speculative retries in tablestats (CASSANDRA-18767) + * Fix Requires for Java for RPM package (CASSANDRA-18751) + * Fix CQLSH online help topic link (CASSANDRA-17534) + * Remove unused suppressions (CASSANDRA-18724) 4.1.4 diff --git a/build.xml b/build.xml index b36ce1b5c8..bc9d6eedc5 100644 --- a/build.xml +++ b/build.xml @@ -456,7 +456,7 @@ - + @@ -2073,4 +2073,5 @@ + diff --git a/pylib/cqlshlib/cqlshmain.py b/pylib/cqlshlib/cqlshmain.py index df59c4717f..20134cea8c 100755 --- a/pylib/cqlshlib/cqlshmain.py +++ b/pylib/cqlshlib/cqlshmain.py @@ -82,9 +82,8 @@ from cqlshlib.formatting import (DEFAULT_DATE_FORMAT, DEFAULT_NANOTIME_FORMAT, DEFAULT_TIMESTAMP_FORMAT, CqlType, DateTimeFormat, format_by_type) from cqlshlib.tracing import print_trace, print_trace_session -from cqlshlib.util import get_file_encoding_bomsize -from cqlshlib.util import is_file_secure - +from cqlshlib.util import get_file_encoding_bomsize, is_file_secure +from cqlshlib.serverversion import version as build_version DEFAULT_HOST = '127.0.0.1' DEFAULT_PORT = 9042 @@ -433,6 +432,8 @@ class Shell(cmd.Cmd): if stdin is None: stdin = sys.stdin + self.check_build_versions() + if tty: self.reset_prompt() self.report_connection() @@ -449,6 +450,14 @@ class Shell(cmd.Cmd): self.single_statement = single_statement self.is_subshell = is_subshell + def check_build_versions(self): + baseversion = self.connection_versions['build'] + extra = baseversion.rfind('-') + if extra: + baseversion = baseversion[0:extra] + if baseversion != build_version: + print("WARNING: cqlsh was built against {}, but this server is {}. All features may not work!".format(baseversion, build_version)) + @property def batch_mode(self): return not self.tty