[OpenSER-Devel] TEXT vs BLOB data in database modules

Henning Westerholt henning.westerholt at 1und1.de
Fri Apr 18 12:46:08 CEST 2008


Hi all,

i reviewed for bug #1940022 the BLOB and TEXT handling in the postgres and 
mysql modules. At the moment there is a mismatch in the handling of this both 
datatypes the database modules. 

The db_mysql module uses a DB_BLOB result type for TEXT fields, db_postgres 
DB_STRING. This breaks the cpl-c module for postgres, as its wants the data 
in DB_BLOB format, but defines the colums as TEXT. The same issue exists for 
db_unixodbc and db_oracle, and affect probably other (non-db) modules.

So what is the correct way of dealing with this?

1. treat TEXT, CLOB as DB_STRING
- review all modules that uses TEXT if they really need to store binary data
- use BLOB in database if true, otherwise change them to use DB_STRING as type
- change database modules to use only this scheme
- will probably break some modules during the change

2. treat TEXT, CLOB as DB_BLOB
- change database modules to use only this scheme
- will probably not break that much, as mysql uses this the moment

(Affected tables: cpl.xml, pr_active_watchers.xml, pr_pua.xml, 
rls_watchers.xml, silo.xml, sip_trace.xml)

Any opinions?

Henning



More information about the Devel mailing list