[ 
https://issues.apache.org/jira/browse/CASSANDRA-16836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17397322#comment-17397322
 ] 

Andres de la Peña commented on CASSANDRA-16836:
-----------------------------------------------

bq. I think that 3.0 is also affected, and the new testFunctionInWhereClause 
test can reproduce the failure in that branch. Shouldn't we fix that branch too?
Please ignore me about 3.0, this isn't critical enough. I was still on a with 
pre-4.0 GA mindset.

> Materialized views incorrect quoting of UDF
> -------------------------------------------
>
>                 Key: CASSANDRA-16836
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16836
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Feature/Materialized Views
>            Reporter: Berenguer Blasi
>            Assignee: Berenguer Blasi
>            Priority: Normal
>             Fix For: 4.1, 3.11.x, 4.x
>
>
> Creating a MV with a UDF needing quotes will explode on inserts after restart
>  
> {code:sql}
> create keyspace test WITH replication = {'class':'SimpleStrategy', 
> 'replication_factor' : 3};
> use test;
> CREATE TABLE t (k int PRIMARY KEY, v int);
> CREATE FUNCTION "Double" (input int) 
>    CALLED ON NULL INPUT 
>    RETURNS int 
>    LANGUAGE java 
>    AS 'return input*2;';
> CREATE MATERIALIZED VIEW mv AS SELECT * FROM t 
>    WHERE k < test."Double"(2) 
>    AND k IS NOT NULL 
>    AND v IS NOT NULL 
>    PRIMARY KEY (v, k);
>  {code}
> Now restart the node, run an insert and you get an error
> {noformat}
> INSERT INTO t(k, v) VALUES (3, 1);
> ERROR [MutationStage-2] 2021-08-10 09:55:56,662 StorageProxy.java:1551 - 
> Failed to apply mutation locally : 
> org.apache.cassandra.exceptions.InvalidRequestException: Unknown function 
> test.double called
>       at 
> org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest(RequestValidations.java:217)
>       at 
> org.apache.cassandra.cql3.functions.FunctionCall$Raw.prepare(FunctionCall.java:155)
>       at 
> org.apache.cassandra.cql3.SingleColumnRelation.toTerm(SingleColumnRelation.java:123)
>       at 
> org.apache.cassandra.cql3.SingleColumnRelation.newSliceRestriction(SingleColumnRelation.java:231)
>       at org.apache.cassandra.cql3.Relation.toRestriction(Relation.java:144)
>       at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:188)
>       at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:135)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:1067)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:937)
>       at org.apache.cassandra.db.view.View.getSelectStatement(View.java:180)
>       at org.apache.cassandra.db.view.View.getReadQuery(View.java:204)
>       at 
> org.apache.cassandra.db.view.TableViews.updatedViews(TableViews.java:368)
>       at 
> org.apache.cassandra.db.view.ViewManager.updatesAffectView(ViewManager.java:85)
>       at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:538)
>       at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:513)
>       at org.apache.cassandra.db.Mutation.apply(Mutation.java:215)
>       at org.apache.cassandra.db.Mutation.apply(Mutation.java:220)
>       at org.apache.cassandra.db.Mutation.apply(Mutation.java:229)
>       at 
> org.apache.cassandra.service.StorageProxy$4.runMayThrow(StorageProxy.java:1545)
>       at 
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2324)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>       at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
>       at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119)
>       at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>       at java.lang.Thread.run(Thread.java:748)
> WriteFailure: Error from server: code=1500 [Replica(s) failed to execute 
> write] message="Operation failed - received 0 responses and 1 failures: 
> UNKNOWN from localhost/127.0.0.1:7000" info={'consistency': 'ONE', 
> 'required_responses': 1, 'received_responses': 0, 'failures': 1, 
> 'error_code_map': {'127.0.0.1': '0x0000'}}
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to