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.11 1999/07/17 20:18:00 momjian Exp $
13 * input routine largely stolen from boxin().
15 *-------------------------------------------------------------------------
19 #include "utils/builtins.h"
26 /* ----------------------------------------------------------------
28 * ----------------------------------------------------------------
38 BlockNumber blockNumber;
39 OffsetNumber offsetNumber;
44 for (i = 0, p = str; *p && i < NTIDARGS && *p != RDELIM; p++)
45 if (*p == DELIM || (*p == LDELIM && !i))
51 blockNumber = (BlockNumber) atoi(coord[0]);
52 offsetNumber = (OffsetNumber) atoi(coord[1]);
54 result = (ItemPointer) palloc(sizeof(ItemPointerData));
56 ItemPointerSet(result, blockNumber, offsetNumber);
61 /* ----------------------------------------------------------------
63 * ----------------------------------------------------------------
66 tidout(ItemPointer itemPtr)
68 BlockNumber blockNumber;
69 OffsetNumber offsetNumber;
74 blockId = &(itemPtr->ip_blkid);
76 blockNumber = BlockIdGetBlockNumber(blockId);
77 offsetNumber = itemPtr->ip_posid;
79 sprintf(buf, "(%d,%d)", blockNumber, offsetNumber);
81 str = (char *) palloc(strlen(buf) + 1);