]> granicus.if.org Git - postgresql/blob - src/backend/utils/adt/char.c
Renaming cleanup, no pgindent yet.
[postgresql] / src / backend / utils / adt / char.c
1 /*-------------------------------------------------------------------------
2  *
3  * char.c--
4  *        Functions for the built-in type "char".
5  *        Functions for the built-in type "cid".
6  *
7  * Copyright (c) 1994, Regents of the University of California
8  *
9  *
10  * IDENTIFICATION
11  *        $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.19 1998/09/01 03:25:50 momjian Exp $
12  *
13  *-------------------------------------------------------------------------
14  */
15 #include <stdio.h>                              /* for sprintf() */
16 #include <string.h>
17 #include "postgres.h"
18 #include "utils/palloc.h"
19 #include "utils/builtins.h"             /* where the declarations go */
20
21 /*****************************************************************************
22  *       USER I/O ROUTINES                                                                                                               *
23  *****************************************************************************/
24
25 /*
26  *              charin                  - converts "x" to 'x'
27  */
28 int32
29 charin(char *ch)
30 {
31         if (ch == NULL)
32                 return (int32) NULL;
33         return (int32) *ch;
34 }
35
36 /*
37  *              charout                 - converts 'x' to "x"
38  */
39 char *
40 charout(int32 ch)
41 {
42         char       *result = (char *) palloc(2);
43
44         result[0] = (char) ch;
45         result[1] = '\0';
46         return result;
47 }
48
49 /*
50  *              cidin   - converts "..." to internal representation.
51  *
52  *              NOTE: we must not use 'charin' because cid might be a non
53  *              printable character...
54  */
55 int32
56 cidin(char *s)
57 {
58         CommandId       c;
59
60         if (s == NULL)
61                 c = 0;
62         else
63                 c = atoi(s);
64
65         return (int32) c;
66 }
67
68 /*
69  *              cidout  - converts a cid to "..."
70  *
71  *              NOTE: we must no use 'charout' because cid might be a non
72  *              printable character...
73  */
74 char *
75 cidout(int32 c)
76 {
77         char       *result;
78         CommandId       c2;
79
80         result = palloc(12);
81         c2 = (CommandId) c;
82         sprintf(result, "%u", (unsigned) (c2));
83         return result;
84 }
85
86
87 /*****************************************************************************
88  *       PUBLIC ROUTINES                                                                                                                 *
89  *****************************************************************************/
90
91 bool
92 chareq(int8 arg1, int8 arg2)
93 {
94         return arg1 == arg2;
95 }
96
97 bool
98 charne(int8 arg1, int8 arg2)
99 {
100         return arg1 != arg2;
101 }
102
103 bool
104 charlt(int8 arg1, int8 arg2)
105 {
106         return (uint8) arg1 < (uint8) arg2;
107 }
108
109 bool
110 charle(int8 arg1, int8 arg2)
111 {
112         return (uint8) arg1 <= (uint8) arg2;
113 }
114
115 bool
116 chargt(int8 arg1, int8 arg2)
117 {
118         return (uint8) arg1 > (uint8) arg2;
119 }
120
121 bool
122 charge(int8 arg1, int8 arg2)
123 {
124         return (uint8) arg1 >= (uint8) arg2;
125 }
126
127 int8
128 charpl(int8 arg1, int8 arg2)
129 {
130         return arg1 + arg2;
131 }
132
133 int8
134 charmi(int8 arg1, int8 arg2)
135 {
136         return arg1 - arg2;
137 }
138
139 int8
140 charmul(int8 arg1, int8 arg2)
141 {
142         return arg1 * arg2;
143 }
144
145 int8
146 chardiv(int8 arg1, int8 arg2)
147 {
148         return arg1 / arg2;
149 }
150
151 bool
152 cideq(int8 arg1, int8 arg2)
153 {
154         return arg1 == arg2;
155 }