Re: Problems with question marks in operators (JDBC, ECPG, ...)
От | Bruno Harbulot |
---|---|
Тема | Re: Problems with question marks in operators (JDBC, ECPG, ...) |
Дата | |
Msg-id | CANPVNBYbdLMKaQjAQLBzVLTX_or2Dre1arz_ZMHFA2DtzH-X7w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Problems with question marks in operators (JDBC, ECPG, ...) (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Problems with question marks in operators (JDBC, ECPG, ...)
|
Список | pgsql-hackers |
<div dir="ltr"><br /><div class="gmail_extra"><br /><div class="gmail_quote">On Tue, May 19, 2015 at 7:22 PM, Tom Lane <spandir="ltr"><<a href="mailto:tgl@sss.pgh.pa.us" target="_blank">tgl@sss.pgh.pa.us</a>></span> wrote:<br /><blockquoteclass="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><spanclass="">Mike Blackwell <<a href="mailto:mike.blackwell@rrd.com">mike.blackwell@rrd.com</a>>writes:<br /> > See for example<br /> > <a href="http://docs.oracle.com/cd/B19306_01/text.102/b14218/cqoper.htm#i997330" target="_blank">http://docs.oracle.com/cd/B19306_01/text.102/b14218/cqoper.htm#i997330</a>,<br/> > Table 3-1, third row,showing the precedence of '?'. Further down the<br /> > page, under "Fuzzy" see "Backward Compatibility Syntax".<br/><br /></span>If I'm reading that right, that isn't a SQL-level operator but an operator<br /> in their textsearch query language, which would only appear in SQL<br /> queries within string literals (compare tsquery's query operatorsin PG).<br /> So it wouldn't be a hazard for ?-substitution, as long as the substituter<br /> was bright enoughto not change string literals.<br /><br /> regards, tom lane<br /></blockquote></div><br /></div><divclass="gmail_extra">That's how I read it too. I've tried this little test: <a href="http://sqlfiddle.com/#!4/7436b/4/0">http://sqlfiddle.com/#!4/7436b/4/0</a><br/><br />CREATE TABLE test_table (<br /> id INTEGER PRIMARY KEY,<br /> name VARCHAR(100)<br />);<br /><br />INSERT INTO test_table (id, name) VALUES (1, 'Nicole');<br/>INSERT INTO test_table (id, name) VALUES (2, 'Nicholas');<br />INSERT INTO test_table (id, name) VALUES (3,'Robert');<br />INSERT INTO test_table (id, name) VALUES (4, 'Michael');<br />INSERT INTO test_table (id, name) VALUES(5, 'Nicola');<br /><br />CREATE INDEX idx_test_table_name ON test_table(name) INDEXTYPE IS CTXSYS.CONTEXT;<br /><br/>SELECT * FROM test_table WHERE CONTAINS(name, '?Nicolas', 1) > 0;<br /><br /><br /></div><div class="gmail_extra">Fuzzymatching works indeed, but the question mark is part of the literal (similarly to % when using LIKE).<br/><br /></div><div class="gmail_extra">Best wishes,<br /><br /></div><div class="gmail_extra">Bruno.<br /></div><divclass="gmail_extra"><br /></div></div>
В списке pgsql-hackers по дате отправления: