/** * add remove catalog step at final */ public static String massageSql(String sql, String project, int limit, int offset, String defaultSchema, String catalog) { String correctedSql = massageSql(sql, project, limit, offset, defaultSchema); correctedSql = removeCatalog(correctedSql, catalog); return correctedSql; }
@Test public void testForceLimit() { KylinConfig.getInstanceFromEnv().setProperty("kylin.query.force-limit", "10"); String sql1 = "select * \nfrom DEFAULT.TEST_KYLIN_FACT"; String result = QueryUtil.massageSql(sql1, "default", 0, 0, "DEFAULT"); Assert.assertEquals("select * \nfrom DEFAULT.TEST_KYLIN_FACT\nLIMIT 10", result); String sql2 = "select 2 * 8 from DEFAULT.TEST_KYLIN_FACT"; result = QueryUtil.massageSql(sql2, "default", 0, 0, "DEFAULT"); Assert.assertEquals("select 2 * 8 from DEFAULT.TEST_KYLIN_FACT", result); }
String s = QueryUtil.massageSql(sql, "default", 0, 0, "DEFAULT"); Assert.assertEquals("select ( date '2001-09-28' + interval '1' day) from test_kylin_fact", s); String s = QueryUtil.massageSql(sql, "default", 0, 0, "DEFAULT"); Assert.assertEquals( "select ( date '2001-09-28' + interval '2' month) from test_kylin_fact group by ( date '2001-09-28' + interval '2' month)", String s = QueryUtil.massageSql(sql, "default", 50000, 0, "DEFAULT"); Assert.assertEquals( "select count(*) test_limit from test_kylin_fact where price > 10.0\n" + String s = QueryUtil.massageSql(sql, "default", 0, 50, "DEFAULT"); Assert.assertEquals( "select count(*) test_offset from test_kylin_fact where price > 10.0\n" + String s = QueryUtil.massageSql(sql, "default", 50000, 50, "DEFAULT"); Assert.assertEquals( "select count(*) test_limit_and_offset from test_kylin_fact where price > 10.0\n" + String sql = "select count(*) test_limit from " + newLine + "test_kylin_fact where price > 10.0"; newLine = newLine.replace("\r", " ").replace("\n", newLine); String s = QueryUtil.massageSql(sql, "default", 50000, 0, "DEFAULT"); Assert.assertEquals( "select count(*) test_limit from " + newLine + "test_kylin_fact where price > 10.0\nLIMIT 50000", String sql = "select count(*) test_offset from " + newLine + "test_kylin_fact where price > 10.0"; newLine = newLine.replace("\r", " ").replace("\n", newLine); String s = QueryUtil.massageSql(sql, "default", 50000, 0, "DEFAULT"); Assert.assertEquals(
@Test public void testKeywordDefaultDirtyHack() { { KylinConfig.getInstanceFromEnv().setProperty("kylin.query.escape-default-keyword", "true"); String sql = "select * from DEFAULT.TEST_KYLIN_FACT"; String s = QueryUtil.massageSql(sql, "default", 0, 0, "DEFAULT"); Assert.assertEquals("select * from \"DEFAULT\".TEST_KYLIN_FACT", s); } }
return fakeResponse; String correctedSql = QueryUtil.massageSql(sqlRequest.getSql(), sqlRequest.getProject(), sqlRequest.getLimit(), sqlRequest.getOffset(), conn.getSchema(), Constant.FakeCatalogName); if (!correctedSql.equals(sqlRequest.getSql())) {
/** * add remove catalog step at final */ public static String massageSql(String sql, String project, int limit, int offset, String defaultSchema, String catalog) { String correctedSql = massageSql(sql, project, limit, offset, defaultSchema); correctedSql = removeCatalog(correctedSql, catalog); return correctedSql; }