Re: BUG #8662: psql -H and ts_headline

From: cbfgterfdy(at)zacglen(dot)net
To: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8662: psql -H and ts_headline
Date: 2013-12-20 21:12:11
Message-ID: 201312202112.rBKLCBGS015268.zacglen.com@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>> While "psql -H" is quite useful there is flaw when a query includes
>> ts_headline(). The highlighting html gets escaped along with any other html
>> special characters.
>
>How would you address that? There is no way for psql or any other
>client to know that the text data that is being returned is actually
>HTML. A proper fix would be having an HTML data type, or having
>ts_headline() return type XML.
>

Perhaps it would be better if ts_headline() returned rows or an array
giving the highlight offsets and lengths rather than attempting to
mark-up the text. However one might also have a extra function
that took the offset information and annotated the text as in
"highlight(text, ts_headline(text))"

So the fault is not with psql, it is the faulty design of ts_headline().

I have also tried using the StartSel etc options and very bad result if
StartSel value involves a space or comma. Very strange design bundling
options into a single function argument. Having to put options into
a single-quote delimited string, yet not allowing for spaces
or commas to be escaped is not very flexible.

Perhaps the options could have been passed as a HSTORE type?
Would have made a lot more sense.

In any case a myriad of options seems to indicate that what should have
been multiple functions have all been bundled into one function.

And why couldn't the option arguments have been real separate arguments?
Is there some arcane limit on the number of function arguments?
Or was line wrap broken in authors text editor?

Also, would be nice of psql could have some html escape
mechanism so that something simple like "select '<b>'||column||'</b>'"
could be made to work. Unfortunately not so simple as a single
character escape mechanism, so perhaps a special function such
as unescaped('<b>').

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Sergey Konoplev 2013-12-20 23:07:37 Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages
Previous Message Alvaro Herrera 2013-12-20 20:47:53 Re: BUG #8470: 9.3 locking/subtransaction performance regression