|
13 | 13 | import net.sf.jsqlparser.schema.Table; |
14 | 14 | import net.sf.jsqlparser.statement.create.table.CreateTable; |
15 | 15 | import net.sf.jsqlparser.statement.insert.Insert; |
| 16 | +import net.sf.jsqlparser.statement.DescribeStatement; |
16 | 17 | import net.sf.jsqlparser.test.TestUtils; |
17 | 18 | import org.junit.jupiter.api.Assertions; |
18 | 19 | import org.junit.jupiter.api.Test; |
@@ -176,4 +177,32 @@ void testUsingSampleReservoir() throws JSQLParserException { |
176 | 177 | Assertions.assertEquals(SampleClause.SampleMethod.RESERVOIR, |
177 | 178 | select.getFromItem().getSampleClause().getMethod()); |
178 | 179 | } |
| 180 | + |
| 181 | + @Test |
| 182 | + void testDescribeQuery() throws JSQLParserException { |
| 183 | + String sqlStr = "DESCRIBE SELECT * FROM t"; |
| 184 | + DescribeStatement describe = |
| 185 | + (DescribeStatement) TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true); |
| 186 | + |
| 187 | + Assertions.assertNotNull(describe.getSelect()); |
| 188 | + Assertions.assertNull(describe.getTable()); |
| 189 | + } |
| 190 | + |
| 191 | + @Test |
| 192 | + void testDescribeQueryTablesNamesFinder() throws JSQLParserException { |
| 193 | + String sqlStr = "DESCRIBE SELECT * FROM ds.t"; |
| 194 | + |
| 195 | + Assertions.assertEquals(java.util.Collections.singletonList("ds.t"), |
| 196 | + new net.sf.jsqlparser.util.TablesNamesFinder<Void>() |
| 197 | + .getTableList(net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(sqlStr))); |
| 198 | + } |
| 199 | + |
| 200 | + @Test |
| 201 | + void testDescribeTableStillParses() throws JSQLParserException { |
| 202 | + String sqlStr = "DESCRIBE t"; |
| 203 | + DescribeStatement describe = |
| 204 | + (DescribeStatement) TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true); |
| 205 | + |
| 206 | + Assertions.assertEquals("t", describe.getTable().getName()); |
| 207 | + } |
179 | 208 | } |
0 commit comments