<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/3335/">https://reviewboard.asterisk.org/r/3335/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On March 13th, 2014, 3:52 p.m. UTC, <b>Mark Michelson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Excellent job fixing the problem!
A note to whoever ends up committing this: This bug also exists in 1.8, 12, and trunk. The 1.8 fix is exactly the same as this one. The 12 and trunk fixes will be slightly different since the update_odbc() callback takes an ast_variable list instead of va_args. The fix is still very similar though.</pre>
</blockquote>
<p>On March 14th, 2014, 9:32 p.m. UTC, <b>zvision</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think this patch could rise some regression issues. While for PostgreSQL backend it is perfectly fine, for MySQL it can change the current behavior.
With MySQL backend, setting an integer column to an empty string will result in storing a zero integer value - with this patch, if the column is nullable,
it will store a NULL value instead.
Maybe it is not a big deal, but some third-party applications reading MySQL database may start finding unexpected NULL values instead of zeros.</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">> I think this patch could rise some regression issues.
Very true. That should not be taken lightly.</pre>
<br />
<p>- wdoekes</p>
<br />
<p>On March 14th, 2014, 4:32 p.m. UTC, zvision wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By zvision.</div>
<p style="color: grey;"><i>Updated March 14, 2014, 4:32 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-23459">ASTERISK-23459</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This patch fixes setting nullable integer columns to NULL instead of an empty string, which fails for PostgreSQL, for example.
The current code is supposed to do so, but the check is broken. The patch also allows the first column in the list to be a nullable integer.
Also, the check for existence of a mandatory column checked for the first column in the list instead of the key field lookup column.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Tested by me. Use case scenario: Asterisk + res_odbc + PostgreSQL backend, SIP realtime peers + regs.
When a 'port' column in SIP regs (I assume this also applies when using sippeers only) is a nullable integer,
Asterisk tries to write an empty string here during SIP endpoint deregistration.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>http://svn.asterisk.org/svn/asterisk/branches/12/res/res_config_odbc.c <span style="color: grey">(410554)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/3335/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>