test.lua 3.1 KB
Newer Older
1
local driver = require "luaconnector"
2 3 4 5 6 7 8 9

local host="127.0.0.1"
local user="root"
local password="taosdata"
local db =nil
local port=6030
local conn

10
local res = driver.connect(host,user,password,db,port)
11 12 13 14 15 16 17
if res.code ~=0 then
   print(res.error)
   return
else
   conn = res.conn
end

R
robot 已提交
18
local res = driver.query(conn,"drop database if exists demo")
19

20
res = driver.query(conn,"create database demo")
21 22 23 24 25
if res.code ~=0 then
   print(res.error)
   return
end

26
res = driver.query(conn,"use demo")
27 28 29 30 31
if res.code ~=0 then
   print(res.error)
   return
end

32
res = driver.query(conn,"create table m1 (ts timestamp, speed int,owner binary(20))")
33 34 35 36 37
if res.code ~=0 then
   print(res.error)
   return
end

38
res = driver.query(conn,"insert into m1 values ('2019-09-01 00:00:00.001',0,'robotspace'), ('2019-09-01 00:00:00.002',1,'Hilink'),('2019-09-01 00:00:00.003',2,'Harmony')")
39 40 41
if res.code ~=0 then
   print(res.error)
   return
42 43
else
   print("insert successfully, affected:"..res.affected)
44
end
45

46
res = driver.query(conn,"select * from m1")
47

48 49 50 51
if res.code ~=0 then
   print("select error:"..res.error)
   return
else
52
   print("in lua, result:")
53 54 55 56
   for i = 1, #(res.item) do
      print("timestamp:"..res.item[i].ts)
      print("speed:"..res.item[i].speed)
      print("owner:"..res.item[i].owner)
57 58
   end
end
59

60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
res = driver.query(conn,"CREATE TABLE thermometer (ts timestamp, degree double) TAGS(location binary(20), type int)")
if res.code ~=0 then
   print(res.error)
   return
end
res = driver.query(conn,"CREATE TABLE therm1 USING thermometer TAGS ('beijing', 1)")
if res.code ~=0 then
   print(res.error)
   return
end
res = driver.query(conn,"INSERT INTO therm1 VALUES ('2019-09-01 00:00:00.001', 20),('2019-09-01 00:00:00.002', 21)")

if res.code ~=0 then
   print(res.error)
   return
else
   print("insert successfully, affected:"..res.affected)
end

res = driver.query(conn,"SELECT COUNT(*) count, AVG(degree) AS av, MAX(degree), MIN(degree) FROM thermometer WHERE location='beijing' or location='tianjin' GROUP BY location, type")
if res.code ~=0 then
   print("select error:"..res.error)
   return
else
   print("in lua, result:")
   for i = 1, #(res.item) do
      print("res:"..res.item[i].count)
   end
end

function callback(t)
   print("continuous query result:")
   for key, value in pairs(t) do
      print("key:"..key..", value:"..value)
   end
end

local stream
res = driver.open_stream(conn,"SELECT COUNT(*) as count, AVG(degree) as avg, MAX(degree) as max, MIN(degree) as min FROM thermometer interval(2s) sliding(2s);)",0,callback)
if res.code ~=0 then
   print("open stream error:"..res.error)
   return
else
   print("openstream ok")
   stream = res.stream
end

--From now on we begin continous query in an definite (infinite if you want) loop.
local loop_index = 0
R
robot 已提交
109
while loop_index < 10 do
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
   local t = os.time()*1000
   local v = loop_index
   res = driver.query(conn,string.format("INSERT INTO therm1 VALUES (%d, %d)",t,v))

   if res.code ~=0 then
      print(res.error)
      return
   else
      print("insert successfully, affected:"..res.affected)
   end
   os.execute("sleep " .. 1)
   loop_index = loop_index + 1
end

driver.close_stream(stream)
125
driver.close(conn)