|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
В схеме А определена функция f1, которая может вызываться из функций (возможно с одинаковыми наименованиями) в других схемах. Можно ли внутри f1 определить из какой схемы сделан вызов, не передавая никаких дополнительных параметров? GET DIAGNOSTICS в PG_CONTEXT возвращает только имена функций без указания схем ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 12:54 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Попробуйте вызвать current_schema() ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 13:16 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Guzya, current_schema не то, что нужно. При вызове C->B->A.f1 current_schema вернёт C, а мне надо получить B ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 15:42 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Kr_Yury, У меня PG_CONTEXT вместе с именем схемы выдает: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
А какая версия PostgreSQL? У меня 12. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 16:03 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
У меня PostgreSQL версия 10. PG_CONTEXT возвращает только имена функций без указания схем ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2020, 18:04 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Kr_Yury У меня PostgreSQL версия 10. PG_CONTEXT возвращает только имена функций без указания схем а у вас эти функции в search_path текущем или нет? если нет - то должно писать с схемой... если да - то очень странная задача тогда... и так ясно что из search_path вызывалось. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2020, 18:50 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Kr_Yury У меня PostgreSQL версия 10. PG_CONTEXT возвращает только имена функций без указания схем Перепроверил на 10.5. Всё ровно также как и в моем предыдущем примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2020, 22:19 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
PG_CONTEXT не возвращает имена текущей схемы и public. Другие схемы возвращает. И это не зависит от того включена ли схема в путь поиска. В общем я удачно выбрал схемы для тестирования ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 16:29 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
И даже ещё не так. Текущая схема не прописывается только если вызывается функция текущей схемы. То есть, если функция текущей схемы располагается наверху стека. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 16:45 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Kr_Yury, Хм, действительно, public не возвращает. А что имеется в виду под "текущей" схемой (с учетом что это не зависит от search_path)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 16:50 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Павел Лузанов, под текущей я подразумеваю схему, которую возвращает current_schema. Да в search_path она первая. Независимость от search_path в следующем: public может быть прописана в search_path, либо не прописана в search_path, а задана явно в вызове функции, но PG_CONTEXT её не показывает. Другие схемы могут быть прописаны в search_path, либо не прописаны в search_path, а заданы явно в вызове функции, и PG_CONTEXT их показывает в любом случае ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 17:32 |
|
Можно ли узнать схему из которой вызывается функция
|
|||
---|---|---|---|
#18+
Kr_Yury, В итоге, как я понял, схема public не показывается в PG_CONTEXT команды GET DIAGNOSTICS. Не показывается вне зависимости от того, указана она явно или найдена в search_path. В таком случае отсутствие схемы можно считать признаком того, что это public. Хотя можно и в рассылку написать вопрос так ли было задумано. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 19:38 |
|
|
start [/forum/topic.php?fid=53&fpage=23&tid=1994494]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 152ms |
0 / 0 |