|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
проверь ещё вариант, когда :параметры и 'квотированные строки' находится внутри комментария. стандартный парсер IBX криво это обрабатывал. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 12:10 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Мимопроходящий, там пока обработки комментариев нет. Dorin Marcoci, Про строки я проглядел. Там всё нормально. Хотя для комментариев такое простое решение не подойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 12:40 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
обработка комментариев ничуть не сложнее строк. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 12:45 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Dorin MarcociНасчет execute block и обработка параметровВозможно, будет полезным посмотреть на аналогичный код из поддержки EXECUTE STATEMENT: https://github.com/FirebirdSQL/firebird/blob/master/src/jrd/extds/ExtDS.cpp см. Statement::preprocess() и getToken() строки с 1001 по 1240 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 12:55 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Влад, кстати планов поддержки именнованных парамов нету? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 13:27 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Dorin MarcociВлад, кстати планов поддержки именнованных парамов нету? :)Никто этого не просил, насколько я помню :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 14:24 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
hvlad, было такое пожелание, но автора обругали и сказали мол на фиг не надо http://www.sql.ru/forum/682148/rasshirenie-parsera-fb-obsuzhdenie ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 15:10 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 8 декабря 2016 г. 15:18:10: Симонов Денис> было такое пожелание, но автора обругали и сказали мол на фиг не надоникто его там не ругал. DS, как обычно, шапками кидался надувая щеки. а остальным было пофиг. (и мне тоже) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 15:19 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
МимопроходящийDS, как обычно, шапками кидался надувая щеки. а остальным было пофиг. Ну, тогда я наивно полагал, что если оградить ядерных разработчиков от излишних фичереквестов, они сделают сервер лучше, надёжнее, быстрее. Сейчас моё мнение изменилось, но, как ни странно, основные аргументы остались прежними: у ядерных разработчиков нет на это времени, а остальным, кто теоретически мог бы это сделать, включая меня, оно нафиг не сдалось. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 16:09 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Кто-нибудь пробовал собирать это расширение на linux из исходников? Я правильно понимаю, что нужно будет собирать всё php и одним расширением мне не обойтись? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 04:12 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Зря вопрос задал. Оказывается все предельно просто. Если кому вдруг понадобится, то процесс следующий: git clone репозитория php идем в каталог расширения pdo_firebird phpize ./configure make sudo make install ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 05:08 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Начал тестировать fb3 с поправленным pdo_firebird на своем проекте. Ошибка с RETURNING действительно ушла в большинстве мест. Но один запрос все еще ругается, правда теперь с другой ошибкой: General error: -501 Attempt to reclose a closed cursor . The SQL statement executed was: UPDATE TM_MAIL SET READ_DATE = CURRENT_TIMESTAMP WHERE IDTM_MAIL = :IDTM_MAIL RETURNING READ_DATE ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 07:24 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Сделал минимальный пример Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Комментирование строки "$S->closeCursor();" убирает Exception, но так как pdo_firebird используется в проекте через Yii-фреймворк, то это не устраняет проблем конечного приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 10:03 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Павел ИшенинКомментирование строки "$S->closeCursor();" убирает Exception, но так как pdo_firebird используется в проекте через Yii-фреймворк, то это не устраняет проблем конечного приложения.Каких проблем? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 10:37 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Павел, поведение правильное. В 3.0 "returning" не открывает курсор, так как возвращается ровно одна запись. Получается уже нечего закрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 10:40 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Спасибо. Если поведение правильное, то значит нужно править в приложении или Yii. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 10:57 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Павел, спасибо и вам, это наводило ны мысль и поимки бага что два последовательных стэйтментов с "returning" не работали правильно. Уже тестировал и фиксил локально. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 11:25 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Dorin Marcoci, всеже мне кажется в pdo_firebird заложена логика чтобы не закрывать курсор в случае ненадобности. Вот код закрытия и он проверяет что S->cursror_open: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
А вот кусок кода, который этот cursor_open выставляет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Таким образом firebird_stmt_execute обладая информацией о типе запроса, выставляет флаг опираясь на другие факторы. Полагаю, что S->cursor_open не нужно выставлять в true для запросов insert, update, delete даже если они возвращают столбец. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 12:31 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Курсор может быть только для isc_info_sql_stmt_select и isc_info_sql_stmt_select_for_upd ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 12:41 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
hvladКурсор может быть только для isc_info_sql_stmt_select и isc_info_sql_stmt_select_for_upd И то не всегда. Поэтому тщатильнее надо с установкой этого флага. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 12:47 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
hvlad, Спасибо, это действительно решает проблему драйвера и Yii без правок последнего. Вот вся правка: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 12:54 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Павел, код закрытия правильный. Там неправильно инициализировался S->cursor_open в firebird_stmt_execute(). Раньше пологалось что если есть столбцы (out_sqlda.sqln) то это прямо cursor_open. А при синглетонов получается что столбцы есть, а курсора нету :) Вот фикс: https://github.com/php/php-src/pull/2241/commits/6b5dc90efa75c2785d6078b94521ccf1e16ea1c5 Влад, спасибо, учтем. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 12:54 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Павел, в твой фикс уже exhausted не будет правильный. Думаю наличие столбцов и исключение синглетонов быстро и достаточно чтобы определить наличие курсора. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 13:00 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Dorin MarcociПавел, в твой фикс уже exhausted не будет правильный. Думаю наличие столбцов и исключение синглетонов быстро и достаточно чтобы определить наличие курсора. Код: plaintext 1.
У меня запрос update, следовательно S->statement_type != isc_info_sql_stmt_exec_procedure. При этом видимо S->out_sqlda.sqln выдает 1. Следовательно твой фикс будет продолжать выставлять cursor_open в true. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 13:11 |
|
|
start [/forum/topic.php?fid=40&msg=39367615&tid=1559821]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 400ms |
0 / 0 |