fix decimal windows build

This commit is contained in:
wangjiaming0909 2025-03-07 19:47:37 +08:00
parent b480ad71c3
commit 619af7a945
4 changed files with 15 additions and 12 deletions

View File

@ -118,7 +118,9 @@ typedef struct SDecimalOps {
// all these ops only used for comparing decimal types with same scale // all these ops only used for comparing decimal types with same scale
SDecimalOps* getDecimalOps(int8_t dataType); SDecimalOps* getDecimalOps(int8_t dataType);
#if 0
__int128 decimal128ToInt128(const Decimal128* pDec); __int128 decimal128ToInt128(const Decimal128* pDec);
#endif
int32_t TEST_decimal64From_int64_t(Decimal64* pDec, uint8_t prec, uint8_t scale, int64_t v); int32_t TEST_decimal64From_int64_t(Decimal64* pDec, uint8_t prec, uint8_t scale, int64_t v);
int32_t TEST_decimal64From_uint64_t(Decimal64* pDec, uint8_t prec, uint8_t scale, uint64_t v); int32_t TEST_decimal64From_uint64_t(Decimal64* pDec, uint8_t prec, uint8_t scale, uint64_t v);
int32_t TEST_decimal64From_double(Decimal64* pDec, uint8_t prec, uint8_t scale, double v); int32_t TEST_decimal64From_double(Decimal64* pDec, uint8_t prec, uint8_t scale, double v);

View File

@ -1765,6 +1765,7 @@ int32_t decimal128FromStr(const char* str, int32_t len, uint8_t expectPrecision,
return code; return code;
} }
#if 0
__int128 decimal128ToInt128(const Decimal128* pDec) { __int128 decimal128ToInt128(const Decimal128* pDec) {
__int128 ret = 0; __int128 ret = 0;
ret = DECIMAL128_HIGH_WORD(pDec); ret = DECIMAL128_HIGH_WORD(pDec);
@ -1772,6 +1773,7 @@ __int128 decimal128ToInt128(const Decimal128* pDec) {
ret |= DECIMAL128_LOW_WORD(pDec); ret |= DECIMAL128_LOW_WORD(pDec);
return ret; return ret;
} }
#endif
static int32_t decimal128CountLeadingBinaryZeros(const Decimal128* pDec) { static int32_t decimal128CountLeadingBinaryZeros(const Decimal128* pDec) {
if (DECIMAL128_HIGH_WORD(pDec) == 0) { if (DECIMAL128_HIGH_WORD(pDec) == 0) {

View File

@ -36,31 +36,28 @@ void uInt128Subtract(UInt128* pLeft, const UInt128* pRight) {
*pX -= *pY; *pX -= *pY;
} }
void uInt128Multiply(UInt128* pLeft, const UInt128* pRight) { void uInt128Multiply(UInt128* pLeft, const UInt128* pRight) {
/*
intx::uint128 *pX = (intx::uint128*)pLeft; intx::uint128 *pX = (intx::uint128*)pLeft;
const intx::uint128 *pY = (const intx::uint128*)pRight; const intx::uint128 *pY = (const intx::uint128*)pRight;
*pX *= *pY; */ *pX *= *pY;
__uint128_t *px = (__uint128_t*)pLeft; /* __uint128_t *px = (__uint128_t*)pLeft;
const __uint128_t *py = (__uint128_t*)pRight; const __uint128_t *py = (__uint128_t*)pRight;
*px = *px * *py; *px = *px * *py; */
} }
void uInt128Divide(UInt128* pLeft, const UInt128* pRight) { void uInt128Divide(UInt128* pLeft, const UInt128* pRight) {
/*
intx::uint128 *pX = (intx::uint128*)pLeft; intx::uint128 *pX = (intx::uint128*)pLeft;
const intx::uint128 *pY = (const intx::uint128*)pRight; const intx::uint128 *pY = (const intx::uint128*)pRight;
*pX /= *pY;*/ *pX /= *pY;
__uint128_t *px = (__uint128_t*)pLeft; /* __uint128_t *px = (__uint128_t*)pLeft;
const __uint128_t *py = (__uint128_t*)pRight; const __uint128_t *py = (__uint128_t*)pRight;
*px = *px / *py; *px = *px / *py; */
} }
void uInt128Mod(UInt128* pLeft, const UInt128* pRight) { void uInt128Mod(UInt128* pLeft, const UInt128* pRight) {
/*
intx::uint128 *pX = (intx::uint128*)pLeft; intx::uint128 *pX = (intx::uint128*)pLeft;
const intx::uint128 *pY = (const intx::uint128*)pRight; const intx::uint128 *pY = (const intx::uint128*)pRight;
*pX %= *pY;*/ *pX %= *pY;
__uint128_t *px = (__uint128_t*)pLeft; /* __uint128_t *px = (__uint128_t*)pLeft;
const __uint128_t *py = (__uint128_t*)pRight; const __uint128_t *py = (__uint128_t*)pRight;
*px = *px % *py; *px = *px % *py; */
} }
bool uInt128Lt(const UInt128* pLeft, const UInt128* pRight) { bool uInt128Lt(const UInt128* pLeft, const UInt128* pRight) {
const intx::uint128 *pX = (const intx::uint128*)pLeft; const intx::uint128 *pX = (const intx::uint128*)pLeft;

View File

@ -683,6 +683,7 @@ TEST(decimal, conversion) {
static constexpr uint64_t k1E16 = 10000000000000000LL; static constexpr uint64_t k1E16 = 10000000000000000LL;
#if 0
TEST(decimal, decimalFromStr) { TEST(decimal, decimalFromStr) {
char inputBuf[64] = "123.000000000000000000000000000000001"; char inputBuf[64] = "123.000000000000000000000000000000001";
Decimal128 dec128 = {0}; Decimal128 dec128 = {0};
@ -704,6 +705,7 @@ TEST(decimal, decimalFromStr) {
ASSERT_EQ(999999, DECIMAL64_GET_VALUE(&dec64)); ASSERT_EQ(999999, DECIMAL64_GET_VALUE(&dec64));
} }
#endif
TEST(decimal, toStr) { TEST(decimal, toStr) {
Decimal64 dec = {0}; Decimal64 dec = {0};