Re: Why is there a tsquery data type?

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Why is there a tsquery data type?
Дата
Msg-id 200708301540.l7UFeYC11905@momjian.us
обсуждение исходный текст
Ответ на Re: Why is there a tsquery data type?  (Gregory Stark <stark@enterprisedb.com>)
Ответы Re: Why is there a tsquery data type?
Re: Why is there a tsquery data type?
Список pgsql-hackers
Gregory Stark wrote:
> "Bruce Momjian" <bruce@momjian.us> writes:
> 
> > There is no question things would be clearer with only one text search
> > data type.  The only value I can see to having a tsquery data type is
> > that you can store a tsquery value in a column, but why would that be
> > much better than just storing it in a TEXT field?
> 
> When you try storing a tsquery in a column does it alert you if you have an
> invalid syntax at that point? Storing it as text would mean not finding out
> until you try to use the query.

Yes it does check syntax:
test=> select 'lkjadsf kjfdsa'::tsquery;ERROR:  syntax error in tsearch query: "lkjadsf kjfdsa"

A larger question is how many people store queries in the database to
make it worth the complexity.

> Is converting a text query into the internal format faster or less memory
> intensive than converting text into the internal representation? When you run
> a query like "WHERE '...' @@ col" if there wasn't a tsquery data type then
> '...' would have to be parsed over and over again for each row.

No, internally the TEXT string would be converted to something the
system could deal with for that query, which is probably what 99% of all
queries are going to do anyway by calling to_tsquery().

--  Bruce Momjian  <bruce@momjian.us>          http://momjian.us EnterpriseDB
http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Gabor Szabo"
Дата:
Сообщение: Re: testing more than one configuration on a single build machine
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Advice on MyXactMade* flags, MyLastRecPtr, pendingDeletes and lazy XID assignment