Sylvain Lebresne created CASSANDRA-7740: -------------------------------------------
Summary: Parsing of UDF body is broken Key: CASSANDRA-7740 URL: https://issues.apache.org/jira/browse/CASSANDRA-7740 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Robert Stupp The parsing of function body introduced by CASSANDRA-7395 is somewhat broken. It blindly parse everything up to {{END_BODY}}, which as 2 problems: # it parse function body as if it was part of the CQL syntax, so anything that don't happen to be a valid CQL token won't even parse. # something like {noformat} CREATE FUNCTION foo() RETURNS text LANGUAGE JAVA BODY return "END_BODY"; END_BODY; {noformat} will not parse correctly. I don't think we can accept random syntax like that. A better solution (which is the one Postgresql uses) is to pass the function body as a normal string. And in fact I'd be in favor of reusing Postgresql syntax (because why not), that is to have: {noformat} CREATE FUNCTION foo() RETURNS text LANGUAGE JAVA AS 'return "END_BODY"'; {noformat} One minor annoyance might be, for certain languages, the necessity to double every quote inside the string. But in a separate ticket we could introduce Postregsql solution of adding an [alternate syntax for string constants|http://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING]. -- This message was sent by Atlassian JIRA (v6.2#6252)