ExpressionDelimiterTest.java
/*-
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2024 JSQLParser
* %%
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
* #L%
*/
package net.sf.jsqlparser.statement.select;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.JsonExpression;
import net.sf.jsqlparser.schema.Column;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.util.List;
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ExpressionDelimiterTest {
@Test
public void testColumnWithDifferentDelimiters() throws JSQLParserException {
String statement = "SELECT mytable.mycolumn:parent:child FROM mytable";
PlainSelect parsed = (PlainSelect) assertSqlCanBeParsedAndDeparsed(statement);
Assertions.assertInstanceOf(JsonExpression.class, parsed.getSelectItem(0).getExpression());
}
// I don't know what kind of Operator ".:." shall present
// please rework
@Test
@Disabled
public void testColumnWithEmptyNameParts() throws JSQLParserException {
String statement = "SELECT mytable.:.child FROM mytable";
PlainSelect parsed = (PlainSelect) assertSqlCanBeParsedAndDeparsed(statement);
Column column = parsed.getSelectItem(0).getExpression(Column.class);
assertEquals(".", column.getTableDelimiter());
assertEquals(List.of(":", "."), column.getTable().getNamePartDelimiters());
}
}