mirror of https://github.com/apache/cassandra
Fix schema loading of UDTs inside vectors inside UDTs
patch by Aleksey Yeschenko; reviewed by Marcus Eriksson for CASSANDRA-18964
This commit is contained in:
parent
3088b8114c
commit
7d54a62ccc
|
|
@ -1,4 +1,5 @@
|
||||||
5.0-alpha2
|
5.0-alpha2
|
||||||
|
* Fix schema loading of UDTs inside vectors inside UDTs (CASSANDRA-18964)
|
||||||
* Add cqlsh autocompletion for the vector data type (CASSANDRA-18946)
|
* Add cqlsh autocompletion for the vector data type (CASSANDRA-18946)
|
||||||
* Fix nodetool tablehistograms output to avoid printing repeated information and ensure at most two arguments (CASSANDRA-18955)
|
* Fix nodetool tablehistograms output to avoid printing repeated information and ensure at most two arguments (CASSANDRA-18955)
|
||||||
* Change the checksum algorithm SAI-related files use from CRC32 to CRC32C (CASSANDRA-18836)
|
* Change the checksum algorithm SAI-related files use from CRC32 to CRC32C (CASSANDRA-18836)
|
||||||
|
|
|
||||||
|
|
@ -899,6 +899,12 @@ public interface CQL3Type
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean referencesUserType(String name)
|
||||||
|
{
|
||||||
|
return element.referencesUserType(name);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean supportsFreezing()
|
public boolean supportsFreezing()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import org.apache.cassandra.db.marshal.FloatType;
|
||||||
import org.apache.cassandra.db.marshal.Int32Type;
|
import org.apache.cassandra.db.marshal.Int32Type;
|
||||||
import org.apache.cassandra.db.marshal.VectorType;
|
import org.apache.cassandra.db.marshal.VectorType;
|
||||||
import org.apache.cassandra.exceptions.InvalidRequestException;
|
import org.apache.cassandra.exceptions.InvalidRequestException;
|
||||||
|
import org.apache.cassandra.schema.SchemaKeyspace;
|
||||||
import org.apache.cassandra.transport.ProtocolVersion;
|
import org.apache.cassandra.transport.ProtocolVersion;
|
||||||
import org.apache.cassandra.utils.ByteBufferUtil;
|
import org.apache.cassandra.utils.ByteBufferUtil;
|
||||||
import org.assertj.core.api.Assertions;
|
import org.assertj.core.api.Assertions;
|
||||||
|
|
@ -188,6 +189,22 @@ public class CQLVectorTest extends CQLTester.InMemory
|
||||||
"INSERT INTO %s (pk, value) VALUES (0, ?)", vector("a", "b", "c"));
|
"INSERT INTO %s (pk, value) VALUES (0, ?)", vector("a", "b", "c"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sandwichBetweenUDTs()
|
||||||
|
{
|
||||||
|
schemaChange("CREATE TYPE cql_test_keyspace.b (y int);");
|
||||||
|
schemaChange("CREATE TYPE cql_test_keyspace.a (z vector<frozen<b>, 2>);");
|
||||||
|
|
||||||
|
// make sure types can be loaded back; see https://issues.apache.org/jira/browse/CASSANDRA-18964
|
||||||
|
SchemaKeyspace.fetchNonSystemKeyspaces();
|
||||||
|
|
||||||
|
createTable("CREATE TABLE %s (pk int primary key, value a)");
|
||||||
|
|
||||||
|
execute("INSERT INTO %s (pk, value) VALUES (0, {z: [{y:1}, {y:2}]})");
|
||||||
|
assertRows(execute("SELECT * FROM %s"),
|
||||||
|
row(0, userType("z", vector(userType("y", 1), userType("y", 2)))));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void invalidElementTypeFixedWidth() throws Throwable
|
public void invalidElementTypeFixedWidth() throws Throwable
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue