|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
Два вопроса, связанных с методами работы с контекстными переменными в FB 3.0. 1. Длина имени переменной. По доке она ограничена длиной 80 символов. По факту можно присвоить и 100 символов. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Возвращается число 100. Но попытка открыть таблицу мониторинга приводит к исключению: Код: sql 1.
Код: plaintext 1. 2. 3. 4.
2. Длина значения переменной. В руководстве написано: Код: plaintext 1.
А таблица MON$CONTEXT_VARIABLES говорит о том, что это не так: Код: sql 1. 2. 3. 4. 5. 6.
Проверяем: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Выборка из таблицы мониторинга работает: Код: sql 1.
Но использование в запросе приводит к ошибке: Код: sql 1.
Код: plaintext 1. 2. 3. 4.
Вопрос Владу - написать об этих проблемах в трекер? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 02:21 |
|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
Изначально RDB$GET/SET были встроенными в сервер UDF и их метаданные описывались в RDB$FUNCTIONS/RDB$FUNCTION_ARGUMENTS. И там была прописана длина 80 символов. Оттуда оно перекочевало в таблицы мониторинга. После чего RDB$GET/SET были переделаны на нативные серверные функции и ограничение испарилось (ибо в коде оно никогда и не проверялось, оно было чисто декларативное). А в мониторинге все осталось как есть. В трекер, наверное, есть смысл занести. Но надо решить - объявлять его в мониторинге длиной 32К или ввести какой-то явный лимит на имя и придерживаться его и в RDB$SET_CONTEXT тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 09:00 |
|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
dimitr, кстати в 3.0 и 4.0 есть вот такое README.context_variables2... Declared as: DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT VARCHAR(80), VARCHAR(80) RETURNS VARCHAR(255) FREE_IT; DECLARE EXTERNAL FUNCTION RDB$SET_CONTEXT VARCHAR(80), VARCHAR(80), VARCHAR(255) RETURNS INTEGER BY VALUE; ... мне кажется оно сейчас лишнее и просто перекочевало из 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 09:34 |
|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
Симонов Денис, README редко кто переписывает от версии к версии :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 22:15 |
|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
dimitrили ввести какой-то явный лимит на имя и придерживаться его и в RDB$SET_CONTEXT тоже Домен завести, явно именованный системный домен, в нём и лимит будет. Сегдоня один, а завтра, если понадобится ушиpить, другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 19:15 |
|
RDB$SET_CONTEXT и RDB$GET_CONTEXT
|
|||
---|---|---|---|
#18+
Arioch, не нужен он теперь. Функция встроенная ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 19:45 |
|
|
start [/forum/topic.php?fid=40&msg=39712001&tid=1560963]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 438ms |
0 / 0 |