[
https://issues.apache.org/jira/browse/CASSANDRA-10783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15325197#comment-15325197
]
Sylvain Lebresne commented on CASSANDRA-10783:
----------------------------------------------
bq. The fact that {{Term.Raw}} implements {{Selectable}} looks confusing to me
from a hierachy point of view.
Can't say I understand why that's confusing, and that slightly simplified the
code, but I don't really mind the alternative so made that change.
bq. The fact that {{ColumnIdentifier.Raw::prepare}} produce a
{{ColumnDefinition}} does not look really logical. I would be in favor of
moving {{ColumnIdentifier::Raw}} and its implementations to
{{ColumnDefinition}}.
Here again, not convinced one is a lot more logical than the other, but I'm
fine moving to {{ColumnDefinition}}. The commit is bigish but that's mostly
renamings (since {{ColumnIdentifier.Raw}} was used in quite a few places).
bq. In {{WithFieldSelection}} switching from {{ColumnIdentifier}} to
{{ByteBuffer}} makes the column name unreadable in the error message.
Good point. I actually decided to introduce a {{FieldIdentifier}} class instead
of using {{ByteBuffer}} directly. I think it's cleaner and safer. Other
slightly big commit but mostly trivial.
{quote}
* {{UnrecognizedEntityException}} is not used anymore and can be remove as well
as the try-catch block in {{SelectStatement::prepareRestrictions}} and the
containsAlias method.
* {{Relation::toColumnDefinition}} could be inlined
* {{SelectorFactories::asList}} is not used and could be removed
* {{Selector}} contains some unused imports
{quote}
Removed.
{quote}
* in testSelectPrepared:
{noformat}
execute("SELECT pk, ck, " + fIntMax + "(i, (int)?) FROM %s WHERE pk = " +
fIntMax + "((int)1,(int)1)", unset())
{noformat}
{quote}
Did you meant something else? As far as I can tell that's the exact same line
that your other comment.
Updated patches and tests results (same place as above):
|| [trunk|https://github.com/pcmanus/cassandra/commits/10783] ||
[utests|http://cassci.datastax.com/job/pcmanus-10783-testall/] ||
[dtests|http://cassci.datastax.com/job/pcmanus-10783-dtest/] ||
> Allow literal value as parameter of UDF & UDA
> ---------------------------------------------
>
> Key: CASSANDRA-10783
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10783
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL
> Reporter: DOAN DuyHai
> Assignee: Robert Stupp
> Priority: Minor
> Labels: CQL3, UDF, client-impacting, doc-impacting
> Fix For: 3.x
>
>
> I have defined the following UDF
> {code:sql}
> CREATE OR REPLACE FUNCTION maxOf(current int, testValue int) RETURNS NULL ON
> NULL INPUT
> RETURNS int
> LANGUAGE java
> AS 'return Math.max(current,testValue);'
> CREATE TABLE maxValue(id int primary key, val int);
> INSERT INTO maxValue(id, val) VALUES(1, 100);
> SELECT maxOf(val, 101) FROM maxValue WHERE id=1;
> {code}
> I got the following error message:
> {code}
> SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query]
> message="line 1:19 no viable alternative at input '101' (SELECT maxOf(val1,
> [101]...)">
> {code}
> It would be nice to allow literal value as parameter of UDF and UDA too.
> I was thinking about an use-case for an UDA groupBy() function where the end
> user can *inject* at runtime a literal value to select which aggregation he
> want to display, something similar to GROUP BY ... HAVING <filter clause>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)