<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    this patch is also good in general, so I will apply it. Can you send
    it as attachment? When pasted inline in the email, the whitespaces
    are getting broken and patch is not easy to apply.<br>
    <br>
    Thanks,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 04/09/14 11:52, Luis Azedo wrote:<br>
    </div>
    <blockquote
cite="mid:CAEvFzR8aMSHDzJG1K5v3+tM7WFAE5G9ZcX_xxz2xTS-VL_07yg@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Daniel,
        <div><br>
        </div>
        <div>the insert contact sets the columns for which there is not
          info to null.</div>
        <div>i propose not to include those columns in the insert. </div>
        <div>this way is compatible with dbtext module.</div>
        <div><br>
        </div>
        <div>Best<br>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>
            <div>diff --git a/modules/usrloc/ucontact.c
              b/modules/usrloc/ucontact.c</div>
            <div>index eeee451..3bfdb65 100644</div>
            <div>--- a/modules/usrloc/ucontact.c</div>
            <div>+++ b/modules/usrloc/ucontact.c</div>
            <div>@@ -476,131 +476,125 @@</div>
            <div> <span class="" style="white-space:pre"> </span>return
              -1;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div> </div>
            <div>
              -<span class="" style="white-space:pre"> </span>keys[0] =
              &user_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[1]
              = &contact_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[2]
              = &expires_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[3]
              = &q_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[4]
              = &callid_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[5]
              = &cseq_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[6]
              = &flags_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[7]
              = &cflags_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[8]
              = &user_agent_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[9]
              = &received_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[10]
              = &path_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[11]
              = &sock_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[12]
              = &methods_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[13]
              = &last_mod_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[14]
              = &ruid_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[15]
              = &instance_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[16]
              = &reg_id_col;</div>
            <div>-<span class="" style="white-space:pre"> </span>keys[17]
              = &domain_col;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[0]
              = &user_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[0].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[0].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[0].val.str_val.s
              = _c->aor->s;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[0].val.str_val.len
              = _c->aor->len;</div>
            <div> </div>
            <div>
              +<span class="" style="white-space:pre"> </span>keys[1] =
              &contact_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[1].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[1].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[1].val.str_val.s
              = _c->c.s; </div>
            <div> <span class="" style="white-space:pre"> </span>vals[1].val.str_val.len
              = _c->c.len;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[2]
              = &expires_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[2].type
              = DB1_DATETIME;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[2].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[2].val.time_val
              = _c->expires;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[3]
              = &q_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[3].type
              = DB1_DOUBLE;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[3].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[3].val.double_val
              = q2double(_c->q);</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[4]
              = &callid_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[4].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[4].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[4].val.str_val.s
              = _c->callid.s;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[4].val.str_val.len
              = _c->callid.len;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[5]
              = &cseq_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[5].type
              = DB1_INT;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[5].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[5].val.int_val
              = _c->cseq;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[6]
              = &flags_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[6].type
              = DB1_INT;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[6].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[6].val.bitmap_val
              = _c->flags;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[7]
              = &cflags_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[7].type
              = DB1_INT;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[7].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[7].val.bitmap_val
              = _c->cflags;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[8]
              = &user_agent_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[8].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[8].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[8].val.str_val.s
              = _c->user_agent.s;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[8].val.str_val.len
              = _c->user_agent.len;</div>
            <div> </div>
            <div>-<span class="" style="white-space:pre"> </span>vals[9].type
              = DB1_STR;</div>
            <div>-<span class="" style="white-space:pre"> </span>if
              (_c->received.s == 0) {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[9].nul
              = 1;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[9].nul
              = 0;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[9].val.str_val.s
              = _c->received.s;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[9].val.str_val.len
              = _c->received.len;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols
              = 9;</div>
            <div>+</div>
            <div>+<span class="" style="white-space:pre"> </span>if
              (_c->received.s ) {</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &received_col;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val.s
              = _c->received.s;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val.len
              = _c->received.len;</div>
            <div>
              +<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div> <span class="" style="white-space:pre"> </span></div>
            <div>-<span class="" style="white-space:pre"> </span>vals[10].type
              = DB1_STR;</div>
            <div>-<span class="" style="white-space:pre"> </span>if
              (_c->path.s == 0) {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[10].nul
              = 1;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[10].nul
              = 0;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[10].val.str_val.s
              = _c->path.s;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[10].val.str_val.len
              = _c->path.len;</div>
            <div>+<span class="" style="white-space:pre"> </span>if
              (_c->path.s) {</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &path_col;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val.s
              = _c->path.s;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val.len
              = _c->path.len;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div> </div>
            <div>-<span class="" style="white-space:pre"> </span>vals[11].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>if
              (_c->sock) {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[11].val.str_val
              = _c->sock->sock_str;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[11].nul
              = 0;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[11].nul
              = 1;</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &sock_col;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val
              = _c->sock->sock_str;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div> </div>
            <div>-<span class="" style="white-space:pre"> </span>vals[12].type
              = DB1_BITMAP;</div>
            <div>-<span class="" style="white-space:pre"> </span>if
              (_c->methods == 0xFFFFFFFF) {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[12].nul
              = 1;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[12].val.bitmap_val
              = _c->methods;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[12].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>if
              (_c->methods != 0xFFFFFFFF) {</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &methods_col;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_BITMAP;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.bitmap_val
              = _c->methods;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div> </div>
            <div>-<span class="" style="white-space:pre"> </span>vals[13].type
              = DB1_DATETIME;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[13].nul
              = 0;</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[13].val.time_val
              = _c->last_modified;</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &last_mod_col;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_DATETIME;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div>+<span class="" style="white-space:pre"> </span>vals[nr_cols].val.time_val
              = _c->last_modified;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> </div>
            <div>-<span class="" style="white-space:pre"> </span>nr_cols
              = 14;</div>
            <div> </div>
            <div> <span class="" style="white-space:pre"> </span>if(_c->ruid.len>0)</div>
            <div> <span class="" style="white-space:pre"> </span>{</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &ruid_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val
              = _c->ruid;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 1;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div>
               <span class="" style="white-space:pre"> </span>}</div>
            <div>-<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> </div>
            <div> <span class="" style="white-space:pre"> </span>if(_c->instance.len>0)</div>
            <div> <span class="" style="white-space:pre"> </span>{</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &instance_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].val.str_val
              = _c->instance;</div>
            <div>-<span class="" style="white-space:pre"> </span>} else
              {</div>
            <div>-<span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 1;</div>
            <div>+<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> <span class="" style="white-space:pre"> </span>}</div>
            <div>-<span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> </div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &reg_id_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_INT;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].val.int_val
              = (int)_c->reg_id;</div>
            <div> <span class="" style="white-space:pre"> </span>nr_cols++;</div>
            <div> </div>
            <div> <span class="" style="white-space:pre"> </span>if
              (use_domain) {</div>
            <div>+<span class="" style="white-space:pre"> </span>keys[nr_cols]
              = &domain_col;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].type
              = DB1_STR;</div>
            <div> <span class="" style="white-space:pre"> </span>vals[nr_cols].nul
              = 0;</div>
            <div> </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
sr-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Next Kamailio Advanced Trainings 2014 - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
Sep 22-25, Berlin, Germany</pre>
  </body>
</html>