[OpenSIPS-Devel] [OpenSIPS/opensips] 17532b: db_unixodbc: fix query result handling and improve...

Liviu Chircu liviu at opensips.org
Wed Oct 15 18:12:03 CEST 2014


  Branch: refs/heads/1.8
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 17532b1e43c7700631961a1179520d7f6c92680c
      https://github.com/OpenSIPS/opensips/commit/17532b1e43c7700631961a1179520d7f6c92680c
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-10-15 (Wed, 15 Oct 2014)

  Changed paths:
    M modules/db_unixodbc/con.h
    M modules/db_unixodbc/dbase.c
    R modules/db_unixodbc/list.c
    R modules/db_unixodbc/list.h
    M modules/db_unixodbc/res.c
    M modules/db_unixodbc/row.c
    M modules/db_unixodbc/row.h
    M modules/db_unixodbc/val.c
    M modules/db_unixodbc/val.h

  Log Message:
  -----------
  db_unixodbc: fix query result handling and improve performance

Until now, query rows were incrementally stored in a list with
separately allocated length and string buffers, along with a great deal
of useless pointer dereferencing, effectively wasting CPU cycles and pkg
mem usage.

This patch eliminates the linked list logic with a global buffer of
pointers (doubling in size when required) meant to hold each result column.
Each column is transparently freed by the DB backend. This completes
commit d63ee19a8.
(cherry picked from commit 683dfaa63df0af317f7485042539bdacf8646eab)

Conflicts:

	modules/db_unixodbc/list.c
	modules/db_unixodbc/list.h
	modules/db_unixodbc/row.c
(cherry picked from commit baa9c36421bc62ef1f1a389fd33d3a5ce0ab3522)




More information about the Devel mailing list