metaclass: (Default)
[personal profile] metaclass
Внезапно: жизнь заставила узнать как правильно сравнивать поля в базах данных на равенство/неравенство:
A IS NOT DISTINCT FROM B
A IS DISTINCT FROM B

Date: 2011-03-12 11:56 am (UTC)
From: [identity profile] avnik.livejournal.com
А оно вне триггеров употребляется? Или это что-то firebird specific? Не поленился посмотреть внутрь SQLAlchemy -- DISTINCT только в запросах употребляется, и в рефлекшне от dialects.firebird

Date: 2011-03-12 12:02 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Обычный оператор сравнения. Судя по всему, существует в Postgresql, DB2 и Firebird.

Date: 2011-03-12 12:03 pm (UTC)
From: [identity profile] metaclass.livejournal.com
И вообще это ANSI SQL стандарт судя по всему.

Date: 2011-03-12 12:12 pm (UTC)
From: [identity profile] avnik.livejournal.com
SA триггеры не генерит, а в запросах делает (видимо) только DISTINCT в селектах на колонки. Там кодогенератор из собственного DSL в SQL с кешированием и прочим адом. Я погрепал DISTINCT и посмотрел вокруг (аккуратно -- чтобы мозг не расплавился)

Date: 2011-03-12 12:13 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Тут слово DISTINCT совершенно в разных контекстах применяется, в плане множеств(в запросах) и в плане значений (у меня).

Date: 2011-03-12 12:16 pm (UTC)
From: [identity profile] avnik.livejournal.com
Ну потому у меня и случился разрыв шаблона, и я полез задавать вопросы и копаться в потрохах SA

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 21st, 2025 03:08 am
Powered by Dreamwidth Studios