Details
-
Sub-task
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
Linux Mint 64-bit | ruby-driver 2.1 | java-driver 2.1 | C* 2.1.2
-
Clients
Description
If I insert a tuple using an extra pair of ()'s, C* will let me do the insert, but (incorrectly) creates a nested tuple as the first tuple value. Upon doing a select statement, the result is jumbled and has weird binary in it (which I wasn't able to copy into here).
Example using ruby-driver:
session.execute("CREATE TABLE mytable (a int PRIMARY KEY, b frozen<tuple<ascii, bigint, boolean>>)") complete = Cassandra::Tuple.new('foo', 123, true) session.execute("INSERT INTO mytable (a, b) VALUES (0, (?))", arguments: [complete]) # extra ()'s here result = session.execute("SELECT b FROM mytable WHERE a=0").first p result['b']
Output:
#<Cassandra::Tuple:0x97b328 (fo{, , )>
Bug also confirmed using java-driver.
Example using java-driver:
session.execute("CREATE TABLE mytable (a int PRIMARY KEY, b frozen<tuple<ascii, int, boolean>>)"); TupleType t = TupleType.of(DataType.ascii(), DataType.cint(), DataType.cboolean()); TupleValue complete = t.newValue("foo", 123, true); session.execute("INSERT INTO mytable (a, b) VALUES (0, (?))", complete); // extra ()'s here TupleValue r = session.execute("SELECT b FROM mytable WHERE a=0").one().getTupleValue("b"); System.out.println(r);
Output:
('foo{', null, null)