про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry


С пятницей.

Вспоминил про одну старую фичу. Которую я, по злобе душевной,  заныкал в 
ожиданиях исправления Адрианой багов с ICU-чарсетами.


База на IB4.0
Клиент FB2.5

Запрос
---
select up1.rdb$user,
up1.rdb$grantor,
up1.rdb$relation_name,
up1.rdb$field_name,
up1.rdb$privilege,
up1.rdb$grant_option,
up1.rdb$user_type,
0
from rdb$user_privileges up1
where ((up1.rdb$field_name is not null) and (up1.rdb$field_name''))

union all
select up2.rdb$user,
up2.rdb$grantor,
up2.rdb$relation_name,
rf2.rdb$field_name,
up2.rdb$privilege,
up2.rdb$grant_option,
up2.rdb$user_type,
1
from rdb$user_privileges up2
join rdb$relation_fields rf2
on (up2.rdb$relation_name=rf2.rdb$relation_name and
((up2.rdb$field_name is null) or up2.rdb$field_name=''))
---

Выполняем его в IBE и делаем выборку всех записей (Fetch ALL)

Получаем срабатывание assert-а
// We must receive isc_req_sync as we did fetch after EOF
fb_assert(statement-haveException() == isc_req_sync);

 msvcr80d.dll!_NMSG_WRITE(int rterrnum=10)  Line 198 C
 msvcr80d.dll!abort()  Line 59 + 0x7 bytes C
 gds32.dll!fb_abort()  Line 35 + 0x8 bytes C++
gds32.dll!clear_stmt_que(rem_port * port=0x028a6f10, int * 
user_status=0x0039bd3c, Rsr * statement=0x028a119c)  Line 4853 C++
 gds32.dll!batch_dsql_fetch(rem_port * port=0x028a6f10, rmtque * 
que_inst=0x028a0ad0, int * user_status=0x0039c160, unsigned short id=5) 
Line 5006 + 0x11 bytes C++
 gds32.dll!receive_queued_packet(rem_port * port=0x028a6f10, int * 
user_status=0x0039c160, unsigned short id=5)  Line 6231 + 0x1b bytes C++
 gds32.dll!REM_fetch(int * user_status=0x0039c160, Rsr * * 
stmt_handle=0x028a100c, unsigned short blr_length=0, unsigned char * 
blr=0x028a0d60, unsigned short msg_type=0, unsigned short msg_length=158, 
unsigned char * msg=0x028a0cac)  Line 1842 + 0x15 bytes C++
 gds32.dll!isc_dsql_fetch_m(int * user_status=0x0039c160, void * * 
stmt_handle=0x04f2d8a8, unsigned short blr_length=45, char * blr=0x028a0d60, 
unsigned short msg_type=0, unsigned short msg_length=158, char * 
msg=0x028a0cac)  Line 3139 + 0x53 bytes C++
 gds32.dll!isc_dsql_fetch(int * user_status=0x0039c160, void * * 
stmt_handle=0x04f2d8a8, unsigned short dialect=1, const XSQLDA * 
sqlda=0x04fda9a0)  Line 3021 + 0x3a bytes C++
 _IBProvider_x3_d.dll!ib_v5::t_ib_statement_v5::fetch(db_obj::t_db_row * 
const row=0x0454df28)  Line 647 + 0x4f bytes C++


здесь gds32.dll - это переименованный fbclient.dll


В трекер писать?

Коваленко Дмитрий. 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Dmitry Yemanov


Kovalenko Dmitry wrote:


В трекер писать?


Нафиг. В реальной жизни бага не стоит и ломанного яйца.


--
Дмитрий Еманов



Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Khorsun Vlad


Kovalenko Dmitry ...


С пятницей.

Вспоминил про одну старую фичу. Которую я, по злобе душевной,  заныкал в 
ожиданиях исправления Адрианой багов с ICU-чарсетами.

База на IB4.0
Клиент FB2.5

...

Получаем срабатывание assert-а
// We must receive isc_req_sync as we did fetch after EOF
fb_assert(statement-haveException() == isc_req_sync);

...


В трекер писать?


   В сад, ибо

а) бага (или просто другое поведение) в IB4, который не вернул isc_req_sync
б) в релизном коде ты этого не почуствуешь (у тебя debug build)
в) а что такое IB4.0 ?

--
Хорсун Влад 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry





в) а что такое IB4.0 ?


+ 1024

Дейсвительно, шо такое IB ? Часом не сокращение от имени вражеского
программного продукта InterBase, разработчики которого присвоили
кодировкам чарсетов коды в системных таблицах, отличные от наших ?


Между нами девочками, я узнал про это самым последним. Хотя поддержку 
чарсетов тестировал и там и там. Был удивлен, узнав что оказывается там 
какие-то конфликты есть.



Дык какого куя мы должны поддерживать древние (не, не древние -
ископаемые) версии вражеского продукта ?


Не, ну вы конечно можете этого не делать. И не делаете. А мне - это пока 
интересно.


И, что радует, мне не нужно согласовывать свои интересы с кем-то :-)

Коваленко Дмитрий. 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Dmitry Yemanov


Kovalenko Dmitry wrote:


А мне - это пока интересно.


Слово пока утешает. Некрофилы нам не нужны :-)


--
Дмитрий Еманов



Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry





А мне - это пока интересно.


Слово пока утешает. Некрофилы нам не нужны :-)


Ничего ты не понимаешь в колбасных обрезках - это современная археология :)

Коваленко Дмитрий. 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Dmitry Yemanov


Kovalenko Dmitry wrote:


это современная археология :)


  ...
  Меня ж проклятый фараон Рамзес четвёртый,
  Схватив за шкирку в тёмный угол потащил,
  ...

(с) СГ

usus :-)))


--
Дмитрий Еманов