1 /*-------------------------------------------------------------------------
4 * Functions for the built-in type tuple id
6 * Copyright (c) 1994, Regents of the University of California
10 * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.5 1998/02/26 04:37:22 momjian Exp $
13 * input routine largely stolen from boxin().
15 *-------------------------------------------------------------------------
17 #include <stdio.h> /* for sprintf() */
20 #include "storage/bufpage.h"
22 #include "utils/palloc.h"
23 #include "utils/builtins.h" /* where function declarations go */
31 /* ----------------------------------------------------------------
33 * ----------------------------------------------------------------
43 BlockNumber blockNumber;
44 OffsetNumber offsetNumber;
49 for (i = 0, p = str; *p && i < NTIDARGS && *p != RDELIM; p++)
50 if (*p == DELIM || (*p == LDELIM && !i))
56 blockNumber = (BlockNumber) atoi(coord[0]);
57 offsetNumber = (OffsetNumber) atoi(coord[1]);
59 result = (ItemPointer) palloc(sizeof(ItemPointerData));
61 ItemPointerSet(result, blockNumber, offsetNumber);
66 /* ----------------------------------------------------------------
68 * ----------------------------------------------------------------
71 tidout(ItemPointer itemPtr)
73 BlockNumber blockNumber;
74 OffsetNumber offsetNumber;
79 blockId = &(itemPtr->ip_blkid);
81 blockNumber = BlockIdGetBlockNumber(blockId);
82 offsetNumber = itemPtr->ip_posid;
84 sprintf(buf, "(%d,%d)", blockNumber, offsetNumber);
86 str = (char *) palloc(strlen(buf) + 1);