|
PostgreSQL Source Code git master
|
#include "postgres.h"#include <ctype.h>#include <float.h>#include <limits.h>#include <math.h>#include "common/hashfn.h"#include "common/int.h"#include "common/int128.h"#include "funcapi.h"#include "lib/hyperloglog.h"#include "libpq/pqformat.h"#include "miscadmin.h"#include "nodes/nodeFuncs.h"#include "nodes/supportnodes.h"#include "optimizer/optimizer.h"#include "utils/array.h"#include "utils/builtins.h"#include "utils/guc.h"#include "utils/numeric.h"#include "utils/pg_lsn.h"#include "utils/sortsupport.h"
Go to the source code of this file.
Data Structures | |
| struct | NumericShort |
| struct | NumericLong |
| union | NumericChoice |
| struct | NumericData |
| struct | NumericVar |
| struct | generate_series_numeric_fctx |
| struct | NumericSortSupport |
| struct | NumericSumAccum |
| struct | NumericAggState |
| struct | Int128AggState |
| struct | Int8TransTypeData |
Macros | |
| #define | NBASE 10000 |
| #define | HALF_NBASE 5000 |
| #define | DEC_DIGITS 4 /* decimal digits per NBASE digit */ |
| #define | MUL_GUARD_DIGITS 2 /* these are measured in NBASE digits */ |
| #define | DIV_GUARD_DIGITS 4 |
| #define | NBASE_SQR (NBASE * NBASE) |
| #define | NUMERIC_SIGN_MASK 0xC000 |
| #define | NUMERIC_POS 0x0000 |
| #define | NUMERIC_NEG 0x4000 |
| #define | NUMERIC_SHORT 0x8000 |
| #define | NUMERIC_SPECIAL 0xC000 |
| #define | NUMERIC_FLAGBITS(n) ((n)->choice.n_header & NUMERIC_SIGN_MASK) |
| #define | NUMERIC_IS_SHORT(n) (NUMERIC_FLAGBITS(n) == NUMERIC_SHORT) |
| #define | NUMERIC_IS_SPECIAL(n) (NUMERIC_FLAGBITS(n) == NUMERIC_SPECIAL) |
| #define | NUMERIC_HDRSZ (VARHDRSZ + sizeof(uint16) + sizeof(int16)) |
| #define | NUMERIC_HDRSZ_SHORT (VARHDRSZ + sizeof(uint16)) |
| #define | NUMERIC_HEADER_IS_SHORT(n) (((n)->choice.n_header & 0x8000) != 0) |
| #define | NUMERIC_HEADER_SIZE(n) |
| #define | NUMERIC_EXT_SIGN_MASK 0xF000 /* high bits plus NaN/Inf flag bits */ |
| #define | NUMERIC_NAN 0xC000 |
| #define | NUMERIC_PINF 0xD000 |
| #define | NUMERIC_NINF 0xF000 |
| #define | NUMERIC_INF_SIGN_MASK 0x2000 |
| #define | NUMERIC_EXT_FLAGBITS(n) ((n)->choice.n_header & NUMERIC_EXT_SIGN_MASK) |
| #define | NUMERIC_IS_NAN(n) ((n)->choice.n_header == NUMERIC_NAN) |
| #define | NUMERIC_IS_PINF(n) ((n)->choice.n_header == NUMERIC_PINF) |
| #define | NUMERIC_IS_NINF(n) ((n)->choice.n_header == NUMERIC_NINF) |
| #define | NUMERIC_IS_INF(n) (((n)->choice.n_header & ~NUMERIC_INF_SIGN_MASK) == NUMERIC_PINF) |
| #define | NUMERIC_SHORT_SIGN_MASK 0x2000 |
| #define | NUMERIC_SHORT_DSCALE_MASK 0x1F80 |
| #define | NUMERIC_SHORT_DSCALE_SHIFT 7 |
| #define | NUMERIC_SHORT_DSCALE_MAX (NUMERIC_SHORT_DSCALE_MASK >> NUMERIC_SHORT_DSCALE_SHIFT) |
| #define | NUMERIC_SHORT_WEIGHT_SIGN_MASK 0x0040 |
| #define | NUMERIC_SHORT_WEIGHT_MASK 0x003F |
| #define | NUMERIC_SHORT_WEIGHT_MAX NUMERIC_SHORT_WEIGHT_MASK |
| #define | NUMERIC_SHORT_WEIGHT_MIN (-(NUMERIC_SHORT_WEIGHT_MASK+1)) |
| #define | NUMERIC_DSCALE_MASK 0x3FFF |
| #define | NUMERIC_DSCALE_MAX NUMERIC_DSCALE_MASK |
| #define | NUMERIC_SIGN(n) |
| #define | NUMERIC_DSCALE(n) |
| #define | NUMERIC_WEIGHT(n) |
| #define | NUMERIC_WEIGHT_MAX PG_INT16_MAX |
| #define | NumericAbbrevGetDatum(X) Int64GetDatum(X) |
| #define | DatumGetNumericAbbrev(X) DatumGetInt64(X) |
| #define | NUMERIC_ABBREV_NAN NumericAbbrevGetDatum(PG_INT64_MIN) |
| #define | NUMERIC_ABBREV_PINF NumericAbbrevGetDatum(-PG_INT64_MAX) |
| #define | NUMERIC_ABBREV_NINF NumericAbbrevGetDatum(PG_INT64_MAX) |
| #define | dump_numeric(s, n) |
| #define | dump_var(s, v) |
| #define | digitbuf_alloc(ndigits) ((NumericDigit *) palloc((ndigits) * sizeof(NumericDigit))) |
| #define | digitbuf_free(buf) |
| #define | init_var(v) memset(v, 0, sizeof(NumericVar)) |
| #define | NUMERIC_DIGITS(num) |
| #define | NUMERIC_NDIGITS(num) ((VARSIZE(num) - NUMERIC_HEADER_SIZE(num)) / sizeof(NumericDigit)) |
| #define | NUMERIC_CAN_BE_SHORT(scale, weight) |
| #define | NA_TOTAL_COUNT(na) ((na)->N + (na)->NaNcount + (na)->pInfcount + (na)->nInfcount) |
| #define | PRODSUM1(v1, i1, v2, i2) ((v1)[(i1)] * (v2)[(i2)]) |
| #define | PRODSUM2(v1, i1, v2, i2) (PRODSUM1(v1,i1,v2,i2) + (v1)[(i1)+1] * (v2)[(i2)-1]) |
| #define | PRODSUM3(v1, i1, v2, i2) (PRODSUM2(v1,i1,v2,i2) + (v1)[(i1)+2] * (v2)[(i2)-2]) |
| #define | PRODSUM4(v1, i1, v2, i2) (PRODSUM3(v1,i1,v2,i2) + (v1)[(i1)+3] * (v2)[(i2)-3]) |
| #define | PRODSUM5(v1, i1, v2, i2) (PRODSUM4(v1,i1,v2,i2) + (v1)[(i1)+4] * (v2)[(i2)-4]) |
| #define | PRODSUM6(v1, i1, v2, i2) (PRODSUM5(v1,i1,v2,i2) + (v1)[(i1)+5] * (v2)[(i2)-5]) |
Typedefs | |
| typedef int16 | NumericDigit |
| typedef struct NumericVar | NumericVar |
| typedef struct NumericSumAccum | NumericSumAccum |
| typedef struct NumericAggState | NumericAggState |
| typedef struct Int128AggState | Int128AggState |
| typedef struct Int8TransTypeData | Int8TransTypeData |
Variables | |
| static const NumericDigit | const_zero_data [1] = {0} |
| static const NumericVar | const_zero |
| static const NumericDigit | const_one_data [1] = {1} |
| static const NumericVar | const_one |
| static const NumericVar | const_minus_one |
| static const NumericDigit | const_two_data [1] = {2} |
| static const NumericVar | const_two |
| static const NumericDigit | const_zero_point_nine_data [1] = {9000} |
| static const NumericVar | const_zero_point_nine |
| static const NumericDigit | const_one_point_one_data [2] = {1, 1000} |
| static const NumericVar | const_one_point_one |
| static const NumericVar | const_nan |
| static const NumericVar | const_pinf |
| static const NumericVar | const_ninf |
| static const int | round_powers [4] = {0, 1000, 100, 10} |
| #define DatumGetNumericAbbrev | ( | X | ) | DatumGetInt64(X) |
| #define digitbuf_alloc | ( | ndigits | ) | ((NumericDigit *) palloc((ndigits) * sizeof(NumericDigit))) |
| #define digitbuf_free | ( | buf | ) |
| #define init_var | ( | v | ) | memset(v, 0, sizeof(NumericVar)) |
| #define NA_TOTAL_COUNT | ( | na | ) | ((na)->N + (na)->NaNcount + (na)->pInfcount + (na)->nInfcount) |
| #define NUMERIC_ABBREV_NAN NumericAbbrevGetDatum(PG_INT64_MIN) |
| #define NUMERIC_ABBREV_NINF NumericAbbrevGetDatum(PG_INT64_MAX) |
| #define NUMERIC_ABBREV_PINF NumericAbbrevGetDatum(-PG_INT64_MAX) |
| #define NUMERIC_CAN_BE_SHORT | ( | scale, | |
| weight | |||
| ) |
| #define NUMERIC_DIGITS | ( | num | ) |
| #define NUMERIC_DSCALE | ( | n | ) |
| #define NUMERIC_DSCALE_MAX NUMERIC_DSCALE_MASK |
| #define NUMERIC_EXT_FLAGBITS | ( | n | ) | ((n)->choice.n_header & NUMERIC_EXT_SIGN_MASK) |
| #define NUMERIC_EXT_SIGN_MASK 0xF000 /* high bits plus NaN/Inf flag bits */ |
| #define NUMERIC_FLAGBITS | ( | n | ) | ((n)->choice.n_header & NUMERIC_SIGN_MASK) |
| #define NUMERIC_HEADER_IS_SHORT | ( | n | ) | (((n)->choice.n_header & 0x8000) != 0) |
| #define NUMERIC_HEADER_SIZE | ( | n | ) |
| #define NUMERIC_IS_INF | ( | n | ) | (((n)->choice.n_header & ~NUMERIC_INF_SIGN_MASK) == NUMERIC_PINF) |
| #define NUMERIC_IS_NAN | ( | n | ) | ((n)->choice.n_header == NUMERIC_NAN) |
| #define NUMERIC_IS_NINF | ( | n | ) | ((n)->choice.n_header == NUMERIC_NINF) |
| #define NUMERIC_IS_PINF | ( | n | ) | ((n)->choice.n_header == NUMERIC_PINF) |
| #define NUMERIC_IS_SHORT | ( | n | ) | (NUMERIC_FLAGBITS(n) == NUMERIC_SHORT) |
| #define NUMERIC_IS_SPECIAL | ( | n | ) | (NUMERIC_FLAGBITS(n) == NUMERIC_SPECIAL) |
| #define NUMERIC_NDIGITS | ( | num | ) | ((VARSIZE(num) - NUMERIC_HEADER_SIZE(num)) / sizeof(NumericDigit)) |
| #define NUMERIC_SHORT_DSCALE_MAX (NUMERIC_SHORT_DSCALE_MASK >> NUMERIC_SHORT_DSCALE_SHIFT) |
| #define NUMERIC_SHORT_WEIGHT_MAX NUMERIC_SHORT_WEIGHT_MASK |
| #define NUMERIC_SHORT_WEIGHT_MIN (-(NUMERIC_SHORT_WEIGHT_MASK+1)) |
| #define NUMERIC_SIGN | ( | n | ) |
| #define NUMERIC_WEIGHT | ( | n | ) |
| #define NUMERIC_WEIGHT_MAX PG_INT16_MAX |
| #define NumericAbbrevGetDatum | ( | X | ) | Int64GetDatum(X) |
| #define PRODSUM1 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | ((v1)[(i1)] * (v2)[(i2)]) |
| #define PRODSUM2 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | (PRODSUM1(v1,i1,v2,i2) + (v1)[(i1)+1] * (v2)[(i2)-1]) |
| #define PRODSUM3 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | (PRODSUM2(v1,i1,v2,i2) + (v1)[(i1)+2] * (v2)[(i2)-2]) |
| #define PRODSUM4 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | (PRODSUM3(v1,i1,v2,i2) + (v1)[(i1)+3] * (v2)[(i2)-3]) |
| #define PRODSUM5 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | (PRODSUM4(v1,i1,v2,i2) + (v1)[(i1)+4] * (v2)[(i2)-4]) |
| #define PRODSUM6 | ( | v1, | |
| i1, | |||
| v2, | |||
| i2 | |||
| ) | (PRODSUM5(v1,i1,v2,i2) + (v1)[(i1)+5] * (v2)[(i2)-5]) |
| typedef struct Int128AggState Int128AggState |
| typedef struct Int8TransTypeData Int8TransTypeData |
| typedef struct NumericAggState NumericAggState |
| typedef int16 NumericDigit |
| typedef struct NumericSumAccum NumericSumAccum |
| typedef struct NumericVar NumericVar |
|
static |
Definition at line 11846 of file numeric.c.
References accum_sum_carry(), accum_sum_rescale(), i, NBASE, NumericSumAccum::neg_digits, NumericSumAccum::num_uncarried, NUMERIC_POS, NumericSumAccum::pos_digits, val, and NumericSumAccum::weight.
Referenced by accum_sum_combine(), do_numeric_accum(), do_numeric_discard(), numeric_avg_deserialize(), numeric_deserialize(), and numeric_poly_stddev_internal().
|
static |
Definition at line 11894 of file numeric.c.
References Assert(), NumericSumAccum::have_carry_space, i, NBASE, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, NumericSumAccum::num_uncarried, and NumericSumAccum::pos_digits.
Referenced by accum_sum_add(), and accum_sum_final().
|
static |
Definition at line 12124 of file numeric.c.
References accum_sum_add(), accum_sum_final(), free_var(), and init_var.
Referenced by numeric_avg_combine(), and numeric_combine().
|
static |
Definition at line 12107 of file numeric.c.
References NumericSumAccum::dscale, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, NumericSumAccum::num_uncarried, palloc(), NumericSumAccum::pos_digits, and NumericSumAccum::weight.
Referenced by numeric_avg_combine(), and numeric_combine().
|
static |
Definition at line 12056 of file numeric.c.
References accum_sum_carry(), add_var(), Assert(), NumericVar::buf, const_zero, digitbuf_alloc, NumericVar::digits, NumericVar::dscale, NumericSumAccum::dscale, i, init_var, NBASE, NumericVar::ndigits, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, NUMERIC_NEG, NUMERIC_POS, NumericSumAccum::pos_digits, set_var_from_var(), NumericVar::sign, strip_var(), NumericVar::weight, and NumericSumAccum::weight.
Referenced by accum_sum_combine(), numeric_avg(), numeric_avg_serialize(), numeric_serialize(), numeric_stddev_internal(), and numeric_sum().
|
static |
Definition at line 11967 of file numeric.c.
References Assert(), NumericSumAccum::dscale, NumericSumAccum::have_carry_space, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, palloc0(), pfree(), NumericSumAccum::pos_digits, val, and NumericSumAccum::weight.
Referenced by accum_sum_add().
|
static |
Definition at line 11830 of file numeric.c.
References NumericSumAccum::dscale, i, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, and NumericSumAccum::pos_digits.
Referenced by do_numeric_discard().
|
static |
Definition at line 11454 of file numeric.c.
References Assert(), NumericVar::buf, digitbuf_alloc, digitbuf_free, NumericVar::digits, NumericVar::dscale, i, Max, NBASE, NumericVar::ndigits, strip_var(), and NumericVar::weight.
|
static |
Definition at line 8062 of file numeric.c.
References add_abs(), cmp_abs(), NumericVar::dscale, Max, NUMERIC_NEG, NUMERIC_POS, NumericVar::sign, sub_abs(), and zero_var().
Referenced by accum_sum_final(), ceil_var(), compute_bucket(), div_mod_var(), exp_var(), generate_series_step_numeric(), in_range_numeric_numeric(), ln_var(), numeric_add_safe(), numeric_inc(), random_var(), set_var_from_non_decimal_integer_str(), sqrt_var(), and width_bucket_numeric().
|
static |
Definition at line 6684 of file numeric.c.
References NumericVar::buf, digitbuf_alloc, digitbuf_free, NumericVar::digits, and NumericVar::ndigits.
Referenced by div_var(), int128_to_numericvar(), int64_to_numericvar(), mul_var(), numeric_recv(), numericvar_deserialize(), random_var(), set_var_from_num(), set_var_from_str(), and sqrt_var().
|
static |
Definition at line 7622 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, NumericVar::dscale, ereturn, errcode(), errdetail(), errmsg(), i, is_valid_numeric_typmod(), maxdigits, NumericVar::ndigits, numeric_typmod_precision(), numeric_typmod_scale(), round_var(), scale, and NumericVar::weight.
Referenced by numeric(), numeric_in(), and numeric_recv().
Definition at line 7707 of file numeric.c.
References Assert(), ereturn, errcode(), errdetail(), errmsg(), is_valid_numeric_typmod(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numeric_typmod_precision(), numeric_typmod_scale(), and scale.
Referenced by numeric(), numeric_in(), and numeric_recv().
|
static |
Definition at line 9815 of file numeric.c.
References add_var(), cmp_var(), const_one, free_var(), init_var, NUMERIC_POS, set_var_from_var(), NumericVar::sign, and trunc_var().
Referenced by numeric_ceil().
|
static |
Definition at line 11376 of file numeric.c.
References cmp_abs_common(), NumericVar::digits, NumericVar::ndigits, and NumericVar::weight.
Referenced by add_var(), div_mod_var(), gcd_var(), and sub_var().
|
static |
Definition at line 11390 of file numeric.c.
Referenced by cmp_abs(), and cmp_var_common().
Definition at line 2522 of file numeric.c.
References cmp_var_common(), NUMERIC_DIGITS, NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, NUMERIC_NDIGITS, NUMERIC_SIGN, and NUMERIC_WEIGHT.
Referenced by numeric_cmp(), numeric_eq(), numeric_fast_cmp(), numeric_ge(), numeric_gt(), numeric_larger(), numeric_le(), numeric_lt(), numeric_ne(), numeric_smaller(), and width_bucket_numeric().
|
static |
Definition at line 8004 of file numeric.c.
References cmp_var_common(), NumericVar::digits, NumericVar::ndigits, NumericVar::sign, and NumericVar::weight.
Referenced by ceil_var(), estimate_ln_dweight(), floor_var(), generate_series_numeric_support(), generate_series_step_numeric(), in_range_numeric_numeric(), ln_var(), numeric_power(), numeric_stddev_internal(), power_var(), random_var(), and sqrt_var().
|
static |
Definition at line 8019 of file numeric.c.
References cmp_abs_common(), NUMERIC_NEG, and NUMERIC_POS.
Referenced by cmp_numerics(), and cmp_var().
|
static |
Definition at line 2035 of file numeric.c.
References add_var(), const_one, div_var(), NumericVar::dscale, free_var(), init_var_from_num(), mul_var(), and sub_var().
Referenced by width_bucket_numeric().
|
static |
Definition at line 9745 of file numeric.c.
References add_var(), cmp_abs(), const_one, div_var(), NumericVar::dscale, free_var(), init_var, mul_var(), NumericVar::ndigits, set_var_from_var(), NumericVar::sign, and sub_var().
Referenced by sqrt_var().
|
static |
Definition at line 8878 of file numeric.c.
References alloc_var(), Assert(), DEC_DIGITS, NumericVar::digits, DIV_GUARD_DIGITS, div_var_int(), NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, i, if(), Max, Min, NBASE, NBASE_SQR, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, palloc(), pfree(), PG_INT64_MAX, remainder, round_var(), NumericVar::sign, strip_var(), trunc_var(), NumericVar::weight, and zero_var().
Referenced by compute_bucket(), div_mod_var(), generate_series_numeric_support(), get_str_from_var_sci(), ln_var(), log_var(), mod_var(), numeric_div_safe(), numeric_div_trunc(), numeric_lcm(), numeric_stddev_internal(), and power_var_int().
|
static |
Definition at line 9419 of file numeric.c.
References NumericVar::buf, DEC_DIGITS, digitbuf_alloc, digitbuf_free, NumericVar::digits, NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, i, Max, NBASE, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, round_var(), NumericVar::sign, strip_var(), trunc_var(), NumericVar::weight, and zero_var().
|
static |
Definition at line 5448 of file numeric.c.
References int128_add_int64(), int128_add_int64_mul_int64(), and newval.
Referenced by int2_accum(), int4_accum(), and int8_avg_accum().
|
static |
Definition at line 5461 of file numeric.c.
References int128_sub_int64(), int128_sub_int64_mul_int64(), and newval.
Referenced by int2_accum_inv(), int4_accum_inv(), and int8_avg_accum_inv().
|
static |
Definition at line 4786 of file numeric.c.
References accum_sum_add(), NumericVar::dscale, init_var, init_var_from_num(), MemoryContextSwitchTo(), mul_var(), newval, NUMERIC_IS_NINF, NUMERIC_IS_PINF, and NUMERIC_IS_SPECIAL.
Referenced by int8_accum(), numeric_accum(), and numeric_avg_accum().
|
static |
Definition at line 4856 of file numeric.c.
References accum_sum_add(), accum_sum_reset(), Assert(), NumericVar::dscale, init_var, init_var_from_num(), MemoryContextSwitchTo(), mul_var(), newval, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, NUMERIC_NEG, NUMERIC_POS, and NumericVar::sign.
Referenced by int8_accum_inv(), and numeric_accum_inv().
Definition at line 7494 of file numeric.c.
References palloc(), and VARSIZE().
Referenced by numeric(), numeric_abs(), numeric_ceil(), numeric_exp(), numeric_floor(), numeric_inc(), numeric_ln(), numeric_mod_safe(), numeric_round(), numeric_sqrt(), numeric_trim_scale(), numeric_trunc(), numeric_uminus(), and numeric_uplus().
|
static |
Definition at line 10541 of file numeric.c.
References cmp_var(), const_one, const_one_point_one, const_zero_point_nine, DEC_DIGITS, NumericVar::digits, digits, free_var(), init_var, ln_var(), NBASE, NumericVar::ndigits, NUMERIC_POS, NumericVar::sign, sub_var(), NumericVar::weight, and x.
Referenced by log_var(), numeric_ln(), and power_var().
|
static |
Definition at line 10412 of file numeric.c.
References add_var(), arg, const_one, DEC_DIGITS, div_var_int(), NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, free_var(), init_var, Max, mul_var(), NumericVar::ndigits, NUMERIC_MAX_RESULT_SCALE, NUMERIC_MIN_DISPLAY_SCALE, numericvar_to_double_no_overflow(), round_var(), set_var_from_var(), val, NumericVar::weight, x, and zero_var().
Referenced by numeric_exp(), and power_var().
| Datum float4_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4616 of file numeric.c.
References buf, const_nan, const_ninf, const_pinf, free_var(), init_var, make_result(), PG_GETARG_FLOAT4, PG_RETURN_NUMERIC, set_var_from_str(), snprintf, and val.
Referenced by JsonItemFromDatum().
| Datum float8_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4522 of file numeric.c.
References buf, const_nan, const_ninf, const_pinf, free_var(), init_var, make_result(), PG_GETARG_FLOAT8, PG_RETURN_NUMERIC, set_var_from_str(), snprintf, and val.
Referenced by executeItemOptUnwrapTarget(), JsonItemFromDatum(), and SV_to_JsonbValue().
|
static |
Definition at line 9839 of file numeric.c.
References cmp_var(), const_one, free_var(), init_var, NUMERIC_NEG, set_var_from_var(), NumericVar::sign, sub_var(), and trunc_var().
Referenced by numeric_floor().
|
static |
Definition at line 6700 of file numeric.c.
References NumericVar::buf, digitbuf_free, NumericVar::digits, NUMERIC_NAN, and NumericVar::sign.
Referenced by accum_sum_combine(), ceil_var(), compute_bucket(), div_mod_var(), estimate_ln_dweight(), exp_var(), float4_numeric(), float8_numeric(), floor_var(), gcd_var(), generate_series_numeric_support(), get_str_from_var_sci(), in_range_numeric_numeric(), int64_div_fast_to_numeric(), int64_to_numeric(), ln_var(), log_var(), mod_var(), numeric(), numeric_add_safe(), numeric_avg(), numeric_avg_deserialize(), numeric_avg_serialize(), numeric_ceil(), numeric_deserialize(), numeric_div_safe(), numeric_div_trunc(), numeric_exp(), numeric_fac(), numeric_floor(), numeric_gcd(), numeric_in(), numeric_inc(), numeric_lcm(), numeric_ln(), numeric_log(), numeric_min_scale(), numeric_mod_safe(), numeric_mul_safe(), numeric_poly_avg(), numeric_poly_stddev_internal(), numeric_poly_sum(), numeric_power(), numeric_recv(), numeric_round(), numeric_serialize(), numeric_sqrt(), numeric_stddev_internal(), numeric_sub_safe(), numeric_sum(), numeric_trim_scale(), numeric_trunc(), numericvar_to_int64(), numericvar_to_uint64(), power_var(), power_var_int(), random_numeric(), random_var(), set_var_from_non_decimal_integer_str(), sqrt_var(), and width_bucket_numeric().
|
static |
Definition at line 9862 of file numeric.c.
References CHECK_FOR_INTERRUPTS, cmp(), cmp_abs(), NumericVar::dscale, free_var(), init_var, Max, mod_var(), NumericVar::ndigits, NUMERIC_POS, set_var_from_var(), and NumericVar::sign.
Referenced by numeric_gcd(), and numeric_lcm().
| Datum generate_series_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1686 of file numeric.c.
References generate_series_step_numeric().
| Datum generate_series_numeric_support | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1818 of file numeric.c.
References generate_unaccent_rules::args, cmp_var(), const_one, const_zero, DatumGetNumeric(), div_var(), estimate_expression_value(), free_var(), init_var, init_var_from_num(), is_funcclause(), IsA, linitial, list_length(), lsecond, lthird, SupportRequestRows::node, NUMERIC_IS_SPECIAL, numericvar_to_double_no_overflow(), PG_GETARG_POINTER, PG_RETURN_POINTER, SupportRequestRows::root, SupportRequestRows::rows, NumericVar::sign, start, sub_var(), and trunc_var().
| Datum generate_series_step_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1692 of file numeric.c.
References add_var(), cmp_var(), const_one, const_zero, generate_series_numeric_fctx::current, ereport, errcode(), errmsg(), ERROR, init_var, init_var_from_num(), make_result(), MemoryContextSwitchTo(), FuncCallContext::multi_call_memory_ctx, NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, NUMERIC_NEG, NUMERIC_POS, NumericGetDatum(), palloc(), PG_GETARG_NUMERIC, PG_NARGS, set_var_from_num(), set_var_from_var(), NumericVar::sign, SRF_FIRSTCALL_INIT, SRF_IS_FIRSTCALL, SRF_PERCALL_SETUP, SRF_RETURN_DONE, SRF_RETURN_NEXT, generate_series_numeric_fctx::step, generate_series_numeric_fctx::stop, and FuncCallContext::user_fctx.
Referenced by generate_series_numeric().
|
static |
Definition at line 4113 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, NumericVar::ndigits, and NumericVar::weight.
Referenced by numeric_min_scale(), and numeric_trim_scale().
|
static |
Definition at line 7225 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, NumericVar::dscale, i, NumericVar::ndigits, NUMERIC_NEG, palloc(), NumericVar::sign, str, and NumericVar::weight.
Referenced by get_str_from_var_sci(), numeric_normalize(), numeric_out(), and numericvar_to_double_no_overflow().
|
static |
Definition at line 7378 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, div_var(), free_var(), get_str_from_var(), init_var, len, NumericVar::ndigits, palloc(), pfree(), power_ten_int(), snprintf, str, and NumericVar::weight.
Referenced by numeric_out_sci().
| Datum hash_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2714 of file numeric.c.
References Assert(), digits, hash_any(), i, sort-test::key, NUMERIC_DIGITS, NUMERIC_IS_SPECIAL, NUMERIC_NDIGITS, NUMERIC_WEIGHT, PG_GETARG_NUMERIC, PG_RETURN_DATUM, and PG_RETURN_UINT32.
Referenced by JsonbHashScalarValue().
| Datum hash_numeric_extended | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2794 of file numeric.c.
References Assert(), DatumGetUInt64(), digits, hash_any_extended(), i, sort-test::key, NUMERIC_DIGITS, NUMERIC_IS_SPECIAL, NUMERIC_NDIGITS, NUMERIC_WEIGHT, PG_GETARG_INT64, PG_GETARG_NUMERIC, PG_RETURN_DATUM, PG_RETURN_UINT64, and UInt64GetDatum().
Referenced by JsonbHashScalarValueExtended().
| Datum in_range_numeric_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2579 of file numeric.c.
References add_var(), Assert(), cmp_var(), ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, NUMERIC_NEG, NUMERIC_SIGN, PG_FREE_IF_COPY, PG_GETARG_BOOL, PG_GETARG_NUMERIC, PG_RETURN_BOOL, sub_var(), and val.
|
static |
Definition at line 7182 of file numeric.c.
References generate_unaccent_rules::dest, NUMERIC_DIGITS, NUMERIC_DSCALE, NUMERIC_NDIGITS, NUMERIC_SIGN, and NUMERIC_WEIGHT.
Referenced by compute_bucket(), do_numeric_accum(), do_numeric_discard(), generate_series_numeric_support(), generate_series_step_numeric(), in_range_numeric_numeric(), numeric_abbrev_convert(), numeric_add_safe(), numeric_ceil(), numeric_div_safe(), numeric_div_trunc(), numeric_exp(), numeric_float8_no_overflow(), numeric_floor(), numeric_gcd(), numeric_inc(), numeric_int2(), numeric_int4_safe(), numeric_int8_safe(), numeric_is_integral(), numeric_lcm(), numeric_ln(), numeric_log(), numeric_min_scale(), numeric_mod_safe(), numeric_mul_safe(), numeric_normalize(), numeric_out(), numeric_out_sci(), numeric_pg_lsn(), numeric_power(), numeric_send(), numeric_sqrt(), numeric_sub_safe(), numeric_trim_scale(), and random_numeric().
|
inlinestatic |
Definition at line 5579 of file numeric.c.
References buf, make_int128(), and pq_getmsgint64().
Referenced by int8_avg_deserialize(), and numeric_poly_deserialize().
|
inlinestatic |
Definition at line 5569 of file numeric.c.
References buf, PG_INT128_HI_INT64, PG_INT128_LO_UINT64, pq_sendint64(), and val.
Referenced by int8_avg_serialize(), and numeric_poly_serialize().
|
static |
Definition at line 7936 of file numeric.c.
References alloc_var(), DEC_DIGITS, NumericVar::digits, NumericVar::dscale, int128_div_mod_int32(), int128_is_zero(), int128_sign(), NBASE, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, NumericVar::sign, sign, val, and NumericVar::weight.
Referenced by int64_div_fast_to_numeric(), numeric_poly_avg(), numeric_poly_stddev_internal(), numeric_poly_sum(), and sqrt_var().
| Datum int2_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5471 of file numeric.c.
References do_int128_accum(), makeInt128AggState(), PG_ARGISNULL, PG_GETARG_INT16, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int2_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5797 of file numeric.c.
References do_int128_discard(), elog, ERROR, PG_ARGISNULL, PG_GETARG_INT16, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int2_avg_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6388 of file numeric.c.
References AggCheckCallContext(), ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, newval, PG_GETARG_ARRAYTYPE_P, PG_GETARG_ARRAYTYPE_P_COPY, PG_GETARG_INT16, PG_RETURN_ARRAYTYPE_P, and Int8TransTypeData::sum.
| Datum int2_avg_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6475 of file numeric.c.
References AggCheckCallContext(), ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, newval, PG_GETARG_ARRAYTYPE_P, PG_GETARG_ARRAYTYPE_P_COPY, PG_GETARG_INT16, PG_RETURN_ARRAYTYPE_P, and Int8TransTypeData::sum.
| Datum int2_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4473 of file numeric.c.
References int64_to_numeric(), PG_GETARG_INT16, PG_RETURN_NUMERIC, and val.
Referenced by JsonItemFromDatum().
| Datum int2_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6281 of file numeric.c.
References newval, PG_ARGISNULL, PG_GETARG_INT16, PG_GETARG_INT64, PG_RETURN_INT64, and PG_RETURN_NULL.
| Datum int2int4_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6558 of file numeric.c.
References ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, Int64GetDatumFast, PG_GETARG_ARRAYTYPE_P, PG_RETURN_DATUM, PG_RETURN_NULL, and Int8TransTypeData::sum.
| Datum int4_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5488 of file numeric.c.
References do_int128_accum(), makeInt128AggState(), PG_ARGISNULL, PG_GETARG_INT32, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int4_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5814 of file numeric.c.
References do_int128_discard(), elog, ERROR, PG_ARGISNULL, PG_GETARG_INT32, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int4_avg_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6416 of file numeric.c.
References AggCheckCallContext(), ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, newval, PG_GETARG_ARRAYTYPE_P, PG_GETARG_ARRAYTYPE_P_COPY, PG_GETARG_INT32, PG_RETURN_ARRAYTYPE_P, and Int8TransTypeData::sum.
| Datum int4_avg_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6503 of file numeric.c.
References AggCheckCallContext(), ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, newval, PG_GETARG_ARRAYTYPE_P, PG_GETARG_ARRAYTYPE_P_COPY, PG_GETARG_INT32, PG_RETURN_ARRAYTYPE_P, and Int8TransTypeData::sum.
| Datum int4_avg_combine | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6444 of file numeric.c.
References AggCheckCallContext(), ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, elog, ERROR, PG_GETARG_ARRAYTYPE_P, PG_RETURN_ARRAYTYPE_P, and Int8TransTypeData::sum.
| Datum int4_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4354 of file numeric.c.
References int64_to_numeric(), PG_GETARG_INT32, PG_RETURN_NUMERIC, and val.
Referenced by executeItemOptUnwrapTarget(), and JsonItemFromDatum().
| Datum int4_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6309 of file numeric.c.
References newval, PG_ARGISNULL, PG_GETARG_INT32, PG_GETARG_INT64, PG_RETURN_INT64, and PG_RETURN_NULL.
Definition at line 4281 of file numeric.c.
References DEC_DIGITS, NumericVar::dscale, free_var(), init_var, int128_add_int64_mul_int64(), int128_to_numericvar(), int64_to_int128(), int64_to_numericvar(), lengthof, make_result(), pg_mul_s64_overflow(), StaticAssertDecl, unlikely, and NumericVar::weight.
Referenced by interval_part_common(), time_part_common(), timestamp_part_common(), timestamptz_part_common(), and timetz_part_common().
Definition at line 4260 of file numeric.c.
References free_var(), init_var, int64_to_numericvar(), make_result(), and val.
Referenced by cash_numeric(), executeItemOptUnwrapTarget(), executeKeyValueMethod(), extract_date(), gbt_numeric_penalty(), int2_numeric(), int4_numeric(), int8_accum(), int8_accum_inv(), int8_avg(), int8_numeric(), int8_sum(), int8_to_char(), interval_part_common(), numeric_avg(), numeric_cash(), numeric_half_rounded(), numeric_poly_avg(), numeric_to_char(), numeric_to_number(), numeric_truncated_divide(), pg_size_bytes(), pg_size_pretty_numeric(), SV_to_JsonbValue(), time_part_common(), timestamp_part_common(), timestamptz_part_common(), and timetz_part_common().
|
static |
Definition at line 7819 of file numeric.c.
References alloc_var(), DEC_DIGITS, NumericVar::digits, NumericVar::dscale, NBASE, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, pg_abs_s64(), NumericVar::sign, val, and NumericVar::weight.
Referenced by int64_div_fast_to_numeric(), int64_to_numeric(), numeric_fac(), numeric_stddev_internal(), set_var_from_non_decimal_integer_str(), sqrt_var(), and width_bucket_numeric().
| Datum int8_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5505 of file numeric.c.
References do_numeric_accum(), int64_to_numeric(), makeNumericAggState(), PG_ARGISNULL, PG_GETARG_INT64, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int8_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5831 of file numeric.c.
References do_numeric_discard(), elog, ERROR, int64_to_numeric(), PG_ARGISNULL, PG_GETARG_INT64, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int8_avg | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6531 of file numeric.c.
References ARR_DATA_PTR, ARR_HASNULL, ARR_OVERHEAD_NONULLS, ARR_SIZE, Int8TransTypeData::count, DirectFunctionCall2, elog, ERROR, int64_to_numeric(), numeric_div(), NumericGetDatum(), PG_GETARG_ARRAYTYPE_P, PG_RETURN_DATUM, PG_RETURN_NULL, and Int8TransTypeData::sum.
| Datum int8_avg_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5665 of file numeric.c.
References do_int128_accum(), makeInt128AggState(), PG_ARGISNULL, PG_GETARG_INT64, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int8_avg_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5852 of file numeric.c.
References do_int128_discard(), elog, ERROR, PG_ARGISNULL, PG_GETARG_INT64, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum int8_avg_combine | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5686 of file numeric.c.
References AggCheckCallContext(), elog, ERROR, int128_add_int128(), makeInt128AggState(), MemoryContextSwitchTo(), Int128AggState::N, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_POINTER, and Int128AggState::sumX.
| Datum int8_avg_deserialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5761 of file numeric.c.
References AggCheckCallContext(), buf, elog, ERROR, initReadOnlyStringInfo(), int128_deserialize(), makeInt128AggStateCurrentContext(), Int128AggState::N, PG_GETARG_BYTEA_PP, PG_RETURN_POINTER, pq_getmsgend(), pq_getmsgint64(), Int128AggState::sumX, VARDATA_ANY(), and VARSIZE_ANY_EXHDR().
| Datum int8_avg_serialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5730 of file numeric.c.
References AggCheckCallContext(), buf, elog, ERROR, int128_serialize(), PG_GETARG_POINTER, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), and pq_sendint64().
| Datum int8_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4424 of file numeric.c.
References int64_to_numeric(), PG_GETARG_INT64, PG_RETURN_NUMERIC, and val.
Referenced by executeItemOptUnwrapTarget(), and JsonItemFromDatum().
| Datum int8_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6340 of file numeric.c.
References DirectFunctionCall2, int64_to_numeric(), numeric_add(), NumericGetDatum(), PG_ARGISNULL, PG_GETARG_INT64, PG_GETARG_NUMERIC, PG_RETURN_DATUM, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
|
inlinestatic |
Definition at line 899 of file numeric.c.
References VARHDRSZ.
Referenced by apply_typmod(), apply_typmod_special(), numeric(), numeric_maximum_size(), numeric_support(), and numerictypmodout().
|
static |
Definition at line 10623 of file numeric.c.
References add_var(), arg, cmp(), cmp_var(), const_one, const_one_point_one, const_two, const_zero, const_zero_point_nine, DEC_DIGITS, div_var(), div_var_int(), ereport, errcode(), errmsg(), ERROR, free_var(), init_var, mul_var(), NumericVar::ndigits, set_var_from_var(), sqrt_var(), sub_var(), NumericVar::weight, and x.
Referenced by estimate_ln_dweight(), log_var(), numeric_ln(), and power_var().
|
static |
Definition at line 10741 of file numeric.c.
References div_var(), NumericVar::dscale, estimate_ln_dweight(), free_var(), init_var, ln_var(), Max, Min, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MIN_DISPLAY_SCALE, and NUMERIC_MIN_SIG_DIGITS.
Referenced by numeric_log().
|
inlinestatic |
|
static |
Definition at line 7606 of file numeric.c.
References make_result_safe().
Referenced by float4_numeric(), float8_numeric(), generate_series_step_numeric(), int64_div_fast_to_numeric(), int64_to_numeric(), numeric(), numeric_add_safe(), numeric_avg(), numeric_ceil(), numeric_div_safe(), numeric_div_trunc(), numeric_exp(), numeric_fac(), numeric_floor(), numeric_gcd(), numeric_in(), numeric_inc(), numeric_lcm(), numeric_ln(), numeric_log(), numeric_mod_safe(), numeric_mul_safe(), numeric_poly_avg(), numeric_poly_sum(), numeric_power(), numeric_recv(), numeric_round(), numeric_sign(), numeric_sqrt(), numeric_stddev_internal(), numeric_sub_safe(), numeric_sum(), numeric_trim_scale(), numeric_trunc(), and random_numeric().
|
static |
Definition at line 7510 of file numeric.c.
References Assert(), NumericData::choice, NumericVar::digits, digits, NumericVar::dscale, dump_numeric, elog, ereturn, errcode(), errmsg(), ERROR, len, NumericChoice::n_header, NumericVar::ndigits, NUMERIC_CAN_BE_SHORT, NUMERIC_DIGITS, NUMERIC_DSCALE, NUMERIC_DSCALE_MASK, NUMERIC_HDRSZ, NUMERIC_HDRSZ_SHORT, NUMERIC_NAN, NUMERIC_NDIGITS, NUMERIC_NEG, NUMERIC_NINF, NUMERIC_PINF, NUMERIC_POS, NUMERIC_SHORT, NUMERIC_SHORT_DSCALE_SHIFT, NUMERIC_SHORT_SIGN_MASK, NUMERIC_SHORT_WEIGHT_MASK, NUMERIC_SHORT_WEIGHT_SIGN_MASK, NUMERIC_SIGN_MASK, NUMERIC_SPECIAL, NUMERIC_WEIGHT, palloc(), SET_VARSIZE(), NumericVar::sign, sign, and NumericVar::weight.
Referenced by make_result(), numeric_add_safe(), numeric_div_safe(), numeric_in(), numeric_mod_safe(), numeric_mul_safe(), and numeric_sub_safe().
|
static |
Definition at line 5410 of file numeric.c.
References AggCheckCallContext(), elog, ERROR, MemoryContextSwitchTo(), and palloc0().
Referenced by int2_accum(), int4_accum(), int8_avg_accum(), int8_avg_combine(), and numeric_poly_combine().
|
static |
Definition at line 5434 of file numeric.c.
References palloc0().
Referenced by int8_avg_deserialize(), and numeric_poly_deserialize().
|
static |
Definition at line 4746 of file numeric.c.
References AggCheckCallContext(), elog, ERROR, MemoryContextSwitchTo(), and palloc0().
Referenced by int8_accum(), numeric_accum(), and numeric_avg_accum().
|
static |
Definition at line 4771 of file numeric.c.
References CurrentMemoryContext, and palloc0().
Referenced by numeric_avg_combine(), numeric_avg_deserialize(), numeric_combine(), and numeric_deserialize().
|
static |
Definition at line 9716 of file numeric.c.
References div_var(), NumericVar::dscale, free_var(), init_var, mul_var(), and sub_var().
Referenced by gcd_var(), and numeric_mod_safe().
|
static |
Definition at line 8300 of file numeric.c.
References alloc_var(), Assert(), DEC_DIGITS, NumericVar::digits, NumericVar::dscale, i, maxdigits, Min, MUL_GUARD_DIGITS, mul_var_short(), NBASE, NBASE_SQR, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, palloc(), pfree(), PG_UINT64_MAX, round_var(), NumericVar::sign, strip_var(), NumericVar::weight, and zero_var().
Referenced by compute_bucket(), div_mod_var(), do_numeric_accum(), do_numeric_discard(), exp_var(), ln_var(), mod_var(), numeric_fac(), numeric_lcm(), numeric_mul_safe(), numeric_stddev_internal(), power_var(), power_var_int(), set_var_from_non_decimal_integer_str(), and sqrt_var().
|
static |
Definition at line 8591 of file numeric.c.
References Assert(), NumericVar::buf, digitbuf_alloc, digitbuf_free, NumericVar::digits, NumericVar::dscale, i, NBASE, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, PRODSUM1, PRODSUM2, PRODSUM3, PRODSUM4, PRODSUM5, PRODSUM6, NumericVar::sign, strip_var(), and NumericVar::weight.
Referenced by mul_var().
Definition at line 1229 of file numeric.c.
References apply_typmod(), apply_typmod_special(), NumericData::choice, DEC_DIGITS, duplicate_numeric(), free_var(), init_var, is_valid_numeric_typmod(), make_result(), Max, maxdigits, NumericShort::n_header, NumericChoice::n_short, NUMERIC_CAN_BE_SHORT, NUMERIC_DSCALE, NUMERIC_DSCALE_MASK, NUMERIC_IS_SHORT, NUMERIC_IS_SPECIAL, NUMERIC_SHORT_DSCALE_SHIFT, NUMERIC_SIGN, numeric_typmod_precision(), numeric_typmod_scale(), NUMERIC_WEIGHT, PG_GETARG_INT32, PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, scale, and set_var_from_num().
Referenced by ecpg_set_compat_sqlda(), and ecpg_set_native_sqlda().
|
static |
Definition at line 2212 of file numeric.c.
References NumericSortSupport::abbr_card, elog, estimateHyperLogLog(), NumericSortSupport::estimating, NumericSortSupport::input_count, INT64_FORMAT, LOG, SortSupportData::ssup_extra, and trace_sort.
Referenced by numeric_sortsupport().
|
static |
Definition at line 2150 of file numeric.c.
References Assert(), NumericSortSupport::buf, buf, DatumGetPointer(), init_var_from_num(), NumericSortSupport::input_count, numeric_abbrev_convert_var(), NUMERIC_ABBREV_NAN, NUMERIC_ABBREV_NINF, NUMERIC_ABBREV_PINF, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, pfree(), PG_DETOAST_DATUM_PACKED, SET_VARSIZE(), SortSupportData::ssup_extra, value, VARATT_IS_SHORT(), VARATT_SHORT_MAX, VARDATA(), VARDATA_SHORT(), VARHDRSZ, VARHDRSZ_SHORT, and VARSIZE_SHORT().
Referenced by numeric_sortsupport().
|
static |
Definition at line 2360 of file numeric.c.
References NumericSortSupport::abbr_card, addHyperLogLog(), DatumGetUInt32(), NumericVar::digits, NumericSortSupport::estimating, hash_uint32(), NumericVar::ndigits, NUMERIC_POS, NumericAbbrevGetDatum, PG_INT64_MAX, NumericVar::sign, and NumericVar::weight.
Referenced by numeric_abbrev_convert().
| Datum numeric_abs | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1376 of file numeric.c.
References NumericData::choice, duplicate_numeric(), NumericShort::n_header, NumericChoice::n_long, NumericChoice::n_short, NumericLong::n_sign_dscale, NUMERIC_DSCALE, NUMERIC_IS_SHORT, NUMERIC_IS_SPECIAL, NUMERIC_POS, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by executeItemOptUnwrapTarget(), and numeric_absolute().
| Datum numeric_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4949 of file numeric.c.
References do_numeric_accum(), makeNumericAggState(), PG_ARGISNULL, PG_GETARG_NUMERIC, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum numeric_accum_inv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5360 of file numeric.c.
References do_numeric_discard(), elog, ERROR, PG_ARGISNULL, PG_GETARG_NUMERIC, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_POINTER.
| Datum numeric_add | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2865 of file numeric.c.
References numeric_add_safe(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by int8_sum(), numeric_half_rounded(), and pg_lsn_pli().
Definition at line 2882 of file numeric.c.
References add_var(), Assert(), const_nan, const_ninf, const_pinf, free_var(), init_var, init_var_from_num(), make_result(), make_result_safe(), NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, and NUMERIC_IS_SPECIAL.
Referenced by executeItemOptUnwrapTarget(), interval_part_common(), numeric_add(), timestamp_part_common(), and timestamptz_part_common().
| Datum numeric_avg | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5919 of file numeric.c.
References accum_sum_final(), const_nan, const_ninf, const_pinf, DirectFunctionCall2, free_var(), init_var, int64_to_numeric(), make_result(), NA_TOTAL_COUNT, numeric_div(), NumericGetDatum(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_DATUM, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_avg_accum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5041 of file numeric.c.
References do_numeric_accum(), makeNumericAggState(), PG_ARGISNULL, PG_GETARG_NUMERIC, PG_GETARG_POINTER, and PG_RETURN_POINTER.
| Datum numeric_avg_combine | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5061 of file numeric.c.
References accum_sum_combine(), accum_sum_copy(), AggCheckCallContext(), elog, ERROR, makeNumericAggStateCurrentContext(), NumericAggState::maxScale, NumericAggState::maxScaleCount, MemoryContextSwitchTo(), NumericAggState::N, NumericAggState::NaNcount, NumericAggState::nInfcount, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_POINTER, NumericAggState::pInfcount, and NumericAggState::sumX.
| Datum numeric_avg_deserialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5185 of file numeric.c.
References accum_sum_add(), AggCheckCallContext(), buf, elog, ERROR, free_var(), init_var, initReadOnlyStringInfo(), makeNumericAggStateCurrentContext(), NumericAggState::maxScale, NumericAggState::maxScaleCount, NumericAggState::N, NumericAggState::NaNcount, NumericAggState::nInfcount, numericvar_deserialize(), PG_GETARG_BYTEA_PP, PG_RETURN_POINTER, NumericAggState::pInfcount, pq_getmsgend(), pq_getmsgint(), pq_getmsgint64(), NumericAggState::sumX, VARDATA_ANY(), and VARSIZE_ANY_EXHDR().
| Datum numeric_avg_serialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5133 of file numeric.c.
References accum_sum_final(), AggCheckCallContext(), buf, elog, ERROR, free_var(), init_var, numericvar_serialize(), PG_GETARG_POINTER, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), pq_sendint32(), and pq_sendint64().
| Datum numeric_ceil | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1630 of file numeric.c.
References ceil_var(), duplicate_numeric(), free_var(), init_var_from_num(), make_result(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by executeItemOptUnwrapTarget().
| Datum numeric_cmp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2416 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_INT32.
Referenced by compareJsonbScalarValue(), compareNumeric(), gbt_numeric_cmp(), gbt_numeric_ssup_cmp(), and gin_numeric_cmp().
|
static |
Definition at line 2301 of file numeric.c.
References DatumGetNumericAbbrev, x, and y.
Referenced by numeric_sortsupport().
| Datum numeric_combine | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4969 of file numeric.c.
References accum_sum_combine(), accum_sum_copy(), AggCheckCallContext(), elog, ERROR, makeNumericAggStateCurrentContext(), NumericAggState::maxScale, NumericAggState::maxScaleCount, MemoryContextSwitchTo(), NumericAggState::N, NumericAggState::NaNcount, NumericAggState::nInfcount, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_POINTER, NumericAggState::pInfcount, NumericAggState::sumX, and NumericAggState::sumX2.
| Datum numeric_deserialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5299 of file numeric.c.
References accum_sum_add(), AggCheckCallContext(), buf, elog, ERROR, free_var(), init_var, initReadOnlyStringInfo(), makeNumericAggStateCurrentContext(), NumericAggState::maxScale, NumericAggState::maxScaleCount, NumericAggState::N, NumericAggState::NaNcount, NumericAggState::nInfcount, numericvar_deserialize(), PG_GETARG_BYTEA_PP, PG_RETURN_POINTER, NumericAggState::pInfcount, pq_getmsgend(), pq_getmsgint(), pq_getmsgint64(), NumericAggState::sumX, NumericAggState::sumX2, VARDATA_ANY(), and VARSIZE_ANY_EXHDR().
| Datum numeric_div | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3135 of file numeric.c.
References numeric_div_safe(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by cash_numeric(), gbt_numeric_penalty(), int8_avg(), numeric_avg(), and numeric_poly_avg().
Definition at line 3153 of file numeric.c.
References Assert(), const_nan, const_ninf, const_pinf, const_zero, NumericVar::digits, div_var(), ereturn, errcode(), errmsg(), free_var(), init_var, init_var_from_num(), make_result(), make_result_safe(), NumericVar::ndigits, NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_sign_internal(), and select_div_scale().
Referenced by executeItemOptUnwrapTarget(), numeric_div(), timestamp_part_common(), and timestamptz_part_common().
| Datum numeric_div_trunc | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3249 of file numeric.c.
References Assert(), const_nan, const_ninf, const_pinf, const_zero, div_var(), ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), make_result(), NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_sign_internal(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by numeric_half_rounded(), and numeric_truncated_divide().
| Datum numeric_eq | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2432 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
Referenced by equalsJsonbScalarValue(), and gbt_numeric_eq().
| Datum numeric_exp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3725 of file numeric.c.
References arg, const_zero, duplicate_numeric(), exp_var(), free_var(), init_var, init_var_from_num(), make_result(), Max, Min, NUMERIC_IS_NINF, NUMERIC_IS_SPECIAL, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MAX_RESULT_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, numericvar_to_double_no_overflow(), PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, and val.
| Datum numeric_fac | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3601 of file numeric.c.
References CHECK_FOR_INTERRUPTS, const_one, ereport, errcode(), errmsg(), ERROR, free_var(), init_var, int64_to_numericvar(), make_result(), mul_var(), PG_GETARG_INT64, and PG_RETURN_NUMERIC.
|
static |
Definition at line 2279 of file numeric.c.
References cmp_numerics(), DatumGetNumeric(), DatumGetPointer(), pfree(), x, and y.
Referenced by numeric_sortsupport().
| Datum numeric_float4 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4651 of file numeric.c.
References CStringGetDatum(), DatumGetCString(), DirectFunctionCall1, float4in(), get_float4_infinity(), get_float4_nan(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_out(), NumericGetDatum(), pfree(), PG_GETARG_NUMERIC, PG_RETURN_DATUM, and PG_RETURN_FLOAT4.
Referenced by jsonb_float4().
| Datum numeric_float8 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4557 of file numeric.c.
References CStringGetDatum(), DatumGetCString(), DirectFunctionCall1, float8in(), get_float8_infinity(), get_float8_nan(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_out(), NumericGetDatum(), pfree(), PG_GETARG_NUMERIC, PG_RETURN_DATUM, and PG_RETURN_FLOAT8.
Referenced by brin_minmax_multi_distance_numeric(), jsonb_float8(), and numrange_subdiff().
| Datum numeric_float8_no_overflow | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4590 of file numeric.c.
References get_float8_nan(), init_var_from_num(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numericvar_to_double_no_overflow(), PG_GETARG_NUMERIC, PG_RETURN_FLOAT8, val, and x.
Referenced by convert_numeric_to_scalar(), and gbt_numeric_penalty().
| Datum numeric_floor | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1658 of file numeric.c.
References duplicate_numeric(), floor_var(), free_var(), init_var_from_num(), make_result(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by executeItemOptUnwrapTarget().
| Datum numeric_gcd | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3498 of file numeric.c.
References const_nan, free_var(), gcd_var(), init_var, init_var_from_num(), make_result(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_ge | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2477 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
Referenced by gbt_numeric_ge(), and numeric_half_rounded().
| Datum numeric_gt | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2462 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
Referenced by gbt_numeric_gt(), and gbt_numeric_penalty().
| Datum numeric_in | ( | PG_FUNCTION_ARGS | ) |
Definition at line 626 of file numeric.c.
References apply_typmod(), apply_typmod_special(), const_nan, const_ninf, const_pinf, ereturn, errcode(), errmsg(), free_var(), init_var, make_result(), make_result_safe(), NUMERIC_NEG, NUMERIC_POS, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_GETARG_OID, PG_RETURN_NULL, PG_RETURN_NUMERIC, pg_strncasecmp(), set_var_from_non_decimal_integer_str(), set_var_from_str(), sign, str, and value.
Referenced by datum_to_jsonb_internal(), executeItemOptUnwrapTarget(), extract_date(), hstore_to_jsonb_loose(), interval_part_common(), jsonb_in_scalar(), make_const(), numeric_to_number(), pg_lsn_mi(), pg_lsn_mii(), pg_lsn_pli(), pg_size_bytes(), pg_split_walfile_name(), pg_stat_get_activity(), pg_stat_io_build_tuples(), pg_stat_statements_internal(), pg_stat_wal_build_tuple(), PLyNumber_ToJsonbValue(), ssl_client_serial(), SV_to_JsonbValue(), timestamp_part_common(), and timestamptz_part_common().
| Datum numeric_inc | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3414 of file numeric.c.
References add_var(), arg, const_one, duplicate_numeric(), free_var(), init_var_from_num(), make_result(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_int2 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4482 of file numeric.c.
References ereport, errcode(), errmsg(), ERROR, init_var_from_num(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numericvar_to_int64(), PG_GETARG_NUMERIC, PG_INT16_MAX, PG_INT16_MIN, PG_RETURN_INT16, unlikely, val, and x.
Referenced by jsonb_int2().
| Datum numeric_int4 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4394 of file numeric.c.
References numeric_int4_safe(), PG_GETARG_NUMERIC, and PG_RETURN_INT32.
Referenced by jsonb_int4().
Definition at line 4365 of file numeric.c.
References ereturn, errcode(), errmsg(), init_var_from_num(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numericvar_to_int32(), and x.
Referenced by executeDateTimeMethod(), executeItemOptUnwrapTarget(), getArrayIndex(), numeric_int4(), and numeric_to_char().
| Datum numeric_int8 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4464 of file numeric.c.
References numeric_int8_safe(), PG_GETARG_NUMERIC, and PG_RETURN_INT64.
Referenced by jsonb_int8(), numeric_cash(), and pg_size_bytes().
Definition at line 4435 of file numeric.c.
References ereturn, errcode(), errmsg(), init_var_from_num(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numericvar_to_int64(), and x.
Referenced by executeItemOptUnwrapTarget(), and numeric_int8().
| bool numeric_is_inf | ( | Numeric | num | ) |
Definition at line 845 of file numeric.c.
References NUMERIC_IS_INF.
Referenced by executeItemOptUnwrapTarget(), and PLyNumber_ToJsonbValue().
|
static |
Definition at line 856 of file numeric.c.
References arg, init_var_from_num(), NUMERIC_IS_NAN, and NUMERIC_IS_SPECIAL.
Referenced by numeric_power().
| bool numeric_is_nan | ( | Numeric | num | ) |
Definition at line 834 of file numeric.c.
References NUMERIC_IS_NAN.
Referenced by executeItemOptUnwrapTarget(), gbt_numeric_penalty(), pg_lsn_mii(), pg_lsn_pli(), and PLyNumber_ToJsonbValue().
| Datum numeric_larger | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3469 of file numeric.c.
References cmp_numerics(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_lcm | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3541 of file numeric.c.
References const_nan, const_zero, div_var(), NumericVar::dscale, free_var(), gcd_var(), init_var, init_var_from_num(), make_result(), Max, mul_var(), NumericVar::ndigits, NUMERIC_IS_SPECIAL, NUMERIC_POS, PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, set_var_from_var(), and NumericVar::sign.
| Datum numeric_le | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2507 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
Referenced by brin_minmax_multi_distance_numeric(), and gbt_numeric_le().
| Datum numeric_ln | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3792 of file numeric.c.
References arg, duplicate_numeric(), ereport, errcode(), errmsg(), ERROR, estimate_ln_dweight(), free_var(), init_var, init_var_from_num(), ln_var(), make_result(), Max, Min, NUMERIC_IS_NINF, NUMERIC_IS_SPECIAL, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_log | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3841 of file numeric.c.
References Assert(), const_nan, const_pinf, const_zero, ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), log_var(), make_result(), NUMERIC_IS_NAN, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_sign_internal(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_lt | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2492 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
Referenced by gbt_numeric_lt(), and numeric_is_less().
Definition at line 936 of file numeric.c.
References DEC_DIGITS, is_valid_numeric_typmod(), NUMERIC_HDRSZ, and numeric_typmod_precision().
Referenced by type_maximum_size().
| Datum numeric_min_scale | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4164 of file numeric.c.
References arg, free_var(), get_min_scale(), init_var_from_num(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, PG_RETURN_INT32, and PG_RETURN_NULL.
| Datum numeric_mod | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3338 of file numeric.c.
References numeric_mod_safe(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Definition at line 3356 of file numeric.c.
References const_nan, NumericVar::digits, duplicate_numeric(), ereturn, errcode(), errmsg(), free_var(), init_var, init_var_from_num(), make_result(), make_result_safe(), mod_var(), NumericVar::ndigits, NUMERIC_IS_INF, NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, and numeric_sign_internal().
Referenced by executeItemOptUnwrapTarget(), and numeric_mod().
| Datum numeric_mul | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3016 of file numeric.c.
References numeric_mul_safe(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by numeric_cash(), numeric_to_char(), numeric_to_number(), and pg_size_bytes().
Definition at line 3034 of file numeric.c.
References Assert(), const_nan, const_ninf, const_pinf, NumericVar::dscale, free_var(), init_var, init_var_from_num(), make_result(), make_result_safe(), mul_var(), NUMERIC_DSCALE_MAX, NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, numeric_sign_internal(), and round_var().
Referenced by executeItemOptUnwrapTarget(), and numeric_mul().
| Datum numeric_ne | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2447 of file numeric.c.
References cmp_numerics(), PG_FREE_IF_COPY, PG_GETARG_NUMERIC, and PG_RETURN_BOOL.
| char * numeric_normalize | ( | Numeric | num | ) |
Definition at line 1009 of file numeric.c.
References get_str_from_var(), init_var_from_num(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, pstrdup(), str, and x.
Referenced by make_scalar_key().
| Datum numeric_out | ( | PG_FUNCTION_ARGS | ) |
Definition at line 799 of file numeric.c.
References get_str_from_var(), init_var_from_num(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, PG_RETURN_CSTRING, pstrdup(), str, and x.
Referenced by ExecGetJsonValueItemString(), executeItemOptUnwrapTarget(), iterate_jsonb_values(), jsonb_put_escaped_value(), JsonbUnquote(), JsonbValue_to_SV(), JsonbValueAsText(), numeric_float4(), numeric_float8(), numeric_to_char(), numeric_to_cstring(), PLyDecimal_FromNumeric(), PLyObject_FromJsonbValue(), populate_scalar(), and printJsonPathItem().
| char * numeric_out_sci | ( | Numeric | num, |
| int | scale | ||
| ) |
Definition at line 975 of file numeric.c.
References get_str_from_var_sci(), init_var_from_num(), NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, pstrdup(), scale, str, and x.
Referenced by int8_to_char(), and numeric_to_char().
| Datum numeric_pg_lsn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4679 of file numeric.c.
References ereport, errcode(), errmsg(), ERROR, init_var_from_num(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numericvar_to_uint64(), PG_GETARG_NUMERIC, PG_RETURN_LSN, and x.
Referenced by pg_lsn_mii(), and pg_lsn_pli().
| Datum numeric_poly_avg | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5893 of file numeric.c.
References DirectFunctionCall2, free_var(), init_var, int128_to_numericvar(), int64_to_numeric(), make_result(), numeric_div(), NumericGetDatum(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_DATUM, and PG_RETURN_NULL.
| Datum numeric_poly_combine | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5525 of file numeric.c.
References AggCheckCallContext(), elog, ERROR, int128_add_int128(), makeInt128AggState(), MemoryContextSwitchTo(), Int128AggState::N, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_POINTER, Int128AggState::sumX, and Int128AggState::sumX2.
| Datum numeric_poly_deserialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5627 of file numeric.c.
References AggCheckCallContext(), buf, elog, ERROR, initReadOnlyStringInfo(), int128_deserialize(), makeInt128AggStateCurrentContext(), Int128AggState::N, PG_GETARG_BYTEA_PP, PG_RETURN_POINTER, pq_getmsgend(), pq_getmsgint64(), Int128AggState::sumX, Int128AggState::sumX2, VARDATA_ANY(), and VARSIZE_ANY_EXHDR().
| Datum numeric_poly_serialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5593 of file numeric.c.
References AggCheckCallContext(), buf, elog, ERROR, int128_serialize(), PG_GETARG_POINTER, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), and pq_sendint64().
|
static |
Definition at line 6149 of file numeric.c.
References accum_sum_add(), free_var(), init_var, int128_to_numericvar(), NumericAggState::N, NumericSumAccum::ndigits, NumericSumAccum::neg_digits, numeric_stddev_internal(), pfree(), NumericSumAccum::pos_digits, NumericAggState::sumX, and NumericAggState::sumX2.
Referenced by numeric_poly_stddev_pop(), numeric_poly_stddev_samp(), numeric_poly_var_pop(), and numeric_poly_var_samp().
| Datum numeric_poly_stddev_pop | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6244 of file numeric.c.
References numeric_poly_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_poly_stddev_samp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6210 of file numeric.c.
References numeric_poly_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_poly_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5869 of file numeric.c.
References free_var(), init_var, int128_to_numericvar(), make_result(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_poly_var_pop | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6227 of file numeric.c.
References numeric_poly_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_poly_var_samp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6193 of file numeric.c.
References numeric_poly_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_power | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3912 of file numeric.c.
References Assert(), cmp_var(), const_minus_one, const_nan, const_ninf, const_one, const_pinf, const_zero, NumericVar::digits, ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), make_result(), NumericVar::ndigits, NUMERIC_IS_INF, numeric_is_integral(), NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, NUMERIC_POS, numeric_sign_internal(), PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, power_var(), NumericVar::sign, and NumericVar::weight.
Referenced by numeric_to_char(), and numeric_to_number().
| Datum numeric_recv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1061 of file numeric.c.
References alloc_var(), apply_typmod(), apply_typmod_special(), buf, ereport, errcode(), errmsg(), ERROR, free_var(), i, init_var, len, make_result(), NBASE, NUMERIC_DSCALE_MASK, NUMERIC_NAN, NUMERIC_NEG, NUMERIC_NINF, NUMERIC_PINF, NUMERIC_POS, PG_GETARG_INT32, PG_GETARG_OID, PG_GETARG_POINTER, PG_RETURN_NUMERIC, pq_getmsgint(), trunc_var(), and value.
| Datum numeric_round | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1526 of file numeric.c.
References arg, DEC_DIGITS, duplicate_numeric(), free_var(), init_var, make_result(), Max, Min, NUMERIC_DSCALE_MAX, NUMERIC_IS_SPECIAL, NUMERIC_WEIGHT_MAX, PG_GETARG_INT32, PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, round_var(), scale, and set_var_from_num().
Referenced by cash_numeric(), numeric_to_char(), timestamp_part_common(), and timestamptz_part_common().
| Datum numeric_scale | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4099 of file numeric.c.
References NUMERIC_DSCALE, NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, PG_RETURN_INT32, and PG_RETURN_NULL.
Referenced by cash_numeric(), and numeric_cash().
| Datum numeric_send | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1146 of file numeric.c.
References buf, i, init_var_from_num(), PG_GETARG_NUMERIC, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), pq_sendint16(), and x.
| Datum numeric_serialize | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5243 of file numeric.c.
References accum_sum_final(), AggCheckCallContext(), buf, elog, ERROR, free_var(), init_var, numericvar_serialize(), PG_GETARG_POINTER, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), pq_sendint32(), and pq_sendint64().
| Datum numeric_sign | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1493 of file numeric.c.
References Assert(), const_minus_one, const_nan, const_one, const_zero, make_result(), NUMERIC_IS_NAN, numeric_sign_internal(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
|
static |
Definition at line 1461 of file numeric.c.
References Assert(), NUMERIC_IS_NAN, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, NUMERIC_NDIGITS, NUMERIC_NEG, and NUMERIC_SIGN.
Referenced by numeric_div_safe(), numeric_div_trunc(), numeric_log(), numeric_mod_safe(), numeric_mul_safe(), numeric_power(), and numeric_sign().
| Datum numeric_smaller | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3447 of file numeric.c.
References cmp_numerics(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_sortsupport | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2109 of file numeric.c.
References NumericSortSupport::abbr_card, SortSupportData::abbrev_abort, SortSupportData::abbrev_converter, SortSupportData::abbrev_full_comparator, SortSupportData::abbreviate, NumericSortSupport::buf, SortSupportData::comparator, NumericSortSupport::estimating, initHyperLogLog(), NumericSortSupport::input_count, MemoryContextSwitchTo(), numeric_abbrev_abort(), numeric_abbrev_convert(), numeric_cmp_abbrev(), numeric_fast_cmp(), palloc(), PG_GETARG_POINTER, PG_RETURN_VOID, SortSupportData::ssup_cxt, SortSupportData::ssup_extra, VARATT_SHORT_MAX, and VARHDRSZ.
| Datum numeric_sqrt | ( | PG_FUNCTION_ARGS | ) |
Definition at line 3653 of file numeric.c.
References arg, DEC_DIGITS, duplicate_numeric(), ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), make_result(), Max, Min, NUMERIC_IS_NINF, NUMERIC_IS_SPECIAL, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, and sqrt_var().
|
static |
Definition at line 5997 of file numeric.c.
References accum_sum_final(), cmp_var(), const_nan, const_one, const_zero, div_var(), NumericVar::dscale, free_var(), init_var, int64_to_numericvar(), make_result(), mul_var(), NA_TOTAL_COUNT, select_div_scale(), sqrt_var(), and sub_var().
Referenced by numeric_poly_stddev_internal(), numeric_stddev_pop(), numeric_stddev_samp(), numeric_var_pop(), and numeric_var_samp().
| Datum numeric_stddev_pop | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6132 of file numeric.c.
References numeric_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_stddev_samp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6098 of file numeric.c.
References numeric_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_sub | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2940 of file numeric.c.
References numeric_sub_safe(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by brin_minmax_multi_distance_numeric(), gbt_numeric_penalty(), numeric_half_rounded(), numrange_subdiff(), and pg_lsn_mii().
Definition at line 2958 of file numeric.c.
References Assert(), const_nan, const_ninf, const_pinf, free_var(), init_var, init_var_from_num(), make_result(), make_result_safe(), NUMERIC_IS_NAN, NUMERIC_IS_NINF, NUMERIC_IS_PINF, NUMERIC_IS_SPECIAL, and sub_var().
Referenced by executeItemOptUnwrapTarget(), numeric_sub(), timestamp_part_common(), and timestamptz_part_common().
| Datum numeric_sum | ( | PG_FUNCTION_ARGS | ) |
Definition at line 5954 of file numeric.c.
References accum_sum_final(), const_nan, const_ninf, const_pinf, free_var(), init_var, make_result(), NA_TOTAL_COUNT, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_support | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1179 of file numeric.c.
References FuncExpr::args, Assert(), DatumGetInt32(), exprTypmod(), SupportRequestSimplify::fcall, is_valid_numeric_typmod(), IsA, linitial, list_length(), lsecond, numeric_typmod_precision(), numeric_typmod_scale(), PG_GETARG_POINTER, PG_RETURN_POINTER, relabel_to_typmod(), and source.
| Datum numeric_trim_scale | ( | PG_FUNCTION_ARGS | ) |
Definition at line 4184 of file numeric.c.
References NumericVar::dscale, duplicate_numeric(), free_var(), get_min_scale(), init_var_from_num(), make_result(), NUMERIC_IS_SPECIAL, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
| Datum numeric_trunc | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1580 of file numeric.c.
References arg, DEC_DIGITS, duplicate_numeric(), free_var(), init_var, make_result(), Max, Min, NUMERIC_DSCALE_MAX, NUMERIC_IS_SPECIAL, NUMERIC_WEIGHT_MAX, PG_GETARG_INT32, PG_GETARG_NUMERIC, PG_RETURN_NUMERIC, scale, set_var_from_num(), and trunc_var().
Referenced by getArrayIndex().
|
inlinestatic |
Definition at line 910 of file numeric.c.
References VARHDRSZ.
Referenced by apply_typmod(), apply_typmod_special(), numeric(), numeric_maximum_size(), numeric_support(), and numerictypmodout().
|
inlinestatic |
Definition at line 925 of file numeric.c.
References VARHDRSZ.
Referenced by apply_typmod(), apply_typmod_special(), numeric(), numeric_support(), and numerictypmodout().
| Datum numeric_uminus | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1403 of file numeric.c.
References NumericData::choice, duplicate_numeric(), NumericShort::n_header, NumericChoice::n_long, NumericChoice::n_short, NumericLong::n_sign_dscale, NUMERIC_DSCALE, NUMERIC_INF_SIGN_MASK, NUMERIC_IS_NAN, NUMERIC_IS_SHORT, NUMERIC_IS_SPECIAL, NUMERIC_NDIGITS, NUMERIC_NEG, NUMERIC_POS, NUMERIC_SHORT_SIGN_MASK, NUMERIC_SIGN, PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by executeItemOptUnwrapTarget().
| Datum numeric_uplus | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1445 of file numeric.c.
References duplicate_numeric(), PG_GETARG_NUMERIC, and PG_RETURN_NUMERIC.
Referenced by jsonb_agg_transfn_worker(), and jsonb_object_agg_transfn_worker().
| Datum numeric_var_pop | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6115 of file numeric.c.
References numeric_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numeric_var_samp | ( | PG_FUNCTION_ARGS | ) |
Definition at line 6081 of file numeric.c.
References numeric_stddev_internal(), PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, and PG_RETURN_NUMERIC.
| Datum numerictypmodin | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1307 of file numeric.c.
References ArrayGetIntegerTypmods(), ereport, errcode(), errmsg(), ERROR, make_numeric_typmod(), NUMERIC_MAX_PRECISION, NUMERIC_MAX_SCALE, NUMERIC_MIN_SCALE, PG_GETARG_ARRAYTYPE_P, and PG_RETURN_INT32.
Referenced by executeItemOptUnwrapTarget().
| Datum numerictypmodout | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1352 of file numeric.c.
References is_valid_numeric_typmod(), numeric_typmod_precision(), numeric_typmod_scale(), palloc(), PG_GETARG_INT32, PG_RETURN_CSTRING, and snprintf.
|
static |
Definition at line 7471 of file numeric.c.
References alloc_var(), buf, NumericVar::digits, NumericVar::dscale, i, len, pq_getmsgint(), NumericVar::sign, and NumericVar::weight.
Referenced by numeric_avg_deserialize(), and numeric_deserialize().
|
static |
Definition at line 7455 of file numeric.c.
References buf, NumericVar::digits, NumericVar::dscale, i, NumericVar::ndigits, pq_sendint16(), pq_sendint32(), NumericVar::sign, and NumericVar::weight.
Referenced by numeric_avg_serialize(), and numeric_serialize().
|
static |
Definition at line 7972 of file numeric.c.
References ereport, errcode(), errmsg(), ERROR, get_str_from_var(), pfree(), and val.
Referenced by exp_var(), generate_series_numeric_support(), numeric_exp(), numeric_float8_no_overflow(), and power_var().
|
static |
Definition at line 4407 of file numeric.c.
References numericvar_to_int64(), PG_INT32_MAX, PG_INT32_MIN, unlikely, and val.
Referenced by numeric_int4_safe(), and width_bucket_numeric().
|
static |
Definition at line 7744 of file numeric.c.
References Assert(), NumericVar::digits, digits, free_var(), i, init_var, NBASE, NumericVar::ndigits, NUMERIC_NEG, PG_INT64_MIN, pg_mul_s64_overflow(), pg_sub_s64_overflow(), round_var(), set_var_from_var(), NumericVar::sign, strip_var(), unlikely, val, and NumericVar::weight.
Referenced by numeric_int2(), numeric_int8_safe(), numericvar_to_int32(), and power_var().
|
static |
Definition at line 7866 of file numeric.c.
References Assert(), NumericVar::digits, digits, free_var(), i, init_var, NBASE, NumericVar::ndigits, NUMERIC_NEG, pg_add_u64_overflow(), pg_mul_u64_overflow(), round_var(), set_var_from_var(), NumericVar::sign, strip_var(), unlikely, val, and NumericVar::weight.
Referenced by numeric_pg_lsn().
|
static |
Definition at line 11168 of file numeric.c.
References const_one, DEC_DIGITS, NumericVar::digits, NumericVar::dscale, set_var_from_var(), and NumericVar::weight.
Referenced by get_str_from_var_sci().
|
static |
Definition at line 10801 of file numeric.c.
References cmp_var(), const_zero, NumericVar::digits, NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, estimate_ln_dweight(), exp_var(), free_var(), init_var, ln_var(), Max, Min, mul_var(), NumericVar::ndigits, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MAX_RESULT_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, NUMERIC_NEG, NUMERIC_POS, numericvar_to_double_no_overflow(), numericvar_to_int64(), PG_INT32_MAX, PG_INT32_MIN, power_var_int(), set_var_from_var(), NumericVar::sign, val, NumericVar::weight, and zero_var().
Referenced by numeric_power().
|
static |
Definition at line 10963 of file numeric.c.
References const_one, DEC_DIGITS, NumericVar::digits, div_var(), NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, free_var(), i, init_var, Max, Min, mul_var(), NBASE, NumericVar::ndigits, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, NUMERIC_WEIGHT_MAX, pg_abs_s32(), round_var(), set_var_from_var(), NumericVar::weight, and zero_var().
Referenced by power_var().
| Numeric random_numeric | ( | pg_prng_state * | state, |
| Numeric | rmin, | ||
| Numeric | rmax | ||
| ) |
Definition at line 4205 of file numeric.c.
References ereport, errcode(), errmsg(), ERROR, free_var(), init_var, init_var_from_num(), make_result(), NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, and random_var().
Referenced by numeric_random().
|
static |
Definition at line 11193 of file numeric.c.
References add_var(), alloc_var(), cmp_var(), DEC_DIGITS, NumericVar::digits, NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, free_var(), i, init_var, Max, NBASE, NumericVar::ndigits, NUMERIC_NEG, NUMERIC_POS, pg_prng_uint64_range(), set_var_from_var(), NumericVar::sign, strip_var(), sub_var(), NumericVar::weight, and while().
Referenced by random_numeric().
|
static |
Definition at line 11621 of file numeric.c.
References Assert(), NumericVar::buf, DEC_DIGITS, NumericVar::digits, digits, NumericVar::dscale, HALF_NBASE, NBASE, NumericVar::ndigits, NUMERIC_POS, round_powers, NumericVar::sign, and NumericVar::weight.
Referenced by apply_typmod(), div_var(), div_var_int(), exp_var(), mul_var(), numeric_mul_safe(), numeric_round(), numericvar_to_int64(), numericvar_to_uint64(), power_var_int(), and sqrt_var().
|
static |
Definition at line 9647 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, NumericVar::dscale, i, Max, Min, NumericVar::ndigits, NUMERIC_MAX_DISPLAY_SCALE, NUMERIC_MIN_DISPLAY_SCALE, NUMERIC_MIN_SIG_DIGITS, and NumericVar::weight.
Referenced by numeric_div_safe(), and numeric_stddev_internal().
|
static |
Definition at line 6973 of file numeric.c.
References add_var(), generate_unaccent_rules::dest, ereturn, errcode(), errmsg(), free_var(), init_var, int64_to_numericvar(), mul_var(), NUMERIC_WEIGHT_MAX, PG_INT64_MAX, sign, str, unlikely, xdigit_value(), and zero_var().
Referenced by numeric_in().
|
static |
Definition at line 7151 of file numeric.c.
References alloc_var(), generate_unaccent_rules::dest, NUMERIC_DIGITS, NUMERIC_DSCALE, NUMERIC_NDIGITS, NUMERIC_SIGN, and NUMERIC_WEIGHT.
Referenced by generate_series_step_numeric(), numeric(), numeric_round(), and numeric_trunc().
|
static |
Definition at line 6743 of file numeric.c.
References alloc_var(), DEC_DIGITS, generate_unaccent_rules::dest, digits, ereturn, errcode(), errmsg(), i, NUMERIC_NEG, NUMERIC_POS, palloc(), pfree(), PG_INT32_MAX, sign, str, and strip_var().
Referenced by float4_numeric(), float8_numeric(), and numeric_in().
|
static |
Definition at line 7199 of file numeric.c.
References generate_unaccent_rules::dest, digitbuf_alloc, digitbuf_free, and value.
Referenced by accum_sum_final(), ceil_var(), div_mod_var(), exp_var(), floor_var(), gcd_var(), generate_series_step_numeric(), ln_var(), numeric_lcm(), numericvar_to_int64(), numericvar_to_uint64(), power_ten_int(), power_var(), power_var_int(), random_var(), sqrt_var(), and width_bucket_numeric().
|
static |
Definition at line 9932 of file numeric.c.
References a1, add_var(), alloc_var(), arg, Assert(), b, cmp_var(), const_one, const_zero, DEC_DIGITS, NumericVar::digits, div_mod_var(), NumericVar::dscale, ereport, errcode(), errmsg(), ERROR, free_var(), i, init_var, int128_to_numericvar(), int64_to_numericvar(), Max, Min, mul_var(), NBASE, NUMERIC_NEG, NUMERIC_POS, round_var(), set_var_from_var(), NumericVar::sign, stat, strip_var(), sub_var(), NumericVar::weight, and zero_var().
Referenced by ln_var(), numeric_sqrt(), and numeric_stddev_internal().
|
static |
Definition at line 11789 of file numeric.c.
References NumericVar::digits, digits, NumericVar::ndigits, NUMERIC_POS, NumericVar::sign, and NumericVar::weight.
Referenced by accum_sum_final(), add_abs(), div_var(), div_var_int(), mul_var(), mul_var_short(), numericvar_to_int64(), numericvar_to_uint64(), random_var(), set_var_from_str(), sqrt_var(), and sub_abs().
|
static |
Definition at line 11539 of file numeric.c.
References Assert(), NumericVar::buf, digitbuf_alloc, digitbuf_free, NumericVar::digits, NumericVar::dscale, i, Max, NBASE, NumericVar::ndigits, strip_var(), and NumericVar::weight.
|
static |
Definition at line 8179 of file numeric.c.
References add_abs(), cmp_abs(), NumericVar::dscale, Max, NUMERIC_NEG, NUMERIC_POS, NumericVar::sign, sub_abs(), and zero_var().
Referenced by compute_bucket(), div_mod_var(), estimate_ln_dweight(), floor_var(), generate_series_numeric_support(), in_range_numeric_numeric(), ln_var(), mod_var(), numeric_stddev_internal(), numeric_sub_safe(), random_var(), and sqrt_var().
|
static |
Definition at line 11727 of file numeric.c.
References DEC_DIGITS, NumericVar::digits, digits, NumericVar::dscale, NumericVar::ndigits, NUMERIC_POS, round_powers, NumericVar::sign, and NumericVar::weight.
Referenced by ceil_var(), div_var(), div_var_int(), floor_var(), generate_series_numeric_support(), numeric_recv(), and numeric_trunc().
| Datum width_bucket_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1951 of file numeric.c.
References add_var(), cmp_numerics(), compute_bucket(), const_one, const_zero, ereport, errcode(), errmsg(), ERROR, free_var(), init_var, int64_to_numericvar(), NUMERIC_IS_INF, NUMERIC_IS_NAN, NUMERIC_IS_SPECIAL, numericvar_to_int32(), PG_GETARG_INT32, PG_GETARG_NUMERIC, PG_RETURN_INT32, and set_var_from_var().
|
inlinestatic |
Definition at line 6946 of file numeric.c.
Referenced by set_var_from_non_decimal_integer_str().
|
static |
Definition at line 6716 of file numeric.c.
References NumericVar::buf, digitbuf_free, NumericVar::digits, NumericVar::ndigits, NUMERIC_POS, NumericVar::sign, and NumericVar::weight.
Referenced by add_var(), div_var(), div_var_int(), exp_var(), mul_var(), power_var(), power_var_int(), set_var_from_non_decimal_integer_str(), sqrt_var(), and sub_var().
|
static |
Definition at line 424 of file numeric.c.
Referenced by numeric_power(), and numeric_sign().
|
static |
Definition at line 451 of file numeric.c.
Referenced by float4_numeric(), float8_numeric(), numeric_add_safe(), numeric_avg(), numeric_div_safe(), numeric_div_trunc(), numeric_gcd(), numeric_in(), numeric_lcm(), numeric_log(), numeric_mod_safe(), numeric_mul_safe(), numeric_power(), numeric_sign(), numeric_stddev_internal(), numeric_sub_safe(), and numeric_sum().
|
static |
Definition at line 457 of file numeric.c.
Referenced by float4_numeric(), float8_numeric(), numeric_add_safe(), numeric_avg(), numeric_div_safe(), numeric_div_trunc(), numeric_in(), numeric_mul_safe(), numeric_power(), numeric_sub_safe(), and numeric_sum().
|
static |
Definition at line 421 of file numeric.c.
Referenced by ceil_var(), compute_bucket(), div_mod_var(), estimate_ln_dweight(), exp_var(), floor_var(), generate_series_numeric_support(), generate_series_step_numeric(), ln_var(), numeric_fac(), numeric_inc(), numeric_power(), numeric_sign(), numeric_stddev_internal(), power_ten_int(), power_var_int(), sqrt_var(), and width_bucket_numeric().
|
static |
|
static |
Definition at line 448 of file numeric.c.
Referenced by estimate_ln_dweight(), and ln_var().
|
static |
|
static |
Definition at line 454 of file numeric.c.
Referenced by float4_numeric(), float8_numeric(), numeric_add_safe(), numeric_avg(), numeric_div_safe(), numeric_div_trunc(), numeric_in(), numeric_log(), numeric_mul_safe(), numeric_power(), numeric_sub_safe(), and numeric_sum().
|
static |
|
static |
|
static |
Definition at line 417 of file numeric.c.
Referenced by accum_sum_final(), generate_series_numeric_support(), generate_series_step_numeric(), ln_var(), numeric_div_safe(), numeric_div_trunc(), numeric_exp(), numeric_lcm(), numeric_log(), numeric_power(), numeric_sign(), numeric_stddev_internal(), power_var(), sqrt_var(), and width_bucket_numeric().
|
static |
|
static |
Definition at line 438 of file numeric.c.
Referenced by estimate_ln_dweight(), and ln_var().
|
static |
|
static |
Definition at line 461 of file numeric.c.
Referenced by round_var(), and trunc_var().