Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  numeric.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * numeric.h
 *   Definitions for the exact numeric data type of Postgres
 *
 * Original coding 1998, Jan Wieck.  Heavily revised 2003, Tom Lane.
 *
 * Copyright (c) 1998-2025, PostgreSQL Global Development Group
 *
 * src/include/utils/numeric.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef _PG_NUMERIC_H_
#define _PG_NUMERIC_H_

#include "common/pg_prng.h"
#include "fmgr.h"

/*
 * Limits on the precision and scale specifiable in a NUMERIC typmod.  The
 * precision is strictly positive, but the scale may be positive or negative.
 * A negative scale implies rounding before the decimal point.
 *
 * Note that the minimum display scale defined below is zero --- we always
 * display all digits before the decimal point, even when the scale is
 * negative.
 *
 * Note that the implementation limits on the precision and display scale of a
 * numeric value are much larger --- beware of what you use these for!
 */

#define NUMERIC_MAX_PRECISION  1000

#define NUMERIC_MIN_SCALE   (-1000)
#define NUMERIC_MAX_SCALE   1000

/*
 * Internal limits on the scales chosen for calculation results
 */

#define NUMERIC_MAX_DISPLAY_SCALE NUMERIC_MAX_PRECISION
#define NUMERIC_MIN_DISPLAY_SCALE 0

#define NUMERIC_MAX_RESULT_SCALE (NUMERIC_MAX_PRECISION * 2)

/*
 * For inherently inexact calculations such as division and square root,
 * we try to get at least this many significant digits; the idea is to
 * deliver a result no worse than float8 would.
 */

#define NUMERIC_MIN_SIG_DIGITS  16

/* The actual contents of Numeric are private to numeric.c */
struct NumericData;
typedef struct NumericData *Numeric;

/*
 * fmgr interface macros
 */


static inline Numeric
DatumGetNumeric(Datum X)
{
 return (Numeric) PG_DETOAST_DATUM(X);
}

static inline Numeric
DatumGetNumericCopy(Datum X)
{
 return (Numeric) PG_DETOAST_DATUM_COPY(X);
}

static inline Datum
NumericGetDatum(Numeric X)
{
 return 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)

/*
 * Utility functions in numeric.c
 */

extern bool numeric_is_nan(Numeric num);
extern bool numeric_is_inf(Numeric num);
extern int32 numeric_maximum_size(int32 typmod);
extern char *numeric_out_sci(Numeric num, int scale);
extern char *numeric_normalize(Numeric num);

extern Numeric int64_to_numeric(int64 val);
extern Numeric int64_div_fast_to_numeric(int64 val1, int log10val2);

extern Numeric numeric_add_opt_error(Numeric num1, Numeric num2,
          bool *have_error);
extern Numeric numeric_sub_opt_error(Numeric num1, Numeric num2,
          bool *have_error);
extern Numeric numeric_mul_opt_error(Numeric num1, Numeric num2,
          bool *have_error);
extern Numeric numeric_div_opt_error(Numeric num1, Numeric num2,
          bool *have_error);
extern Numeric numeric_mod_opt_error(Numeric num1, Numeric num2,
          bool *have_error);
extern int32 numeric_int4_opt_error(Numeric num, bool *have_error);
extern int64 numeric_int8_opt_error(Numeric num, bool *have_error);

extern Numeric random_numeric(pg_prng_state *state,
         Numeric rmin, Numeric rmax);

#endif       /* _PG_NUMERIC_H_ */

Messung V0.5 in Prozent
C=94 H=94 G=93

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002