Return-Path: aoki
Received: by postgres.Berkeley.EDU (5.61/1.29)
	id AA25111; Sun, 22 Aug 93 17:04:04 -0700
Message-Id: <9308230004.AA25111@postgres.Berkeley.EDU>
From: aoki@postgres.berkeley.edu (Paul M. Aoki)
Subject: Re: Large Objects
To: postgres@postgres.berkeley.edu
Sender: pg_adm@postgres.berkeley.edu
In-Reply-To: Your message of Fri, 20 Aug 1993 14:52:26 +0200 
	     <93Aug20.135229met_dst.6185@redamoi.regent.e-technik.tu-muenchen.de> 
Date: Sun, 22 Aug 93 17:13:17 -0700
Sender: aoki@postgres.Berkeley.EDU
X-Mts: smtp

Gunter Strube <Gunter.Strube@regent.e-technik.tu-muenchen.de> writes:
> A frequent error message was after the command:
> 	inv_fd = p_open("/inv_file2", INV_WRITE, Inversion);
> 	Error: Unexpected identifier: ?

this means the backend dumped core (or was never invoked).  the 
arguments you give are appropriate for p_creat, which must be called 
before p_open is called.  as far as i can tell this was correctly 
documented in 4.1..

> 2. Can anybody send me some example-programms for storing data in
>    large objects (in Unix as well as in in Inversion files).

the inversion file system utilities (especially icopy) contain
lots of uses of large objects.. look in src/bin/fsutils.

changing icopy to use unix/inversion large objects is pretty simple. 
only two lines must be changed:

593c593
<     if ((destfd = p_creat(destfname, 0666, Unix)) < 0) {
---
>     if ((destfd = p_creat(destfname, INV_WRITE|smgrno, Inversion)) < 0) {
670c670
<     if ((srcfd = p_open(srcfname, O_RDONLY)) < 0) {
---
>     if ((srcfd = p_open(srcfname, INV_READ)) < 0) {

(the line numbers are approximate since they come from our development
source code, not 4.1.)
--
  Paul M. Aoki  |  CS Div., Dept. of EECS, UCB  |  aoki@postgres.Berkeley.EDU
                |  Berkeley, CA 94720           |  ...!uunet!ucbvax!aoki
