LCOV - code coverage report
Current view: top level - src/backend/utils/adt - oid8.c (source / functions) Coverage Total Hit
Test: PostgreSQL 19devel Lines: 85.5 % 55 47
Test Date: 2026-03-01 15:14:58 Functions: 85.7 % 14 12
Legend: Lines:     hit not hit

            Line data    Source code
       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         1596 : oid8in(PG_FUNCTION_ARGS)
      29              : {
      30         1596 :     char       *s = PG_GETARG_CSTRING(0);
      31              :     Oid8        result;
      32              : 
      33         1596 :     result = uint64in_subr(s, NULL, "oid8", fcinfo->context);
      34         1563 :     PG_RETURN_OID8(result);
      35              : }
      36              : 
      37              : Datum
      38          442 : oid8out(PG_FUNCTION_ARGS)
      39              : {
      40          442 :     Oid8        val = PG_GETARG_OID8(0);
      41              :     char        buf[MAXOID8LEN + 1];
      42              :     char       *result;
      43              :     int         len;
      44              : 
      45          442 :     len = pg_ulltoa_n(val, buf) + 1;
      46          442 :     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          442 :     result = palloc(len);
      53          442 :     memcpy(result, buf, len);
      54          442 :     PG_RETURN_CSTRING(result);
      55              : }
      56              : 
      57              : /*
      58              :  *      oid8recv            - converts external binary format to oid8
      59              :  */
      60              : Datum
      61            0 : oid8recv(PG_FUNCTION_ARGS)
      62              : {
      63            0 :     StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
      64              : 
      65            0 :     PG_RETURN_OID8(pq_getmsgint64(buf));
      66              : }
      67              : 
      68              : /*
      69              :  *      oid8send            - converts oid8 to binary format
      70              :  */
      71              : Datum
      72            0 : oid8send(PG_FUNCTION_ARGS)
      73              : {
      74            0 :     Oid8        arg1 = PG_GETARG_OID8(0);
      75              :     StringInfoData buf;
      76              : 
      77            0 :     pq_begintypsend(&buf);
      78            0 :     pq_sendint64(&buf, arg1);
      79            0 :     PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
      80              : }
      81              : 
      82              : /*****************************************************************************
      83              :  *   PUBLIC ROUTINES                                                         *
      84              :  *****************************************************************************/
      85              : 
      86              : Datum
      87         1230 : oid8eq(PG_FUNCTION_ARGS)
      88              : {
      89         1230 :     Oid8        arg1 = PG_GETARG_OID8(0);
      90         1230 :     Oid8        arg2 = PG_GETARG_OID8(1);
      91              : 
      92         1230 :     PG_RETURN_BOOL(arg1 == arg2);
      93              : }
      94              : 
      95              : Datum
      96           30 : oid8ne(PG_FUNCTION_ARGS)
      97              : {
      98           30 :     Oid8        arg1 = PG_GETARG_OID8(0);
      99           30 :     Oid8        arg2 = PG_GETARG_OID8(1);
     100              : 
     101           30 :     PG_RETURN_BOOL(arg1 != arg2);
     102              : }
     103              : 
     104              : Datum
     105           30 : oid8lt(PG_FUNCTION_ARGS)
     106              : {
     107           30 :     Oid8        arg1 = PG_GETARG_OID8(0);
     108           30 :     Oid8        arg2 = PG_GETARG_OID8(1);
     109              : 
     110           30 :     PG_RETURN_BOOL(arg1 < arg2);
     111              : }
     112              : 
     113              : Datum
     114           30 : oid8le(PG_FUNCTION_ARGS)
     115              : {
     116           30 :     Oid8        arg1 = PG_GETARG_OID8(0);
     117           30 :     Oid8        arg2 = PG_GETARG_OID8(1);
     118              : 
     119           30 :     PG_RETURN_BOOL(arg1 <= arg2);
     120              : }
     121              : 
     122              : Datum
     123           30 : oid8ge(PG_FUNCTION_ARGS)
     124              : {
     125           30 :     Oid8        arg1 = PG_GETARG_OID8(0);
     126           30 :     Oid8        arg2 = PG_GETARG_OID8(1);
     127              : 
     128           30 :     PG_RETURN_BOOL(arg1 >= arg2);
     129              : }
     130              : 
     131              : Datum
     132           30 : oid8gt(PG_FUNCTION_ARGS)
     133              : {
     134           30 :     Oid8        arg1 = PG_GETARG_OID8(0);
     135           30 :     Oid8        arg2 = PG_GETARG_OID8(1);
     136              : 
     137           30 :     PG_RETURN_BOOL(arg1 > arg2);
     138              : }
     139              : 
     140              : Datum
     141         1566 : hashoid8(PG_FUNCTION_ARGS)
     142              : {
     143         1566 :     return hashint8(fcinfo);
     144              : }
     145              : 
     146              : Datum
     147           36 : hashoid8extended(PG_FUNCTION_ARGS)
     148              : {
     149           36 :     return hashint8extended(fcinfo);
     150              : }
     151              : 
     152              : Datum
     153           27 : oid8larger(PG_FUNCTION_ARGS)
     154              : {
     155           27 :     Oid8        arg1 = PG_GETARG_OID8(0);
     156           27 :     Oid8        arg2 = PG_GETARG_OID8(1);
     157              : 
     158           27 :     PG_RETURN_OID8((arg1 > arg2) ? arg1 : arg2);
     159              : }
     160              : 
     161              : Datum
     162           27 : oid8smaller(PG_FUNCTION_ARGS)
     163              : {
     164           27 :     Oid8        arg1 = PG_GETARG_OID8(0);
     165           27 :     Oid8        arg2 = PG_GETARG_OID8(1);
     166              : 
     167           27 :     PG_RETURN_OID8((arg1 < arg2) ? arg1 : arg2);
     168              : }
        

Generated by: LCOV version 2.0-1