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.10 1999/07/16 03:14:11 momjian Exp $
13 * input routine largely stolen from boxin().
15 *-------------------------------------------------------------------------
21 #include "utils/builtins.h"
28 /* ----------------------------------------------------------------
30 * ----------------------------------------------------------------
40 BlockNumber blockNumber;
41 OffsetNumber offsetNumber;
46 for (i = 0, p = str; *p && i < NTIDARGS && *p != RDELIM; p++)
47 if (*p == DELIM || (*p == LDELIM && !i))
53 blockNumber = (BlockNumber) atoi(coord[0]);
54 offsetNumber = (OffsetNumber) atoi(coord[1]);
56 result = (ItemPointer) palloc(sizeof(ItemPointerData));
58 ItemPointerSet(result, blockNumber, offsetNumber);
63 /* ----------------------------------------------------------------
65 * ----------------------------------------------------------------
68 tidout(ItemPointer itemPtr)
70 BlockNumber blockNumber;
71 OffsetNumber offsetNumber;
76 blockId = &(itemPtr->ip_blkid);
78 blockNumber = BlockIdGetBlockNumber(blockId);
79 offsetNumber = itemPtr->ip_posid;
81 sprintf(buf, "(%d,%d)", blockNumber, offsetNumber);
83 str = (char *) palloc(strlen(buf) + 1);