diff --git a/sql/mysql/Positive-Technologies/MySqlLexer.g4 b/_deprecated/sql/mysql/Positive-Technologies/MySqlLexer.g4 similarity index 100% rename from sql/mysql/Positive-Technologies/MySqlLexer.g4 rename to _deprecated/sql/mysql/Positive-Technologies/MySqlLexer.g4 diff --git a/sql/mysql/Positive-Technologies/MySqlParser.g4 b/_deprecated/sql/mysql/Positive-Technologies/MySqlParser.g4 similarity index 100% rename from sql/mysql/Positive-Technologies/MySqlParser.g4 rename to _deprecated/sql/mysql/Positive-Technologies/MySqlParser.g4 diff --git a/sql/mysql/Positive-Technologies/README.md b/_deprecated/sql/mysql/Positive-Technologies/README.md similarity index 100% rename from sql/mysql/Positive-Technologies/README.md rename to _deprecated/sql/mysql/Positive-Technologies/README.md diff --git a/sql/mysql/Positive-Technologies/desc.xml b/_deprecated/sql/mysql/Positive-Technologies/desc.xml similarity index 100% rename from sql/mysql/Positive-Technologies/desc.xml rename to _deprecated/sql/mysql/Positive-Technologies/desc.xml diff --git a/sql/mysql/Oracle/examples/admin.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/admin.sql similarity index 100% rename from sql/mysql/Oracle/examples/admin.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/admin.sql diff --git a/sql/mysql/Positive-Technologies/examples/analyze.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/analyze.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/analyze.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/analyze.sql diff --git a/sql/mysql/Oracle/examples/bitrix_queries_cut.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/bitrix_queries_cut.sql similarity index 100% rename from sql/mysql/Oracle/examples/bitrix_queries_cut.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/bitrix_queries_cut.sql diff --git a/sql/mysql/Oracle/examples/case_sensitive_sql.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/case_sensitive_sql.sql similarity index 100% rename from sql/mysql/Oracle/examples/case_sensitive_sql.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/case_sensitive_sql.sql diff --git a/sql/mysql/Positive-Technologies/examples/ddl_alter.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/ddl_alter.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/ddl_alter.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/ddl_alter.sql diff --git a/sql/mysql/Positive-Technologies/examples/ddl_create.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/ddl_create.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/ddl_create.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/ddl_create.sql diff --git a/sql/mysql/Positive-Technologies/examples/ddl_drop.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/ddl_drop.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/ddl_drop.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/ddl_drop.sql diff --git a/sql/mysql/Positive-Technologies/examples/ddl_flush.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/ddl_flush.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/ddl_flush.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/ddl_flush.sql diff --git a/sql/mysql/Oracle/examples/dml_delete.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_delete.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_delete.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_delete.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_insert.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_insert.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_insert.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_insert.sql diff --git a/sql/mysql/Oracle/examples/dml_replace.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_replace.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_replace.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_replace.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_select.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_select.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_select.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_select.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_table.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_table.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_table.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_table.sql diff --git a/sql/mysql/Oracle/examples/dml_test_arithmetic_expression.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_test_arithmetic_expression.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_test_arithmetic_expression.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_test_arithmetic_expression.sql diff --git a/sql/mysql/Oracle/examples/dml_union.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_union.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_union.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_union.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_update.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_update.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_update.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_update.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_with.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/dml_with.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_with.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/dml_with.sql diff --git a/sql/mysql/Positive-Technologies/examples/expressions.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/expressions.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/expressions.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/expressions.sql diff --git a/sql/mysql/Positive-Technologies/examples/expressions.sql.tree b/_deprecated/sql/mysql/Positive-Technologies/examples/expressions.sql.tree similarity index 100% rename from sql/mysql/Positive-Technologies/examples/expressions.sql.tree rename to _deprecated/sql/mysql/Positive-Technologies/examples/expressions.sql.tree diff --git a/sql/mysql/Positive-Technologies/examples/ext_tests.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/ext_tests.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/ext_tests.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/ext_tests.sql diff --git a/sql/mysql/Positive-Technologies/examples/grant.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/grant.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/grant.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/grant.sql diff --git a/sql/mysql/Oracle/examples/kill.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/kill.sql similarity index 100% rename from sql/mysql/Oracle/examples/kill.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/kill.sql diff --git a/sql/mysql/Oracle/examples/mysql_spec_comment.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/mysql_spec_comment.sql similarity index 100% rename from sql/mysql/Oracle/examples/mysql_spec_comment.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/mysql_spec_comment.sql diff --git a/sql/mysql/Positive-Technologies/examples/optimize.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/optimize.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/optimize.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/optimize.sql diff --git a/sql/mysql/Positive-Technologies/examples/smoke_tests.sql b/_deprecated/sql/mysql/Positive-Technologies/examples/smoke_tests.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/smoke_tests.sql rename to _deprecated/sql/mysql/Positive-Technologies/examples/smoke_tests.sql diff --git a/sql/mysql/Positive-Technologies/pom.xml b/_deprecated/sql/mysql/Positive-Technologies/pom.xml similarity index 100% rename from sql/mysql/Positive-Technologies/pom.xml rename to _deprecated/sql/mysql/Positive-Technologies/pom.xml diff --git a/_deprecated/sql/mysql/README.md b/_deprecated/sql/mysql/README.md new file mode 100644 index 0000000000..66f6ad044d --- /dev/null +++ b/_deprecated/sql/mysql/README.md @@ -0,0 +1,3 @@ +# Deprecated MySQL Grammars + +This folder contains MySQL grammars which have been deprecated and are no longer maintained. diff --git a/sql/mysql/Oracle/Antlr4ng/MySQLLexerBase.ts b/sql/mysql/Antlr4ng/MySQLLexerBase.ts similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/MySQLLexerBase.ts rename to sql/mysql/Antlr4ng/MySQLLexerBase.ts diff --git a/sql/mysql/Oracle/Antlr4ng/MySQLParserBase.ts b/sql/mysql/Antlr4ng/MySQLParserBase.ts similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/MySQLParserBase.ts rename to sql/mysql/Antlr4ng/MySQLParserBase.ts diff --git a/sql/mysql/Oracle/Antlr4ng/SqlMode.ts b/sql/mysql/Antlr4ng/SqlMode.ts similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/SqlMode.ts rename to sql/mysql/Antlr4ng/SqlMode.ts diff --git a/sql/mysql/Oracle/Antlr4ng/SqlModes.ts b/sql/mysql/Antlr4ng/SqlModes.ts similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/SqlModes.ts rename to sql/mysql/Antlr4ng/SqlModes.ts diff --git a/sql/mysql/Oracle/Antlr4ng/build.ps1 b/sql/mysql/Antlr4ng/build.ps1 similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/build.ps1 rename to sql/mysql/Antlr4ng/build.ps1 diff --git a/sql/mysql/Oracle/Antlr4ng/build.sh b/sql/mysql/Antlr4ng/build.sh similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/build.sh rename to sql/mysql/Antlr4ng/build.sh diff --git a/sql/mysql/Oracle/Antlr4ng/transformGrammar.py b/sql/mysql/Antlr4ng/transformGrammar.py similarity index 100% rename from sql/mysql/Oracle/Antlr4ng/transformGrammar.py rename to sql/mysql/Antlr4ng/transformGrammar.py diff --git a/sql/mysql/Oracle/CSharp/MySQLLexerBase.cs b/sql/mysql/CSharp/MySQLLexerBase.cs similarity index 100% rename from sql/mysql/Oracle/CSharp/MySQLLexerBase.cs rename to sql/mysql/CSharp/MySQLLexerBase.cs diff --git a/sql/mysql/Oracle/CSharp/MySQLParserBase.cs b/sql/mysql/CSharp/MySQLParserBase.cs similarity index 100% rename from sql/mysql/Oracle/CSharp/MySQLParserBase.cs rename to sql/mysql/CSharp/MySQLParserBase.cs diff --git a/sql/mysql/Oracle/CSharp/SqlMode.cs b/sql/mysql/CSharp/SqlMode.cs similarity index 100% rename from sql/mysql/Oracle/CSharp/SqlMode.cs rename to sql/mysql/CSharp/SqlMode.cs diff --git a/sql/mysql/Oracle/CSharp/SqlModes.cs b/sql/mysql/CSharp/SqlModes.cs similarity index 100% rename from sql/mysql/Oracle/CSharp/SqlModes.cs rename to sql/mysql/CSharp/SqlModes.cs diff --git a/sql/mysql/Oracle/Cpp/MySQLLexerBase.cpp b/sql/mysql/Cpp/MySQLLexerBase.cpp similarity index 100% rename from sql/mysql/Oracle/Cpp/MySQLLexerBase.cpp rename to sql/mysql/Cpp/MySQLLexerBase.cpp diff --git a/sql/mysql/Oracle/Cpp/MySQLLexerBase.h b/sql/mysql/Cpp/MySQLLexerBase.h similarity index 100% rename from sql/mysql/Oracle/Cpp/MySQLLexerBase.h rename to sql/mysql/Cpp/MySQLLexerBase.h diff --git a/sql/mysql/Oracle/Cpp/MySQLParserBase.cpp b/sql/mysql/Cpp/MySQLParserBase.cpp similarity index 100% rename from sql/mysql/Oracle/Cpp/MySQLParserBase.cpp rename to sql/mysql/Cpp/MySQLParserBase.cpp diff --git a/sql/mysql/Oracle/Cpp/MySQLParserBase.h b/sql/mysql/Cpp/MySQLParserBase.h similarity index 100% rename from sql/mysql/Oracle/Cpp/MySQLParserBase.h rename to sql/mysql/Cpp/MySQLParserBase.h diff --git a/sql/mysql/Oracle/Cpp/SqlMode.h b/sql/mysql/Cpp/SqlMode.h similarity index 100% rename from sql/mysql/Oracle/Cpp/SqlMode.h rename to sql/mysql/Cpp/SqlMode.h diff --git a/sql/mysql/Oracle/Cpp/SqlModes.cpp b/sql/mysql/Cpp/SqlModes.cpp similarity index 100% rename from sql/mysql/Oracle/Cpp/SqlModes.cpp rename to sql/mysql/Cpp/SqlModes.cpp diff --git a/sql/mysql/Oracle/Cpp/SqlModes.h b/sql/mysql/Cpp/SqlModes.h similarity index 100% rename from sql/mysql/Oracle/Cpp/SqlModes.h rename to sql/mysql/Cpp/SqlModes.h diff --git a/sql/mysql/Oracle/Cpp/transformGrammar.py b/sql/mysql/Cpp/transformGrammar.py similarity index 100% rename from sql/mysql/Oracle/Cpp/transformGrammar.py rename to sql/mysql/Cpp/transformGrammar.py diff --git a/sql/mysql/Oracle/Dart/MySQLLexerBase.dart b/sql/mysql/Dart/MySQLLexerBase.dart similarity index 100% rename from sql/mysql/Oracle/Dart/MySQLLexerBase.dart rename to sql/mysql/Dart/MySQLLexerBase.dart diff --git a/sql/mysql/Oracle/Dart/MySQLParserBase.dart b/sql/mysql/Dart/MySQLParserBase.dart similarity index 100% rename from sql/mysql/Oracle/Dart/MySQLParserBase.dart rename to sql/mysql/Dart/MySQLParserBase.dart diff --git a/sql/mysql/Oracle/Dart/SqlMode.dart b/sql/mysql/Dart/SqlMode.dart similarity index 100% rename from sql/mysql/Oracle/Dart/SqlMode.dart rename to sql/mysql/Dart/SqlMode.dart diff --git a/sql/mysql/Oracle/Dart/SqlModes.dart b/sql/mysql/Dart/SqlModes.dart similarity index 100% rename from sql/mysql/Oracle/Dart/SqlModes.dart rename to sql/mysql/Dart/SqlModes.dart diff --git a/sql/mysql/Oracle/Go/MySQLLexerBase.go b/sql/mysql/Go/MySQLLexerBase.go similarity index 100% rename from sql/mysql/Oracle/Go/MySQLLexerBase.go rename to sql/mysql/Go/MySQLLexerBase.go diff --git a/sql/mysql/Oracle/Go/MySQLParserBase.go b/sql/mysql/Go/MySQLParserBase.go similarity index 100% rename from sql/mysql/Oracle/Go/MySQLParserBase.go rename to sql/mysql/Go/MySQLParserBase.go diff --git a/sql/mysql/Oracle/Go/SqlMode.go b/sql/mysql/Go/SqlMode.go similarity index 100% rename from sql/mysql/Oracle/Go/SqlMode.go rename to sql/mysql/Go/SqlMode.go diff --git a/sql/mysql/Oracle/Go/SqlModes.go b/sql/mysql/Go/SqlModes.go similarity index 100% rename from sql/mysql/Oracle/Go/SqlModes.go rename to sql/mysql/Go/SqlModes.go diff --git a/sql/mysql/Oracle/Go/transformGrammar.py b/sql/mysql/Go/transformGrammar.py similarity index 100% rename from sql/mysql/Oracle/Go/transformGrammar.py rename to sql/mysql/Go/transformGrammar.py diff --git a/sql/mysql/Oracle/Java/MySQLLexerBase.java b/sql/mysql/Java/MySQLLexerBase.java similarity index 100% rename from sql/mysql/Oracle/Java/MySQLLexerBase.java rename to sql/mysql/Java/MySQLLexerBase.java diff --git a/sql/mysql/Oracle/Java/MySQLParserBase.java b/sql/mysql/Java/MySQLParserBase.java similarity index 100% rename from sql/mysql/Oracle/Java/MySQLParserBase.java rename to sql/mysql/Java/MySQLParserBase.java diff --git a/sql/mysql/Oracle/Java/SqlMode.java b/sql/mysql/Java/SqlMode.java similarity index 100% rename from sql/mysql/Oracle/Java/SqlMode.java rename to sql/mysql/Java/SqlMode.java diff --git a/sql/mysql/Oracle/Java/SqlModes.java b/sql/mysql/Java/SqlModes.java similarity index 100% rename from sql/mysql/Oracle/Java/SqlModes.java rename to sql/mysql/Java/SqlModes.java diff --git a/sql/mysql/Oracle/JavaScript/MySQLLexerBase.js b/sql/mysql/JavaScript/MySQLLexerBase.js similarity index 100% rename from sql/mysql/Oracle/JavaScript/MySQLLexerBase.js rename to sql/mysql/JavaScript/MySQLLexerBase.js diff --git a/sql/mysql/Oracle/JavaScript/MySQLParserBase.js b/sql/mysql/JavaScript/MySQLParserBase.js similarity index 100% rename from sql/mysql/Oracle/JavaScript/MySQLParserBase.js rename to sql/mysql/JavaScript/MySQLParserBase.js diff --git a/sql/mysql/Oracle/JavaScript/SqlMode.js b/sql/mysql/JavaScript/SqlMode.js similarity index 100% rename from sql/mysql/Oracle/JavaScript/SqlMode.js rename to sql/mysql/JavaScript/SqlMode.js diff --git a/sql/mysql/Oracle/JavaScript/SqlModes.js b/sql/mysql/JavaScript/SqlModes.js similarity index 100% rename from sql/mysql/Oracle/JavaScript/SqlModes.js rename to sql/mysql/JavaScript/SqlModes.js diff --git a/sql/mysql/Oracle/MySQLLexer.g4 b/sql/mysql/MySQLLexer.g4 similarity index 100% rename from sql/mysql/Oracle/MySQLLexer.g4 rename to sql/mysql/MySQLLexer.g4 diff --git a/sql/mysql/Oracle/MySQLParser.g4 b/sql/mysql/MySQLParser.g4 similarity index 100% rename from sql/mysql/Oracle/MySQLParser.g4 rename to sql/mysql/MySQLParser.g4 diff --git a/sql/mysql/Oracle/README.md b/sql/mysql/Oracle/README.md deleted file mode 100644 index 825e2ecc20..0000000000 --- a/sql/mysql/Oracle/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Oracle's MySQL Grammar - -## General - -This parser grammar is derived from the official Oracle grammar posted here in original/, -which is derived from sources in the MySQL Shell for VS Code extension. -https://github.com/mysql/mysql-shell-plugins/tree/8928ada7d9e37a4075291880738983752b315fee/gui/frontend/src/parsing/mysql - -This grammar is set to recognize version "8.0.200". - -Includes updates to commit https://github.com/mysql/mysql-shell-plugins/commit/d0271b1244d9686c30ce95bae92f4cf4c135d36d. - -## License - -* [BSD3](https://opensource.org/license/bsd-3-clause) -* Copyright © 2025, Oracle and/or its affiliates - -## Target Agnostic - -This grammar is "target agnostic." Unaltered, the .g4 files will not work for -Antlr4ng, Cpp, Go, and Python3. You will need to first run `python transformGrammar.py` -provided in the target-specific directory. The script modifies the .g4 files -for the port. - -## Modifying this grammar -This grammar is current hand-written. The plan is to generate the ports directly -from the sources at https://github.com/mysql/mysql-shell-plugins. - -## Issues -* The grammar is ambiguous, but generally performs well, except for bitrix_queries_cut.sql, which contains ~3000 ambiguities. - -## Performance - diff --git a/sql/mysql/Oracle/pom.xml b/sql/mysql/Oracle/pom.xml deleted file mode 100644 index dc34687ce7..0000000000 --- a/sql/mysql/Oracle/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - 4.0.0 - mysql - jar - MySQL grammar - - org.antlr.grammars - mysqlparent - 1.0-SNAPSHOT - - - - - org.antlr - antlr4-maven-plugin - ${antlr.version} - - ${basedir} - - MySQLLexer.g4 - MySQLParser.g4 - - true - true - - - - - antlr4 - - - - - - com.khubla.antlr - antlr4test-maven-plugin - ${antlr4test-maven-plugin.version} - - false - false - queries - MySQL - - examples - - - - - test - - - - - - - diff --git a/sql/mysql/Oracle/Python3/MySQLLexerBase.py b/sql/mysql/Python3/MySQLLexerBase.py similarity index 100% rename from sql/mysql/Oracle/Python3/MySQLLexerBase.py rename to sql/mysql/Python3/MySQLLexerBase.py diff --git a/sql/mysql/Oracle/Python3/MySQLParserBase.py b/sql/mysql/Python3/MySQLParserBase.py similarity index 100% rename from sql/mysql/Oracle/Python3/MySQLParserBase.py rename to sql/mysql/Python3/MySQLParserBase.py diff --git a/sql/mysql/Oracle/Python3/SqlMode.py b/sql/mysql/Python3/SqlMode.py similarity index 100% rename from sql/mysql/Oracle/Python3/SqlMode.py rename to sql/mysql/Python3/SqlMode.py diff --git a/sql/mysql/Oracle/Python3/SqlModes.py b/sql/mysql/Python3/SqlModes.py similarity index 100% rename from sql/mysql/Oracle/Python3/SqlModes.py rename to sql/mysql/Python3/SqlModes.py diff --git a/sql/mysql/Oracle/Python3/transformGrammar.py b/sql/mysql/Python3/transformGrammar.py similarity index 100% rename from sql/mysql/Oracle/Python3/transformGrammar.py rename to sql/mysql/Python3/transformGrammar.py diff --git a/sql/mysql/README.md b/sql/mysql/README.md index fae141e706..248c4d77ce 100644 --- a/sql/mysql/README.md +++ b/sql/mysql/README.md @@ -1,6 +1,31 @@ -# MySQL Grammars +# Oracle's MySQL Grammar -This folder contains MySQL grammars from different authors. See the specific sub folders for more details: +## General -* [Oracle](Oracle) - A complete MySQL grammar including the latest language features of MySQL. This grammar is directly derived from the MySQL Yacc server grammar and is updated twice a year to stay in sync with the MySQL server enhancements. It supports all server versions starting from 8.0 and is driving the parsers in the [MySQL Shell for VS Code](https://marketplace.visualstudio.com/items?itemName=Oracle.mysql-shell-for-vs-code).
A **special feature** of this grammar is that you can switch the MySQL server version used at runtime, to adjust things like code completion and syntax checking for the server you are connected to. -* [Positive Technologies](Positive-Technologies) - A grammar created from the official documentation (5.6, 5.7, 8.0) +This parser grammar is derived from the official Oracle grammar posted here in original/, which is derived from sources in the MySQL Shell for VS Code extension. + +https://github.com/mysql/mysql-shell-plugins/tree/8928ada7d9e37a4075291880738983752b315fee/gui/frontend/src/parsing/mysql + +This grammar is set to recognize version "8.0.20". + +Includes updates to commit https://github.com/mysql/mysql-shell-plugins/commit/d0271b1244d9686c30ce95bae92f4cf4c135d36d. + +## License + +* [BSD3](https://opensource.org/license/bsd-3-clause) + +## Target Agnostic + +This grammar is "target agnostic". Unaltered, the .g4 files will not work for Antlr4ng, Cpp, Go, and Python3. You will need to first run `python transformGrammar.py` provided in the target-specific directory. The script modifies the .g4 files for the port. + +## Modifying this grammar + +This grammar is current hand-written. The plan is to generate the ports directly from the sources at https://github.com/mysql/mysql-shell-plugins. + +## Issues + +* The grammar is ambiguous, but generally performs well, except for bitrix_queries_cut.sql, which contains ~3000 ambiguities. + +## Performance + + diff --git a/sql/mysql/Oracle/TypeScript/MySQLLexerBase.ts b/sql/mysql/TypeScript/MySQLLexerBase.ts similarity index 100% rename from sql/mysql/Oracle/TypeScript/MySQLLexerBase.ts rename to sql/mysql/TypeScript/MySQLLexerBase.ts diff --git a/sql/mysql/Oracle/TypeScript/MySQLParserBase.ts b/sql/mysql/TypeScript/MySQLParserBase.ts similarity index 100% rename from sql/mysql/Oracle/TypeScript/MySQLParserBase.ts rename to sql/mysql/TypeScript/MySQLParserBase.ts diff --git a/sql/mysql/Oracle/TypeScript/SqlMode.ts b/sql/mysql/TypeScript/SqlMode.ts similarity index 100% rename from sql/mysql/Oracle/TypeScript/SqlMode.ts rename to sql/mysql/TypeScript/SqlMode.ts diff --git a/sql/mysql/Oracle/TypeScript/SqlModes.ts b/sql/mysql/TypeScript/SqlModes.ts similarity index 100% rename from sql/mysql/Oracle/TypeScript/SqlModes.ts rename to sql/mysql/TypeScript/SqlModes.ts diff --git a/sql/mysql/Oracle/TypeScript/build.ps1 b/sql/mysql/TypeScript/build.ps1 similarity index 100% rename from sql/mysql/Oracle/TypeScript/build.ps1 rename to sql/mysql/TypeScript/build.ps1 diff --git a/sql/mysql/Oracle/TypeScript/build.sh b/sql/mysql/TypeScript/build.sh similarity index 100% rename from sql/mysql/Oracle/TypeScript/build.sh rename to sql/mysql/TypeScript/build.sh diff --git a/sql/mysql/Oracle/desc.xml b/sql/mysql/desc.xml similarity index 100% rename from sql/mysql/Oracle/desc.xml rename to sql/mysql/desc.xml diff --git a/sql/mysql/Positive-Technologies/examples/admin.sql b/sql/mysql/examples/admin.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/admin.sql rename to sql/mysql/examples/admin.sql diff --git a/sql/mysql/Oracle/examples/analyze.sql b/sql/mysql/examples/analyze.sql similarity index 100% rename from sql/mysql/Oracle/examples/analyze.sql rename to sql/mysql/examples/analyze.sql diff --git a/sql/mysql/Positive-Technologies/examples/bitrix_queries_cut.sql b/sql/mysql/examples/bitrix_queries_cut.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/bitrix_queries_cut.sql rename to sql/mysql/examples/bitrix_queries_cut.sql diff --git a/sql/mysql/Positive-Technologies/examples/case_sensitive_sql.sql b/sql/mysql/examples/case_sensitive_sql.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/case_sensitive_sql.sql rename to sql/mysql/examples/case_sensitive_sql.sql diff --git a/sql/mysql/Oracle/examples/ddl_alter.sql b/sql/mysql/examples/ddl_alter.sql similarity index 100% rename from sql/mysql/Oracle/examples/ddl_alter.sql rename to sql/mysql/examples/ddl_alter.sql diff --git a/sql/mysql/Oracle/examples/ddl_create.sql b/sql/mysql/examples/ddl_create.sql similarity index 100% rename from sql/mysql/Oracle/examples/ddl_create.sql rename to sql/mysql/examples/ddl_create.sql diff --git a/sql/mysql/Oracle/examples/ddl_drop.sql b/sql/mysql/examples/ddl_drop.sql similarity index 100% rename from sql/mysql/Oracle/examples/ddl_drop.sql rename to sql/mysql/examples/ddl_drop.sql diff --git a/sql/mysql/Oracle/examples/ddl_flush.sql b/sql/mysql/examples/ddl_flush.sql similarity index 100% rename from sql/mysql/Oracle/examples/ddl_flush.sql rename to sql/mysql/examples/ddl_flush.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_delete.sql b/sql/mysql/examples/dml_delete.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_delete.sql rename to sql/mysql/examples/dml_delete.sql diff --git a/sql/mysql/Oracle/examples/dml_insert.sql b/sql/mysql/examples/dml_insert.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_insert.sql rename to sql/mysql/examples/dml_insert.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_replace.sql b/sql/mysql/examples/dml_replace.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_replace.sql rename to sql/mysql/examples/dml_replace.sql diff --git a/sql/mysql/Oracle/examples/dml_select.sql b/sql/mysql/examples/dml_select.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_select.sql rename to sql/mysql/examples/dml_select.sql diff --git a/sql/mysql/Oracle/examples/dml_table.sql b/sql/mysql/examples/dml_table.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_table.sql rename to sql/mysql/examples/dml_table.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_test_arithmetic_expression.sql b/sql/mysql/examples/dml_test_arithmetic_expression.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_test_arithmetic_expression.sql rename to sql/mysql/examples/dml_test_arithmetic_expression.sql diff --git a/sql/mysql/Positive-Technologies/examples/dml_union.sql b/sql/mysql/examples/dml_union.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/dml_union.sql rename to sql/mysql/examples/dml_union.sql diff --git a/sql/mysql/Oracle/examples/dml_update.sql b/sql/mysql/examples/dml_update.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_update.sql rename to sql/mysql/examples/dml_update.sql diff --git a/sql/mysql/Oracle/examples/dml_with.sql b/sql/mysql/examples/dml_with.sql similarity index 100% rename from sql/mysql/Oracle/examples/dml_with.sql rename to sql/mysql/examples/dml_with.sql diff --git a/sql/mysql/Oracle/examples/expressions.sql b/sql/mysql/examples/expressions.sql similarity index 100% rename from sql/mysql/Oracle/examples/expressions.sql rename to sql/mysql/examples/expressions.sql diff --git a/sql/mysql/Oracle/examples/ext_tests.sql b/sql/mysql/examples/ext_tests.sql similarity index 100% rename from sql/mysql/Oracle/examples/ext_tests.sql rename to sql/mysql/examples/ext_tests.sql diff --git a/sql/mysql/Oracle/examples/grant.sql b/sql/mysql/examples/grant.sql similarity index 100% rename from sql/mysql/Oracle/examples/grant.sql rename to sql/mysql/examples/grant.sql diff --git a/sql/mysql/Positive-Technologies/examples/kill.sql b/sql/mysql/examples/kill.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/kill.sql rename to sql/mysql/examples/kill.sql diff --git a/sql/mysql/Positive-Technologies/examples/mysql_spec_comment.sql b/sql/mysql/examples/mysql_spec_comment.sql similarity index 100% rename from sql/mysql/Positive-Technologies/examples/mysql_spec_comment.sql rename to sql/mysql/examples/mysql_spec_comment.sql diff --git a/sql/mysql/Oracle/examples/optimize.sql b/sql/mysql/examples/optimize.sql similarity index 100% rename from sql/mysql/Oracle/examples/optimize.sql rename to sql/mysql/examples/optimize.sql diff --git a/sql/mysql/Oracle/examples/smoke_tests.sql b/sql/mysql/examples/smoke_tests.sql similarity index 100% rename from sql/mysql/Oracle/examples/smoke_tests.sql rename to sql/mysql/examples/smoke_tests.sql diff --git a/sql/mysql/Oracle/original/MySQLLexer.g4 b/sql/mysql/original/MySQLLexer.g4 similarity index 100% rename from sql/mysql/Oracle/original/MySQLLexer.g4 rename to sql/mysql/original/MySQLLexer.g4 diff --git a/sql/mysql/Oracle/original/MySQLParser.g4 b/sql/mysql/original/MySQLParser.g4 similarity index 100% rename from sql/mysql/Oracle/original/MySQLParser.g4 rename to sql/mysql/original/MySQLParser.g4 diff --git a/sql/mysql/Oracle/original/README.md b/sql/mysql/original/README.md similarity index 100% rename from sql/mysql/Oracle/original/README.md rename to sql/mysql/original/README.md diff --git a/sql/mysql/Oracle/original/TypeScript/MySQLBaseLexer.ts b/sql/mysql/original/TypeScript/MySQLBaseLexer.ts similarity index 100% rename from sql/mysql/Oracle/original/TypeScript/MySQLBaseLexer.ts rename to sql/mysql/original/TypeScript/MySQLBaseLexer.ts diff --git a/sql/mysql/Oracle/original/TypeScript/MySQLBaseRecognizer.ts b/sql/mysql/original/TypeScript/MySQLBaseRecognizer.ts similarity index 100% rename from sql/mysql/Oracle/original/TypeScript/MySQLBaseRecognizer.ts rename to sql/mysql/original/TypeScript/MySQLBaseRecognizer.ts diff --git a/sql/mysql/Oracle/original/TypeScript/demo.ts b/sql/mysql/original/TypeScript/demo.ts similarity index 100% rename from sql/mysql/Oracle/original/TypeScript/demo.ts rename to sql/mysql/original/TypeScript/demo.ts diff --git a/sql/mysql/Oracle/original/TypeScript/package.json b/sql/mysql/original/TypeScript/package.json similarity index 100% rename from sql/mysql/Oracle/original/TypeScript/package.json rename to sql/mysql/original/TypeScript/package.json diff --git a/sql/mysql/Oracle/original/TypeScript/tsconfig.json b/sql/mysql/original/TypeScript/tsconfig.json similarity index 100% rename from sql/mysql/Oracle/original/TypeScript/tsconfig.json rename to sql/mysql/original/TypeScript/tsconfig.json diff --git a/sql/mysql/pom.xml b/sql/mysql/pom.xml index 439eaabea0..dc34687ce7 100644 --- a/sql/mysql/pom.xml +++ b/sql/mysql/pom.xml @@ -1,17 +1,57 @@ - - 4.0.0 - mysqlparent - pom - MySQL Grammars - - org.antlr.grammars - sqlparent - 1.0-SNAPSHOT - - - Oracle - Positive-Technologies - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + mysql + jar + MySQL grammar + + org.antlr.grammars + mysqlparent + 1.0-SNAPSHOT + + + + + org.antlr + antlr4-maven-plugin + ${antlr.version} + + ${basedir} + + MySQLLexer.g4 + MySQLParser.g4 + + true + true + + + + + antlr4 + + + + + + com.khubla.antlr + antlr4test-maven-plugin + ${antlr4test-maven-plugin.version} + + false + false + queries + MySQL + + examples + + + + + test + + + + + + diff --git a/sql/mysql/Oracle/times.svg b/sql/mysql/times.svg similarity index 100% rename from sql/mysql/Oracle/times.svg rename to sql/mysql/times.svg