rdb$set_context in stored proc NULL-s the context value
-------------------------------------------------------
Key: CORE-3613
URL: http://tracker.firebirdsql.org/browse/CORE-3613
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 2.5.0
Reporter: Attila Molnár
Priority: Minor
Hi!
I want to use stored procedures for context read/write to hide database
dependent implementation of the context variable usage, so I created the next
two SP. The getter works fine, but the setter sets the context value to NULL.
CREATE OR ALTER PROCEDURE context_set (
namespace VARCHAR(80),
variablename VARCHAR(80),
context_value VARCHAR(255))
RETURNS (
existed INTEGER)
AS
BEGIN
context_value = NULL;
namespace =
CASE namespace
WHEN 'GLOBAL' THEN 'SYSTEM'
WHEN 'CONNECTION' THEN 'USER_SESSION'
WHEN 'TRANSACTION' THEN 'USER_TRANSACTION'
ELSE namespace
END;
SELECT rdb$set_context(TRIM(:namespace), TRIM(:variablename), :context_value)
FROM rdb$database
INTO existed;
SUSPEND;
END
CREATE OR ALTER PROCEDURE context_get (
namespace VARCHAR(80),
variablename VARCHAR(80))
RETURNS (
context_value VARCHAR(255))
AS
BEGIN
context_value = NULL;
namespace =
CASE namespace
WHEN 'GLOBAL' THEN 'SYSTEM'
WHEN 'CONNECTION' THEN 'USER_SESSION'
WHEN 'TRANSACTION' THEN 'USER_TRANSACTION'
ELSE namespace
END;
SELECT rdb$get_context(TRIM(:namespace), TRIM(:variablename))
FROM rdb$database
INTO context_value;
SUSPEND;
END
--set via direct sql
SELECT rdb$set_context('USER_SESSION', 'USER', 'X')
FROM rdb$database
--get via direct sql : ok
SELECT rdb$get_context('USER_SESSION', 'USER')
FROM rdb$database
--get via procedure : ok
SELECT *
FROM context_get('USER_SESSION', 'USER')
--set via procedure
SELECT *
FROM context_set('USER_SESSION', 'USER', 'Y')
--get via direct sql : not ok
SELECT rdb$get_context('USER_SESSION', 'USER')
FROM rdb$database
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel