Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion source/libs/decimal/src/decimal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1548,7 +1548,7 @@ static int32_t decimal128FromDecimal128(DecimalType* pDec, uint8_t prec, uint8_t
case TSDB_DATA_TYPE_VARCHAR: \
case TSDB_DATA_TYPE_VARBINARY: \
case TSDB_DATA_TYPE_NCHAR: { \
code = decimal##FromStr(pData, pInputType->bytes - VARSTR_HEADER_SIZE, pOutType->precision, pOutType->scale, \
code = decimal##FromStr(pData, pInputType->bytes, pOutType->precision, pOutType->scale, \
pOut); \
} break; \
default: \
Expand Down
51 changes: 51 additions & 0 deletions test/cases/01-DataTypes/test_datatype_decimal.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,55 @@ class TestDatatypeDecimal:
"slowLogScope": "none",
"queryBufferSize": 10240,
}

def constValToDecimal(self):
tdSql.query(
f"SELECT CAST(CAST('-0.1234' AS DECIMAL(26, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.123400')

tdSql.query(
f"SELECT CAST(CAST('-0.123456' AS DECIMAL(26, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.123456')

tdSql.query(
f"SELECT CAST(CAST('-0.12345678' AS DECIMAL(26, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.123457')

tdSql.query(
f"SELECT CAST(CAST('-0.12345678' AS DECIMAL(26, 8)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.12345678')

tdSql.query(
f"SELECT CAST(CAST('-1234' AS DECIMAL(26, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-1234.000000')

tdSql.query(
f"SELECT CAST(CAST('-0.12345678' AS DECIMAL(26, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.123457')

tdSql.query(
f"SELECT CAST(CAST('-0.12345678' AS DECIMAL(32, 6)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.123457')

tdSql.query(
f"SELECT CAST(CAST('-0.12345678' AS DECIMAL(32, 8)) AS NCHAR(20));"
)
tdSql.checkRows(1)
tdSql.checkData(0, 0, '-0.12345678')

def test_datatype_decimal(self):
"""DataTypes: decimal
Expand Down Expand Up @@ -68,5 +117,7 @@ def test_datatype_decimal(self):
"select * from prop_statistics_equity_stable where trade_account = '1000000000601';"
)
tdSql.checkRows(0)

self.constValToDecimal()

tdLog.success(f"{__file__} successfully executed")
Loading