Merge remote-tracking branch 'origin/562'
Conflicts: cassandra/cqltypes.py
This commit is contained in:
@@ -985,7 +985,7 @@ class CompositeType(_ParameterizedType):
|
|||||||
return tuple(result)
|
return tuple(result)
|
||||||
|
|
||||||
|
|
||||||
class DynamicCompositeType(CompositeType):
|
class DynamicCompositeType(_ParameterizedType):
|
||||||
typename = "org.apache.cassandra.db.marshal.DynamicCompositeType"
|
typename = "org.apache.cassandra.db.marshal.DynamicCompositeType"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -1776,12 +1776,9 @@ class SchemaParserV22(_SchemaParser):
|
|||||||
comparator = types.lookup_casstype(row["comparator"])
|
comparator = types.lookup_casstype(row["comparator"])
|
||||||
table_meta.comparator = comparator
|
table_meta.comparator = comparator
|
||||||
|
|
||||||
if issubclass(comparator, types.CompositeType):
|
is_dct_comparator = issubclass(comparator, types.DynamicCompositeType)
|
||||||
column_name_types = comparator.subtypes
|
is_composite_comparator = issubclass(comparator, types.CompositeType)
|
||||||
is_composite_comparator = True
|
column_name_types = comparator.subtypes if is_composite_comparator else (comparator,)
|
||||||
else:
|
|
||||||
column_name_types = (comparator,)
|
|
||||||
is_composite_comparator = False
|
|
||||||
|
|
||||||
num_column_name_components = len(column_name_types)
|
num_column_name_components = len(column_name_types)
|
||||||
last_col = column_name_types[-1]
|
last_col = column_name_types[-1]
|
||||||
@@ -1795,7 +1792,8 @@ class SchemaParserV22(_SchemaParser):
|
|||||||
|
|
||||||
if column_aliases is not None:
|
if column_aliases is not None:
|
||||||
column_aliases = json.loads(column_aliases)
|
column_aliases = json.loads(column_aliases)
|
||||||
else:
|
|
||||||
|
if not column_aliases: # json load failed or column_aliases empty PYTHON-562
|
||||||
column_aliases = [r.get('column_name') for r in clustering_rows]
|
column_aliases = [r.get('column_name') for r in clustering_rows]
|
||||||
|
|
||||||
if is_composite_comparator:
|
if is_composite_comparator:
|
||||||
@@ -1818,10 +1816,10 @@ class SchemaParserV22(_SchemaParser):
|
|||||||
|
|
||||||
# Some thrift tables define names in composite types (see PYTHON-192)
|
# Some thrift tables define names in composite types (see PYTHON-192)
|
||||||
if not column_aliases and hasattr(comparator, 'fieldnames'):
|
if not column_aliases and hasattr(comparator, 'fieldnames'):
|
||||||
column_aliases = comparator.fieldnames
|
column_aliases = filter(None, comparator.fieldnames)
|
||||||
else:
|
else:
|
||||||
is_compact = True
|
is_compact = True
|
||||||
if column_aliases or not col_rows:
|
if column_aliases or not col_rows or is_dct_comparator:
|
||||||
has_value = True
|
has_value = True
|
||||||
clustering_size = num_column_name_components
|
clustering_size = num_column_name_components
|
||||||
else:
|
else:
|
||||||
@@ -1866,7 +1864,7 @@ class SchemaParserV22(_SchemaParser):
|
|||||||
if len(column_aliases) > i:
|
if len(column_aliases) > i:
|
||||||
column_name = column_aliases[i]
|
column_name = column_aliases[i]
|
||||||
else:
|
else:
|
||||||
column_name = "column%d" % i
|
column_name = "column%d" % (i + 1)
|
||||||
|
|
||||||
data_type = column_name_types[i]
|
data_type = column_name_types[i]
|
||||||
cql_type = _cql_from_cass_type(data_type)
|
cql_type = _cql_from_cass_type(data_type)
|
||||||
|
|||||||
Reference in New Issue
Block a user