В письме от Thu, 03 Nov 2011 22:22:43 +0400, Dmitry Yemanov <[email protected]> сообщал:

ФБ всегда сообщает о контексте ошибки (строка/столбец), если это произошло в процедуре. Если это не так - в трекер.

Ну сообщает.

Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Floating-point divide by zero. The code attempted to divide a floating-point value by zero.
At procedure 'DO_CALCULATIONS' line: 13, col: 2.



А с какими данными это произошло?
В какой строке в каком столбце какой таблицы ???


будущем. Для нормальной диагностики нужен исходный код проблемного места. Из дерева выполнения (или даже BLR) реконструировать его - мягко

а план запроса можно построить по BLR ?




вот я соотв. кусок из процедуры забиваю напрямую:

select * from VIEW_VECTOR_COSINES

Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Floating-point divide by zero. The code attempted to divide a floating-point value by zero.


PLAN JOIN (VECTOR_COSINES P NATURAL, VECTOR_COSINES Q INDEX (PK_VECTORS))

План любопытный - показываются вьюхи, а не таблицы - но при этом показывают PK от таблицЫ, а не от вьюх.



Более сложный запрос:
 merge into metrics m
   using vector_angles_deg v on m.idx=v.metrics_idx
   when matched then update set m.turn = v.angle;

Sorry, plan is unavailable for this statement...

Ну ладно, хемуль с ним с планом, хотя раньше был, кажется.
Но зато есть статистика - а в статистике уже показаны не вьюхи, а таблицы!!!


Так вот, зная таблицы и зная внутрение id каждой строки (RDB$ что-то там, не помню уже), движок же может для каждой таблицы выбрать поля, входящие в PK или уникакльные индексы, и для этих полей прочитать и сообщить значения ?

В итоге это помогло бы точно определить на какие данных запрос сломался.
И столбец, и строки


Operations
------------------------------------------------
Read   : 0
Writes : 0
Fetches: 51
Marks  : 3


Enchanced Info:
+--------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts | Backouts | Purges | Expunges | | | Total | reads | reads | | | | | | |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| METRICS| 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | VECTORS| 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+



--
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/

Ответить