sleep 3000
sql connect

$dbPrefix = first_db
$tbPrefix = first_tb
$stbPrefix = first_stb
$tbNum = 10
$rowNum = 2000
$totalNum = $tbNum * $rowNum
$ts0 = 1537146000000
$delta = 60000
print ========== first_last_query.sim
$i = 0
$db = $dbPrefix . $i
$stb = $stbPrefix . $i

sql use $db

##### select first/last from table
## TBASE-331
print ====== select first/last from table
$tb = $tbPrefix . 0
sql select first(*) from $tb
if $rows != 1 then
  return -1
endi
if $data00 != @18-09-17 08:59:00.000@ then
  return -1
endi
#if $data01 != NULL then
if $data01 != 0 then
  return -1   
endi  
#if $data02 != NULL then
if $data02 != 0 then
  return -1  
endi 
#if $data03 != NULL then
print data03 = $data03
if $data03 != 0.00000 then
  return -1  
endi    
#if $data04 != null then
if $data04 != 0.000000000 then
  return -1
endi
#if $data05 != null then
if $data05 != 0 then
  return -1
endi 
#if $data06 != null then
if $data06 != 0 then
  return -1
endi
#if $data07 != null then
if $data07 != 1 then
  return -1
endi
#if $data08 != null then
if $data08 != BINARY then
  return -1
endi
#if $data09 != null then
if $data09 != NCHAR then
  return -1
endi

sql select last(*) from $tb
if $rows != 1 then
  return -1
endi
if $data00 != @18-09-18 01:40:00.000@ then
  return -1   
endi  
#if $data01 != NULL then
if $data01 != 999 then
  return -1   
endi  
#if $data02 != NULL then
if $data02 != 999 then
  return -1  
endi 
#if $data03 != NULL then
if $data03 != 999.00000 then
  return -1  
endi    
#if $data04 != NULL then
if $data04 != 999.000000000 then
  return -1
endi
#if $data05 != NULL then
if $data05 != 999 then
  return -1
endi 
#if $data06 != NULL then
if $data06 != 103 then
  return -1
endi
#if $data07 != NULL then
if $data07 != 1 then
  return -1
endi
#if $data08 != NULL then
if $data08 != BINARY then
  return -1
endi
#if $data09 != NULL then
if $data09 != NCHAR then
  return -1
endi

### test if first works for committed data. An 'order by ts desc' clause should be present, and queried data should come from at least 2 file blocks
$tb = $tbPrefix . 9
sql select first(ts), first(c1) from $tb where ts < '2018-10-17 10:00:00.000' order by ts asc
if $rows != 1 then 
  return -1
endi
if $data00 != @18-09-17 09:00:00.000@ then
  return -1
endi
if $data01 != 0 then
  return -1
endi

$tb = $tbPrefix . 9
sql select first(ts), first(c1) from $tb where ts < '2018-10-17 10:00:00.000' order by ts desc 
if $rows != 1 then 
  return -1
endi
if $data00 != @18-09-17 09:00:00.000@ then
  return -1
endi
if $data01 != 0 then
  return -1
endi
