55 *
66 * 1998 Jan Wieck
77 *
8- * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.49 2001/12/11 02:02:12 tgl Exp $
8+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.50 2002/02/18 14:25:40 momjian Exp $
99 *
1010 * ----------
1111 */
3535 * Local definitions
3636 * ----------
3737 */
38- #ifndef MIN
39- #define MIN (a ,b ) (((a)<(b)) ? (a) : (b))
40- #endif
41- #ifndef MAX
42- #define MAX (a ,b ) (((a)>(b)) ? (a) : (b))
43- #endif
44-
4538#ifndef NAN
4639#define NAN (0.0/0.0)
4740#endif
@@ -484,8 +477,8 @@ numeric_round(PG_FUNCTION_ARGS)
484477 * Limit the scale value to avoid possible overflow in calculations
485478 * below.
486479 */
487- scale = MIN (NUMERIC_MAX_RESULT_SCALE ,
488- MAX (- NUMERIC_MAX_RESULT_SCALE , scale ));
480+ scale = Min (NUMERIC_MAX_RESULT_SCALE ,
481+ Max (- NUMERIC_MAX_RESULT_SCALE , scale ));
489482
490483 /*
491484 * Unpack the argument and round it at the proper digit position
@@ -530,7 +523,7 @@ numeric_round(PG_FUNCTION_ARGS)
530523 /*
531524 * Set result's scale to something reasonable.
532525 */
533- scale = MIN (NUMERIC_MAX_DISPLAY_SCALE , MAX (0 , scale ));
526+ scale = Min (NUMERIC_MAX_DISPLAY_SCALE , Max (0 , scale ));
534527 arg .rscale = scale ;
535528 arg .dscale = scale ;
536529
@@ -570,21 +563,21 @@ numeric_trunc(PG_FUNCTION_ARGS)
570563 * Limit the scale value to avoid possible overflow in calculations
571564 * below.
572565 */
573- scale = MIN (NUMERIC_MAX_RESULT_SCALE ,
574- MAX (- NUMERIC_MAX_RESULT_SCALE , scale ));
566+ scale = Min (NUMERIC_MAX_RESULT_SCALE ,
567+ Max (- NUMERIC_MAX_RESULT_SCALE , scale ));
575568
576569 /*
577570 * Unpack the argument and truncate it at the proper digit position
578571 */
579572 init_var (& arg );
580573 set_var_from_num (num , & arg );
581574
582- arg .ndigits = MIN (arg .ndigits , MAX (0 , arg .weight + scale + 1 ));
575+ arg .ndigits = Min (arg .ndigits , Max (0 , arg .weight + scale + 1 ));
583576
584577 /*
585578 * Set result's scale to something reasonable.
586579 */
587- scale = MIN (NUMERIC_MAX_DISPLAY_SCALE , MAX (0 , scale ));
580+ scale = Min (NUMERIC_MAX_DISPLAY_SCALE , Max (0 , scale ));
588581 arg .rscale = scale ;
589582 arg .dscale = scale ;
590583
@@ -1214,11 +1207,11 @@ numeric_sqrt(PG_FUNCTION_ARGS)
12141207
12151208 set_var_from_num (num , & arg );
12161209
1217- res_dscale = MAX (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1218- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1219- global_rscale = MAX (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1220- global_rscale = MAX (global_rscale , res_dscale + 4 );
1221- global_rscale = MIN (global_rscale , NUMERIC_MAX_RESULT_SCALE );
1210+ res_dscale = Max (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1211+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1212+ global_rscale = Max (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1213+ global_rscale = Max (global_rscale , res_dscale + 4 );
1214+ global_rscale = Min (global_rscale , NUMERIC_MAX_RESULT_SCALE );
12221215
12231216 sqrt_var (& arg , & result );
12241217
@@ -1261,11 +1254,11 @@ numeric_exp(PG_FUNCTION_ARGS)
12611254 init_var (& result );
12621255 set_var_from_num (num , & arg );
12631256
1264- res_dscale = MAX (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1265- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1266- global_rscale = MAX (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1267- global_rscale = MAX (global_rscale , res_dscale + 4 );
1268- global_rscale = MIN (global_rscale , NUMERIC_MAX_RESULT_SCALE );
1257+ res_dscale = Max (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1258+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1259+ global_rscale = Max (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1260+ global_rscale = Max (global_rscale , res_dscale + 4 );
1261+ global_rscale = Min (global_rscale , NUMERIC_MAX_RESULT_SCALE );
12691262
12701263 exp_var (& arg , & result );
12711264
@@ -1308,11 +1301,11 @@ numeric_ln(PG_FUNCTION_ARGS)
13081301 init_var (& result );
13091302 set_var_from_num (num , & arg );
13101303
1311- res_dscale = MAX (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1312- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1313- global_rscale = MAX (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1314- global_rscale = MAX (global_rscale , res_dscale + 4 );
1315- global_rscale = MIN (global_rscale , NUMERIC_MAX_RESULT_SCALE );
1304+ res_dscale = Max (arg .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1305+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1306+ global_rscale = Max (arg .rscale , NUMERIC_MIN_RESULT_SCALE );
1307+ global_rscale = Max (global_rscale , res_dscale + 4 );
1308+ global_rscale = Min (global_rscale , NUMERIC_MAX_RESULT_SCALE );
13161309
13171310 ln_var (& arg , & result );
13181311
@@ -1359,11 +1352,11 @@ numeric_log(PG_FUNCTION_ARGS)
13591352 set_var_from_num (num1 , & arg1 );
13601353 set_var_from_num (num2 , & arg2 );
13611354
1362- res_dscale = MAX (arg1 .dscale + arg2 .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1363- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1364- global_rscale = MAX (arg1 .rscale + arg2 .rscale , NUMERIC_MIN_RESULT_SCALE );
1365- global_rscale = MAX (global_rscale , res_dscale + 4 );
1366- global_rscale = MIN (global_rscale , NUMERIC_MAX_RESULT_SCALE );
1355+ res_dscale = Max (arg1 .dscale + arg2 .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1356+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1357+ global_rscale = Max (arg1 .rscale + arg2 .rscale , NUMERIC_MIN_RESULT_SCALE );
1358+ global_rscale = Max (global_rscale , res_dscale + 4 );
1359+ global_rscale = Min (global_rscale , NUMERIC_MAX_RESULT_SCALE );
13671360
13681361 /*
13691362 * Call log_var() to compute and return the result
@@ -1414,11 +1407,11 @@ numeric_power(PG_FUNCTION_ARGS)
14141407 set_var_from_num (num1 , & arg1 );
14151408 set_var_from_num (num2 , & arg2 );
14161409
1417- res_dscale = MAX (arg1 .dscale + arg2 .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1418- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1419- global_rscale = MAX (arg1 .rscale + arg2 .rscale , NUMERIC_MIN_RESULT_SCALE );
1420- global_rscale = MAX (global_rscale , res_dscale + 4 );
1421- global_rscale = MIN (global_rscale , NUMERIC_MAX_RESULT_SCALE );
1410+ res_dscale = Max (arg1 .dscale + arg2 .dscale , NUMERIC_MIN_DISPLAY_SCALE );
1411+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
1412+ global_rscale = Max (arg1 .rscale + arg2 .rscale , NUMERIC_MIN_RESULT_SCALE );
1413+ global_rscale = Max (global_rscale , res_dscale + 4 );
1414+ global_rscale = Min (global_rscale , NUMERIC_MAX_RESULT_SCALE );
14221415
14231416 /*
14241417 * Call log_var() to compute and return the result
@@ -2540,12 +2533,12 @@ get_str_from_var(NumericVar *var, int dscale)
25402533 }
25412534 }
25422535 else
2543- var -> ndigits = MAX (0 , MIN (i , var -> ndigits ));
2536+ var -> ndigits = Max (0 , Min (i , var -> ndigits ));
25442537
25452538 /*
25462539 * Allocate space for the result
25472540 */
2548- str = palloc (MAX (0 , dscale ) + MAX (0 , var -> weight ) + 4 );
2541+ str = palloc (Max (0 , dscale ) + Max (0 , var -> weight ) + 4 );
25492542 cp = str ;
25502543
25512544 /*
@@ -2557,7 +2550,7 @@ get_str_from_var(NumericVar *var, int dscale)
25572550 /*
25582551 * Output all digits before the decimal point
25592552 */
2560- i = MAX (var -> weight , 0 );
2553+ i = Max (var -> weight , 0 );
25612554 d = 0 ;
25622555
25632556 while (i >= 0 )
@@ -2625,7 +2618,7 @@ make_result(NumericVar *var)
26252618 return result ;
26262619 }
26272620
2628- n = MAX (0 , MIN (var -> ndigits , var -> weight + var -> rscale + 1 ));
2621+ n = Max (0 , Min (var -> ndigits , var -> weight + var -> rscale + 1 ));
26292622
26302623 /* truncate leading zeroes */
26312624 while (n > 0 && * digit == 0 )
@@ -2717,7 +2710,7 @@ apply_typmod(NumericVar *var, int32 typmod)
27172710 }
27182711 }
27192712 else
2720- var -> ndigits = MAX (0 , MIN (i , var -> ndigits ));
2713+ var -> ndigits = Max (0 , Min (i , var -> ndigits ));
27212714
27222715 /*
27232716 * Check for overflow - note we can't do this before rounding, because
@@ -2825,8 +2818,8 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
28252818 * ----------
28262819 */
28272820 zero_var (result );
2828- result -> rscale = MAX (var1 -> rscale , var2 -> rscale );
2829- result -> dscale = MAX (var1 -> dscale , var2 -> dscale );
2821+ result -> rscale = Max (var1 -> rscale , var2 -> rscale );
2822+ result -> dscale = Max (var1 -> dscale , var2 -> dscale );
28302823 break ;
28312824
28322825 case 1 :
@@ -2869,8 +2862,8 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
28692862 * ----------
28702863 */
28712864 zero_var (result );
2872- result -> rscale = MAX (var1 -> rscale , var2 -> rscale );
2873- result -> dscale = MAX (var1 -> dscale , var2 -> dscale );
2865+ result -> rscale = Max (var1 -> rscale , var2 -> rscale );
2866+ result -> dscale = Max (var1 -> dscale , var2 -> dscale );
28742867 break ;
28752868
28762869 case 1 :
@@ -2949,8 +2942,8 @@ sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
29492942 * ----------
29502943 */
29512944 zero_var (result );
2952- result -> rscale = MAX (var1 -> rscale , var2 -> rscale );
2953- result -> dscale = MAX (var1 -> dscale , var2 -> dscale );
2945+ result -> rscale = Max (var1 -> rscale , var2 -> rscale );
2946+ result -> dscale = Max (var1 -> dscale , var2 -> dscale );
29542947 break ;
29552948
29562949 case 1 :
@@ -2993,8 +2986,8 @@ sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
29932986 * ----------
29942987 */
29952988 zero_var (result );
2996- result -> rscale = MAX (var1 -> rscale , var2 -> rscale );
2997- result -> dscale = MAX (var1 -> dscale , var2 -> dscale );
2989+ result -> rscale = Max (var1 -> rscale , var2 -> rscale );
2990+ result -> dscale = Max (var1 -> dscale , var2 -> dscale );
29982991 break ;
29992992
30002993 case 1 :
@@ -3344,22 +3337,22 @@ select_div_scale(NumericVar *var1, NumericVar *var2)
33443337 * The minimum and maximum scales are compile time options from
33453338 * numeric.h):
33463339 *
3347- * DR = MIN(MAX (D1 + D2, MIN_DISPLAY_SCALE), MAX_DISPLAY_SCALE)
3348- * SR = MIN(MAX(MAX (S1 + S2, DR + 4), MIN_RESULT_SCALE), MAX_RESULT_SCALE)
3340+ * DR = Min(Max (D1 + D2, MIN_DISPLAY_SCALE), MAX_DISPLAY_SCALE)
3341+ * SR = Min(Max(Max (S1 + S2, DR + 4), MIN_RESULT_SCALE), MAX_RESULT_SCALE)
33493342 *
33503343 * By default, any result is computed with a minimum of 34 digits
33513344 * after the decimal point or at least with 4 digits more than
33523345 * displayed.
33533346 * ----------
33543347 */
33553348 res_dscale = var1 -> dscale + var2 -> dscale ;
3356- res_dscale = MAX (res_dscale , NUMERIC_MIN_DISPLAY_SCALE );
3357- res_dscale = MIN (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
3349+ res_dscale = Max (res_dscale , NUMERIC_MIN_DISPLAY_SCALE );
3350+ res_dscale = Min (res_dscale , NUMERIC_MAX_DISPLAY_SCALE );
33583351
33593352 res_rscale = var1 -> rscale + var2 -> rscale ;
3360- res_rscale = MAX (res_rscale , res_dscale + 4 );
3361- res_rscale = MAX (res_rscale , NUMERIC_MIN_RESULT_SCALE );
3362- res_rscale = MIN (res_rscale , NUMERIC_MAX_RESULT_SCALE );
3353+ res_rscale = Max (res_rscale , res_dscale + 4 );
3354+ res_rscale = Max (res_rscale , NUMERIC_MIN_RESULT_SCALE );
3355+ res_rscale = Min (res_rscale , NUMERIC_MAX_RESULT_SCALE );
33633356 global_rscale = res_rscale ;
33643357
33653358 return res_dscale ;
@@ -3398,15 +3391,15 @@ mod_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
33983391 tmp .dscale = div_dscale ;
33993392
34003393 /* do trunc() by forgetting digits to the right of the decimal point */
3401- tmp .ndigits = MAX (0 , MIN (tmp .ndigits , tmp .weight + 1 ));
3394+ tmp .ndigits = Max (0 , Min (tmp .ndigits , tmp .weight + 1 ));
34023395
34033396 global_rscale = var2 -> rscale + tmp .rscale ;
34043397
34053398 mul_var (var2 , & tmp , & tmp );
34063399
34073400 sub_var (var1 , & tmp , result );
34083401
3409- result -> dscale = MAX (var1 -> dscale , var2 -> dscale );
3402+ result -> dscale = Max (var1 -> dscale , var2 -> dscale );
34103403
34113404 global_rscale = save_global_rscale ;
34123405 free_var (& tmp );
@@ -3429,7 +3422,7 @@ ceil_var(NumericVar *var, NumericVar *result)
34293422 set_var_from_var (var , & tmp );
34303423
34313424 tmp .rscale = 0 ;
3432- tmp .ndigits = MIN (tmp .ndigits , MAX (0 , tmp .weight + 1 ));
3425+ tmp .ndigits = Min (tmp .ndigits , Max (0 , tmp .weight + 1 ));
34333426 if (tmp .sign == NUMERIC_POS && cmp_var (var , & tmp ) != 0 )
34343427 add_var (& tmp , & const_one , & tmp );
34353428
@@ -3454,7 +3447,7 @@ floor_var(NumericVar *var, NumericVar *result)
34543447 set_var_from_var (var , & tmp );
34553448
34563449 tmp .rscale = 0 ;
3457- tmp .ndigits = MIN (tmp .ndigits , MAX (0 , tmp .weight + 1 ));
3450+ tmp .ndigits = Min (tmp .ndigits , Max (0 , tmp .weight + 1 ));
34583451 if (tmp .sign == NUMERIC_NEG && cmp_var (var , & tmp ) != 0 )
34593452 sub_var (& tmp , & const_one , & tmp );
34603453
@@ -3860,9 +3853,9 @@ add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
38603853 NumericDigit * var1digits = var1 -> digits ;
38613854 NumericDigit * var2digits = var2 -> digits ;
38623855
3863- res_weight = MAX (var1 -> weight , var2 -> weight ) + 1 ;
3864- res_rscale = MAX (var1 -> rscale , var2 -> rscale );
3865- res_dscale = MAX (var1 -> dscale , var2 -> dscale );
3856+ res_weight = Max (var1 -> weight , var2 -> weight ) + 1 ;
3857+ res_rscale = Max (var1 -> rscale , var2 -> rscale );
3858+ res_dscale = Max (var1 -> dscale , var2 -> dscale );
38663859 res_ndigits = res_rscale + res_weight + 1 ;
38673860 if (res_ndigits <= 0 )
38683861 res_ndigits = 1 ;
@@ -3948,8 +3941,8 @@ sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
39483941 NumericDigit * var2digits = var2 -> digits ;
39493942
39503943 res_weight = var1 -> weight ;
3951- res_rscale = MAX (var1 -> rscale , var2 -> rscale );
3952- res_dscale = MAX (var1 -> dscale , var2 -> dscale );
3944+ res_rscale = Max (var1 -> rscale , var2 -> rscale );
3945+ res_dscale = Max (var1 -> dscale , var2 -> dscale );
39533946 res_ndigits = res_rscale + res_weight + 1 ;
39543947 if (res_ndigits <= 0 )
39553948 res_ndigits = 1 ;
0 commit comments