Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -538,11 +538,11 @@ public void testAliasInResultColumn() {
@Test
public void testAliasInAlterClause() {
String[] alias = {
"b", "test", "`test.1`", "`1``1`", "'test'", "\"test\"", "\"\\\\test\"",
"b", "test", "`test.1`", "`1``1`", "'test'", "\"test\"", "`\\\\test`",
};

String[] res = {
"b", "test", "test.1", "1`1", "test", "test", "\\\\test",
"b", "test", "`test.1`", "`1``1`", "test", "test", "`\\\\test`",
};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ private void parseAlterClause(
public void parseAliasClause(
IoTDBSqlParser.AliasClauseContext ctx, AlterTimeSeriesStatement alterTimeSeriesStatement) {
if (alterTimeSeriesStatement != null && ctx.ALIAS() != null) {
alterTimeSeriesStatement.setAlias(parseAlias(ctx.alias()));
alterTimeSeriesStatement.setAlias(parseAliasNode(ctx.alias()));
}
}

Expand Down Expand Up @@ -1799,17 +1799,33 @@ private String parseIdentifier(String src) {
return src;
}

/** function for parsing Alias. */
// alias

/** function for parsing Alias of ResultColumn . */
private String parseAlias(IoTDBSqlParser.AliasContext ctx) {
String alias;
if (ctx.constant() != null) {
alias = parseStringLiteral(ctx.constant().getText());
alias = parseConstant(ctx.constant());
} else {
alias = parseIdentifier(ctx.identifier().getText());
}
return alias;
}

/** function for parsing AliasNode. */
private String parseAliasNode(IoTDBSqlParser.AliasContext ctx) {
String alias;
if (ctx.constant() != null) {
alias = parseConstant(ctx.constant());
if (PathUtils.isRealNumber(alias)
|| !TsFileConstant.IDENTIFIER_PATTERN.matcher(alias).matches()) {
throw new SQLParserException("Not support for this alias, Please enclose in back quotes.");
}
} else {
alias = parseNodeString(ctx.identifier().getText());
}
return alias;
}
/** Data Control Language (DCL) */

// Create User
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,7 @@ private void parseAlterClause(
public void parseAliasClause(
IoTDBSqlParser.AliasClauseContext ctx, AlterTimeSeriesOperator alterTimeSeriesOperator) {
if (alterTimeSeriesOperator != null && ctx.ALIAS() != null) {
alterTimeSeriesOperator.setAlias(parseAlias(ctx.alias()));
alterTimeSeriesOperator.setAlias(parseAliasNode(ctx.alias()));
}
}

Expand Down Expand Up @@ -2711,17 +2711,32 @@ private void checkIdentifier(String src) {

// alias

/** function for parsing Alias. */
/** function for parsing Alias of ResultColumn . */
private String parseAlias(IoTDBSqlParser.AliasContext ctx) {
String alias;
if (ctx.constant() != null) {
alias = parseStringLiteral(ctx.constant().getText());
alias = parseConstant(ctx.constant());
} else {
alias = parseIdentifier(ctx.identifier().getText());
}
return alias;
}

/** function for parsing AliasNode. */
private String parseAliasNode(IoTDBSqlParser.AliasContext ctx) {
String alias;
if (ctx.constant() != null) {
alias = parseConstant(ctx.constant());
if (PathUtils.isRealNumber(alias)
|| !TsFileConstant.IDENTIFIER_PATTERN.matcher(alias).matches()) {
throw new SQLParserException("Not support for this alias, Please enclose in back quotes.");
}
} else {
alias = parseNodeString(ctx.identifier().getText());
}
return alias;
}

/** function for parsing datetime literal. */
public long parseDateFormat(String timestampStr) throws SQLParserException {
if (timestampStr == null || "".equals(timestampStr.trim())) {
Expand Down