GeezerVison is showing github.com — Add parsing for ALTER TABLE tbl_name {DISABLE | ENABLE} KEYS (#2205) · JSQLParser/JSqlParser@1c7c343
File treeExpand file treeCollapse file tree Open diff view settings java/net/sf/jsqlparser/statement/alter jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement/alter
Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java +4Lines changed: 4 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -509,6 +509,10 @@ public String toString() { | 509 | 509 | b.append("DISCARD TABLESPACE"); | 510 | 510 | } else if (operation == AlterOperation.IMPORT_TABLESPACE) { | 511 | 511 | b.append("IMPORT TABLESPACE"); | | 512 | + } else if (operation == AlterOperation.DISABLE_KEYS) { | | 513 | + b.append("DISABLE KEYS"); | | 514 | + } else if (operation == AlterOperation.ENABLE_KEYS) { | | 515 | + b.append("ENABLE KEYS"); | 512 | 516 | } else if (operation == AlterOperation.ENGINE) { | 513 | 517 | b.append("ENGINE "); | 514 | 518 | if (useEqual) { | |
Collapse file Copy file name to clipboardExpand all lines: src/main/java/net/sf/jsqlparser/statement/alter/AlterOperation.java +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
| 10 | 10 | package net.sf.jsqlparser.statement.alter; | 11 | 11 |
| 12 | 12 | public enum AlterOperation { | 13 | | - ADD, ALTER, DROP, DROP_PRIMARY_KEY, DROP_UNIQUE, DROP_FOREIGN_KEY, MODIFY, CHANGE, CONVERT, COLLATE, ALGORITHM, RENAME, RENAME_TABLE, RENAME_INDEX, RENAME_KEY, RENAME_CONSTRAINT, COMMENT, COMMENT_WITH_EQUAL_SIGN, UNSPECIFIC, ADD_PARTITION, DROP_PARTITION, TRUNCATE_PARTITION, SET_TABLE_OPTION, ENGINE, FORCE, LOCK, DISCARD_TABLESPACE, IMPORT_TABLESPACE; | | 13 | + ADD, ALTER, DROP, DROP_PRIMARY_KEY, DROP_UNIQUE, DROP_FOREIGN_KEY, MODIFY, CHANGE, CONVERT, COLLATE, ALGORITHM, RENAME, RENAME_TABLE, RENAME_INDEX, RENAME_KEY, RENAME_CONSTRAINT, COMMENT, COMMENT_WITH_EQUAL_SIGN, UNSPECIFIC, ADD_PARTITION, DROP_PARTITION, TRUNCATE_PARTITION, SET_TABLE_OPTION, ENGINE, FORCE, LOCK, DISCARD_TABLESPACE, IMPORT_TABLESPACE, DISABLE_KEYS, ENABLE_KEYS; | 14 | 14 |
| 15 | 15 | public static AlterOperation from(String operation) { | 16 | 16 | return Enum.valueOf(AlterOperation.class, operation.toUpperCase()); | |
Collapse file Copy file name to clipboardExpand all lines: src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt +14Lines changed: 14 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -8110,6 +8110,20 @@ AlterExpression AlterExpression(): | 8110 | 8110 | } | 8111 | 8111 | ) | 8112 | 8112 | | | | 8113 | + ( | | 8114 | + (tk = <K_DISABLE>) | | 8115 | + (tk2 = <K_KEYS>) { | | 8116 | + alterExp.setOperation(AlterOperation.DISABLE_KEYS); | | 8117 | + } | | 8118 | + ) | | 8119 | + | | | 8120 | + ( | | 8121 | + (tk = <K_ENABLE>) | | 8122 | + (tk2 = <K_KEYS>) { | | 8123 | + alterExp.setOperation(AlterOperation.ENABLE_KEYS); | | 8124 | + } | | 8125 | + ) | | 8126 | + | | 8113 | 8127 | (<K_AUTO_INCREMENT> {alterExp.setOperation(AlterOperation.SET_TABLE_OPTION);} | 8114 | 8128 | ["=" { alterExp.setUseEqual(true);} ] | 8115 | 8129 | tk=<S_LONG> { | |
Collapse file Copy file name to clipboardExpand all lines: src/test/java/net/sf/jsqlparser/statement/alter/AlterTest.java +21Lines changed: 21 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -1479,4 +1479,25 @@ public void testImportTablespace() throws JSQLParserException { | 1479 | 1479 | alter.getAlterExpressions().get(0).getOperation().toString()); | 1480 | 1480 | assertSqlCanBeParsedAndDeparsed(sql); | 1481 | 1481 | } | | 1482 | + | | 1483 | + @Test | | 1484 | + public void testAlterTableKeys() throws JSQLParserException { | | 1485 | + // Test for DISABLE KEYS | | 1486 | + String sqlDisable = "ALTER TABLE tbl_name DISABLE KEYS"; | | 1487 | + Statement stmtDisable = CCJSqlParserUtil.parse(sqlDisable); | | 1488 | + assertTrue(stmtDisable instanceof Alter); | | 1489 | + Alter alterDisable = (Alter) stmtDisable; | | 1490 | + assertEquals("tbl_name", alterDisable.getTable().getFullyQualifiedName()); | | 1491 | + AlterExpression alterExpDisable = alterDisable.getAlterExpressions().get(0); | | 1492 | + assertEquals(AlterOperation.DISABLE_KEYS, alterExpDisable.getOperation()); | | 1493 | + | | 1494 | + // Test for ENABLE KEYS | | 1495 | + String sqlEnable = "ALTER TABLE tbl_name ENABLE KEYS"; | | 1496 | + Statement stmtEnable = CCJSqlParserUtil.parse(sqlEnable); | | 1497 | + assertTrue(stmtEnable instanceof Alter); | | 1498 | + Alter alterEnable = (Alter) stmtEnable; | | 1499 | + assertEquals("tbl_name", alterEnable.getTable().getFullyQualifiedName()); | | 1500 | + AlterExpression alterExpEnable = alterEnable.getAlterExpressions().get(0); | | 1501 | + assertEquals(AlterOperation.ENABLE_KEYS, alterExpEnable.getOperation()); | | 1502 | + } | 1482 | 1503 | } |
|