cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kishan Karunaratne (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-8779) Able to unintentionally nest tuples during insert
Date Tue, 10 Feb 2015 23:29:11 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-8779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kishan Karunaratne updated CASSANDRA-8779:
------------------------------------------
    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:
{noformat}
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']
{noformat}

Output:
{noformat}
#<Cassandra::Tuple:0x97b328 (fo{, , )>
{noformat}

Bug also confirmed using java-driver. 
Example using java-driver:
{noformat}
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);
TupleValue r = session.execute("SELECT b FROM mytable WHERE a=0").one().getTupleValue("b");
System.out.println(r);
{noformat}

Output:
{noformat}
('foo{', null, null)
{noformat}

  was:
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:
{noformat}
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])
result = session.execute("SELECT b FROM mytable WHERE a=0").first
p result['b']
{noformat}

Output:
{noformat}
#<Cassandra::Tuple:0x97b328 (fo{, , )>
{noformat}

Bug also confirmed using java-driver. 
Example using java-driver:
{noformat}
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);
TupleValue r = session.execute("SELECT b FROM mytable WHERE a=0").one().getTupleValue("b");
System.out.println(r);
{noformat}

Output:
{noformat}
('foo{', null, null)
{noformat}


> Able to unintentionally nest tuples during insert
> -------------------------------------------------
>
>                 Key: CASSANDRA-8779
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8779
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Linux Mint 64-bit | ruby-driver 2.1 | java-driver 2.1 | C* 2.1.2
>            Reporter: Kishan Karunaratne
>
> 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:
> {noformat}
> 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']
> {noformat}
> Output:
> {noformat}
> #<Cassandra::Tuple:0x97b328 (fo{, , )>
> {noformat}
> Bug also confirmed using java-driver. 
> Example using java-driver:
> {noformat}
> 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);
> TupleValue r = session.execute("SELECT b FROM mytable WHERE a=0").one().getTupleValue("b");
> System.out.println(r);
> {noformat}
> Output:
> {noformat}
> ('foo{', null, null)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message