diff --git a/CHANGES.txt b/CHANGES.txt index 2a93e9a244..53945d6d5b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * cqlsh COPY FROM fails with []{} chars in UDT/tuple fields/values (CASSANDRA-11633) * clqsh: COPY FROM throws TypeError with Cython extensions enabled (CASSANDRA-11574) * cqlsh: COPY FROM ignores NULL values in conversion (CASSANDRA-11549) diff --git a/pylib/cqlshlib/copyutil.py b/pylib/cqlshlib/copyutil.py index 16bdf02272..e12b72fa75 100644 --- a/pylib/cqlshlib/copyutil.py +++ b/pylib/cqlshlib/copyutil.py @@ -1734,15 +1734,16 @@ class ImportConversion(object): level = 0 quote = False for i, c in enumerate(val): - if c == '{' or c == '[' or c == '(': - level += 1 - elif c == '}' or c == ']' or c == ')': - level -= 1 - elif c == '\'': + if c == '\'': quote = not quote - elif c == sep and level == 1 and not quote: - ret.append(val[last:i]) - last = i + 1 + elif not quote: + if c == '{' or c == '[' or c == '(': + level += 1 + elif c == '}' or c == ']' or c == ')': + level -= 1 + elif c == sep and level == 1: + ret.append(val[last:i]) + last = i + 1 else: if last < len(val) - 1: ret.append(val[last:-1])