PostgreSQL Source Code
git master
|
#include "fmgr.h"
Go to the source code of this file.
Macros | |
#define | NUMERIC_MAX_PRECISION 1000 |
#define | NUMERIC_MAX_DISPLAY_SCALE NUMERIC_MAX_PRECISION |
#define | NUMERIC_MIN_DISPLAY_SCALE 0 |
#define | NUMERIC_MAX_RESULT_SCALE (NUMERIC_MAX_PRECISION * 2) |
#define | NUMERIC_MIN_SIG_DIGITS 16 |
#define | DatumGetNumeric(X) ((Numeric) PG_DETOAST_DATUM(X)) |
#define | DatumGetNumericCopy(X) ((Numeric) PG_DETOAST_DATUM_COPY(X)) |
#define | NumericGetDatum(X) PointerGetDatum(X) |
#define | PG_GETARG_NUMERIC(n) DatumGetNumeric(PG_GETARG_DATUM(n)) |
#define | PG_GETARG_NUMERIC_COPY(n) DatumGetNumericCopy(PG_GETARG_DATUM(n)) |
#define | PG_RETURN_NUMERIC(x) return NumericGetDatum(x) |
Typedefs | |
typedef struct NumericData * | Numeric |
Functions | |
bool | numeric_is_nan (Numeric num) |
int32 | numeric_maximum_size (int32 typmod) |
char * | numeric_out_sci (Numeric num, int scale) |
char * | numeric_normalize (Numeric num) |
Numeric | numeric_add_opt_error (Numeric num1, Numeric num2, bool *have_error) |
Numeric | numeric_sub_opt_error (Numeric num1, Numeric num2, bool *have_error) |
Numeric | numeric_mul_opt_error (Numeric num1, Numeric num2, bool *have_error) |
Numeric | numeric_div_opt_error (Numeric num1, Numeric num2, bool *have_error) |
Numeric | numeric_mod_opt_error (Numeric num1, Numeric num2, bool *have_error) |
int32 | numeric_int4_opt_error (Numeric num, bool *error) |
#define DatumGetNumeric | ( | X | ) | ((Numeric) PG_DETOAST_DATUM(X)) |
Definition at line 49 of file numeric.h.
Referenced by datum_to_jsonb(), executeItemOptUnwrapTarget(), executeKeyValueMethod(), executeNumericItemMethod(), executeUnaryArithmExpr(), gbt_numeric_consistent(), gbt_numeric_penalty(), getArrayIndex(), hstore_to_jsonb_loose(), int2_accum(), int2_accum_inv(), int4_accum(), int4_accum_inv(), int64_to_numeric(), int8_accum(), int8_accum_inv(), int8_avg_accum(), int8_avg_accum_inv(), int8_avg_deserialize(), int8_to_char(), jsonb_agg_transfn(), jsonb_in_scalar(), jsonb_object_agg_transfn(), numeric_absolute(), numeric_avg_deserialize(), numeric_deserialize(), numeric_fast_cmp(), numeric_half_rounded(), numeric_poly_deserialize(), numeric_shift_right(), numeric_to_char(), numeric_to_number(), pg_size_bytes(), PLyNumber_ToJsonbValue(), and SV_to_JsonbValue().
#define DatumGetNumericCopy | ( | X | ) | ((Numeric) PG_DETOAST_DATUM_COPY(X)) |
Definition at line 50 of file numeric.h.
Referenced by jsonb_numeric().
#define NUMERIC_MAX_DISPLAY_SCALE NUMERIC_MAX_PRECISION |
Definition at line 29 of file numeric.h.
Referenced by log_var(), numeric_exp(), numeric_ln(), numeric_sqrt(), power_var(), power_var_int(), and select_div_scale().
#define NUMERIC_MAX_PRECISION 1000 |
Definition at line 24 of file numeric.h.
Referenced by numerictypmodin().
#define NUMERIC_MAX_RESULT_SCALE (NUMERIC_MAX_PRECISION * 2) |
Definition at line 32 of file numeric.h.
Referenced by exp_var(), numeric_exp(), numeric_round(), numeric_trunc(), and power_var().
#define NUMERIC_MIN_DISPLAY_SCALE 0 |
Definition at line 30 of file numeric.h.
Referenced by exp_var(), ln_var(), log_var(), numeric_exp(), numeric_ln(), numeric_sqrt(), power_var(), power_var_int(), and select_div_scale().
#define NUMERIC_MIN_SIG_DIGITS 16 |
Definition at line 39 of file numeric.h.
Referenced by log_var(), numeric_exp(), numeric_ln(), numeric_sqrt(), power_var(), and select_div_scale().
#define NumericGetDatum | ( | X | ) | PointerGetDatum(X) |
Definition at line 51 of file numeric.h.
Referenced by compareNumeric(), executeItemOptUnwrapTarget(), executeNumericItemMethod(), executeUnaryArithmExpr(), gbt_numeric_penalty(), generate_series_step_numeric(), getArrayIndex(), gin_numeric_cmp(), int8_avg_serialize(), int8_sum(), iterate_jsonb_values(), jsonb_agg_transfn(), jsonb_float4(), jsonb_float8(), jsonb_int2(), jsonb_int4(), jsonb_int8(), jsonb_numeric(), jsonb_object_agg_transfn(), JsonbHashScalarValue(), JsonbHashScalarValueExtended(), JsonbValue_to_SV(), numeric_absolute(), numeric_avg(), numeric_avg_serialize(), numeric_float4(), numeric_float8(), numeric_half_rounded(), numeric_is_less(), numeric_poly_avg(), numeric_poly_serialize(), numeric_serialize(), numeric_shift_right(), numeric_to_char(), numeric_to_cstring(), numeric_to_double_no_overflow(), numeric_to_number(), pg_size_bytes(), PLyObject_FromJsonbValue(), and printJsonPathItem().
#define PG_GETARG_NUMERIC | ( | n | ) | DatumGetNumeric(PG_GETARG_DATUM(n)) |
Definition at line 52 of file numeric.h.
Referenced by generate_series_step_numeric(), hash_numeric(), hash_numeric_extended(), in_range_numeric_numeric(), int8_sum(), numeric(), numeric_abs(), numeric_accum(), numeric_accum_inv(), numeric_add(), numeric_avg_accum(), numeric_ceil(), numeric_cmp(), numeric_div(), numeric_div_trunc(), numeric_eq(), numeric_exp(), numeric_float4(), numeric_float8(), numeric_float8_no_overflow(), numeric_floor(), numeric_ge(), numeric_gt(), numeric_inc(), numeric_int2(), numeric_int4(), numeric_int8(), numeric_larger(), numeric_le(), numeric_ln(), numeric_log(), numeric_lt(), numeric_mod(), numeric_mul(), numeric_ne(), numeric_out(), numeric_power(), numeric_round(), numeric_scale(), numeric_send(), numeric_sign(), numeric_smaller(), numeric_sqrt(), numeric_sub(), numeric_to_char(), numeric_trunc(), numeric_uminus(), numeric_uplus(), pg_size_pretty_numeric(), and width_bucket_numeric().
#define PG_GETARG_NUMERIC_COPY | ( | n | ) | DatumGetNumericCopy(PG_GETARG_DATUM(n)) |
#define PG_RETURN_NUMERIC | ( | x | ) | return NumericGetDatum(x) |
Definition at line 54 of file numeric.h.
Referenced by float4_numeric(), float8_numeric(), int2_numeric(), int4_numeric(), int8_numeric(), int8_sum(), jsonb_numeric(), numeric(), numeric_abs(), numeric_add(), numeric_avg(), numeric_ceil(), numeric_div(), numeric_div_trunc(), numeric_exp(), numeric_fac(), numeric_floor(), numeric_in(), numeric_inc(), numeric_larger(), numeric_ln(), numeric_log(), numeric_mod(), numeric_mul(), numeric_poly_stddev_pop(), numeric_poly_stddev_samp(), numeric_poly_sum(), numeric_poly_var_pop(), numeric_poly_var_samp(), numeric_power(), numeric_recv(), numeric_round(), numeric_sign(), numeric_smaller(), numeric_sqrt(), numeric_stddev_pop(), numeric_stddev_samp(), numeric_sub(), numeric_sum(), numeric_trunc(), numeric_uminus(), numeric_uplus(), numeric_var_pop(), numeric_var_samp(), and pg_wal_lsn_diff().
typedef struct NumericData* Numeric |
Definition at line 2428 of file numeric.c.
References add_var(), free_var(), init_var, init_var_from_num(), make_result(), make_result_opt_error(), and NUMERIC_IS_NAN.
Referenced by executeItemOptUnwrapTarget(), and numeric_add().
Definition at line 2600 of file numeric.c.
References NumericVar::digits, div_var(), free_var(), init_var, init_var_from_num(), make_result(), make_result_opt_error(), NumericVar::ndigits, NUMERIC_IS_NAN, and select_div_scale().
Referenced by executeItemOptUnwrapTarget(), and numeric_div().
Definition at line 3211 of file numeric.c.
References ereport, errcode(), errmsg(), ERROR, init_var_from_num(), NUMERIC_IS_NAN, and numericvar_to_int32().
Referenced by getArrayIndex(), and numeric_int4().
Definition at line 683 of file numeric.c.
References NUMERIC_IS_NAN.
Referenced by convertJsonbScalar(), gbt_numeric_penalty(), and PLyNumber_ToJsonbValue().
Definition at line 694 of file numeric.c.
References DEC_DIGITS, NUMERIC_HDRSZ, and VARHDRSZ.
Referenced by type_maximum_size().
Definition at line 2720 of file numeric.c.
References NumericVar::digits, free_var(), init_var, init_var_from_num(), make_result(), make_result_opt_error(), mod_var(), NumericVar::ndigits, and NUMERIC_IS_NAN.
Referenced by executeItemOptUnwrapTarget(), and numeric_mod().
Definition at line 2540 of file numeric.c.
References NumericVar::dscale, free_var(), init_var, init_var_from_num(), make_result(), make_result_opt_error(), mul_var(), and NUMERIC_IS_NAN.
Referenced by executeItemOptUnwrapTarget(), and numeric_mul().
char* numeric_normalize | ( | Numeric | num | ) |
Definition at line 760 of file numeric.c.
References get_str_from_var(), init_var_from_num(), NUMERIC_IS_NAN, pstrdup(), and generate_unaccent_rules::str.
Referenced by make_scalar_key().
char* numeric_out_sci | ( | Numeric | num, |
int | scale | ||
) |
Definition at line 733 of file numeric.c.
References get_str_from_var_sci(), init_var_from_num(), NUMERIC_IS_NAN, pstrdup(), and generate_unaccent_rules::str.
Referenced by int8_to_char(), and numeric_to_char().
Definition at line 2484 of file numeric.c.
References free_var(), init_var, init_var_from_num(), make_result(), make_result_opt_error(), NUMERIC_IS_NAN, and sub_var().
Referenced by executeItemOptUnwrapTarget(), and numeric_sub().