Coverage Report

Created: 2026-08-14 06:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/postgres/src/backend/utils/adt/oid8.c
Line
Count
Source
1
/*-------------------------------------------------------------------------
2
 *
3
 * oid8.c
4
 *    Functions for the built-in type Oid8
5
 *
6
 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
 * Portions Copyright (c) 1994, Regents of the University of California
8
 *
9
 *
10
 * IDENTIFICATION
11
 *    src/backend/utils/adt/oid8.c
12
 *
13
 *-------------------------------------------------------------------------
14
 */
15
#include "postgres.h"
16
17
#include "catalog/pg_type.h"
18
#include "libpq/pqformat.h"
19
#include "utils/builtins.h"
20
21
#define MAXOID8LEN 20
22
23
/*****************************************************************************
24
 *   USER I/O ROUTINES                             *
25
 *****************************************************************************/
26
27
Datum
28
oid8in(PG_FUNCTION_ARGS)
29
0
{
30
0
  char     *s = PG_GETARG_CSTRING(0);
31
0
  Oid8    result;
32
33
0
  result = uint64in_subr(s, NULL, "oid8", fcinfo->context);
34
0
  PG_RETURN_OID8(result);
35
0
}
36
37
Datum
38
oid8out(PG_FUNCTION_ARGS)
39
0
{
40
0
  Oid8    val = PG_GETARG_OID8(0);
41
0
  char    buf[MAXOID8LEN + 1];
42
0
  char     *result;
43
0
  int     len;
44
45
0
  len = pg_ulltoa_n(val, buf) + 1;
46
0
  buf[len - 1] = '\0';
47
48
  /*
49
   * Since the length is already known, we do a manual palloc() and memcpy()
50
   * to avoid the strlen() call that would otherwise be done in pstrdup().
51
   */
52
0
  result = palloc(len);
53
0
  memcpy(result, buf, len);
54
0
  PG_RETURN_CSTRING(result);
55
0
}
56
57
/*
58
 *    oid8recv      - converts external binary format to oid8
59
 */
60
Datum
61
oid8recv(PG_FUNCTION_ARGS)
62
0
{
63
0
  StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
64
65
0
  PG_RETURN_OID8(pq_getmsgint64(buf));
66
0
}
67
68
/*
69
 *    oid8send      - converts oid8 to binary format
70
 */
71
Datum
72
oid8send(PG_FUNCTION_ARGS)
73
0
{
74
0
  Oid8    arg1 = PG_GETARG_OID8(0);
75
0
  StringInfoData buf;
76
77
0
  pq_begintypsend(&buf);
78
0
  pq_sendint64(&buf, arg1);
79
0
  PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
80
0
}
81
82
/*****************************************************************************
83
 *   PUBLIC ROUTINES                             *
84
 *****************************************************************************/
85
86
Datum
87
oid8eq(PG_FUNCTION_ARGS)
88
0
{
89
0
  Oid8    arg1 = PG_GETARG_OID8(0);
90
0
  Oid8    arg2 = PG_GETARG_OID8(1);
91
92
0
  PG_RETURN_BOOL(arg1 == arg2);
93
0
}
94
95
Datum
96
oid8ne(PG_FUNCTION_ARGS)
97
0
{
98
0
  Oid8    arg1 = PG_GETARG_OID8(0);
99
0
  Oid8    arg2 = PG_GETARG_OID8(1);
100
101
0
  PG_RETURN_BOOL(arg1 != arg2);
102
0
}
103
104
Datum
105
oid8lt(PG_FUNCTION_ARGS)
106
0
{
107
0
  Oid8    arg1 = PG_GETARG_OID8(0);
108
0
  Oid8    arg2 = PG_GETARG_OID8(1);
109
110
0
  PG_RETURN_BOOL(arg1 < arg2);
111
0
}
112
113
Datum
114
oid8le(PG_FUNCTION_ARGS)
115
0
{
116
0
  Oid8    arg1 = PG_GETARG_OID8(0);
117
0
  Oid8    arg2 = PG_GETARG_OID8(1);
118
119
0
  PG_RETURN_BOOL(arg1 <= arg2);
120
0
}
121
122
Datum
123
oid8ge(PG_FUNCTION_ARGS)
124
0
{
125
0
  Oid8    arg1 = PG_GETARG_OID8(0);
126
0
  Oid8    arg2 = PG_GETARG_OID8(1);
127
128
0
  PG_RETURN_BOOL(arg1 >= arg2);
129
0
}
130
131
Datum
132
oid8gt(PG_FUNCTION_ARGS)
133
0
{
134
0
  Oid8    arg1 = PG_GETARG_OID8(0);
135
0
  Oid8    arg2 = PG_GETARG_OID8(1);
136
137
0
  PG_RETURN_BOOL(arg1 > arg2);
138
0
}
139
140
Datum
141
hashoid8(PG_FUNCTION_ARGS)
142
0
{
143
0
  return hashint8(fcinfo);
144
0
}
145
146
Datum
147
hashoid8extended(PG_FUNCTION_ARGS)
148
0
{
149
0
  return hashint8extended(fcinfo);
150
0
}
151
152
Datum
153
oid8larger(PG_FUNCTION_ARGS)
154
0
{
155
0
  Oid8    arg1 = PG_GETARG_OID8(0);
156
0
  Oid8    arg2 = PG_GETARG_OID8(1);
157
158
0
  PG_RETURN_OID8((arg1 > arg2) ? arg1 : arg2);
159
0
}
160
161
Datum
162
oid8smaller(PG_FUNCTION_ARGS)
163
0
{
164
0
  Oid8    arg1 = PG_GETARG_OID8(0);
165
0
  Oid8    arg2 = PG_GETARG_OID8(1);
166
167
0
  PG_RETURN_OID8((arg1 < arg2) ? arg1 : arg2);
168
0
}