]> granicus.if.org Git - postgresql/blob - src/backend/utils/adt/tid.c
Clean up #include in /include directory. Add scripts for checking includes.
[postgresql] / src / backend / utils / adt / tid.c
1 /*-------------------------------------------------------------------------
2  *
3  * tid.c
4  *        Functions for the built-in type tuple id
5  *
6  * Copyright (c) 1994, Regents of the University of California
7  *
8  *
9  * IDENTIFICATION
10  *        $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.8 1999/07/15 15:20:20 momjian Exp $
11  *
12  * NOTES
13  *        input routine largely stolen from boxin().
14  *
15  *-------------------------------------------------------------------------
16  */
17 #include <stdio.h>                              /* for sprintf() */
18 #include <string.h>
19 #include "postgres.h"
20 #include "storage/bufpage.h"
21
22 #include "utils/builtins.h"             /* where function declarations go */
23
24 #define LDELIM                  '('
25 #define RDELIM                  ')'
26 #define DELIM                   ','
27 #define NTIDARGS                2
28
29 /* ----------------------------------------------------------------
30  *              tidin
31  * ----------------------------------------------------------------
32  */
33 ItemPointer
34 tidin(char *str)
35 {
36         char       *p,
37                            *coord[NTIDARGS];
38         int                     i;
39         ItemPointer result;
40
41         BlockNumber blockNumber;
42         OffsetNumber offsetNumber;
43
44         if (str == NULL)
45                 return NULL;
46
47         for (i = 0, p = str; *p && i < NTIDARGS && *p != RDELIM; p++)
48                 if (*p == DELIM || (*p == LDELIM && !i))
49                         coord[i++] = p + 1;
50
51         if (i < NTIDARGS - 1)
52                 return NULL;
53
54         blockNumber = (BlockNumber) atoi(coord[0]);
55         offsetNumber = (OffsetNumber) atoi(coord[1]);
56
57         result = (ItemPointer) palloc(sizeof(ItemPointerData));
58
59         ItemPointerSet(result, blockNumber, offsetNumber);
60
61         return result;
62 }
63
64 /* ----------------------------------------------------------------
65  *              tidout
66  * ----------------------------------------------------------------
67  */
68 char *
69 tidout(ItemPointer itemPtr)
70 {
71         BlockNumber blockNumber;
72         OffsetNumber offsetNumber;
73         BlockId         blockId;
74         char            buf[32];
75         char       *str;
76
77         blockId = &(itemPtr->ip_blkid);
78
79         blockNumber = BlockIdGetBlockNumber(blockId);
80         offsetNumber = itemPtr->ip_posid;
81
82         sprintf(buf, "(%d,%d)", blockNumber, offsetNumber);
83
84         str = (char *) palloc(strlen(buf) + 1);
85         strcpy(str, buf);
86
87         return str;
88 }