| From: | Darren Ferguson <darren(at)crystalballinc(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Yury Don <yura(at)vpcit(dot)ru>, pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: pltcl bug in 7.2? | 
| Date: | 2002-04-19 15:09:11 | 
| Message-ID: | Pine.LNX.4.10.10204191108001.10473-100000@thread.crystalballinc.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
array get NEW seems to work fine in 7.2.1
This trigger function below works fine
CREATE OR REPLACE FUNCTION networks_sort_trigger_func() RETURNS OPAQUE AS
'
  set sort "0/"
  if { [info exists NEW(parent_id)] && $NEW(parent_id) != "" } {
    spi_exec "SELECT sp_go_up_network_tree($NEW(parent_id)) AS
parent_list"
    for { set x [expr [llength $parent_list] - 1] } { $x >= 0 } { incr x
-1 } {
       append sort "[lindex $parent_list $x]/"
    }
  }
  append sort "$NEW(network_id)/"
  spi_exec "UPDATE inv_network
            SET sort = ''$sort''
            WHERE network_id = $NEW(network_id)"
  return [array get NEW]
END;' LANGUAGE 'pltcl';
DROP TRIGGER networks_sort_trigger ON inv_network;
CREATE TRIGGER networks_sort_trigger AFTER INSERT ON inv_network
FOR EACH ROW EXECUTE PROCEDURE networks_sort_trigger_func();
But it does not use UTF-8
Darren Ferguson
On Fri, 19 Apr 2002, Tom Lane wrote:
> Yury Don <yura(at)vpcit(dot)ru> writes:
> > Hello All,
> > We have a database with koi8-r encoding, tables and fields names
> > mostly in russian, and we have a trigger function on pltcl. With postgresql 7.1 everything
> > worked well, but in 7.2 we are getting an error "utf_to_local: could
> > not convert UTF-8" in the following construction
> > foreach field [array names NEW] {
> >   if {[info exists OLD(${field})]} ....
> 
> Hmm.  Someone added code in 7.2 to support conversion between the
> database's encoding (whatever you specified with -E) and the UTF-8
> encoding that Tcl wants to use all the time.  Sounds like you've
> found a bug in that code.
> 
> > Also this error occures in any calling of NEW or OLD, for example
> > [array get NEW] also raises those error.
> 
> Do you see it *only* in references to NEW/OLD?  Can you pass the
> same data in normal parameters to a Tcl function?
> 
> 			regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
> 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2002-04-19 15:14:20 | Re: pltcl bug in 7.2? | 
| Previous Message | Tom Lane | 2002-04-19 14:32:16 | Re: pltcl bug in 7.2? |