Pull to refresh

Comments 30

То чувство, когда только закончил перевод проекта с FB3 на PG
UFO just landed and posted this here
В чем у Вас основная сложность видится в переходе с 2.5 на 3.0?
UFO just landed and posted this here
Можно. Тут описан переход в том числе и с 2.5
UFO just landed and posted this here
То чувство, когда читал про разработку репликации в том ещё Interbase 20 лет назад, и вот оно, сделали…
Вот только не надо сравнивать внешние инструмент репликации, которые основаны на триггерах, и встроенную в ядро репликацию. Это две большие разницы.
Большая работа! Поздравления разработчикам! Ну и Денису большое спасибо за своевременную доку!
Поздравления разработчикам — Дмитрию, Владу и Александру! Денису отдельное спасибо за документацию!
Ну вот, как раз надо начинать новый проект, где очень сильно нужна репликация. Придётся быстро читать документацию. :)
Когда будут примеры работы репликации? Лучше с Pacemaker для автоматизации.
Насчёт Pacemaker не уверен. Статья про настройку обычной синхронной/асинхронной репликации будет
UFO just landed and posted this here
UFO just landed and posted this here
Не всё перечисленное требует поддержки со стороны клиентской библиотеки, админские фичи включаются через конфиг и cli. А вообще — Jaybird наиболее продвинут в плане поддержки новых фич, за ним Firebird.NET, новый Python драйвер, про Node.JS и Rust не могу сказать. Дельфийские компоненты доступа, как всегда, чуть отстанут, но догонят, естественно.

"Типы NUMERIC и DECIMAL теперь могут хранить числа с точностью до 38 цифр"

Может быть очень полезно при обдумывании перехода с Oracle.

UFO just landed and posted this here

На текущий момент мы не используем firebird я когда-то давно работал с ним (1.0..2.5) как по сути и клиентские приложения(клиент это что-то вроде SQL developer+утилиты самописные (java + c#) внутренние), а комментарий был про то что такая возможность появилась, особенно с учётом того что есть ненулевая вероятность что может прийти требование отказаться от использования продуктов Oracle.

p.s. для oracle number в java есть BigDecimal.

Очень интересна фика со встроенными криптографическими фунциями. Вот бы статью какую почитать с развернутыми примерами. А, Денис?
Счетчик транзакций уже увеличили? А то 2 млрд как-то мало на 2.5… :(
Его ещё в 3.0 увеличили. Он сейчас внутри 48 битный, наружу номер выдаётся как 64 битный

Было бы здорово увидеть материализованные представления. Честно говоря думал в 4 их добавят

Материализованные представления вещь безусловно полезная, но их функциональность можно обеспечить существующими средствами (обычная таблица + ХП), пусть и с большими затратами и менее красиво. Поэтому у них не очень большой приоритет. А вот поддержку геоданных, например, нормально без поддержке в ядре не сделать.
Поддержка пакетных операций
Очень нужная и важная фича. Но хотелось бы не на уровне API, а на уровне SQL, то есть
insert into mytable (field1, field2) values (1,2),(3,4),(5,6),(7,8)

Так можно было бы пользоваться из любых старых компонент, а не ждать обновления клиентов, искать как в них вызвать эти API.
Если уж делать, то не только для insert, а нормальный Table Value Constructor, чтобы можно было и для insert, update, delete, merge, select использовать

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 пилить (((

Спасибо за комментарий! Я решил эту проблему. Но это не снимает с вас обязанности пилить  Pull Request

Sign up to leave a comment.

Other news