dttung2905 commented on issue #12304:
URL: https://github.com/apache/pinot/issues/12304#issuecomment-1924884957
Thanks @walterddr for the detailed pointer.
I take a look at the code and I think `validate` stage might be a good place
to implement that check, something like
```java
private SqlNode validate(SqlNode parsed, PlannerContext plannerContext)
throws Exception {
// 2. validator to validate.
SqlNode validated = plannerContext.getValidator().validate(parsed);
// Check for LIMIT clause in the main query
if (validated instanceof SqlSelect) {
SqlSelect sqlSelect = (SqlSelect) validated;
if (sqlSelect.getFetch() == null) {
// Add LIMIT 100 clause
SqlParserPos originalPos = sqlSelect.getParserPosition();
SqlNode limitNode = SqlLiteral.createExactNumeric("100",
originalPos);
((SqlSelect) validated).setFetch(limitNode);
}
}
if (null == validated || !validated.getKind().belongsTo(SqlKind.QUERY)) {
throw new IllegalArgumentException(
String.format("unsupported SQL query, cannot validate out a valid
sql from:\n%s", parsed));
}
return validated;
```
What do you think about this? Not sure if there are other places to change (
probably change test cases too )
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]