[asterisk-bugs] [Asterisk 0015045]: [patch] Fetching a NULL value from database returns "NULL" string
Asterisk Bug Tracker
noreply at bugs.digium.com
Fri May 8 08:40:54 CDT 2009
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=15045
======================================================================
Reported By: chris-mac
Assigned To:
======================================================================
Project: Asterisk
Issue ID: 15045
Category: Addons/app_addon_sql_mysql
Reproducibility: always
Severity: major
Priority: normal
Status: new
Asterisk Version: SVN
Regression: No
SVN Branch (only for SVN checkouts, not tarball releases): 1.6.1
SVN Revision (number only!): 889
Request Review:
======================================================================
Date Submitted: 2009-05-06 15:25 CDT
Last Modified: 2009-05-08 08:40 CDT
======================================================================
Summary: [patch] Fetching a NULL value from database returns
"NULL" string
Description:
How to reproduce (asumming SQL query "SELECT some_null_col
FROM table WHERE where id = 1" returns NULL):
extensions.conf:
exten => 601,1,MYSQL(Connect connid1 ${DBHOST} ${DBUSER} ${DBPASS}
${DBNAME})
exten => 601,n,MYSQL(Query resultid1 ${connid1} SELECT some_null_col
FROM table WHERE where id = 1)
exten => 601,n,MYSQL(Fetch fetchid1 ${resultid1} X-DB-null)
exten => 601,n,MYSQL(Clear ${resultid1})
exten => 601,n,MYSQL(Disconnect ${connid1})
exten => 601,n,NoOp(X-DB-null: ${X-DB-null})
exten => 601,n,NoOp(ISNULL = ${ISNULL(${X-DB-null})})
console:
-- Executing [601 at test:1] MYSQL("SIP/OpenSER-082cf100", "Connect
connid1 mysql-ro asterisk pass1 test") in new stack
-- Executing [601 at test:2] MYSQL("SIP/OpenSER-082cf100", "Query
resultid1 1 SELECT some_null_col FROM table WHERE where id = 1") in
new stack
-- Executing [601 at test:3] MYSQL("SIP/OpenSER-082cf100", "Fetch
fetchid1 2 X-DB-null") in new stack
-- Executing [601 at test:4] MYSQL("SIP/OpenSER-082cf100", "Clear 2")
in new stack
-- Executing [601 at test:5] MYSQL("SIP/OpenSER-082cf100",
"Disconnect 1") in new stack
-- Executing [601 at test:6] NoOp("SIP/OpenSER-082cf100", "X-DB-null:
NULL") in new stack
-- Executing [601 at test:7] NoOp("SIP/OpenSER-082cf100", "ISNULL =
0") in new stack
So looks like NULL value fetched from a MySQL table is converted into a
'NULL' string and ISNULL function returns 0.
======================================================================
----------------------------------------------------------------------
(0104450) atis (reporter) - 2009-05-08 08:40
http://bugs.digium.com/view.php?id=15045#c104450
----------------------------------------------------------------------
dimas, that un-setting might be a good start, but i guess ISNULL should be
modified (or some new function created) to distinguish in dialplan between
"" and not set.
Of course, my dialplan won't break, i somehow added or check for empty
string :)
chris-mac - that's what i meant in initial comment - having database
contain string "NULL" is much less likely than having "".
Issue History
Date Modified Username Field Change
======================================================================
2009-05-08 08:40 atis Note Added: 0104450
======================================================================
More information about the asterisk-bugs
mailing list