lincoln lee created CALCITE-6060: ------------------------------------ Summary: The named parameter OFFSET in window functions should not conflicts with reserved keywords Key: CALCITE-6060 URL: https://issues.apache.org/jira/browse/CALCITE-6060 Project: Calcite Issue Type: Improvement Components: core Affects Versions: 1.35.0, 1.26.0 Reporter: lincoln lee
CALCITE-4171 adds support for named params in window function, but the new param name OFFSET conflicts with the reserved keyword, so it can't be used directly, users must use it with double quotes(`OFFSET`), which is inconvenient (especially for the built-in window functions, which I think shouldn't occur, actually I tend to think this is a 'bug'). For example, a case like this: {code} @Test void testTableFunctionTumbleWithParamNames() { final String sql = "select *\n" + "from table(\n" + "tumble(\n" + " DATA => table Shipments,\n" + " TIMECOL => descriptor(rowtime),\n" + " SIZE => INTERVAL '1' MINUTE,\n" + " OFFSET => INTERVAL '-1' MINUTE))"; sql(sql).ok(); } {code} will cause SqlParseException: {code} org.apache.calcite.sql.parser.SqlParseException: Incorrect syntax near the keyword 'OFFSET' at line 8, column 3. Was expecting one of: "ABS" ... "ARRAY" ... "AVG" ... ... {code} Only `OFFSET` works. If we agree to rename it, I suggest replacing it with OFFSETSIZE, with the following considerations: 1. similar to window size name SIZE, the current name actually omits SIZE, so calling it OFFSETSIZE would be easier for users to understand 2. be consistent with TIMECOL without underscores 3. btw, we found that Azure Streaming Analytics [1] also uses the name OFFSETSIZE 1. https://learn.microsoft.com/en-us/stream-analytics-query/hopping-window-azure-stream-analytics#arguments -- This message was sent by Atlassian Jira (v8.20.10#820010)