You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "peng.jianhua (JIRA)" <ji...@apache.org> on 2017/12/20 08:02:00 UTC
[jira] [Updated] (KYLIN-3119) Fix a few bugs in function
'massageSql' of 'QueryUtil.java'
[ https://issues.apache.org/jira/browse/KYLIN-3119?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
peng.jianhua updated KYLIN-3119:
--------------------------------
Description:
{quote} public static String massageSql(String sql, String project, int limit, int offset, String defaultSchema) {
sql = sql.trim();
sql = sql.replace("\r", " ").replace("\n", System.getProperty("line.separator"));
KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
while (sql.endsWith(";"))
sql = sql.substring(0, sql.length() - 1);
if (limit > 0 && !sql.toLowerCase().contains("limit")) {
sql += ("\nLIMIT " + limit);
}
if (offset > 0 && !sql.toLowerCase().contains("offset")) {
sql += ("\nOFFSET " + offset);
}
// https://issues.apache.org/jira/browse/KYLIN-2649
if (kylinConfig.getForceLimit() > 0 && !sql.toLowerCase().contains("limit")
&& sql.toLowerCase().contains("*")) {
sql += ("\nLIMIT " + kylinConfig.getForceLimit());
}
// customizable SQL transformation
if (queryTransformers == null) {
initQueryTransformers();
}
for (IQueryTransformer t : queryTransformers) {
sql = t.transform(sql, project, defaultSchema);
}
return sql;
}{quote}
was:
public static String massageSql(String sql, String project, int limit, int offset, String defaultSchema) {
sql = sql.trim();
sql = sql.replace("\r", " ").replace("\n", System.getProperty("line.separator"));
KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
while (sql.endsWith(";"))
sql = sql.substring(0, sql.length() - 1);
if (limit > 0 && !sql.toLowerCase().contains("limit")) {
sql += ("\nLIMIT " + limit);
}
if (offset > 0 && !sql.toLowerCase().contains("offset")) {
sql += ("\nOFFSET " + offset);
}
// https://issues.apache.org/jira/browse/KYLIN-2649
if (kylinConfig.getForceLimit() > 0 && !sql.toLowerCase().contains("limit")
&& sql.toLowerCase().contains("*")) {
sql += ("\nLIMIT " + kylinConfig.getForceLimit());
}
// customizable SQL transformation
if (queryTransformers == null) {
initQueryTransformers();
}
for (IQueryTransformer t : queryTransformers) {
sql = t.transform(sql, project, defaultSchema);
}
return sql;
}
> Fix a few bugs in function 'massageSql' of 'QueryUtil.java'
> -----------------------------------------------------------
>
> Key: KYLIN-3119
> URL: https://issues.apache.org/jira/browse/KYLIN-3119
> Project: Kylin
> Issue Type: Bug
> Reporter: peng.jianhua
> Assignee: peng.jianhua
>
> {quote} public static String massageSql(String sql, String project, int limit, int offset, String defaultSchema) {
> sql = sql.trim();
> sql = sql.replace("\r", " ").replace("\n", System.getProperty("line.separator"));
> KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
> while (sql.endsWith(";"))
> sql = sql.substring(0, sql.length() - 1);
> if (limit > 0 && !sql.toLowerCase().contains("limit")) {
> sql += ("\nLIMIT " + limit);
> }
> if (offset > 0 && !sql.toLowerCase().contains("offset")) {
> sql += ("\nOFFSET " + offset);
> }
> // https://issues.apache.org/jira/browse/KYLIN-2649
> if (kylinConfig.getForceLimit() > 0 && !sql.toLowerCase().contains("limit")
> && sql.toLowerCase().contains("*")) {
> sql += ("\nLIMIT " + kylinConfig.getForceLimit());
> }
> // customizable SQL transformation
> if (queryTransformers == null) {
> initQueryTransformers();
> }
> for (IQueryTransformer t : queryTransformers) {
> sql = t.transform(sql, project, defaultSchema);
> }
> return sql;
> }{quote}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)