void CouchbaseEmbedFunctionContext::getDecimalResult(Decimal &value) { auto text = nextResultScalar(); if (text && *text) value.setString(rtlUtf8Length(strlen(text), text), text); else { NullFieldProcessor p(NULL); value.set(p.decimalResult); } }
static void getDecimalResult(const RtlFieldInfo *field, const MYSQL_BIND &bound, Decimal &value) { if (*bound.is_null) { NullFieldProcessor p(field); value.set(p.decimalResult); return; } size32_t chars; rtlDataAttr result; mysqlembed::getStringResult(field, bound, chars, result.refstr()); value.setString(chars, result.getstr()); if (field) { RtlDecimalTypeInfo *dtype = (RtlDecimalTypeInfo *) field->type; value.setPrecision(dtype->getDecimalDigits(), dtype->getDecimalPrecision()); } }
void CouchbaseRowBuilder::getDecimalResult(const RtlFieldInfo *field, Decimal &value) { const char * dvalue = nextField(field); if (!dvalue || !*dvalue) { NullFieldProcessor p(field); value.set(p.decimalResult); return; } size32_t chars; rtlDataAttr result; value.setString(strlen(dvalue), dvalue); if (field) { RtlDecimalTypeInfo *dtype = (RtlDecimalTypeInfo *) field->type; value.setPrecision(dtype->getDecimalDigits(), dtype->getDecimalPrecision()); } }