Vertica::VNumeric Class Reference

Representation of NUMERIC, fixed point data types in Vertica.

Inheritance diagram for Vertica::VNumeric:

Collaboration diagram for Vertica::VNumeric:

Public Member Functions
VNumeric (uint64 *words, int32 precision, int32 scale)
Create a VNumeric with the provided storage location, precision and scale.
VNumeric (const VNumeric &other)
void accumulate (const VNumeric *from)
Adds another VNumeric to this VNumeric.
void add (const VNumeric *a, const VNumeric *b)
int compare (const VNumeric *from) const
Compares this (signed) VNumeric to another.
int compareUnsigned (const VNumeric *from) const
Compares this (unsigned) VNumeric to another.
bool copy (const VNumeric *from, bool throw_error=true)
Copy data from another VNumeric.
bool copy (ifloat value, bool round=true)
Copy data from a floating-point number.
void div (const VNumeric *a, const VNumeric *b)
bool equal (const VNumeric *from) const
Indicates whether some other VNumeric is equal to this one.
int32 getPrecision () const
int32 getScale () const
void incr ()
void invertSign ()
Inverts the sign of this VNumeric (equivalent to multiplying this VNumeric by -1)
bool isNeg () const
Indicates if this VNumeric is negative.
bool isNull () const
Indicates if this VNumeric is the SQL NULL value.
bool isZero () const
Indicates if this VNumeric is zero.
void mul (const VNumeric *a, const VNumeric *b)
VNumeric & operator*= (const VNumeric &other)
VNumeric & operator+= (const VNumeric &other)
VNumeric & operator-= (const VNumeric &other)
VNumeric & operator/= (const VNumeric &other)
bool operator (const VNumeric &other) const
bool operator>= (const VNumeric &other) const
VNumeric & operator>>= (unsigned shift)
void setNull ()
Sets this VNumeric to the SQL NULL value.
void setZero ()
Sets this VNumeric to zero.
void shiftLeft (unsigned bitsToShift)
void shiftRight (unsigned bitsToShift)
void sub (const VNumeric *a, const VNumeric *b)
ifloat toFloat () const
Convert the VNumeric value into floating-point.
size_t toString (char *outBuf, int olen) const

Detailed Description

Representation of NUMERIC, fixed point data types in Vertica.

Constructor & Destructor Documentation

VNumeric()

Vertica::VNumeric::VNumeric(uint64 * words, int32 precision, int32 scale)

inline Create a VNumeric with the provided storage location, precision and scale.

Note It is the callers responsibility to allocate enough memory for the words parameter

Member Function Documentation

compare()

int Vertica::VNumeric::compare(const VNumeric * from) const

inline Compares this (signed) VNumeric to another.

Returns -1 if this < other, 0 if equal, 1 if this > other

Note SQL NULL compares less than anything else; two SQL NULLs are considered equal

compareUnsigned()

int Vertica::VNumeric::compareUnsigned(const VNumeric * from) const

inline Compares this (unsigned) VNumeric to another.

Returns -1 if this < other, 0 if equal, 1 if this > other

Note SQL NULL compares less than anything else; two SQL NULLs are considered equal

copy() [1/2]

bool Vertica::VNumeric::copy(const VNumeric * from, bool throw_error = true)

inline Copy data from another VNumeric.

Parameters

  • from: The source VNumeric
  • throw_error: Whether to throw an exception if the coercion fails

Returns true if the coercion succeeded, false otherwise (if throw_error is false)

copy() [2/2]

bool Vertica::VNumeric::copy(ifloat value, bool round = true)

inline Copy data from a floating-point number.

Parameters

  • value: The source floating-point number
  • round: Truncates if false; otherwise the numeric result is rounded

Returns false if conversion failed (precision lost or overflow, etc); true otherwise

toFloat()

ifloat Vertica::VNumeric::toFloat() const

inline Convert the VNumeric value into floating-point.

Returns the value in 80-bit floating-point