The data type of the each column is provided by the unixodbc lib via the SQLDescribeCol() function.

I would rather suspect an issue between the unixodbc layer and the underlying DB.

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  https://www.opensips-solutions.com
  https://www.siphub.com

On 02.03.2024 02:57, Saint Michael wrote:
whatever query I call, db_unixodbc_get_columns returns only db_int for
every field.
DBG:avpops:ops_dbquery_avps: query [CALL get_user_details(1)]
  DBG:core:db_new_result: allocate 48 bytes for result set at 0x71c49935ba20
  DBG:db_unixodbc:db_unixodbc_get_columns: 3 columns returned from the query
  DBG:core:db_allocate_columns: allocate 84 bytes for result columns at
0x71c49935ba88
  DBG:db_unixodbc:db_unixodbc_get_columns:
RES_NAMES(0x71c49935baa0)[0]=[username]
  DBG:db_unixodbc:db_unixodbc_get_columns: use DB_INT result type
  DBG:db_unixodbc:db_unixodbc_get_columns: RES_NAMES(0x71c49935bab0)[1]=[email]
  DBG:db_unixodbc:db_unixodbc_get_columns: use DB_INT result type
  DBG:db_unixodbc:db_unixodbc_get_columns: RES_NAMES(0x71c49935bac0)[2]=[phone]
  DBG:db_unixodbc:db_unixodbc_get_columns: use DB_INT result type
  DBG:core:db_allocate_rows: allocate 112 bytes for result rows and
values at 0x71c49935bb18
  DBG:db_unixodbc:db_unixodbc_str2val: converting INT [johndoe]
  ERROR:core:db_str2int: Unexpected characters: [johndoe]
  ERROR:db_unixodbc:db_unixodbc_str2val: converting integer value from
string failed
  ERROR:db_unixodbc:db_unixodbc_convert_row: failed to convert value

opensips -V
version: opensips 3.4.4 (x86_64/linux)
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,
Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll, sigio_rt, select.
git revision: e50c6736e
main.c compiled on 00:29:53 Mar  2 2024 with gcc 9

dpkg -l | grep unixodbc
ri  unixodbc                         2.3.6-0.1build1
amd64        Basic ODBC tools
ri  unixodbc-dev:amd64               2.3.6-0.1build1
amd64        ODBC libraries for UNIX (development files)

odbc.ini

[opensips]
Description = MySQL ODBC Driver Testing
Driver = maria
Socket = /var/run/mysqld/mysqld.sock
#Server = localhost
User = xxxxx
Password = xxxx
Database = asterisk
Option = 3

odbcinst.ini

[maria]
Description=ODBC for MySQL
Driver=/usr/lib64/mariadb/libmaodbc.so
FileUsage=1
Threading=0

a Unixodbc trace shows that everything is normal,so the issue must be
with opensips
                     Statement = 0x6003034831b0
                         Column Number = 3
                         Target Type = 1 SQL_CHAR
                         Buffer Length = 1024
                         Target Value = 0x77a24e1ff318
                         StrLen Or Ind = 0x7ffc233ad5f0
[ODBC][103886][1709340852.301423][SQLGetData.c][545]
                 Exit:[SQL_SUCCESS]
                         Buffer = [123-456-7890]
                         Strlen Or Ind = 0x7ffc233ad5f0 -> 1

as you can see, the target Type is SQL_CHAR

any ideas?

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to