fill.sim 22.7 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 26 27 28 29
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect

$dbPrefix = m_fl_db
$tbPrefix = m_fl_tb
$mtPrefix = m_fl_mt
$tbNum = 10
$rowNum = 5
$totalNum = $tbNum * $rowNum
$ts0 = 1537146000000
$delta = 600000
print ========== fill.sim
$i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i

sql drop database $db -x step1
step1:
sql create database $db
sql use $db
sql create table $mt (ts timestamp, c1 int, c2 bigint, c3 float, c4 double, c5 smallint, c6 bool, c7 binary(10), c8 nchar(10)) tags(tgcol int)

$i = 0
$ts = $ts0
while $i < $tbNum
  $tb = $tbPrefix . $i
  sql create table $tb using $mt tags( $i )
G
Ganlin Zhao 已提交
30

31 32 33 34
  $x = 0
  while $x < $rowNum
    $xs = $x * $delta
    $ts = $ts0 + $xs
G
Ganlin Zhao 已提交
35
    sql insert into $tb values ( $ts , $x , $x , $x , $x , $x , true, 'BINARY', 'NCHAR' )
36
    $x = $x + 1
G
Ganlin Zhao 已提交
37 38
  endw

39
  $i = $i + 1
G
Ganlin Zhao 已提交
40
endw
41 42 43 44 45 46 47 48 49

# setup
$i = 0
$tb = $tbPrefix . $i
$tsu = 4 * $delta
$tsu = $tsu + $ts0

## fill syntax test
# number of fill values exceeds number of selected columns
X
Xiaoyu Wang 已提交
50
sql_error select _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
51 52

# number of fill values is smaller than number of selected columns
X
Xiaoyu Wang 已提交
53
sql_error select _wstart, max(c1), max(c2), max(c3) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6)
G
Ganlin Zhao 已提交
54

55
# unspecified filling method
S
Shengliang Guan 已提交
56
sql_error select _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill (6, 6, 6, 6, 6)
57 58 59 60 61 62

## constant fill test
# count_with_fill
print constant_fill test
print count_with_constant_fill
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
G
Ganlin Zhao 已提交
63
if $rows != 9 then
64 65 66 67 68
  return -1
endi
if $data01 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
69
if $data11 != 6 then
70 71 72 73 74
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
75
if $data31 != 6 then
76 77 78 79 80
  return -1
endi
if $data41 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
81
if $data51 != 6 then
82 83 84 85 86
  return -1
endi
if $data61 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
87
if $data71 != 6 then
88 89 90 91 92 93 94 95
  return -1
endi
if $data81 != 1 then
  return -1
endi

# avg_with_fill
print avg_with_constant_fill
S
Shengliang Guan 已提交
96
sql select _wstart, avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6)
G
Ganlin Zhao 已提交
97
if $rows != 9 then
98 99 100 101 102
  return -1
endi
if $data01 != 0.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
103
if $data11 != 6.000000000 then
104 105 106 107 108
  return -1
endi
if $data21 != 1.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
109
if $data31 != 6.000000000 then
110 111 112 113 114
  return -1
endi
if $data41 != 2.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
115
if $data51 != 6.000000000 then
116 117 118 119 120
  return -1
endi
if $data61 != 3.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
121
if $data71 != 6.000000000 then
122 123 124 125 126 127 128 129
  return -1
endi
if $data81 != 4.000000000 then
  return -1
endi

# max_with_fill
print max_with_fill
S
Shengliang Guan 已提交
130
sql select _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6)
G
Ganlin Zhao 已提交
131
if $rows != 9 then
132 133 134 135 136
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
137
if $data11 != 6 then
138 139 140 141 142
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
143
if $data31 != 6 then
144 145 146 147 148
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
149
if $data51 != 6 then
150 151 152 153 154
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
155
if $data71 != 6 then
156 157 158 159 160 161 162 163
  return -1
endi
if $data81 != 4 then
  return -1
endi

# min_with_fill
print min_with_fill
X
Xiaoyu Wang 已提交
164
sql select _wstart, min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6)
G
Ganlin Zhao 已提交
165
if $rows != 9 then
166 167 168 169 170
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
171
if $data11 != 6 then
172 173 174 175 176
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
177
if $data31 != 6 then
178 179 180 181 182
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
183
if $data51 != 6 then
184 185 186 187 188
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
189
if $data71 != 6 then
190 191 192 193 194 195 196 197
  return -1
endi
if $data81 != 4 then
  return -1
endi

# first_with_fill
print first_with_fill
X
Xiaoyu Wang 已提交
198
sql select _wstart, first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, '6', '6')
G
Ganlin Zhao 已提交
199
if $rows != 9 then
200 201 202 203 204
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
205
if $data11 != 6 then
206 207 208 209 210
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
211
if $data31 != 6 then
212 213 214 215 216
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
217
if $data51 != 6 then
218 219 220 221 222
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
223
if $data71 != 6 then
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 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
  return -1
endi
if $data81 != 4 then
  return -1
endi

# check double type values
if $data04 != 0.000000000 then
  return -1
endi
print data14 = $data14
if $data14 != 6.000000000 then
  return -1
endi
if $data24 != 1.000000000 then
  return -1
endi
if $data34 != 6.000000000 then
  return -1
endi
if $data44 != 2.000000000 then
  return -1
endi
if $data54 != 6.000000000 then
  return -1
endi
if $data64 != 3.000000000 then
  return -1
endi

# check float type values
print $data03 $data13
if $data03 != 0.00000 then
  return -1
endi
if $data13 != 6.00000 then
  return -1
endi
if $data23 != 1.00000 then
  return -1
endi
if $data33 != 6.00000 then
  return -1
endi
if $data43 != 2.00000 then
  return -1
endi
if $data53 != 6.00000 then
  return -1
endi
if $data63 != 3.00000 then
  return -1
endi
if $data73 != 6.00000 then
  return -1
endi
if $data83 != 4.00000 then
  return -1
endi


# last_with_fill
print last_with_fill
X
Xiaoyu Wang 已提交
287
sql select _wstart, last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, '6', '6')
G
Ganlin Zhao 已提交
288
if $rows != 9 then
289 290 291 292 293 294
  return -1
endi
if $data01 != 0 then
  print expect 0, actual:$data01
  return -1
endi
G
Ganlin Zhao 已提交
295
if $data11 != 6 then
296 297 298 299 300
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
301
if $data31 != 6 then
302 303 304 305 306
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
307
if $data51 != 6 then
308 309 310 311 312
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
313
if $data71 != 6 then
314 315 316 317 318 319 320
  return -1
endi
if $data81 != 4 then
  return -1
endi

# fill_negative_values
S
Shengliang Guan 已提交
321
sql select _wstart, sum(c1), avg(c2), max(c3), min(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -1, -1, -1, -1, -1, -1, -1)
G
Ganlin Zhao 已提交
322
if $rows != 9 then
323 324 325 326 327
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
328
if $data11 != -1 then
329 330 331 332
  return -1
endi

# fill_char_values_to_arithmetic_fields
333
sql select sum(c1), avg(c2), max(c3), min(c4), avg(c4), count(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c')
334 335 336

# fill_multiple_columns
sql_error select sum(c1), avg(c2), min(c3), max(c4), count(c6), first(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 99, 99, 99, 99, 99, abc, abc)
S
Shengliang Guan 已提交
337
sql select _wstart, sum(c1), avg(c2), min(c3), max(c4) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 99, 99, 99, 99)
338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356
if $rows != 9 then
  return -1
endi
print data01 = $data01
print data11 = $data11
if $data01 != 0 then
  return -1
endi
if $data11 != 99 then
  return -1
endi

sql select * from $tb
if $data08 != NCHAR then
  print expect NCHAR, actual:$data08
  return -1
endi

# fill_into_nonarithmetic_fieds
S
Shengliang Guan 已提交
357
print select _wstart, first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 20000000, 20000000, 20000000)
358
sql select _wstart, first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 20000000, 20000000, 20000000)
359

360 361 362
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1, 1, 1)
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1.1, 1.1, 1.1)
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1e1, 1e1, 1e1)
363 364 365
sql select first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e', '1e1')
# fill quoted values into bool column will throw error unless the value is 'true' or 'false' Note:2018-10-24
# fill values into binary or nchar columns will be set to NULL automatically Note:2018-10-24
S
Shengliang Guan 已提交
366
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e', '1e1','1e1')
367
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, true, true, true)
368 369 370 371 372
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'true', 'true','true')


# fill nonarithmetic values into arithmetic fields
sql_error select count(*) where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, abc);
373
sql select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'true');
374

S
Shengliang Guan 已提交
375
print select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e1');
376
sql select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e1');
377

S
Shengliang Guan 已提交
378
sql select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1e1);
G
Ganlin Zhao 已提交
379
if $rows != 9 then
380 381 382 383 384 385
  return -1
endi
if $data01 != 1 then
  return -1
endi

386
sql select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '10');
387 388 389 390 391 392 393

## linear fill
# feature currently switched off 2018/09/29
#sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(linear)

## previous fill
print fill(prev)
S
Shengliang Guan 已提交
394
sql select _wstart, count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
395
if $rows != 9 then
396 397 398 399 400
  return -1
endi
if $data01 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
401
if $data11 != 1 then
402 403 404 405 406
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
407
if $data31 != 1 then
408 409 410 411 412
  return -1
endi
if $data41 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
413
if $data51 != 1 then
414 415 416 417 418
  return -1
endi
if $data61 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
419
if $data71 != 1 then
420 421 422 423 424 425 426
  return -1
endi
if $data81 != 1 then
  return -1
endi

# avg_with_fill
S
Shengliang Guan 已提交
427
sql select _wstart, avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
428
if $rows != 9 then
429 430 431 432 433
  return -1
endi
if $data01 != 0.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
434
if $data11 != 0.000000000 then
435 436 437 438 439
  return -1
endi
if $data21 != 1.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
440
if $data31 != 1.000000000 then
441 442 443 444 445
  return -1
endi
if $data41 != 2.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
446
if $data51 != 2.000000000 then
447 448 449 450 451
  return -1
endi
if $data61 != 3.000000000 then
  return -1
endi
G
Ganlin Zhao 已提交
452
if $data71 != 3.000000000 then
453 454 455 456 457 458 459
  return -1
endi
if $data81 != 4.000000000 then
  return -1
endi

# max_with_fill
S
Shengliang Guan 已提交
460
sql select _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
461
if $rows != 9 then
462 463 464 465 466
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
467
if $data11 != 0 then
468 469 470 471 472
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
473
if $data31 != 1 then
474 475 476 477 478
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
479
if $data51 != 2 then
480 481 482 483 484
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
485
if $data71 != 3 then
486 487 488 489 490 491 492
  return -1
endi
if $data81 != 4 then
  return -1
endi

# min_with_fill
S
Shengliang Guan 已提交
493
sql select _wstart, min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
494
if $rows != 9 then
495 496 497 498 499
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
500
if $data11 != 0 then
501 502 503 504 505
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
506
if $data31 != 1 then
507 508 509 510 511
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
512
if $data51 != 2 then
513 514 515 516 517
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
518
if $data71 != 3 then
519 520 521 522 523 524 525
  return -1
endi
if $data81 != 4 then
  return -1
endi

# first_with_fill
S
Shengliang Guan 已提交
526
sql select _wstart, first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
527
if $rows != 9 then
528 529 530 531 532
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
533
if $data11 != 0 then
534 535 536 537 538
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
539
if $data31 != 1 then
540 541 542 543 544
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
545
if $data51 != 2 then
546 547 548 549 550
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
551
if $data71 != 3 then
552 553 554 555 556 557 558
  return -1
endi
if $data81 != 4 then
  return -1
endi

# last_with_fill
S
Shengliang Guan 已提交
559
sql select _wstart, last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
G
Ganlin Zhao 已提交
560
if $rows != 9 then
561 562 563 564 565
  return -1
endi
if $data01 != 0 then
  return -1
endi
G
Ganlin Zhao 已提交
566
if $data11 != 0 then
567 568 569 570 571
  return -1
endi
if $data21 != 1 then
  return -1
endi
G
Ganlin Zhao 已提交
572
if $data31 != 1 then
573 574 575 576 577
  return -1
endi
if $data41 != 2 then
  return -1
endi
G
Ganlin Zhao 已提交
578
if $data51 != 2 then
579 580 581 582 583
  return -1
endi
if $data61 != 3 then
  return -1
endi
G
Ganlin Zhao 已提交
584
if $data71 != 3 then
585 586 587 588 589 590 591 592 593
  return -1
endi
if $data81 != 4 then
  return -1
endi

## NULL fill
print fill(value, NULL)
# count_with_fill
S
Shengliang Guan 已提交
594 595 596
sql select _wstart, count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
print select _wstart, count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
sql select _wstart, count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(NULL)
G
Ganlin Zhao 已提交
597
if $rows != 9 then
598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626
  return -1
endi
if $data01 != 1 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 1 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 1 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 1 then
  return -1
endi
S
Shengliang Guan 已提交
627
sql select _wstart, count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(none)
G
Ganlin Zhao 已提交
628
if $rows != 5 then
629 630 631 632
  return -1
endi

# avg_with_fill
S
Shengliang Guan 已提交
633
sql select _wstart, avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
G
Ganlin Zhao 已提交
634
if $rows != 9 then
635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665
  return -1
endi
if $data01 != 0.000000000 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1.000000000 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 2.000000000 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 3.000000000 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 4.000000000 then
  return -1
endi

# max_with_fill
S
Shengliang Guan 已提交
666
sql select _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(NULL)
G
Ganlin Zhao 已提交
667
if $rows != 9 then
668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698
  return -1
endi
if $data01 != 0 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 2 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 3 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 4 then
  return -1
endi

# min_with_fill
S
Shengliang Guan 已提交
699
sql select _wstart, min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
G
Ganlin Zhao 已提交
700
if $rows != 9 then
701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731
  return -1
endi
if $data01 != 0 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 2 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 3 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 4 then
  return -1
endi

# first_with_fill
S
Shengliang Guan 已提交
732
sql select _wstart, first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
G
Ganlin Zhao 已提交
733
if $rows != 9 then
734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
  return -1
endi
if $data01 != 0 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 2 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 3 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 4 then
  return -1
endi

# last_with_fill
S
Shengliang Guan 已提交
765
sql select _wstart, last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
G
Ganlin Zhao 已提交
766
if $rows != 9 then
767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797
  return -1
endi
if $data01 != 0 then
  return -1
endi
if $data11 != NULL then
  return -1
endi
if $data21 != 1 then
  return -1
endi
if $data31 != NULL then
  return -1
endi
if $data41 != 2 then
  return -1
endi
if $data51 != NULL then
  return -1
endi
if $data61 != 3 then
  return -1
endi
if $data71 != NULL then
  return -1
endi
if $data81 != 4 then
  return -1
endi

# desc fill query
G
Ganlin Zhao 已提交
798 799 800 801 802 803 804 805 806 807 808 809 810 811
print asc fill query
sql select _wstart,count(*) from m_fl_tb0 where ts>='2018-9-17 9:0:0' and ts<='2018-9-17 9:11:00' interval(1m) fill(value,10) order by _wstart asc;
if $rows != 12 then
  return -1
endi

if $data00 != @18-09-17 09:00:00.000@ then
  return -1
endi

if $data01 != 1 then
  return -1
endi

812
print desc fill query
G
Ganlin Zhao 已提交
813
sql select _wstart,count(*) from m_fl_tb0 where ts>='2018-9-17 9:0:0' and ts<='2018-9-17 9:11:00' interval(1m) fill(value,10) order by _wstart desc;
814 815 816 817
if $rows != 12 then
  return -1
endi

G
Ganlin Zhao 已提交
818 819 820 821 822 823 824 825
if $data00 != @18-09-17 09:11:00.000@ then
  return -1
endi

if $data01 != 10 then
  return -1
endi

826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844
print =====================> aggregation + arithmetic + fill, need to add cases TODO
#sql select avg(cpu_taosd) - first(cpu_taosd) from dn1 where ts<'2020-11-13 11:00:00' and ts>'2020-11-13 10:50:00' interval(10s) fill(value, 99)
#sql select count(*), first(k), avg(k), avg(k)-first(k) from tm0 where ts>'2020-1-1 1:1:1' and ts<'2020-1-1 1:02:59' interval(10s) fill(value, 99);
#sql select count(*), first(k), avg(k), avg(k)-first(k) from tm0 where ts>'2020-1-1 1:1:1' and ts<'2020-1-1 1:02:59' interval(10s) fill(NULL);

print =====================> td-2060
sql create table m1 (ts timestamp, k int ) tags(a int);
sql create table if not exists tm0 using m1 tags(1);
sql insert into tm0 values('2020-1-1 1:1:1', 1);
sql insert into tm0 values('2020-1-1 1:1:2', 2);
sql insert into tm0 values('2020-1-1 1:1:3', 3);
sql insert into tm0 values('2020-1-1 1:2:4', 4);
sql insert into tm0 values('2020-1-1 1:2:5', 5);
sql insert into tm0 values('2020-1-1 1:2:6', 6);
sql insert into tm0 values('2020-1-1 1:3:7', 7);
sql insert into tm0 values('2020-1-1 1:3:8', 8);
sql insert into tm0 values('2020-1-1 1:3:9', 9);
sql insert into tm0 values('2020-1-1 1:4:10', 10);

X
Xiaoyu Wang 已提交
845 846
print select _wstart, max(k)-min(k),last(k)-first(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15' interval(10s) fill(value, 99,91,90);
sql select _wstart, max(k)-min(k),last(k)-first(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15' interval(10s) fill(value, 99,91,90);
847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870
if $rows != 8 then
  return -1
endi

if $data00 != @20-01-01 01:01:00.000@ then
  return -1
endi

if $data01 != 2.000000000 then
  return -1
endi

if $data02 != 2.000000000 then
  return -1
endi

if $data03 != -2.000000000 then
  return -1
endi

if $data10 != @20-01-01 01:01:10.000@ then
  return -1
endi

H
Haojun Liao 已提交
871
if $data11 != 99.000000000 then
872 873 874
  return -1
endi

H
Haojun Liao 已提交
875
if $data12 != 91.000000000 then
876 877 878
  return -1
endi

H
Haojun Liao 已提交
879
if $data13 != 90.000000000 then
880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902
  return -1
endi

if $data60 != @20-01-01 01:02:00.000@ then
  return -1
endi

if $data61 != 2.000000000 then
  return -1
endi

if $data62 != 2.000000000 then
  return -1
endi

if $data63 != -2.000000000 then
  return -1
endi

if $data70 != @20-01-01 01:02:10.000@ then
  return -1
endi

H
Haojun Liao 已提交
903
if $data71 != 99.000000000 then
904 905 906
  return -1
endi

H
Haojun Liao 已提交
907
if $data72 != 91.000000000 then
908 909 910
  return -1
endi

H
Haojun Liao 已提交
911
if $data73 != 90.000000000 then
912 913 914
  return -1
endi

S
Shengliang Guan 已提交
915
sql select _wstart, first(k)-avg(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15' interval(10s) fill(NULL);
916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943
if $rows != 8 then
  return -1
endi

if $data00 != @20-01-01 01:01:00.000@ then
  return -1
endi

if $data01 != -1.000000000 then
  return -1
endi

if $data02 != -2.000000000 then
  return -1
endi

if $data10 != @20-01-01 01:01:10.000@ then
  return -1
endi

if $data11 != NULL then
  return -1
endi

if $data12 != NULL then
  return -1
endi

X
Xiaoyu Wang 已提交
944
sql select _wstart, max(k)-min(k),last(k)-first(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 4:2:15'  interval(500a) fill(value, 99,91,90) ;
945
if $rows != 21749 then
946
 print expect 21749, actual: $rows
947 948 949
 return -1
endi

X
Xiaoyu Wang 已提交
950 951
print select _wstart, max(k)-min(k),last(k)-first(k),0-spread(k),count(1) from m1 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15'  interval(10s) fill(value, 99,91,90,89) ;
sql select _wstart, max(k)-min(k),last(k)-first(k),0-spread(k),count(1) from m1 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15'  interval(10s) fill(value, 99,91,90,89) ;
952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979
if $rows != 8 then
  return -1
endi

if $data00 != @20-01-01 01:01:00.000@ then
  return -1
endi

if $data01 != 2.000000000 then
  return -1
endi

if $data02 != 2.000000000 then
  return -1
endi

if $data03 != -2.000000000 then
  return -1
endi

if $data04 != 3 then
  return -1
endi

if $data10 != @20-01-01 01:01:10.000@ then
  return -1
endi

H
Haojun Liao 已提交
980
if $data11 != 99.000000000 then
981 982 983
  return -1
endi

H
Haojun Liao 已提交
984
if $data12 != 91.000000000 then
985 986 987
  return -1
endi

H
Haojun Liao 已提交
988
if $data13 != 90.000000000 then
989 990 991
  return -1
endi

H
Haojun Liao 已提交
992
if $data14 != 89 then
993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008
  return -1
endi

print ==================> td-2115
sql select count(*), min(c3)-max(c3) from m_fl_mt0 group by tgcol
if $rows != 10 then
  return -1
endi

if $data00 != 5 then
  return -1
endi

if $data01 != -4.000000000 then
  return -1
endi
S
Shengliang Guan 已提交
1009
if $data10 != 5 then
1010 1011
  return -1
endi
S
Shengliang Guan 已提交
1012
if $data11 !=  -4.000000000 then
1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
  return -1
endi

print =====================>td-1442, td-2190 , no time range for fill option
sql_error select count(*) from m_fl_tb0 interval(1s) fill(prev);
sql_error select min(c3) from m_fl_mt0 interval(10a) fill(value, 20)
sql_error select min(c3) from m_fl_mt0 interval(10s) fill(value, 20)
sql_error select min(c3) from m_fl_mt0 interval(10m) fill(value, 20)
sql_error select min(c3) from m_fl_mt0 interval(10h) fill(value, 20)
sql_error select min(c3) from m_fl_mt0 interval(10d) fill(value, 20)
sql_error select min(c3) from m_fl_mt0 interval(10w) fill(value, 20)
sql_error select max(c3) from m_fl_mt0 interval(1n) fill(prev)
sql_error select min(c3) from m_fl_mt0 interval(1y) fill(value, 20)

sql create table nexttb1 (ts timestamp, f1 int);
sql insert into nexttb1 values ('2021-08-08 1:1:1', NULL);
sql insert into nexttb1 values ('2021-08-08 1:1:5', 3);

S
Shengliang Guan 已提交
1031
sql select _wstart, last(*) from nexttb1 where ts >= '2021-08-08 1:1:1' and ts < '2021-08-08 1:1:10' interval(1s) fill(next);
1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046
if $rows != 9 then
  return -1
endi
if $data00 != @21-08-08 01:01:01.000@ then
  return -1
endi
if $data01 != @21-08-08 01:01:01.000@ then
  return -1
endi
if $data02 != 3 then
  return -1
endi

print =============== clear
#sql drop database $db
X
Xiaoyu Wang 已提交
1047
#sql select * from information_schema.ins_databases
1048 1049 1050 1051 1052
#if $rows != 0 then
#  return -1
#endi

system sh/exec.sh -n dnode1 -s stop -x SIGINT