Documentation
¶
Overview ¶
Package decimals reads values as parse's exact decimals where a document member or a SQLite value holds one, and encodes a decimal as a key whose bytes order as the decimals do. The filter package reads document members through Member; parse's SQLite functions (parsesqlite) are Value and Key.
Index ¶
Constants ¶
const ( SQLiteValueFunc = "parse_decimal" SQLiteKeyFunc = "parse_decimal_key" SQLiteFloat32Func = "parse_decimal_float32" )
The SQLite functions parse's dialect calls and parsesqlite registers: Value, Key and Float32Value of one argument.
const MaxMemberLength = core.MaxDecimalDigits
MaxMemberLength bounds a decimal member string's length; within it, its digits are within core.MaxDecimalDigits.
const PlainRegex = `^-?(0|[1-9][0-9]*)([.][0-9]+)?$`
PlainRegex is a decimal in plain notation, the text a decimal member's string holds (shopspring's JSON form): no exponent, so no cast of a member can overflow.
Variables ¶
This section is empty.
Functions ¶
func Float32Value ¶ added in v0.13.0
Float32Value is the canonical text of a SQLite value read as a float32 field scans it: an INTEGER, a REAL or TEXT holding a JSON number literal, rounded to float32, in its shortest decimal form (core.DecimalText of the float32). A float32 column on SQLite is REAL, a double, so the double of a float32 has more digits than the float32 it holds. ok is false for any other value and for one beyond float32's range.
func Key ¶
Key encodes canonical decimal text (core.DecimalText) as bytes whose bytewise order is the decimals' numeric order; equal decimals have equal keys. A nonzero magnitude is 0.d₁d₂…dₙ × 10^e with d₁ and dₙ nonzero: its key is the sign byte, e biased to two big-endian bytes, then the digits. For a negative the exponent and digits are complemented and a terminator follows, so a greater magnitude orders lower. text must be canonical.
func Member ¶
Member is the canonical text (core.DecimalText) of a decoded JSON document member read as a decimal: a JSON number (json.Number, or a Go number encoding/json decoded) within core.MaxDecimalDigits digits, or a string in plain notation of at most MaxMemberLength characters. ok is false for any other member.
func Value ¶
Value is the canonical text of a SQLite value read as a decimal, ok false when it holds none:
- INTEGER (int64): its digits;
- REAL (float64): its shortest decimal form, as core.DecimalText reads a float64;
- TEXT (string or []byte): a JSON number literal, the text a decimal column holds exactly; or a JSON string literal, a document member as the `->` operator returns it, read as Member reads a string.
A JSON literal of another kind (null, true, an object) is none.
Types ¶
This section is empty.