You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Pavel Yaskevich (JIRA)" <ji...@apache.org> on 2010/11/17 12:57:13 UTC
[jira] Issue Comment Edited: (CASSANDRA-1705) CQL writes (aka
UPDATE)
[ https://issues.apache.org/jira/browse/CASSANDRA-1705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12932918#action_12932918 ]
Pavel Yaskevich edited comment on CASSANDRA-1705 at 11/17/10 6:55 AM:
----------------------------------------------------------------------
I have a question after viewing code:
1). Can you please explain to me why you do so if method is already declared to throw those exceptions (it breaks exception flow...)?
{code}
try
{
StorageProxy.mutate(rowMutations, consistency);
}
catch (org.apache.cassandra.thrift.UnavailableException e)
{
throw new UnavailableException();
}
catch (TimeoutException e)
{
throw new TimedOutException();
}
{code}
2). Suggestion for grammar:
{code}
K_SET c1=term '=' v1=term { columns.put(c1, v1); } (',' cN=term '=' vN=term { columns.put(cN, vN); })*
{code}
Could be changed to use scope like this:
{code}
updateStatement returns [UpdateStatement expr]
scope {
Map<Term, Term> columns = new HashMap<Term, Term>();
}
: -//-
K_SET (columnForUpdate)+
-//-
{
-//-
}
;
columnForUpdate
: key=term '=' value='term'
{
$updateStatement::columns.put($key, $value)
}
;
{code}
What do you think?
was (Author: xedin):
I have a question after viewing code:
1). Can you please explain to me why you do so if method is already declared to throw those exceptions (it breaks exception flow...)?
{code}
try
{
StorageProxy.mutate(rowMutations, consistency);
}
catch (org.apache.cassandra.thrift.UnavailableException e)
{
throw new UnavailableException();
}
catch (TimeoutException e)
{
throw new TimedOutException();
}
{code}
2). Suggestion for grammar:
{code}
K_SET c1=term '=' v1=term { columns.put(c1, v1); } (',' cN=term '=' vN=term { columns.put(cN, vN); })*
{code}
Could be changed to use scope like this:
{code}
updateStatement returns [UpdateStatement expr]
scope {
Map<Term, Term> columns = new HashMap<Term, Term>();
}
: -//-
K_SET (columnForUpdate)+
-//-
{
-//-
}
;
columnForUpdate
: key=term '=' value='term'
{
$updateStatement::columns.add($key, $value)
}
;
{code}
What do you think?
> CQL writes (aka UPDATE)
> -----------------------
>
> Key: CASSANDRA-1705
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1705
> Project: Cassandra
> Issue Type: Sub-task
> Components: API
> Affects Versions: 0.8
> Reporter: Eric Evans
> Assignee: Eric Evans
> Priority: Minor
> Fix For: 0.8
>
> Attachments: CQL.html, v2-0001-CASSANDRA-1705.-doc-update-for-proposed-UPDATE.txt, v2-0002-conforming-single-statement-UPDATE-impl.txt, v2-0003-batched-UPDATEs.txt
>
> Original Estimate: 0h
> Remaining Estimate: 0h
>
> CQL specification and implementation for data manipulation.
> This corresponds to the following RPC methods:
> * insert()
> * batch_mutate() (writes, not deletes)
> The initial check-in to trunk/ uses a syntax that looks like:
> {code:SQL}
> UPDATE <CF> [USING CONSISTENCY.<LVL>] WITH ROW(<key>, COLUMN(<name>, <value>)[, COLUMN(...)])[ AND ROW(...)];
> {code}
> Where:
> * <CF> is the column family name.
> * Rows are a parenthesized expressions with comma separated arguments for a key and one or more columns.
> * Columns are a parenthesized expressions with comma separated arguments for the name and value (timestamp is inaccessible).
> What is still undone:
> * Complete test coverage
> And of course, all of this is still very much open to further discussion.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.