Thread

  1. quoting bug?

    Patrick Welche <prlw1@newn.cam.ac.uk> — 2008-02-09T16:50:57Z

    Given the following trivial trigger example:
    
      -- create language plpgsql;
    
      create table foo (a integer, b text, c timestamp);
    
      create function foo_insert() returns trigger as $$
      begin
          raise notice '%', new;
          return null;
      end;
      $$ language plpgsql;
    
      create trigger foo_ins before insert on foo
          for each row execute procedure foo_insert();
    
      insert into foo values (1, 'two', current_timestamp);
    
    I am surprised to see
    
    NOTICE:  (1,two,"Sat 09 Feb 16:47:44.514503 2008")
    INSERT 0 0
    
    I would have expected
    NOTICE:  (1,'two','Sat 09 Feb 16:47:44.514503 2008')
    INSERT 0 0
    
    i.e., a row whose columns look as though they went through quote_literal
    rather than through quote_ident.
    
    This is with yesterday's 8.3.0 (Feb 8 17:24 GMT)
    
    Thoughts?
    
    Cheers,
    
    Patrick
    
    
  2. Re: quoting bug?

    Brendan Jurd <direvus@gmail.com> — 2008-02-09T17:12:18Z

    On Feb 10, 2008 3:50 AM, Patrick Welche <prlw1@newn.cam.ac.uk> wrote:
    > NOTICE:  (1,two,"Sat 09 Feb 16:47:44.514503 2008")
    > INSERT 0 0
    >
    
    I think what you're seeing is the syntax for row literals.
    
    You can get an idea of how it looks without having to write trigger
    functions, e.g.:
    
    > select row(1, 'second value', current_timestamp);
                    row
    -----------------------------------
     (1,"second value","2008-02-10 04:00:54.458647+11")
    (1 row)
    
    Note that anything which includes spaces, commas or brackets is double-quoted.
    
    You can see it working the other way around by constructing a record
    using the literal syntax.
    
    => create type foo as (a text, b int);
    CREATE TYPE
    => select '("one", 2)'::foo;
       foo
    ---------
     (one,2)
    (1 row)
    
    Cheers,
    BJ
    
    
  3. Re: quoting bug?

    Tom Lane <tgl@sss.pgh.pa.us> — 2008-02-09T17:29:10Z

    Patrick Welche <prlw1@newn.cam.ac.uk> writes:
    > I am surprised to see
    
    > NOTICE:  (1,two,"Sat 09 Feb 16:47:44.514503 2008")
    
    This is the expected formatting for a composite type.  Read
    http://www.postgresql.org/docs/8.3/static/rowtypes.html#AEN6266
    
    			regards, tom lane
    
    
  4. Re: quoting bug?

    Patrick Welche <prlw1@newn.cam.ac.uk> — 2008-02-09T18:26:22Z

    On Sat, Feb 09, 2008 at 12:29:10PM -0500, Tom Lane wrote:
    > Patrick Welche <prlw1@newn.cam.ac.uk> writes:
    > > I am surprised to see
    > 
    > > NOTICE:  (1,two,"Sat 09 Feb 16:47:44.514503 2008")
    > 
    > This is the expected formatting for a composite type.  Read
    > http://www.postgresql.org/docs/8.3/static/rowtypes.html#AEN6266
    
    Thank you - sorry for noise.
    
    Patrick