Pull to refresh

Comments 8

Ссылка на всю строку целиком

А если имя таблицы интерферирует с другими именами/алиасами?
Думаю, речь про тот случай, когда название поля таблицы совпадает с названием самой таблицы. В таком случае запрос выведет только одно это поле. Например,

select doc
from doc


Но тогда вижу можно использовать приведение типов для получения результата из статьи:

select doc.*::doc
from doc
Да вообще по-разному можно. Можно так:
SELECT d
FROM doc AS d

А можно так:
SELECT row(*)
FROM doc

За статью спасибо, но относительно темы двойственные ощущения — с одной стороны, полезно знать особенности СУБД, с другой — использование таких фич в реальных приложениях (а не ad hoc запросах) резко увеличивает затраты на поддержку других СУБД (или миграцию на них).

Есть много приложений которые используют/поддерживает только одну СУБД и не планируют мигрировать, к тому же Postgres настолько мощная штука что вряд-ли в этом есть особый смысл, разве что кому-то нужна multimaster репликация — тут конечно пока тяжко.


Получается кстати забавно — если "особенности" использовать не рекомендуется, то зачем их вообще реализовывать?

Понятно, что случаи разные бывают.
Uber, например, показательно мигрировал с MySQL на PostgreSQL и обратно.


Я-то со своей колокольни, стараюсь избегать vendor lock, когда его можно избежать.


P.S. Реализуют, потому что кому-то нужно решать частные задачи, тем более, что СУБД open source.

Ну можно конечно использовать чистый стандарт SQL, но он не везде полностью реализован. Так что, если уж очень нужна переносимость, то придётся смотреть какие операции есть во всех БД. А это могут быть большие затраты по поддержке, да ещё и производительность просядет.
Sign up to leave a comment.