planBasicTest.cpp 1.9 KB
Newer Older
X
Xiaoyu Wang 已提交
1 2 3
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
X
Xiaoyu Wang 已提交
4
 * This program is free software: you can use, redistribute, AND/or modify
X
Xiaoyu Wang 已提交
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#include "planTestUtil.h"
#include "planner.h"

using namespace std;

21
class PlanBasicTest : public PlannerTestBase {};
X
Xiaoyu Wang 已提交
22

X
Xiaoyu Wang 已提交
23
TEST_F(PlanBasicTest, selectClause) {
X
Xiaoyu Wang 已提交
24 25
  useDb("root", "test");

X
Xiaoyu Wang 已提交
26 27 28 29
  run("SELECT * FROM t1");
  run("SELECT 1 FROM t1");
  run("SELECT * FROM st1");
  run("SELECT 1 FROM st1");
X
Xiaoyu Wang 已提交
30
}
31

X
Xiaoyu Wang 已提交
32
TEST_F(PlanBasicTest, whereClause) {
33 34
  useDb("root", "test");

X
Xiaoyu Wang 已提交
35 36 37
  run("SELECT * FROM t1 WHERE c1 > 10");

  run("SELECT * FROM t1 WHERE ts > TIMESTAMP '2022-04-01 00:00:00' and ts < TIMESTAMP '2022-04-30 23:59:59'");
38 39
}

X
Xiaoyu Wang 已提交
40
TEST_F(PlanBasicTest, joinClause) {
41 42
  useDb("root", "test");

X
Xiaoyu Wang 已提交
43 44
  run("SELECT t1.c1, t2.c2 FROM st1s1 t1, st1s2 t2 WHERE t1.ts = t2.ts");
  run("SELECT t1.c1, t2.c2 FROM st1s1 t1 JOIN st1s2 t2 ON t1.ts = t2.ts");
X
Xiaoyu Wang 已提交
45 46 47 48 49
}

TEST_F(PlanBasicTest, func) {
  useDb("root", "test");

X
Xiaoyu Wang 已提交
50
  run("SELECT DIFF(c1) FROM t1");
X
Xiaoyu Wang 已提交
51 52

  run("SELECT PERCENTILE(c1, 60) FROM t1");
53 54

  run("SELECT TOP(c1, 60) FROM t1");
X
Xiaoyu Wang 已提交
55
}
56 57 58 59 60 61 62 63 64

TEST_F(PlanBasicTest, uniqueFunc) {
  useDb("root", "test");

  run("SELECT UNIQUE(c1) FROM t1");

  run("SELECT UNIQUE(c2 + 10) FROM t1 WHERE c1 > 10");

  run("SELECT UNIQUE(c2 + 10), ts, c2 FROM t1 WHERE c1 > 10");
65 66

  run("SELECT UNIQUE(c1) a FROM t1 ORDER BY a");
67 68 69 70 71 72 73 74 75
}

TEST_F(PlanBasicTest, tailFunc) {
  useDb("root", "test");

  run("SELECT TAIL(c1, 10) FROM t1");

  run("SELECT TAIL(c2 + 10, 10, 80) FROM t1 WHERE c1 > 10");
}