SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird
Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4004] Tue, 09 January 2024 09:29 Переход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
Как оказалось в PHP драйвер pdo-firebird не поддерживает новые типы данных из Firebird 4.0.
Это видно при тестировании на ресурсе https://sqlize.online/s/Ax

Для решения этой проблемы есть два варианта.

1. Установить DataTypeCompatibility = 3.0 в firebird.conf
2. Пропатчить драйвер pdo-firebirdтак чтобы новые типы данных маппились на VARCHAR

Тут будем обсуждать второй вариант. Если есть желающие покопаться в коде драйвера welcome.
Помогу чем смогу ибо делал это уже не раз. Возможно и сам сделаю патч когда будет время
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4005 является ответом на сообщение #4004] Tue, 09 January 2024 09:32 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
Код драйвера тут https://github.com/php/php-src/tree/master/ext/pdo_firebird
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4009 является ответом на сообщение #4005] Tue, 09 January 2024 15:57 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
Это пусть спонсируют те, кому вообще нужен доступ к Firebird из пых-пыха.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4019 является ответом на сообщение #4009] Wed, 10 January 2024 03:54 Переход к предыдущему сообщениюПереход к следующему сообщению
fraks в настоящее время не в онлайне  fraks
Сообщений: 134
Зарегистрирован: June 2022
Географическое положение: Новосибирск
Senior Member
SD писал(а) Tue, 09 January 2024 19:57
Это пусть спонсируют те, кому вообще нужен доступ к Firebird из пых-пыха.
IMHO это неправильный подход, снижающий популярность FB.
В сферическом идеале, доступ к FB должен быть из всех языков Smile
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4024 является ответом на сообщение #4019] Wed, 10 January 2024 12:41 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
fraks

IMHO это неправильный подход, снижающий популярность FB.
В сферическом идеале, доступ к FB должен быть из всех языков Smile
у тебя есть свободное время для альтруизма?
у меня - нет.
возможно у кого-то имеется, потому один такой, а другой такой, и ум у него не для танцевания, а для устройства себя, для развязки свого существования, для сведения обхождения, и когда такой человек, ежели он вчёный, поднимется умом своим за тучи и там умом своим становится ещё выше Лаврской колокольни, и когда он студова глянет вниз... ©
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4028 является ответом на сообщение #4019] Wed, 10 January 2024 18:26 Переход к предыдущему сообщениюПереход к следующему сообщению
 в настоящее время не в онлайне 
Сообщений: 197
Зарегистрирован: September 2022
Senior Member
fraks писал(а) Wed, 10 January 2024 03:54
...
В сферическом идеале, доступ к FB должен быть из всех языков Smile
А каким образом, например, обеспечить доступ к int128? Например, в C++.
Тут (например) - нет.
Завязываться на какой-то конкретный компилятор? Завязаться на конкретную библиотеку? Или, например, на клиенте результаты в виде строки получать/отправлять?
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4029 является ответом на сообщение #4028] Wed, 10 January 2024 20:04 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
Тупо сделать маппинг на char/varchar. В php один фиг нумерики как строки возращаются
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4031 является ответом на сообщение #4028] Thu, 11 January 2024 01:47 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
МорскойДесант писал(а) Wed, 10 January 2024 16:26
Завязываться на какой-то конкретный компилятор?
Почему бы и нет? GCC более-менее покрывает все основные платформы.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4032 является ответом на сообщение #4024] Thu, 11 January 2024 04:14 Переход к предыдущему сообщениюПереход к следующему сообщению
fraks в настоящее время не в онлайне  fraks
Сообщений: 134
Зарегистрирован: June 2022
Географическое положение: Новосибирск
Senior Member
МП писал(а) Wed, 10 January 2024 16:41
fraks

IMHO это неправильный подход, снижающий популярность FB.
В сферическом идеале, доступ к FB должен быть из всех языков Smile
у тебя есть свободное время для альтруизма?
у меня - нет.
А при чем тут это?
Время я может быть бы нашел, но интеллектуальных ресурсов у меня нет для вкладывания в незнакомый мне инструмент.
Я про общий подход говорю, со стороны Firebird. "Мы вам впилили кучу новых фич, а то что потенциальные пользователи сервера не могут ими воспользоваться потому как нет способов доступа до этих фич - это ваши проблемы" - такой подход не способствует популяризации сервера. IMHO, в комплекте сервера должны быть биндинги ко всем популярным языкам, реализующие все фичи сервера, но в минимальном варианте, по типу UIB или может быть даже не компонентами а классами. Кому нужны компоненты - уже можно отпочковаться от этого базового функционала. И разработка этих биндингов не менее важна чем разработка самого сервера, и FF, на мой взгляд, должгна вкладывать рексурсы в это дело.

По поводу альтруизма. У меня нет возможности вложиться кодом по этому вопросу, но у меня есть возможность вложиться финансово в Firebird, что я ежегодно и делаю. Несмотря на то что в работе у меня все еще 2.5 а на тройку только пробую переходить.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4035 является ответом на сообщение #4032] Thu, 11 January 2024 15:39 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
Так, может, стоит финансово вкладываться не только в "кучу новых фич", но и в "способы доступа до этих фич"?.. Вон, ODBC драйвер же начал допиливаться как-то...

[Обновления: Thu, 11 January 2024 15:40]

Известить модератора

Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4036 является ответом на сообщение #4035] Thu, 11 January 2024 16:15 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
по ОДБЦ, там пока переход на ОО АПИ.
посмотрим, что на выходе будет.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4038 является ответом на сообщение #4036] Fri, 12 January 2024 01:39 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
А назачем? ISC API лучше на ODBC API укладывается.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4040 является ответом на сообщение #4038] Fri, 12 January 2024 12:51 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD
А назачем? ISC API лучше на ODBC API укладывается.
дык, "стильно, модно, молодёжно!" ©
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4122 является ответом на сообщение #4040] Fri, 19 January 2024 15:36 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
А зачем явно использовать новые типы при разработке БД если либы их не поддерживают? Или они вылезают неявно в неожиданном месте?
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4125 является ответом на сообщение #4122] Fri, 19 January 2024 16:53 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
avp писал(а) Fri, 19 January 2024 15:36
А зачем явно использовать новые типы при разработке БД если либы их не поддерживают? Или они вылезают неявно в неожиданном месте?
в задокументированном месте Wink
например агрегаты, ранее генераторы и т.д., и т.п.
сменился тип возвращаемого значения - библиотека должна его адекватно воспринять.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4126 является ответом на сообщение #4038] Fri, 19 January 2024 18:05 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
SD писал(а) Fri, 12 January 2024 01:39
А назачем? ISC API лучше на ODBC API укладывается.
Дим, ты код же код этого odbc драйвера видел. Там к нему руку Джим приложил и внутри кучу абстракций аля jdbc наклепал. Так что там и так объектно-ориентированный подход задействован.

Кроме того в isc API есть ряд ограничений, например на ту же длину идентификаторов. Подход в принципе верный. Первым шагом переходи на новый апи, вторым добавляем поддержку новых типов данных, данные идентификаторы, батч апи. Правда пока из второго этапа ничего не сделано.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4127 является ответом на сообщение #4126] Fri, 19 January 2024 18:31 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
дык и для легаси-АПИ новые типы не помеха.
из минусов - ограничения на размер статус-вектора и на длину идентификатора.

хотя почему нельзя было сделать новую версию XSQLDA - я лично не понимаю.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4129 является ответом на сообщение #4125] Fri, 19 January 2024 21:10 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
МП писал(а) Fri, 19 January 2024 16:53

в задокументированном месте Wink
например агрегаты, ранее генераторы и т.д., и т.п.
сменился тип возвращаемого значения - библиотека должна его адекватно воспринять.
А где это задокументировано? В RN что то не вижу таких приколов.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #4130 является ответом на сообщение #4127] Sat, 20 January 2024 01:38 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
МП писал(а) Fri, 19 January 2024 16:31

хотя почему нельзя было сделать новую версию XSQLDA - я лично не понимаю.
Можно было. Более того - можно было взять уже готовую из IB. Но партия сказала "этот АПИ заброшен", значит заброшен.
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #5191 является ответом на сообщение #4130] Wed, 10 July 2024 17:03 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
В общем запилил я поддержку новых типов в pdo_firebird

https://github.com/php/php-src/issues/14896
https://github.com/php/php-src/pull/14897

Жду одобрения и влития PR
Re: Поддержка новых типов данных из Firebird 4.0 в PHP. Драйвер pdo-firebird [сообщение #5289 является ответом на сообщение #5191] Tue, 23 July 2024 16:51 Переход к предыдущему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 329
Зарегистрирован: June 2022
Senior Member
Всё готово. В мастер ветке теперь есть поддержка INT128, DECFLOAT(16|34), NUMERIC(38, x), TIME[STAMP] WITH TIME ZONE

https://github.com/php/php-src/issues/14896
https://github.com/php/php-src/commit/00e45887fa156767652096 7de9948a88aea3fa98
Предыдущая тема: 5.0 database on RAW disk partition
Следующая тема: UIB жив?
Переход к форуму:
  


Текущее время: Fri Nov 15 02:11:12 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01282 секунд