Comments 30
"Типы NUMERIC и DECIMAL теперь могут хранить числа с точностью до 38 цифр"
Может быть очень полезно при обдумывании перехода с Oracle.
На текущий момент мы не используем firebird я когда-то давно работал с ним (1.0..2.5) как по сути и клиентские приложения(клиент это что-то вроде SQL developer+утилиты самописные (java + c#) внутренние), а комментарий был про то что такая возможность появилась, особенно с учётом того что есть ненулевая вероятность что может прийти требование отказаться от использования продуктов Oracle.
p.s. для oracle number в java есть BigDecimal.
Было бы здорово увидеть материализованные представления. Честно говоря думал в 4 их добавят
Поддержка пакетных операцийОчень нужная и важная фича. Но хотелось бы не на уровне API, а на уровне SQL, то есть
insert into mytable (field1, field2) values (1,2),(3,4),(5,6),(7,8)
Так можно было бы пользоваться из любых старых компонент, а не ждать обновления клиентов, искать как в них вызвать эти API.
MERGE INTO SalesReason AS Target
USING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion'))
AS Source (NewName, NewReasonType)
ON Target.Name = Source.NewName
WHEN MATCHED THEN
UPDATE SET ReasonType = Source.NewReasonType
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, ReasonType) VALUES (NewName, NewReasonType)
Если надо обновить много строк, то сделать это можно через insert в global temporary table, видимую только в текущей транзакции. А после insert — либо
execute block as begin
for select key, val from tmp_table into :k, :v do
update mytable set val=:v where key=:k;
либо неявно триггером на insert в эту временную таблицу, задача так или иначе решается.Сегодня (с небольшим отставанием) добавлена поддержка Firebird 4 в песочнице SQLize.online
Я не знаю что там за PHP драйвер использован, наверное PDO. Но выполняю простейший запрос:
select
current_timestamp
from rdb$database
и видим:
|------------------------------------------|
| select |
| current_timestamp |
| from rdb$database |
|------------------------------------------|
| Incorrect values within SQLDA structure |
Что обозначает, что там либо fbclient не от 4.0, либо что pdo_firebird тупо до сих пор не знает типа TIMESTAMP WITH TIME ZONE
. Эхх... опять что ли придётся Pull Request пилить (((
Вышел Firebird 4.0