| From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> | 
|---|---|
| To: | Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au> | 
| Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Coding help | 
| Date: | 2003-11-09 14:12:46 | 
| Message-ID: | 200311091412.hA9ECka07802@candle.pha.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Christopher Kings-Lynne wrote:
> 
> > The only idea I have is to call oidin() to do the conversion from string
> > to oid.  I see this in copy.c:
> > 
> >                     loaded_oid = DatumGetObjectId(DirectFunctionCall1(oidin,
> >                                                CStringGetDatum(string)));
> >                     if (loaded_oid == InvalidOid)
> >                         ereport(ERROR,
> >                                 (errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
> >                                  errmsg("invalid OID in COPY data")));
> > 
> > I would give that a try.
> 
> Yes but in this case, the Node is parsed like this:
> 
> | COMMENT ON LARGE OBJECT NumericOnly IS comment_text
> {
> 
>   ...
> 
> 
>   n->objname = makeList1(makeAConst($5));
> 
>   ...
> 
>   $$ = (Node *) n;
> }
> 
> So there is no CString to convert to a Datum...
But I see makeAConst as:
	
	static Node *
	makeAConst(Value *v)
	{
	    Node *n;
	
	    switch (v->type)
	    {
	        case T_Float:
	            n = makeFloatConst(v->val.str);
	            break;
	
	        case T_Integer:
	            n = makeIntConst(v->val.ival);
	            break;
	
	        case T_String:
	        default:
	            n = makeStringConst(v->val.str, NULL);
	            break;
	    }
	
	    return n;
	}
which uses makeStringConst().
-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2003-11-09 15:10:06 | Re: Coding help | 
| Previous Message | Bruce Momjian | 2003-11-09 14:05:11 | Re: [HACKERS] BEGIN vs START TRANSACTION |