limit2_query.sim 8.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
sql connect

$dbPrefix = lm2_db
$tbPrefix = lm2_tb
$stbPrefix = lm2_stb
$tbNum = 10
$rowNum = 10000
$totalNum = $tbNum * $rowNum
$ts0 = 1537146000000
$delta = 600000
$tsu = $rowNum * $delta
$tsu = $tsu - $delta
$tsu = $tsu + $ts0

print ========== limit2.sim
$i = 0
$db = $dbPrefix . $i
$stb = $stbPrefix . $i
$tb = $tbPrefix . 0
print ====== use db
sql use $db

##### aggregation on stb with 6 tags + where + group by + limit offset
$val1 = 1
$val2 = $tbNum - 1
S
Shengliang Guan 已提交
26 27
print select count(*) from $stb where t1 > $val1 and t1 < $val2 group by t1, t2, t3, t4, t5, t6 order by t1 asc limit 1 offset 0
sql select count(*), t1, t2, t3, t4, t5, t6 from $stb where t1 > $val1 and t1 < $val2 group by t1, t2, t3, t4, t5, t6 order by t1 asc limit 1 offset 0
28
$val = $tbNum - 3
S
Shengliang Guan 已提交
29

S
Shengliang Guan 已提交
30 31
print $rows
if $rows != 1 then
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
  return -1
endi
if $data00 != $rowNum then
  return -1
endi
if $data01 != 2 then
  return -1
endi
if $data02 != tb2 then
  print expect tb2, actual: $data02
  return -1
endi
if $data03 != tb2 then
  return -1
endi
if $data04 != 2 then
  return -1
endi
if $data05 != 2 then
  return -1
endi

S
Shengliang Guan 已提交
54
sql select count(*), t3, t4 from $stb where t2 like '%' and t1 > 2 and t1 < 5 group by t3, t4 order by t3 desc limit 2 offset 0
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
if $rows != 2 then
  return -1
endi
if $data00 != $rowNum then
  return -1
endi
if $data01 != tb4 then
  return -1
endi
if $data02 != 4 then
  return -1
endi
if $data11 != tb3 then
  return -1
endi
if $data12 != 3 then
  return -1
endi
S
Shengliang Guan 已提交
73

74
sql select count(*) from $stb where t2 like '%' and t1 > 2 and t1 < 5 group by t3, t4 order by t3 desc limit 1 offset 1
S
Shengliang Guan 已提交
75
if $rows != 1 then
76 77
  return -1
endi
S
Shengliang Guan 已提交
78

79 80 81 82
## TBASE-348
sql_error select count(*) from $stb where t1 like 1

##### aggregation on tb + where + fill + limit offset
“happyguoxy” 已提交
83
sql select _wstart, max(c1) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1) limit 10 offset 1
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
if $rows != 10 then
  return -1
endi
if $data00 != @18-09-17 09:05:00.000@ then
  return -1
endi
if $data01 != -1 then
  return -1
endi
if $data11 != 1 then
  return -1
endi
if $data90 != @18-09-17 09:50:00.000@ then
  return -1
endi
if $data91 != 5 then
  return -1
endi

$tb5 = $tbPrefix . 5
“happyguoxy” 已提交
104
sql select max(c1), min(c2) from $tb5 where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2) limit 10 offset 1
105 106 107
if $rows != 10 then
  return -1
endi
“happyguoxy” 已提交
108
if $data00 != -1 then
109 110
  return -1
endi
“happyguoxy” 已提交
111
if $data01 != -2 then
112 113
  return -1
endi
“happyguoxy” 已提交
114
if $data10 != 1 then
115 116
  return -1
endi
“happyguoxy” 已提交
117
if $data11 != -2 then
118 119
  return -1
endi
“happyguoxy” 已提交
120
if $data90 != 5 then
121 122
  return -1
endi
“happyguoxy” 已提交
123
if $data91 != -2 then
124 125 126 127 128 129 130 131
  return -1
endi

### [TBASE-350]
## tb + interval + fill(value) + limit offset
$tb = $tbPrefix . 0
$limit = $rowNum
$offset = $limit / 2
“happyguoxy” 已提交
132
sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2 ,-3, -4 , -5, -6 ,-7 ,'-8', '-9') limit $limit offset $offset
133 134 135 136 137 138 139 140
if $rows != $limit then
  print expect $limit, actual $rows
  return -1
endi
if $data01 != 0 then
  return -1
endi

“happyguoxy” 已提交
141
sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 8200
142 143 144 145 146 147 148
if $rows != 8200 then
  return -1
endi

sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 100000;


“happyguoxy” 已提交
149
sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 10 offset 8190;
150 151 152 153
if $rows != 10 then
  return -1
endi

“happyguoxy” 已提交
154
if $data00 != 5 then
155 156 157
  return -1
endi

“happyguoxy” 已提交
158
if $data10 != -1000 then
159 160 161
  return -1
endi

“happyguoxy” 已提交
162
if $data20 != 6 then
163 164 165
  return -1
endi

“happyguoxy” 已提交
166
if $data30 != -1000 then
167 168 169
  return -1
endi

“happyguoxy” 已提交
170
sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 10 offset 10001;
171 172 173 174
if $rows != 10 then
  return -1
endi

“happyguoxy” 已提交
175
if $data00 != -1000 then
176 177 178
  return -1
endi

“happyguoxy” 已提交
179
if $data10 != 1 then
180 181 182
  return -1
endi

“happyguoxy” 已提交
183
if $data20 != -1000 then
184 185 186
  return -1
endi

“happyguoxy” 已提交
187
if $data30 != 2 then
188 189 190
  return -1
endi

“happyguoxy” 已提交
191
sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 10000 offset 10001;
192 193 194 195 196 197
print ====> needs to validate the last row result
if $rows != 9998 then
  return -1
endi


“happyguoxy” 已提交
198
sql select max(c1) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(value, -1000) limit 100 offset 20001;
199 200 201 202 203 204 205
if $rows != 0 then
  return -1
endi

# tb + interval + fill(linear) + limit offset
$limit = $rowNum
$offset = $limit / 2
“happyguoxy” 已提交
206
sql select _wstart,max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(linear) limit $limit offset $offset
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
if $rows != $limit then
  print expect $limit, actual $rows
  return -1
endi
if $data01 != 0 then
  return -1
endi
if $data11 != 0 then
  return -1
endi
if $data13 != 0.500000000 then
  return -1
endi
if $data35 != 0.000000000 then
  return -1
endi
if $data46 != 0.000000000 then
  return -1
endi
if $data47 != 1 then
  return -1
endi
if $data57 != NULL then
  return -1
endi
if $data68 != binary3 then
  return -1
endi
if $data79 != NULL then
  return -1
endi

## tb + interval + fill(prev) + limit offset
$limit = $rowNum
$offset = $limit / 2
sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev) limit $limit offset $offset
if $rows != $limit then
  print expect $limit, actual: $rows
  return -1
endi

G
Ganlin Zhao 已提交
248

249 250 251
$limit = $rowNum
$offset = $limit / 2
$offset = $offset + 10
“happyguoxy” 已提交
252
sql select _wstart,max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu and c1 = 5 interval(5m) fill(value, -1, -2 ,-3, -4 , -5, -6 ,-7 ,'-8', '-9') limit $limit offset $offset
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
if $rows != $limit then
  return -1
endi
if $data01 != 5 then
  return -1
endi
if $data02 != 5 then
  return -1
endi
if $data03 != 5.000000000 then
  return -1
endi
if $data04 != 5.000000000 then
  return -1
endi
if $data05 != 0.000000000 then
  return -1
endi
if $data07 != 1 then
  return -1
endi
if $data08 != binary5 then
  return -1
endi
if $data09 != nchar5 then
  return -1
endi
if $data18 != NULL then
  return -1
endi
if $data19 != NULL then
  return -1
endi

$limit = $rowNum
$offset = $limit * 2
$offset = $offset - 11
“happyguoxy” 已提交
290
sql select _wstart,max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu and c1 = 5 interval(5m) fill(value, -1, -2 ,-3, -4 , -5, -6 ,-7 ,'-8', '-9') limit $limit offset $offset
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
if $rows != 10 then
  return -1
endi
if $data01 != -1 then
  return -1
endi
if $data02 != -2 then
  return -1
endi
if $data11 != 5 then
  return -1
endi
if $data12 != 5 then
  return -1
endi
if $data13 != 5.000000000 then
  return -1
endi
if $data15 != 0.000000000 then
  return -1
endi
if $data16 != 0.000000000 then
  return -1
endi
if $data18 != binary5 then
  return -1
endi
if $data19 != nchar5 then
  return -1
endi

### [TBASE-350]
## stb + interval + fill + group by + limit offset
“happyguoxy” 已提交
324
sql select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 partition by t1 interval(5m) fill(value, -1, -2, -3, -4 ,-7 ,'-8', '-9') limit 2 offset 10
“happyguoxy” 已提交
325
if $rows != 2 then
326 327 328 329 330 331
  return -1
endi

$limit = 5
$offset = $rowNum * 2
$offset = $offset - 2
“happyguoxy” 已提交
332 333
sql select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000  partition by t1 interval(5m) fill(value, -1, -2, -3, -4 ,-7 ,'-8', '-9') order by t1 limit $limit offset $offset
if $rows != 1 then
334
  return -1
G
Ganlin Zhao 已提交
335
endi
“happyguoxy” 已提交
336
if $data00 != 9 then
337 338 339 340 341
  return -1
endi
if $data01 != 9 then
  return -1
endi
“happyguoxy” 已提交
342
if $data02 != 9.000000000 then
343 344
  return -1
endi
“happyguoxy” 已提交
345
if $data03 != 9.000000000 then
346 347
  return -1
endi
“happyguoxy” 已提交
348
if $data04 != 1 then
349 350
  return -1
endi
“happyguoxy” 已提交
351
if $data05 != binary9 then
352 353
  return -1
endi
“happyguoxy” 已提交
354
if $data06 != nchar9 then
355 356 357
  return -1
endi

“happyguoxy” 已提交
358

359 360 361
#add one more test case
sql select max(c1), last(c8) from lm2_db0.lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(linear) limit 10 offset 4089;"