Adam Markowitz created CALCITE-6539: ---------------------------------------
Summary: Improve error messages due to misspellings Key: CALCITE-6539 URL: https://issues.apache.org/jira/browse/CALCITE-6539 Project: Calcite Issue Type: Improvement Components: core Affects Versions: 1.37.0 Reporter: Adam Markowitz Consider further improvements to the Calcite "Did you mean? ..." section in error messages when a spelling mistake is detected. For example, misspelling a column name in a SELECT. {code:sql} SELECT firts_name FROM (VALUES (100, 'Bill')) as tbl(id, first_name); {code} Expected: {{From line 1, column 8 to line 1, column 16: Column 'FIRTS_NAME' not found in any table. Did you mean "FIRST_NAME"?}} Actual: {{From line 1, column 8 to line 1, column 16: Column 'FIRTS_NAME' not found in any table}} The [Ruby gem did_you_mean|https://github.com/ruby/did_you_mean/blob/master/lib/did_you_mean/spell_checker.rb] may be a reasonable example reference implementation. Common algorithms to consider such as [Levenshtein distance|https://en.wikipedia.org/wiki/Levenshtein_distance] and [Jaro-Winkler distance|https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance] are outlined in [edit distance|https://en.wikipedia.org/wiki/Edit_distance]. [Calcite SqlNameMatchers|https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql/validate/SqlNameMatchers.java#L54] and [Calcite Did You Mean implementation for column not found error messages|https://github.com/apache/calcite/blob/ac06dbcf5016ced9f158eb548c3348dcf62d7de7/core/src/main/java/org/apache/calcite/sql/validate/DelegatingScope.java#L273-L290] may be areas that could be upgraded with this kind of new functionality -- This message was sent by Atlassian Jira (v8.20.10#820010)