[
https://issues.apache.org/jira/browse/BEAM-4573?focusedWorklogId=112765&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-112765
]
ASF GitHub Bot logged work on BEAM-4573:
----------------------------------------
Author: ASF GitHub Bot
Created on: 18/Jun/18 14:44
Start Date: 18/Jun/18 14:44
Worklog Time Spent: 10m
Work Description: kennknowles opened a new pull request #5667:
[BEAM-BEAM-4573] Add framework for exhaustively checking SQL operator support
URL: https://github.com/apache/beam/pull/5667
This adds a test class intended to hold tests for all the row-level
operators that we claim to support. I added a lightweight annotation just for
this test class so that we can keep track of which operators are tested.
Currently I have added only the tests from our existing string operators and
array operators. To make progress in small pieces, you can remove the `@Ignore`
and add some that are missing. Many are probably not supported and some are
query-level.
Here is the current output of the failure:
```
No tests declared for operators:
SqlOperatorId{name=, kind=PATTERN_CONCAT}
SqlOperatorId{name=$ELEMENT_SLICE, kind=OTHER}
SqlOperatorId{name=$HISTOGRAM, kind=OTHER_FUNCTION}
SqlOperatorId{name=$HISTOGRAM_FIRST_VALUE, kind=OTHER_FUNCTION}
SqlOperatorId{name=$HISTOGRAM_LAST_VALUE, kind=OTHER_FUNCTION}
SqlOperatorId{name=$HISTOGRAM_MAX, kind=OTHER_FUNCTION}
SqlOperatorId{name=$HISTOGRAM_MIN, kind=OTHER_FUNCTION}
SqlOperatorId{name=$IS_DIFFERENT_FROM, kind=OTHER}
SqlOperatorId{name=$LiteralChain, kind=LITERAL_CHAIN}
SqlOperatorId{name=$SCALAR_QUERY, kind=SCALAR_QUERY}
SqlOperatorId{name=$SLICE, kind=OTHER}
SqlOperatorId{name=$SUM0, kind=SUM0}
SqlOperatorId{name=$throw, kind=OTHER}
SqlOperatorId{name=%, kind=MOD}
SqlOperatorId{name=*, kind=TIMES}
SqlOperatorId{name=+, kind=PLUS}
SqlOperatorId{name=+, kind=PLUS_PREFIX}
SqlOperatorId{name=-, kind=MINUS}
SqlOperatorId{name=-, kind=MINUS_PREFIX}
SqlOperatorId{name=/, kind=DIVIDE}
SqlOperatorId{name=/INT, kind=DIVIDE}
SqlOperatorId{name=<, kind=LESS_THAN}
SqlOperatorId{name=< ALL, kind=ALL}
SqlOperatorId{name=< SOME, kind=SOME}
SqlOperatorId{name=<=, kind=LESS_THAN_OR_EQUAL}
SqlOperatorId{name=<= ALL, kind=ALL}
SqlOperatorId{name=<= SOME, kind=SOME}
SqlOperatorId{name=<>, kind=NOT_EQUALS}
SqlOperatorId{name=<> ALL, kind=ALL}
SqlOperatorId{name=<> SOME, kind=SOME}
SqlOperatorId{name==, kind=EQUALS}
SqlOperatorId{name== ALL, kind=ALL}
SqlOperatorId{name== SOME, kind=SOME}
SqlOperatorId{name==>, kind=ARGUMENT_ASSIGNMENT}
SqlOperatorId{name=>, kind=GREATER_THAN}
SqlOperatorId{name=> ALL, kind=ALL}
SqlOperatorId{name=> SOME, kind=SOME}
SqlOperatorId{name=>=, kind=GREATER_THAN_OR_EQUAL}
SqlOperatorId{name=>= ALL, kind=ALL}
SqlOperatorId{name=>= SOME, kind=SOME}
SqlOperatorId{name=ABS, kind=OTHER_FUNCTION}
SqlOperatorId{name=ACOS, kind=OTHER_FUNCTION}
SqlOperatorId{name=AND, kind=AND}
SqlOperatorId{name=APPROX_COUNT_DISTINCT, kind=COUNT}
SqlOperatorId{name=ARRAY, kind=ARRAY_QUERY_CONSTRUCTOR}
SqlOperatorId{name=AS, kind=AS}
SqlOperatorId{name=ASIN, kind=OTHER_FUNCTION}
SqlOperatorId{name=ATAN, kind=OTHER_FUNCTION}
SqlOperatorId{name=ATAN2, kind=OTHER_FUNCTION}
SqlOperatorId{name=AVG, kind=AVG}
SqlOperatorId{name=BETWEEN ASYMMETRIC, kind=BETWEEN}
SqlOperatorId{name=BETWEEN SYMMETRIC, kind=BETWEEN}
SqlOperatorId{name=CALL, kind=PROCEDURE_CALL}
SqlOperatorId{name=CASE, kind=CASE}
SqlOperatorId{name=CAST, kind=CAST}
SqlOperatorId{name=CEIL, kind=CEIL}
SqlOperatorId{name=CLASSIFIER, kind=CLASSIFIER}
SqlOperatorId{name=COALESCE, kind=COALESCE}
SqlOperatorId{name=COLLECT, kind=COLLECT}
SqlOperatorId{name=COLUMN_LIST, kind=COLUMN_LIST}
SqlOperatorId{name=CONTAINS, kind=CONTAINS}
SqlOperatorId{name=CONVERT, kind=OTHER_FUNCTION}
SqlOperatorId{name=COS, kind=OTHER_FUNCTION}
SqlOperatorId{name=COT, kind=OTHER_FUNCTION}
SqlOperatorId{name=COUNT, kind=COUNT}
SqlOperatorId{name=COVAR_POP, kind=COVAR_POP}
SqlOperatorId{name=COVAR_SAMP, kind=COVAR_SAMP}
SqlOperatorId{name=CUBE, kind=CUBE}
SqlOperatorId{name=CUME_DIST, kind=CUME_DIST}
SqlOperatorId{name=CURRENT_CATALOG, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_DATE, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_PATH, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_ROLE, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_SCHEMA, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_TIME, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_TIMESTAMP, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_USER, kind=OTHER_FUNCTION}
SqlOperatorId{name=CURRENT_VALUE, kind=CURRENT_VALUE}
SqlOperatorId{name=CURSOR, kind=CURSOR}
SqlOperatorId{name=DATETIME_PLUS, kind=PLUS}
SqlOperatorId{name=DAYOFMONTH, kind=OTHER}
SqlOperatorId{name=DAYOFWEEK, kind=OTHER}
SqlOperatorId{name=DAYOFYEAR, kind=OTHER}
SqlOperatorId{name=DEFAULT, kind=DEFAULT}
SqlOperatorId{name=DEGREES, kind=OTHER_FUNCTION}
SqlOperatorId{name=DENSE_RANK, kind=DENSE_RANK}
SqlOperatorId{name=DESC, kind=DESCENDING}
SqlOperatorId{name=DOT, kind=DOT}
SqlOperatorId{name=EQUALS, kind=PERIOD_EQUALS}
SqlOperatorId{name=ESCAPE, kind=ESCAPE}
SqlOperatorId{name=EXISTS, kind=EXISTS}
SqlOperatorId{name=EXP, kind=OTHER_FUNCTION}
SqlOperatorId{name=EXTEND, kind=EXTEND}
SqlOperatorId{name=EXTRACT, kind=EXTRACT}
SqlOperatorId{name=FILTER, kind=FILTER}
SqlOperatorId{name=FINAL, kind=FINAL}
SqlOperatorId{name=FIRST, kind=FIRST}
SqlOperatorId{name=FIRST_VALUE, kind=FIRST_VALUE}
SqlOperatorId{name=FLOOR, kind=FLOOR}
SqlOperatorId{name=FUSION, kind=FUSION}
SqlOperatorId{name=GROUPING, kind=GROUPING}
SqlOperatorId{name=GROUPING SETS, kind=GROUPING_SETS}
SqlOperatorId{name=GROUPING_ID, kind=GROUPING}
SqlOperatorId{name=GROUP_ID, kind=GROUP_ID}
SqlOperatorId{name=HOP, kind=HOP}
SqlOperatorId{name=HOP_END, kind=HOP_END}
SqlOperatorId{name=HOP_START, kind=HOP_START}
SqlOperatorId{name=HOUR, kind=OTHER}
SqlOperatorId{name=IMMEDIATELY PRECEDES, kind=IMMEDIATELY_PRECEDES}
SqlOperatorId{name=IMMEDIATELY SUCCEEDS, kind=IMMEDIATELY_SUCCEEDS}
SqlOperatorId{name=IN, kind=IN}
SqlOperatorId{name=IN_FENNEL, kind=OTHER_FUNCTION}
SqlOperatorId{name=IS A SET, kind=OTHER}
SqlOperatorId{name=IS DISTINCT FROM, kind=IS_DISTINCT_FROM}
SqlOperatorId{name=IS FALSE, kind=IS_FALSE}
SqlOperatorId{name=IS NOT DISTINCT FROM, kind=IS_NOT_DISTINCT_FROM}
SqlOperatorId{name=IS NOT FALSE, kind=IS_NOT_FALSE}
SqlOperatorId{name=IS NOT NULL, kind=IS_NOT_NULL}
SqlOperatorId{name=IS NOT TRUE, kind=IS_NOT_TRUE}
SqlOperatorId{name=IS NOT UNKNOWN, kind=IS_NOT_NULL}
SqlOperatorId{name=IS NULL, kind=IS_NULL}
SqlOperatorId{name=IS TRUE, kind=IS_TRUE}
SqlOperatorId{name=IS UNKNOWN, kind=IS_NULL}
SqlOperatorId{name=ITEM, kind=OTHER_FUNCTION}
SqlOperatorId{name=LAG, kind=LAG}
SqlOperatorId{name=LAST, kind=LAST}
SqlOperatorId{name=LAST_VALUE, kind=LAST_VALUE}
SqlOperatorId{name=LATERAL, kind=LATERAL}
SqlOperatorId{name=LEAD, kind=LEAD}
SqlOperatorId{name=LIKE, kind=LIKE}
SqlOperatorId{name=LN, kind=OTHER_FUNCTION}
SqlOperatorId{name=LOCALTIME, kind=OTHER_FUNCTION}
SqlOperatorId{name=LOCALTIMESTAMP, kind=OTHER_FUNCTION}
SqlOperatorId{name=LOG10, kind=OTHER_FUNCTION}
SqlOperatorId{name=MAP, kind=MAP_VALUE_CONSTRUCTOR}
SqlOperatorId{name=MAP, kind=MAP_QUERY_CONSTRUCTOR}
SqlOperatorId{name=MATCH_NUMBER , kind=MATCH_NUMBER}
SqlOperatorId{name=MAX, kind=MAX}
SqlOperatorId{name=MEMBER OF, kind=OTHER}
SqlOperatorId{name=MIN, kind=MIN}
SqlOperatorId{name=MINUTE, kind=OTHER}
SqlOperatorId{name=MOD, kind=MOD}
SqlOperatorId{name=MONTH, kind=OTHER}
SqlOperatorId{name=MULTISET, kind=MULTISET_VALUE_CONSTRUCTOR}
SqlOperatorId{name=MULTISET, kind=MULTISET_QUERY_CONSTRUCTOR}
SqlOperatorId{name=MULTISET EXCEPT, kind=OTHER}
SqlOperatorId{name=MULTISET EXCEPT ALL, kind=OTHER}
SqlOperatorId{name=MULTISET INTERSECT, kind=OTHER}
SqlOperatorId{name=MULTISET INTERSECT ALL, kind=OTHER}
SqlOperatorId{name=MULTISET UNION, kind=OTHER}
SqlOperatorId{name=MULTISET UNION ALL, kind=OTHER}
SqlOperatorId{name=NEW, kind=NEW_SPECIFICATION}
SqlOperatorId{name=NEXT, kind=NEXT}
SqlOperatorId{name=NEXT_VALUE, kind=NEXT_VALUE}
SqlOperatorId{name=NOT, kind=NOT}
SqlOperatorId{name=NOT BETWEEN ASYMMETRIC, kind=BETWEEN}
SqlOperatorId{name=NOT BETWEEN SYMMETRIC, kind=BETWEEN}
SqlOperatorId{name=NOT IN, kind=NOT_IN}
SqlOperatorId{name=NOT LIKE, kind=LIKE}
SqlOperatorId{name=NOT SIMILAR TO, kind=SIMILAR}
SqlOperatorId{name=NTILE, kind=NTILE}
SqlOperatorId{name=NULLIF, kind=NULLIF}
SqlOperatorId{name=NULLS FIRST, kind=NULLS_FIRST}
SqlOperatorId{name=NULLS LAST, kind=NULLS_LAST}
SqlOperatorId{name=OR, kind=OR}
SqlOperatorId{name=OVER, kind=OVER}
SqlOperatorId{name=OVERLAPS, kind=OVERLAPS}
SqlOperatorId{name=PATTERN_EXCLUDE, kind=PATTERN_EXCLUDED}
SqlOperatorId{name=PATTERN_PERMUTE, kind=PATTERN_PERMUTE}
SqlOperatorId{name=PATTERN_QUANTIFIER, kind=PATTERN_QUANTIFIER}
SqlOperatorId{name=PERCENT_RANK, kind=PERCENT_RANK}
SqlOperatorId{name=PI, kind=OTHER_FUNCTION}
SqlOperatorId{name=POWER, kind=OTHER_FUNCTION}
SqlOperatorId{name=PRECEDES, kind=PRECEDES}
SqlOperatorId{name=PREV, kind=PREV}
SqlOperatorId{name=QUARTER, kind=OTHER}
SqlOperatorId{name=RADIANS, kind=OTHER_FUNCTION}
SqlOperatorId{name=RAND, kind=OTHER_FUNCTION}
SqlOperatorId{name=RAND_INTEGER, kind=OTHER_FUNCTION}
SqlOperatorId{name=RANK, kind=RANK}
SqlOperatorId{name=REGR_SXX, kind=REGR_SXX}
SqlOperatorId{name=REGR_SYY, kind=REGR_SYY}
SqlOperatorId{name=REPLACE, kind=OTHER_FUNCTION}
SqlOperatorId{name=ROLLUP, kind=ROLLUP}
SqlOperatorId{name=ROUND, kind=OTHER_FUNCTION}
SqlOperatorId{name=ROW, kind=ROW}
SqlOperatorId{name=ROW_NUMBER, kind=ROW_NUMBER}
SqlOperatorId{name=RUNNING, kind=RUNNING}
SqlOperatorId{name=Reinterpret, kind=REINTERPRET}
SqlOperatorId{name=SECOND, kind=OTHER}
SqlOperatorId{name=SESSION, kind=SESSION}
SqlOperatorId{name=SESSION_END, kind=SESSION_END}
SqlOperatorId{name=SESSION_START, kind=SESSION_START}
SqlOperatorId{name=SESSION_USER, kind=OTHER_FUNCTION}
SqlOperatorId{name=SIGN, kind=OTHER_FUNCTION}
SqlOperatorId{name=SIMILAR TO, kind=SIMILAR}
SqlOperatorId{name=SIN, kind=OTHER_FUNCTION}
SqlOperatorId{name=SINGLE_VALUE, kind=SINGLE_VALUE}
SqlOperatorId{name=SQRT, kind=OTHER_FUNCTION}
SqlOperatorId{name=STDDEV, kind=STDDEV_SAMP}
SqlOperatorId{name=STDDEV_POP, kind=STDDEV_POP}
SqlOperatorId{name=STDDEV_SAMP, kind=STDDEV_SAMP}
SqlOperatorId{name=SUBMULTISET OF, kind=OTHER}
SqlOperatorId{name=SUCCEEDS, kind=SUCCEEDS}
SqlOperatorId{name=SUM, kind=SUM}
SqlOperatorId{name=SYSTEM_USER, kind=OTHER_FUNCTION}
SqlOperatorId{name=TABLE, kind=EXPLICIT_TABLE}
SqlOperatorId{name=TABLE, kind=COLLECTION_TABLE}
SqlOperatorId{name=TABLESAMPLE, kind=TABLESAMPLE}
SqlOperatorId{name=TAN, kind=OTHER_FUNCTION}
SqlOperatorId{name=TIMESTAMPADD, kind=TIMESTAMP_ADD}
SqlOperatorId{name=TIMESTAMPDIFF, kind=TIMESTAMP_DIFF}
SqlOperatorId{name=TRANSLATE, kind=OTHER_FUNCTION}
SqlOperatorId{name=TRUNCATE, kind=OTHER_FUNCTION}
SqlOperatorId{name=TUMBLE, kind=TUMBLE}
SqlOperatorId{name=TUMBLE_END, kind=TUMBLE_END}
SqlOperatorId{name=TUMBLE_START, kind=TUMBLE_START}
SqlOperatorId{name=UNNEST, kind=UNNEST}
SqlOperatorId{name=USER, kind=OTHER_FUNCTION}
SqlOperatorId{name=VALUES, kind=VALUES}
SqlOperatorId{name=VARIANCE, kind=VAR_SAMP}
SqlOperatorId{name=VAR_POP, kind=VAR_POP}
SqlOperatorId{name=VAR_SAMP, kind=VAR_SAMP}
SqlOperatorId{name=WEEK, kind=OTHER}
SqlOperatorId{name=YEAR, kind=OTHER}
SqlOperatorId{name=|, kind=PATTERN_ALTER}
SqlOperatorId{name=||, kind=OTHER}
```
------------------------
Follow this checklist to help us incorporate your contribution quickly and
easily:
- [x] Format the pull request title like `[BEAM-XXX] Fixes bug in
ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA
issue, if applicable. This will automatically link the pull request to the
issue.
- [x] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
It will help us expedite review of your Pull Request if you tag someone
(e.g. `@username`) to look at it.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 112765)
Time Spent: 10m
Remaining Estimate: 0h
> Test all SQL standard operators at the DSL level
> ------------------------------------------------
>
> Key: BEAM-4573
> URL: https://issues.apache.org/jira/browse/BEAM-4573
> Project: Beam
> Issue Type: Improvement
> Components: dsl-sql
> Reporter: Kenneth Knowles
> Assignee: Kenneth Knowles
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)