merge from 3.0
This commit is contained in:
commit
90b1527e5f
|
@ -54,7 +54,8 @@ int32_t init_env() {
|
|||
}
|
||||
taos_free_result(pRes);
|
||||
|
||||
pRes = taos_query(pConn, "create stable if not exists st1 (ts timestamp, c1 int, c2 float, c4 int) tags(t1 int)");
|
||||
pRes =
|
||||
taos_query(pConn, "create stable if not exists st1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags(t1 int)");
|
||||
if (taos_errno(pRes) != 0) {
|
||||
printf("failed to create super table st1, reason:%s\n", taos_errstr(pRes));
|
||||
return -1;
|
||||
|
@ -101,7 +102,7 @@ int32_t create_topic() {
|
|||
|
||||
/*const char* sql = "select * from tu1";*/
|
||||
/*pRes = tmq_create_topic(pConn, "test_stb_topic_1", sql, strlen(sql));*/
|
||||
pRes = taos_query(pConn, "create topic topic_ctb_column as select ts, c1, c2, c4 from ct1");
|
||||
pRes = taos_query(pConn, "create topic topic_ctb_column as select ts, c1, c2, c3 from ct1");
|
||||
if (taos_errno(pRes) != 0) {
|
||||
printf("failed to create topic topic_ctb_column, reason:%s\n", taos_errstr(pRes));
|
||||
return -1;
|
||||
|
|
|
@ -40,6 +40,7 @@ extern "C" {
|
|||
* @return timestamp decided by global conf variable, tsTimePrecision
|
||||
* if precision == TSDB_TIME_PRECISION_MICRO, it returns timestamp in microsecond.
|
||||
* precision == TSDB_TIME_PRECISION_MILLI, it returns timestamp in millisecond.
|
||||
* precision == TSDB_TIME_PRECISION_NANO, it returns timestamp in nanosecond.
|
||||
*/
|
||||
static FORCE_INLINE int64_t taosGetTimestamp(int32_t precision) {
|
||||
if (precision == TSDB_TIME_PRECISION_MICRO) {
|
||||
|
@ -51,6 +52,24 @@ static FORCE_INLINE int64_t taosGetTimestamp(int32_t precision) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @return timestamp of today at 00:00:00 in given precision
|
||||
* if precision == TSDB_TIME_PRECISION_MICRO, it returns timestamp in microsecond.
|
||||
* precision == TSDB_TIME_PRECISION_MILLI, it returns timestamp in millisecond.
|
||||
* precision == TSDB_TIME_PRECISION_NANO, it returns timestamp in nanosecond.
|
||||
*/
|
||||
static FORCE_INLINE int64_t taosGetTimestampToday(int32_t precision) {
|
||||
int64_t factor = (precision == TSDB_TIME_PRECISION_MILLI) ? 1000 :
|
||||
(precision == TSDB_TIME_PRECISION_MICRO) ? 1000000 : 1000000000;
|
||||
time_t t = taosTime(NULL);
|
||||
struct tm * tm= taosLocalTime(&t, NULL);
|
||||
tm->tm_hour = 0;
|
||||
tm->tm_min = 0;
|
||||
tm->tm_sec = 0;
|
||||
|
||||
return (int64_t)taosMktime(tm) * factor;
|
||||
}
|
||||
|
||||
int64_t taosTimeAdd(int64_t t, int64_t duration, char unit, int32_t precision);
|
||||
int64_t taosTimeTruncate(int64_t t, const SInterval* pInterval, int32_t precision);
|
||||
int32_t taosTimeCountInterval(int64_t skey, int64_t ekey, int64_t interval, char unit, int32_t precision);
|
||||
|
|
|
@ -27,9 +27,11 @@ extern "C" {
|
|||
#ifndef ALLOW_FORBID_FUNC
|
||||
#define strptime STRPTIME_FUNC_TAOS_FORBID
|
||||
#define gettimeofday GETTIMEOFDAY_FUNC_TAOS_FORBID
|
||||
#define localtime LOCALTIME_FUNC_TAOS_FORBID
|
||||
#define localtime_s LOCALTIMES_FUNC_TAOS_FORBID
|
||||
#define localtime_r LOCALTIMER_FUNC_TAOS_FORBID
|
||||
#define time TIME_FUNC_TAOS_FORBID
|
||||
#define mktime MKTIME_FUNC_TAOS_FORBID
|
||||
#endif
|
||||
|
||||
#if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32)
|
||||
|
@ -82,6 +84,8 @@ static FORCE_INLINE int64_t taosGetTimestampNs() {
|
|||
|
||||
char *taosStrpTime(const char *buf, const char *fmt, struct tm *tm);
|
||||
struct tm *taosLocalTime(const time_t *timep, struct tm *result);
|
||||
time_t taosTime(time_t *t);
|
||||
time_t taosMktime(struct tm *timep);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -228,6 +228,12 @@ function install_header() {
|
|||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||
}
|
||||
|
||||
# temp install taosBenchmark
|
||||
function install_taosTools() {
|
||||
cd ${script_dir}/taos-tools/
|
||||
tar xvf taosTools-1.4.1-Linux-x64.tar.gz && cd taosTools-1.4.1/ && ./install-taostools.sh
|
||||
}
|
||||
|
||||
function add_newHostname_to_hosts() {
|
||||
localIp="127.0.0.1"
|
||||
OLD_IFS="$IFS"
|
||||
|
@ -473,6 +479,7 @@ function install_TDengine() {
|
|||
install_log
|
||||
install_header
|
||||
install_lib
|
||||
install_taosTools
|
||||
|
||||
if [ -z $1 ]; then # install service and client
|
||||
# For installing new
|
||||
|
|
|
@ -55,6 +55,7 @@ mkdir -p ${install_dir}
|
|||
mkdir -p ${install_dir}/bin
|
||||
mkdir -p ${install_dir}/lib
|
||||
mkdir -p ${install_dir}/inc
|
||||
mkdir -p ${install_dir}/taos-tools
|
||||
|
||||
install_files="${script_dir}/install.sh"
|
||||
chmod a+x ${script_dir}/install.sh || :
|
||||
|
@ -68,6 +69,8 @@ cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
|
|||
|
||||
cp ${compile_dir}/source/client/libtaos.so ${install_dir}/lib/
|
||||
cp ${compile_dir}/source/libs/tdb/libtdb.so ${install_dir}/lib/
|
||||
taostoolfile="${top_dir}/tools/taosTools-1.4.1-Linux-x64.tar.gz"
|
||||
cp ${taostoolfile} ${install_dir}/taos-tools
|
||||
|
||||
#cp ${compile_dir}/source/dnode/mnode/impl/libmnode.so ${install_dir}/lib/
|
||||
#cp ${compile_dir}/source/dnode/qnode/libqnode.so ${install_dir}/lib/
|
||||
|
|
|
@ -791,7 +791,7 @@ static char* formatTimestamp(char* buf, int64_t val, int precision) {
|
|||
}
|
||||
}
|
||||
|
||||
struct tm* ptm = localtime(&tt);
|
||||
struct tm* ptm = taosLocalTime(&tt, NULL);
|
||||
size_t pos = strftime(buf, 35, "%Y-%m-%d %H:%M:%S", ptm);
|
||||
|
||||
if (precision == TSDB_TIME_PRECISION_NANO) {
|
||||
|
|
|
@ -1368,7 +1368,7 @@ static char* formatTimestamp(char* buf, int64_t val, int precision) {
|
|||
}
|
||||
}
|
||||
|
||||
struct tm* ptm = localtime(&tt);
|
||||
struct tm* ptm = taosLocalTime(&tt, NULL);
|
||||
size_t pos = strftime(buf, 35, "%Y-%m-%d %H:%M:%S", ptm);
|
||||
|
||||
if (precision == TSDB_TIME_PRECISION_NANO) {
|
||||
|
|
|
@ -70,7 +70,7 @@ void deltaToUtcInitOnce() {
|
|||
struct tm tm = {0};
|
||||
|
||||
(void)taosStrpTime("1970-01-01 00:00:00", (const char*)("%Y-%m-%d %H:%M:%S"), &tm);
|
||||
m_deltaUtc = (int64_t)mktime(&tm);
|
||||
m_deltaUtc = (int64_t)taosMktime(&tm);
|
||||
// printf("====delta:%lld\n\n", seconds);
|
||||
}
|
||||
|
||||
|
@ -344,7 +344,7 @@ int32_t parseLocaltimeDst(char* timestr, int64_t* time, int32_t timePrec) {
|
|||
}
|
||||
|
||||
/* mktime will be affected by TZ, set by using taos_options */
|
||||
int64_t seconds = mktime(&tm);
|
||||
int64_t seconds = taosMktime(&tm);
|
||||
|
||||
int64_t fraction = 0;
|
||||
|
||||
|
@ -539,7 +539,7 @@ int64_t taosTimeAdd(int64_t t, int64_t duration, char unit, int32_t precision) {
|
|||
tm.tm_year = mon / 12;
|
||||
tm.tm_mon = mon % 12;
|
||||
|
||||
return (int64_t)(mktime(&tm) * TSDB_TICK_PER_SECOND(precision));
|
||||
return (int64_t)(taosMktime(&tm) * TSDB_TICK_PER_SECOND(precision));
|
||||
}
|
||||
|
||||
int32_t taosTimeCountInterval(int64_t skey, int64_t ekey, int64_t interval, char unit, int32_t precision) {
|
||||
|
@ -598,7 +598,7 @@ int64_t taosTimeTruncate(int64_t t, const SInterval* pInterval, int32_t precisio
|
|||
tm.tm_mon = mon % 12;
|
||||
}
|
||||
|
||||
start = (int64_t)(mktime(&tm) * TSDB_TICK_PER_SECOND(precision));
|
||||
start = (int64_t)(taosMktime(&tm) * TSDB_TICK_PER_SECOND(precision));
|
||||
} else {
|
||||
int64_t delta = t - pInterval->interval;
|
||||
int32_t factor = (delta >= 0) ? 1 : -1;
|
||||
|
@ -745,7 +745,7 @@ void taosFormatUtcTime(char* buf, int32_t bufLen, int64_t t, int32_t precision)
|
|||
assert(false);
|
||||
}
|
||||
|
||||
ptm = localtime(");
|
||||
ptm = taosLocalTime(", NULL);
|
||||
int32_t length = (int32_t)strftime(ts, 40, "%Y-%m-%dT%H:%M:%S", ptm);
|
||||
length += snprintf(ts + length, fractionLen, format, mod);
|
||||
length += (int32_t)strftime(ts + length, 40 - length, "%z", ptm);
|
||||
|
|
|
@ -173,12 +173,12 @@ static void getNextTimeWindow(SInterval* pInterval, int32_t precision, int32_t o
|
|||
int mon = (int)(tm.tm_year * 12 + tm.tm_mon + interval * factor);
|
||||
tm.tm_year = mon / 12;
|
||||
tm.tm_mon = mon % 12;
|
||||
tw->skey = convertTimePrecision((int64_t)mktime(&tm) * 1000L, TSDB_TIME_PRECISION_MILLI, precision);
|
||||
tw->skey = convertTimePrecision((int64_t)taosMktime(&tm) * 1000L, TSDB_TIME_PRECISION_MILLI, precision);
|
||||
|
||||
mon = (int)(mon + interval);
|
||||
tm.tm_year = mon / 12;
|
||||
tm.tm_mon = mon % 12;
|
||||
tw->ekey = convertTimePrecision((int64_t)mktime(&tm) * 1000L, TSDB_TIME_PRECISION_MILLI, precision);
|
||||
tw->ekey = convertTimePrecision((int64_t)taosMktime(&tm) * 1000L, TSDB_TIME_PRECISION_MILLI, precision);
|
||||
|
||||
tw->ekey -= 1;
|
||||
}
|
||||
|
|
|
@ -312,6 +312,8 @@ static int parseTime(char **end, SToken *pToken, int16_t timePrec, int64_t *time
|
|||
|
||||
if (pToken->type == TK_NOW) {
|
||||
ts = taosGetTimestamp(timePrec);
|
||||
} else if (pToken->type == TK_TODAY) {
|
||||
ts = taosGetTimestampToday(timePrec);
|
||||
} else if (pToken->type == TK_NK_INTEGER) {
|
||||
bool isSigned = false;
|
||||
toInteger(pToken->z, pToken->n, 10, &ts, &isSigned);
|
||||
|
@ -376,8 +378,8 @@ static int parseTime(char **end, SToken *pToken, int16_t timePrec, int64_t *time
|
|||
}
|
||||
|
||||
static FORCE_INLINE int32_t checkAndTrimValue(SToken* pToken, uint32_t type, char* tmpTokenBuf, SMsgBuf* pMsgBuf) {
|
||||
if ((pToken->type != TK_NOW && pToken->type != TK_NK_INTEGER && pToken->type != TK_NK_STRING && pToken->type != TK_NK_FLOAT && pToken->type != TK_NK_BOOL &&
|
||||
pToken->type != TK_NULL && pToken->type != TK_NK_HEX && pToken->type != TK_NK_OCT && pToken->type != TK_NK_BIN) ||
|
||||
if ((pToken->type != TK_NOW && pToken->type != TK_TODAY && pToken->type != TK_NK_INTEGER && pToken->type != TK_NK_STRING && pToken->type != TK_NK_FLOAT &&
|
||||
pToken->type != TK_NK_BOOL && pToken->type != TK_NULL && pToken->type != TK_NK_HEX && pToken->type != TK_NK_OCT && pToken->type != TK_NK_BIN) ||
|
||||
(pToken->n == 0) || (pToken->type == TK_NK_RP)) {
|
||||
return buildSyntaxErrMsg(pMsgBuf, "invalid data or symbol", pToken->z);
|
||||
}
|
||||
|
|
|
@ -841,7 +841,7 @@ int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *
|
|||
memmove(fraction, fraction + TSDB_TIME_PRECISION_SEC_DIGITS, TSDB_TIME_PRECISION_SEC_DIGITS);
|
||||
}
|
||||
|
||||
struct tm *tmInfo = localtime((const time_t *)&timeVal);
|
||||
struct tm *tmInfo = taosLocalTime((const time_t *)&timeVal, NULL);
|
||||
strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", tmInfo);
|
||||
int32_t len = (int32_t)strlen(buf);
|
||||
|
||||
|
|
|
@ -406,7 +406,18 @@ FORCE_INLINE int32_t taosGetTimeOfDay(struct timeval *tv) {
|
|||
#endif
|
||||
}
|
||||
|
||||
time_t taosTime(time_t *t) {
|
||||
return time(t);
|
||||
}
|
||||
|
||||
time_t taosMktime(struct tm *timep) {
|
||||
return mktime(timep);
|
||||
}
|
||||
|
||||
struct tm *taosLocalTime(const time_t *timep, struct tm *result) {
|
||||
if (result == NULL) {
|
||||
return localtime(timep);
|
||||
}
|
||||
#if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32)
|
||||
localtime_s(result, timep);
|
||||
#else
|
||||
|
|
|
@ -266,20 +266,20 @@ if $data11 != NULL then
|
|||
return -1
|
||||
endi
|
||||
|
||||
print ====> select c2, c3 , concat(c2,c3) from ctb6
|
||||
sql select c2, c3 , concat(c2,c3) from ctb6
|
||||
print ====> rows: $rows
|
||||
print ====> $data00 $data01 $data02
|
||||
print ====> $data10 $data11 $data12
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data02 != 中文测试01中文测试01 then
|
||||
return -1
|
||||
endi
|
||||
if $data12 != NULL then
|
||||
return -1
|
||||
endi
|
||||
# print ====> select c2, c3 , concat(c2,c3) from ctb6
|
||||
# sql select c2, c3 , concat(c2,c3) from ctb6
|
||||
# print ====> rows: $rows
|
||||
# print ====> $data00 $data01 $data02
|
||||
# print ====> $data10 $data11 $data12
|
||||
# if $rows != 2 then
|
||||
# return -1
|
||||
# endi
|
||||
# if $data02 != 中文测试01中文测试01 then
|
||||
# return -1
|
||||
# endi
|
||||
# if $data12 != NULL then
|
||||
# return -1
|
||||
# endi
|
||||
|
||||
print ====> select c2, c3 , concat(c2,c3) from ntb6
|
||||
sql select c2, c3 , concat(c2,c3) from ntb6
|
||||
|
@ -304,12 +304,12 @@ print ====> $data10 $data11 $data12
|
|||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data02 != 中文测试01_中文测试01 then
|
||||
return -1
|
||||
endi
|
||||
if $data12 != NULL then
|
||||
if $data02 != 中文测试1_中文测试2 then
|
||||
return -1
|
||||
endi
|
||||
# if $data12 != NULL then
|
||||
# return -1
|
||||
# endi
|
||||
|
||||
print ====> select c2, c3 , concat_ws('_', c2, c3) from ntb6
|
||||
sql select c2, c3 , concat_ws('_', c2, c3) from ntb6
|
||||
|
@ -322,40 +322,40 @@ endi
|
|||
if $data02 != 中文测试01_中文测试01 then
|
||||
return -1
|
||||
endi
|
||||
if $data12 != NULL then
|
||||
return -1
|
||||
endi
|
||||
# if $data12 != NULL then
|
||||
# return -1
|
||||
# endi
|
||||
|
||||
print ====> select c2, substr(c2,1, 4) from ctb6
|
||||
sql select c2, substr(c2,1, 4) from ctb6
|
||||
print ====> rows: $rows
|
||||
print ====> $data00 $data01 $data02
|
||||
print ====> $data10 $data11 $data12
|
||||
print ====> $data00 $data01
|
||||
print ====> $data10 $data11
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data01 != 中文测试01 then
|
||||
if $data00 != 中文测试1 then
|
||||
return -1
|
||||
endi
|
||||
if $data02 != 中文测试01 then
|
||||
return -1
|
||||
endi
|
||||
if $data11 != NULL then
|
||||
if $data01 != 中文测试 then
|
||||
return -1
|
||||
endi
|
||||
# if $data11 != NULL then
|
||||
# return -1
|
||||
# endi
|
||||
|
||||
print ====> select c2, substr(c2,1, 4) from ntb6
|
||||
sql select c2, substr(c2,1, 4) from ntb6
|
||||
print ====> rows: $rows
|
||||
print ====> $data00 $data01 $data02
|
||||
print ====> $data10 $data11 $data12
|
||||
print ====> $data00 $data01
|
||||
print ====> $data10 $data11
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data01 != 中文测试01 then
|
||||
if $data00 != 中文测试01 then
|
||||
return -1
|
||||
endi
|
||||
if $data02 != 中文测试01 then
|
||||
if $data01 != 中文测试 then
|
||||
return -1
|
||||
endi
|
||||
if $data11 != NULL then
|
||||
|
|
|
@ -678,7 +678,7 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) {
|
|||
if (tt < 0) tt = 0;
|
||||
#endif
|
||||
|
||||
tp = localtime(&tt);
|
||||
tp = taosLocalTime(&tt, NULL);
|
||||
strftime(timeStr, 64, "%y-%m-%d %H:%M:%S", tp);
|
||||
if (precision == TSDB_TIME_PRECISION_MILLI) {
|
||||
sprintf(value, "%s.%03d", timeStr, (int32_t)(*((int64_t *)row[i]) % 1000));
|
||||
|
|
|
@ -452,7 +452,7 @@ static char *formatTimestamp(char *buf, int64_t val, int precision) {
|
|||
}
|
||||
}
|
||||
|
||||
struct tm *ptm = localtime(&tt);
|
||||
struct tm *ptm = taosLocalTime(&tt, NULL);
|
||||
size_t pos = strftime(buf, 35, "%Y-%m-%d %H:%M:%S", ptm);
|
||||
|
||||
if (precision == TSDB_TIME_PRECISION_NANO) {
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue