On Wednesday 23 November 2005 06:55, Rick Schumeyer wrote: > I apologize if I'm being dense, but I'm not completely following the > explanation. It is true that my pg_ts_cfg.locale is set to en_US.UTF-8. > > It was my understanding that specifying "default" as in > That takes the locale that is specified in the tsearch2 configuration called "default"; take a look at this : ftstest=# select * from pg_ts_cfg; ts_name | prs_name | locale -----------------+----------+-------------- default | default | C default_russian | default | ru_RU.KOI8-R simple | default | custom | default | If you don't have a record in that table that matches the server encoding (en_US.UTF-8), you need to create a new configuration to use that locale. That's all describe in the link I sent before. If you have a configuration you always want to use you can just switch to that configuration. If you do something like this : ftstest=# select set_curcfg('simple'); set_curcfg ------------ (1 row) ftstest=# select to_tsvector('simple', 'a simple test'); to_tsvector --------------------------- 'a':1 'test':3 'simple':2 (1 row) ftstest=# select to_tsvector('a simple test'); to_tsvector --------------------------- 'a':1 'test':3 'simple':2 (1 row) ftstest=# select to_tsvector('default', 'a simple test'); to_tsvector -------------------- 'test':3 'simpl':2 (1 row) The second example does not specify a configuration, but because you set in the set_curcfg statement it knows to use the "simple" configuration. > UPDATE t SET idxB=to_tsvector('default', b); > This forces a configuration called "default" > UPDATE t SET idxB=to_tsvector(b); -- no 'default' > This doesn't tell it which configuration to use, so it tries to find one that matches your locale (en_US.UTF-8). There probably isn't one in pg_ts_cfg, so it gives the error. hth, Andy