checkUdf.sim 3.2 KB
Newer Older
S
shenglian zhou 已提交
1 2
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
3
system sh/cfg.sh -n dnode1 -c udf -v 1
S
shenglian zhou 已提交
4 5 6 7 8 9 10
system sh/exec.sh -n dnode1 -s start
sql connect

print ======== step1 udf 
system sh/copy_udf.sh
sql create database udf vgroups 3;
sql use udf;
X
Xiaoyu Wang 已提交
11
sql select * from information_schema.ins_databases;
S
shenglian zhou 已提交
12 13 14 15

sql create table t (ts timestamp, f int);
sql insert into t values(now, 1)(now+1s, 2);

wafwerar's avatar
wafwerar 已提交
16 17
system_content printf %OS%
if $system_content == Windows_NT then
X
Xiaoyu Wang 已提交
18
  sql create function udf1 as 'C:\\Windows\\Temp\\udf1.dll' outputtype int;
wafwerar's avatar
wafwerar 已提交
19 20
  sql create aggregate function udf2 as 'C:\\Windows\\Temp\\udf2.dll' outputtype double bufSize 8;
else
X
Xiaoyu Wang 已提交
21
  sql create function udf1 as '/tmp/udf/libudf1.so' outputtype int;
wafwerar's avatar
wafwerar 已提交
22 23
  sql create aggregate function udf2 as '/tmp/udf/libudf2.so' outputtype double bufSize 8;
endi
S
shenglian zhou 已提交
24
sql show functions;
S
shenglian zhou 已提交
25 26 27
if $rows != 2 then
  return -1
endi
S
shenglian zhou 已提交
28 29 30 31
sql select udf1(f) from t;
if $rows != 2 then
  return -1
endi
32
if $data00 != 1 then
S
shenglian zhou 已提交
33 34
  return -1
endi
35
if $data10 != 1 then
S
shenglian zhou 已提交
36 37 38 39 40
  return -1
endi

sql select udf2(f) from t;
if $rows != 1 then
41
  print expect 1, actual $rows
S
shenglian zhou 已提交
42 43 44 45 46 47
  return -1
endi
if $data00 != 2.236067977 then
  return -1
endi

48 49 50 51 52 53
sql create table t2 (ts timestamp, f1 int, f2 int);
sql insert into t2 values(now, 0, 0)(now+1s, 1, 1);
sql select udf1(f1, f2) from t2;
if $rows != 2 then
  return -1
endi
54
if $data00 != 1 then
55 56
  return -1
endi
57
if $data10 != 1 then
58 59 60 61 62 63 64 65 66 67 68
  return -1
endi

sql select udf2(f1, f2) from t2;
if $rows != 1 then
  return -1
endi
if $data00 != 1.414213562 then
  return -1
endi

69
sql insert into t2 values(now+2s, 1, null)(now+3s, null, 2);
S
slzhou 已提交
70 71 72 73 74
sql select udf1(f1, f2) from t2;
print $rows , $data00 , $data10 , $data20 , $data30
if $rows != 4 then
  return -1
endi
75
if $data00 != 1 then
S
slzhou 已提交
76 77
  return -1
endi
78
if $data10 != 1 then
S
slzhou 已提交
79 80 81 82 83 84 85 86 87 88
  return -1
endi

if $data20 != NULL then
  return -1
endi

if $data30 != NULL then
  return -1
endi
89 90 91 92 93 94 95 96 97

sql select udf2(f1, f2) from t2;
print $rows, $data00
if $rows != 1 then
  return -1
endi
if $data00 != 2.645751311 then
  return -1
endi
S
slzhou 已提交
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

sql insert into t2 values(now+4s, 4, 8)(now+5s, 5, 9);
sql select udf2(f1-f2), udf2(f1+f2) from t2;
print $rows , $data00 , $data01
if $rows != 1 then
  return -1;
endi
if $data00 != 5.656854249 then
  return -1
endi
if $data01 != 18.547236991 then
  return -1
endi

sql select udf2(udf1(f2-f1)), udf2(udf1(f2/f1)) from t2;
113
print $rows , $data00 , $data01
S
slzhou 已提交
114 115 116
if $rows != 1 then
  return -1
endi
117
if $data00 != 2.000000000 then
S
slzhou 已提交
118 119
  return -1
endi
120
if $data01 != 1.732050808 then
S
slzhou 已提交
121 122
  return -1
endi
123

124
sql select udf2(f2) from udf.t2 group by 1-udf1(f1) order by 1-udf1(f1)
125 126 127 128 129
print $rows , $data00 , $data10
if $rows != 2 then
  return -1
endi
if $data00 != 2.000000000 then
130
  print expect 2.000000000 , actual: $data00
131 132 133 134 135 136
  return -1
endi
if $data10 != 12.083045974 then
  return -1
endi

S
slzhou 已提交
137 138 139 140 141 142 143 144 145 146 147 148 149 150
sql drop function udf1;
sql show functions;
if $rows != 1 then
  return -1
endi
if $data00 != @udf2@ then
  return -1
  endi
sql drop function udf2;
sql show functions;
if $rows != 0 then
  return -1
endi

S
Shengliang Guan 已提交
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
_OVER:
system sh/exec.sh -n dnode1 -s stop -x SIGINT
print =============== check
$null=

system_content sh/checkValgrind.sh -n dnode1 
print cmd return result ----> [ $system_content ]
if $system_content > 0 then
  return -1
endi 

if $system_content == $null then
  return -1
endi