Skip to content

Commit

Permalink
Merge pull request #731 from taosdata/fix/TS-4451
Browse files Browse the repository at this point in the history
mix mode support min max value for fields
  • Loading branch information
DuanKuanJun committed Feb 5, 2024
2 parents 2139f2a + 7641fea commit df2d396
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 24 deletions.
26 changes: 13 additions & 13 deletions src/benchData.c
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ static int tmpStr(char *tmp, int iface, Field *field, int i) {
return 0;
}

FORCE_INLINE double tmpDoubleImpl(Field *field, int32_t angle, int32_t loop) {
double tmpDoubleImpl(Field *field, int32_t angle, int32_t loop) {
double doubleTmp = (double)(field->min);

if(field->funType != FUNTYPE_NONE) {
Expand All @@ -484,28 +484,28 @@ FORCE_INLINE double tmpDoubleImpl(Field *field, int32_t angle, int32_t loop) {
return doubleTmp;
}

FORCE_INLINE double tmpDouble(Field *field) {
double tmpDouble(Field *field) {
return tmpDoubleImpl(field, 0, 0);
}


FORCE_INLINE uint64_t tmpUint64(Field *field) {
uint64_t tmpUint64(Field *field) {
uint64_t ubigintTmp = field->min;
if (field->max != field->min) {
ubigintTmp += (taosRandom() % (field->max - field->min));
}
return ubigintTmp;
}

FORCE_INLINE uint32_t tmpUint(Field *field) {
uint32_t tmpUint(Field *field) {
uint32_t uintTmp = field->min;
if (field->max != field->min) {
uintTmp += (taosRandom() % (field->max - field->min));
}
return uintTmp;
}

FORCE_INLINE bool tmpBool(Field *field) {
bool tmpBool(Field *field) {
bool boolTmp;
if (field->min == field->max) {
boolTmp = (field->min)?1:0;
Expand All @@ -515,39 +515,39 @@ FORCE_INLINE bool tmpBool(Field *field) {
return boolTmp;
}

FORCE_INLINE int8_t tmpInt8(Field *field) {
int8_t tmpInt8(Field *field) {
int8_t tinyint = field->min;
if (field->min != field->max) {
tinyint += (taosRandom() % (field->max - field->min));
}
return tinyint;
}

FORCE_INLINE uint8_t tmpUint8(Field *field) {
uint8_t tmpUint8(Field *field) {
uint8_t utinyint = field->min;
if (field->min != field->max) {
utinyint += (taosRandom() % (field->max - field->min));
}
return utinyint;
}

FORCE_INLINE int16_t tmpInt16(Field *field) {
int16_t tmpInt16(Field *field) {
int16_t smallint = field->min;
if (field->min != field->max) {
smallint += (taosRandom() % (field->max - field->min));
}
return smallint;
}

FORCE_INLINE uint16_t tmpUint16(Field *field) {
uint16_t tmpUint16(Field *field) {
uint16_t usmallintTmp = field->min;
if (field->max != field->min) {
usmallintTmp += (taosRandom() % (field->max - field->min));
}
return usmallintTmp;
}

FORCE_INLINE int64_t tmpInt64Impl(Field *field, int32_t angle, int32_t loop) {
int64_t tmpInt64Impl(Field *field, int32_t angle, int32_t loop) {
int64_t bigintTmp = field->min;
if(field->funType != FUNTYPE_NONE) {
bigintTmp = funValueInt32(field, angle, loop);
Expand All @@ -557,11 +557,11 @@ FORCE_INLINE int64_t tmpInt64Impl(Field *field, int32_t angle, int32_t loop) {
return bigintTmp;
}

FORCE_INLINE int64_t tmpInt64(Field *field) {
int64_t tmpInt64(Field *field) {
return tmpInt64Impl(field, 0, 0);
}

FORCE_INLINE float tmpFloat(Field *field) {
float tmpFloat(Field *field) {
float floatTmp = field->min;
if (field->max != field->min) {
floatTmp += ((taosRandom() % (field->max - field->min))
Expand Down Expand Up @@ -620,7 +620,7 @@ static int tmpInt32Impl(Field *field, int i, int angle, int32_t loop) {
return intTmp;
}

static int tmpInt32(Field *field, int i) {
int tmpInt32(Field *field, int i) {
return tmpInt32Impl(field, i, 0, 0);
}

Expand Down
38 changes: 27 additions & 11 deletions src/benchDataMix.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,22 @@ uint32_t genRadomString(char* val, uint32_t len, char* prefix) {
return size;
}

// these define on benchData.c
bool tmpBool (Field *field);
int8_t tmpInt8 (Field *field);
int16_t tmpInt16 (Field *field);
uint16_t tmpUint16(Field *field);
int tmpInt32 (Field *field, int i);
int64_t tmpInt64 (Field *field);
int64_t tmpInt64 (Field *field);
uint8_t tmpUint8 (Field *field);
uint32_t tmpUint (Field *field);
uint64_t tmpUint64(Field *field);
float tmpFloat (Field *field);
double tmpDouble(Field *field);

uint64_t tmpUint64(Field *field);

// data row generate by randowm
uint32_t dataGenByField(Field* fd, char* pstr, uint32_t len, char* prefix) {
uint32_t size = 0;
Expand All @@ -106,44 +122,44 @@ uint32_t dataGenByField(Field* fd, char* pstr, uint32_t len, char* prefix) {

switch (fd->type) {
case TSDB_DATA_TYPE_BOOL:
strcpy(val, RD(2) ? "true" : "false");
sprintf(val, "%d", tmpBool(fd));
break;
// timestamp
case TSDB_DATA_TYPE_TIMESTAMP:
strcpy(val, "now");
break;
// signed
case TSDB_DATA_TYPE_TINYINT:
SIGNED_RANDOM(int8_t, 0xFF, "%d")
sprintf(val, "%d", tmpInt8(fd));
break;
case TSDB_DATA_TYPE_SMALLINT:
SIGNED_RANDOM(int16_t, 0xFFFF, "%d")
sprintf(val, "%d", tmpInt16(fd));
break;
case TSDB_DATA_TYPE_INT:
SIGNED_RANDOM(int32_t, 0xFFFFFFFF, "%d")
sprintf(val, "%d", tmpInt32(fd, 0));
break;
case TSDB_DATA_TYPE_BIGINT:
SIGNED_RANDOM(int64_t, 0xFFFFFFFFFFFFFFFF, "%"PRId64)
sprintf(val, "%"PRId64, tmpInt64(fd));
break;
// unsigned
case TSDB_DATA_TYPE_UTINYINT:
UNSIGNED_RANDOM(uint8_t, 0xFF,"%u")
sprintf(val, "%u", tmpUint8(fd));
break;
case TSDB_DATA_TYPE_USMALLINT:
UNSIGNED_RANDOM(uint16_t, 0xFFFF, "%u")
sprintf(val, "%u", tmpUint16(fd));
break;
case TSDB_DATA_TYPE_UINT:
UNSIGNED_RANDOM(uint32_t, 0xFFFFFFFF, "%u")
sprintf(val, "%u", tmpUint(fd));
break;
case TSDB_DATA_TYPE_UBIGINT:
UNSIGNED_RANDOM(uint64_t, 0xFFFFFFFFFFFFFFFF, "%"PRIu64)
sprintf(val, "%"PRIu64, tmpUint64(fd));
break;
// float double
case TSDB_DATA_TYPE_FLOAT:
FLOAT_RANDOM(float, FLT_MIN, FLT_MAX)
sprintf(val, "%f", tmpFloat(fd));
break;
case TSDB_DATA_TYPE_DOUBLE:
FLOAT_RANDOM(double, DBL_MIN, DBL_MAX)
sprintf(val, "%f", tmpDouble(fd));
break;
// binary nchar
case TSDB_DATA_TYPE_BINARY:
Expand Down

0 comments on commit df2d396

Please sign in to comment.