I am trying to query relativity via the 64-bit relclient64.so that is included with the dataserver_2.1 installation.
Whenever I try to query a decimal value, the program segfaults.
the very simple test program runs the query (I am using convert here to force the decimal value -- but when I query an actual decimal value out it has the same result).
I have installed and tested this on both redhat 5 and redhat 7, getting the same results. Changing the query to CONVERT(10.0, SQL_DOUBLE) ends up working with no issues, as well as CONVERT(10.0, SQL_INTEGER)
The Query...
SELECT CONVERT(10.0, SQL_DECIMAL) test_val FROM <test_database>
The connection string....
Driver=relativity;ServerDSN=staging;ServerName=<servername>.1583;UID=<username>;PWD=<password>
odbcinst.ini
[relativity]
Description=Relativity Data Client
Driver=/opt/relativity/lib/relclient64.so
Setup=/opt/relativity/lib/relclnsu64.so
the GDB backtrace...
(gdb) bt
#0 0x00007fffec2ded9d in _pfnXtcGetCvtProc () from /opt/relativity/lib/relclient64.so
#1 0x00007fffec2df0d1 in rcXtcConvert () from /opt/relativity/lib/relclient64.so
#2 0x00007fffec2a4ea4 in rcDrsGetData () from /opt/relativity/lib/relclient64.so
#3 0x00007fffec2d68b5 in _rcDrvGetData () from /opt/relativity/lib/relclient64.so
#4 0x00007fffec2d6cce in _rcGetData () from /opt/relativity/lib/relclient64.so
#5 0x00007fffec2d6f74 in SQLGetData () from /opt/relativity/lib/relclient64.so
#6 0x00007ffff0761d67 in SQLGetData () from /lib64/libodbc.so.2
#7 0x00007ffff09bd994 in GetDataDecimal (iCol=iCol@entry=0, cur=0x7fffecb1c1b0, cur=0x7fffecb1c1b0) at /tmp/pip-build-JSqEpA/pyodbc/src/getdata.cpp:467
#8 0x00007ffff09bdcd1 in GetData (cur=cur@entry=0x7fffecb1c1b0, iCol=iCol@entry=0) at /tmp/pip-build-JSqEpA/pyodbc/src/getdata.cpp:741
#9 0x00007ffff09ba1a9 in Cursor_fetch (cur=0x7fffecb1c1b0) at /tmp/pip-build-JSqEpA/pyodbc/src/cursor.cpp:1071
#10 0x00007ffff09ba271 in Cursor_fetchlist (cur=0x7fffecb1c1b0, max=-1) at /tmp/pip-build-JSqEpA/pyodbc/src/cursor.cpp:1102
#11 0x00000000004b4321 in call_function (oparg=<optimized out>, pp_stack=0x7fffffffdc70) at Python/ceval.c:4005
#12 PyEval_EvalFrameEx (f=f@entry=0x925470, throwflag=throwflag@entry=0) at Python/ceval.c:2666
#13 0x00000000004b40f8 in fast_function (nk=<optimized out>, na=0, n=<optimized out>, pp_stack=0x7fffffffddc0, func=0x7fffecb22230) at Python/ceval.c:4107
#14 call_function (oparg=<optimized out>, pp_stack=0x7fffffffddc0) at Python/ceval.c:4042
#15 PyEval_EvalFrameEx (f=f@entry=0x874c70, throwflag=throwflag@entry=0) at Python/ceval.c:2666
#16 0x00000000004b5208 in PyEval_EvalCodeEx (co=co@entry=0x7ffff7eeb130, globals=globals@entry=0x825280, locals=locals@entry=0x825280, args=args@entry=0x0, argcount=argcount@entry=0, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, closure=closure@entry=0x0) at Python/ceval.c:3253
#17 0x00000000004b5332 in PyEval_EvalCode (co=co@entry=0x7ffff7eeb130, globals=globals@entry=0x825280, locals=locals@entry=0x825280) at Python/ceval.c:667
#18 0x00000000004df14d in run_mod (arena=0x82efe0, flags=0x7fffffffe030, locals=0x825280, globals=0x825280, filename=0x7fffffffe4ba "test.py", mod=0x86be40) at Python/pythonrun.c:1353
#19 PyRun_FileExFlags (fp=0x868e40, filename=0x7fffffffe4ba "test.py", start=<optimized out>, globals=0x825280, locals=0x825280, closeit=1, flags=0x7fffffffe030) at Python/pythonrun.c:1339
#20 0x00000000004e09bb in PyRun_SimpleFileExFlags (fp=0x868e40, filename=0x7fffffffe4ba "test.py", closeit=1, flags=0x7fffffffe030) at Python/pythonrun.c:943
#21 0x000000000041563d in Py_Main (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:639
#22 0x00007ffff7116b15 in __libc_start_main () from /lib64/libc.so.6
#23 0x0000000000414821 in _start ()
#RelativityODBC
#Relativity
#Reativitynumerichandling