[ https://issues.apache.org/jira/browse/COMDEV-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17698177#comment-17698177 ]
Gael Yimen Yimga commented on COMDEV-489: ----------------------------------------- This is what I have been able to get so far. !Screen Shot 2023-03-08 at 9.06.15 PM.png! > Apache ShardingSphere: Enhance SQLNodeConverterEngine to support more MySQL > SQL statements > ------------------------------------------------------------------------------------------ > > Key: COMDEV-489 > URL: https://issues.apache.org/jira/browse/COMDEV-489 > Project: Community Development > Issue Type: Improvement > Components: GSoC/Mentoring ideas > Reporter: Zhengqiang Duan > Priority: Major > Labels: Mentor, ShardingSphere, gsoc2023 > Attachments: Screen Shot 2023-03-08 at 9.06.15 PM.png > > > h2. Apache ShardingSphere > Apache ShardingSphere is positioned as a Database Plus, and aims at building > a standard layer and ecosystem above heterogeneous databases. It focuses on > how to reuse existing databases and their respective upper layer, rather than > creating a new database. The goal is to minimize or eliminate the challenges > caused by underlying databases fragmentation. > {*}Page{*}: > [https://shardingsphere.apache.org|https://shardingsphere.apache.org/] > {*}Github{*}: [https://github.com/apache/shardingsphere] > h2. Background > The ShardingSphere SQL federation engine provides support for complex SQL > statements, and it can well support cross-database join queries, subqueries, > aggregation queries and other statements. An important part of SQL federation > engine is to convert the SQL statement parsed by ShardingSphere into SqlNode, > so that Calcite can be used to implement SQL optimization and federated query. > h2. Task > This issue is to solve the MySQL exception that occurs during > SQLNodeConverterEngine conversion. The specific case list is as follows. > * select_char > * select_extract > * select_from_dual > * select_from_with_table > * select_group_by_with_having_and_window > * select_not_between_with_single_table > * select_not_in_with_single_table > * select_substring > * select_trim > * select_weight_string > * select_where_with_bit_expr_with_ampersand > * select_where_with_bit_expr_with_caret > * select_where_with_bit_expr_with_div > * select_where_with_bit_expr_with_minus_interval > * select_where_with_bit_expr_with_mod > * select_where_with_bit_expr_with_mod_sign > * select_where_with_bit_expr_with_plus_interval > * select_where_with_bit_expr_with_signed_left_shift > * select_where_with_bit_expr_with_signed_right_shift > * select_where_with_bit_expr_with_vertical_bar > * select_where_with_boolean_primary_with_comparison_subquery > * select_where_with_boolean_primary_with_is > * select_where_with_boolean_primary_with_is_not > * select_where_with_boolean_primary_with_null_safe > * select_where_with_expr_with_and_sign > * select_where_with_expr_with_is > * select_where_with_expr_with_is_not > * select_where_with_expr_with_not > * select_where_with_expr_with_not_sign > * select_where_with_expr_with_or_sign > * select_where_with_expr_with_xor > * select_where_with_predicate_with_in_subquery > * select_where_with_predicate_with_regexp > * select_where_with_predicate_with_sounds_like > * select_where_with_simple_expr_with_collate > * select_where_with_simple_expr_with_match > * select_where_with_simple_expr_with_not > * select_where_with_simple_expr_with_odbc_escape_syntax > * select_where_with_simple_expr_with_row > * select_where_with_simple_expr_with_tilde > * select_where_with_simple_expr_with_variable > * select_window_function > * select_with_assignment_operator > * select_with_assignment_operator_and_keyword > * select_with_case_expression > * select_with_collate_with_marker > * select_with_date_format_function > * select_with_exists_sub_query_with_project > * select_with_function_name > * select_with_json_value_return_type > * select_with_match_against > * select_with_regexp > * select_with_schema_name_in_column_projection > * select_with_schema_name_in_shorthand_projection > * select_with_spatial_function > * select_with_trim_expr > * select_with_trim_expr_from_expr > You need to compare the difference between actual and expected, and then > correct the logic in SQLNodeConverterEngine so that actual can be consistent > with expected. > After you make changes, remember to add case to SUPPORTED_SQL_CASE_IDS to > ensure it can be tested. > > {*}Notice{*}, these issues can be a good example. > [https://github.com/apache/shardingsphere/pull/14492|https://github.com/apache/shardingsphere/pull/15331] > h2. Relevant Skills > > 1. Master JAVA language > 2. Have a basic understanding of Antlr g4 file > 3. Be familiar with MySQL and Calcite SqlNode > h2. Targets files > > SQLNodeConverterEngineIT > [https://github.com/apache/shardingsphere/blob/master/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java] > > h3. Mentor > Zhengqiang Duan, PMC of Apache ShardingSphere, duanzhengqi...@apache.org > Chuxin Chen, Committer of Apache ShardingSphere, > [tuichenchu...@apache.org|mailto:tuichenchu...@apache.org] > Trista Pan, PMC of Apache ShardingSphere, panj...@apache.org -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@community.apache.org For additional commands, e-mail: dev-h...@community.apache.org