2012-07-12

OldSetClauseSemantics w Firebird 3.0

Ta wiadomość dotyczy szczegółów działania instrukcji SQL:
UPDATE Tabela SET PoleA = PoleB, PoleB = PoleA
W wersjach Firebird wcześniejszych niż 2.5 serwer wykonywał podstawienia w kolejności wymienionej w instrukcji. Nowa wartość kolumny była natychmiast dostępna. Takie działanie nie było zgodne ze standardem SQL.

Począwszy od wersji Firebird 2.5 interpretacja powyższej instrukcji zmieniła się na zgodną ze standardem SQL. Podczas wszystkich przypisań występujących w instrukcji używana jest stara wartość pól. W efekcie powyższa instrukcja spowoduje zamianę wartości pomiędzy poszczególnymi polami.

W Firebird 2.5 można przywrócić dotychczasową interpretację powyższej instrukcji SQL. W tym celu w pliku konfiguracyjnym serwera Firebird należało zdefiniować parametr
OldSetClauseSemantics = 1
Ten parametr został wprowadzony tymczasowo, dla zachowania zgodności ze starszymi wersjami Firebird. W Firebird 3.0 powyższy parametr zostanie usunięty.

Brak komentarzy:

Prześlij komentarz