Jon Haddad opened a ticket (presumably based off this email) - 
https://issues.apache.org/jira/browse/CASSANDRA-12718

 

Will get it corrected shortly.

 

 

 

From: "[email protected]" <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Tuesday, September 27, 2016 at 9:57 PM
To: user <[email protected]>
Subject: Re: Re: ask for help about exmples of Data Types the document shows

 

hi, Ben, you are right, I copy the statement from document but not check it 
carefully. It's very helpful and thank a lot !

 

By the way, is there any way to report to the document author and update the 
document? I think it may be confused for a green hand just like me.

 

[email protected]

 

From: Ben Slater

Date: 2016-09-28 12:50

To: user

Subject: Re: Re: ask for help about exmples of Data Types the document shows

My best guess it that you need to remove the quotes from around the zip values 
(ie change if to  zip: 20500 rather than zip: ‘20500’ ) as zip is defined as an 
int. 

 

Cheers

Ben

 

On Wed, 28 Sep 2016 at 14:38 [email protected] <[email protected]> wrote:

Hi, Ben Slater, thank you very much for your replay!

 

my cassandra version is 3.7, so I think there must be some thing  I 
misunderstand  ahout frozen type. I add a comma between } and ‘work’, the 
result is like below. Is there some special form  about " type frozen"?

 

cqlsh:counterks> INSERT INTO user (name, addresses) VALUES ('z3 Pr3z1den7', 
{'home' : {street: '1600 Pennsylvania Ave NW',city: 'Washington',zip: 
'20500',phones: { 'cell' : { country_code: 1, number: '202 456-1111' 
},'landline' : { country_code: 1, number: '...' } }},'work' : {street: '1600 
Pennsylvania Ave NW',city: 'Washington',zip: '20500',phones: { 'fax' : { 
country_code: 1, number: '...' } }}});

InvalidRequest: code=2200 [Invalid query] message="Invalid map literal for 
addresses: value {city: 'Washington', zip: '20500', street: '1600 Pennsylvania 
Ave NW', phones: {'cell': {number: '202 456-1111', country_code: 1}, 
'landline': {number: '...', country_code: 1}}} is not of type frozen<address>" 

 

my create statements about table and type are:

 

cqlsh:counterks> CREATE TYPE phone (     country_code int,     number text, );

cqlsh:counterks> CREATE TYPE address (     street text,     city text,     zip 
int,     phones map<text, frozen<phone>> );
cqlsh:counterks> CREATE TABLE user (
             ...     name text PRIMARY KEY,
             ...     addresses map<text, frozen<address>>
             ... );

 

 

 

[email protected]

 

From: Ben Slater

Date: 2016-09-28 11:29

To: user

Subject: Re: ask for help about exmples of Data Types the document shows

Hi, 

 

I think you are right about the typo in (1). For (2), I think you’re missing a 
comma between } and ‘work’ so the JSON is invalid.

 

I think reading this JIRA https://issues.apache.org/jira/browse/CASSANDRA-7423 
that the change requiring  a UDT as part of a collection to be explicitly 
marked as frozen is relatively recent (3.6) so the doco may be out date there.

 

Cheers

Ben

 

On Wed, 28 Sep 2016 at 13:12 [email protected] <[email protected]> wrote:

hi, everyone, I'm learning Cassandra now , and have some problems about the 
document of "Data Types" .  I don't know where to report or ask for help, so 
I'm very sorry if this mail bother you.

 

In the chapter The Cassandra Query Language (CQL)/Data Types 
(http://cassandra.apache.org/doc/latest/cql/types.html), I'm confused with two 
examples the document showing below. My enviroment is:

 

CentOS release 6.8 (Final)

 

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

 

Python 2.7.11

 

Cassandra version: 3.7

CQL version: [cqlsh 5.0.1 | Cassandra 3.7 | CQL spec 3.4.2 | Native protocol v4]

 

 

1、 in http://cassandra.apache.org/doc/latest/cql/types.html, when describing 
type set, the giving example is:

CREATE TABLE images (
    name text PRIMARY KEY,
    owner text,
    tags set<text> // A set of text values
);
INSERT INTO images (name, owner, tags)
            VALUES ('cat.jpg', 'jsmith', { 'pet', 'cute' });
// Replace the existing set entirely
UPDATE images SET tags = { 'kitten', 'cat', 'lol' } WHERE id = 'jsmith';
the update cql statement uses "WHERE id = 'jsmith'" while the table images did 
not define key "id". I think it's just a slip of the pen.

 

2、 in http://cassandra.apache.org/doc/latest/cql/types.html, when describing 
“User-Defined Types”,  the giving example is:

    CREATE TYPE phone (

    country_code int,
    number text,
)
CREATE TYPE address (
    street text,
    city text,
    zip int,
    phones map<text, phone>
)
CREATE TABLE user (
    name text PRIMARY KEY,
    addresses map<text, frozen<address>>
)
and when I try to create type address, one error occur:

 

cqlsh:counterks> CREATE TYPE address (
             ...     street text,
             ...     city text,
             ...     zip int,
             ...     phones map<text, phone>
             ... );
InvalidRequest: code=2200 [Invalid query] message="Non-frozen UDTs are not 
allowed inside collections: map<text, phone>"

 

I change the create statement, like:

 

CREATE TYPE address (
    street text,
    city text,
    zip int,
    phones map<text, frozen<phone>>
);

 

it works, and the create table user statement works well. Unfortunately, when 
running the insert statement below, error occur:

INSERT INTO user (name, addresses)
          VALUES ('z3 Pr3z1den7', {
              'home' : {
                  street: '1600 Pennsylvania Ave NW',
                  city: 'Washington',
                  zip: '20500',
                  phones: { 'cell' : { country_code: 1, number: '202 456-1111' 
},
                            'landline' : { country_code: 1, number: '...' } }
              }
              'work' : {
                  street: '1600 Pennsylvania Ave NW',
                  city: 'Washington',
                  zip: '20500',
                  phones: { 'fax' : { country_code: 1, number: '...' } }
              }
          })
error:

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] 
message="line 10:14 mismatched input 'work' expecting '}' (...: '...' } }       
       }              ['wor]k' :...)">

 

 Is the any suggestion about the problem 2?

 

Best wishes for everyone, thank you for your watching !

 

[email protected]

-- 

———————— 

Ben Slater 

Chief Product Officer

Instaclustr: Cassandra + Spark - Managed | Consulting | Support

+61 437 929 798

-- 

———————— 

Ben Slater 

Chief Product Officer

Instaclustr: Cassandra + Spark - Managed | Consulting | Support

+61 437 929 798

____________________________________________________________________
CONFIDENTIALITY NOTE: This e-mail and any attachments are confidential and may 
be legally privileged. If you are not the intended recipient, do not disclose, 
copy, distribute, or use this email or any attachments. If you have received 
this in error please let the sender know and then delete the email and all 
attachments.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to