Re: [GENERAL] Using Variables in Queries

Поиск
Список
Период
Сортировка
От Igal @ Lucee.org
Тема Re: [GENERAL] Using Variables in Queries
Дата
Msg-id 91b52f16-42d1-1f21-54f6-5b07d99f7e43@lucee.org
обсуждение исходный текст
Ответ на Re: [GENERAL] Using Variables in Queries  ("David G. Johnston" <david.g.johnston@gmail.com>)
Ответы Re: [GENERAL] Using Variables in Queries  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: [GENERAL] Using Variables in Queries  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general

On 10/19/2017 8:44 AM, David G. Johnston wrote:

  ​PREPARE sqlquery AS​ SELECT * FROM products WHERE col1 LIKE $1 OR col2 LIKE $1;
 EXECUTE sqlquery('red widget');
This works, but requires `DEALLOCATE sqlquery` when you want to update it from what I've seen which is not very friendly.

 Alban's DO blocks are problematic since they are incapable of generating a result set.
Then that's a no-go for me because I definitely want a result set



 As Scott said people needing this functionality in PostgreSQL are content with using psql.
psql is very nice, but in the age of GUI it lacks a lot of stuff.  I am actually using DBeaver which I find to be an excellent  tool that works with any DBMS and can generate export/import scripts from migrating from one DMBS to another, which is what I'm after ATM.

 Adding lots of new custom syntax to pure server-side parsed SQL is a non-trivial undertaking whose need is reduced by the alternatives so described (functions, DO block, PREPARE, psql).
I still think that using server side variable is a much easier and intuitive way of doing this.  All of the alternatives have major flaws.

On 10/19/2017 8:40 AM, Pavel Stehule wrote:
There was lot of discussion about server side variables https://wiki.postgresql.org/wiki/Variable_Design, but nobody write final patch. There is not clean result if we want dynamic variables, static variables or both.
I'm not sure what is the difference between static and dynamic in this context?

p.s. Your query should be terribly slow. When I see it, I am less sure, so server side variables are good idea :)
My real query is for similarity here, so I'm testing different functions with the same value, e.g.

SELECT item_name
    , similarity('red widget', item_name)
    , similarity(item_name, 'red widget')
    , word_similarity('red widget', item_name)
    , word_similarity(item_name, 'red widget')
    , item_name <->> 'red widget'
    , item_name <<-> 'red widget'
    , 'red widget' <<-> item_name 
FROM  products
WHERE similarity('red widget', item_name) > 0.25
ORDER BY 'red widget' <<-> item_name

So each time I want to change the phrase it's a slower process than what I'm used to (think multiple-cursor in modern text editors, or a server-side variable)


Igal Sapir
Lucee Core Developer
Lucee.org



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

Предыдущее
От: "Daniel Verite"
Дата:
Сообщение: Re: [GENERAL] pgpass file type restrictions
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: [GENERAL] Using Variables in Queries