Alice Chen created TRAFODION-837:
------------------------------------

             Summary: LP Bug: 1404038 - ODBC upsert not working with arrays.
                 Key: TRAFODION-837
                 URL: https://issues.apache.org/jira/browse/TRAFODION-837
             Project: Apache Trafodion
          Issue Type: Bug
          Components: client-odbc-linux
            Reporter: Guy Groulx
            Assignee: RuoYu Zuo
            Priority: Critical
             Fix For: 1.0 (pre-incubation)


Have an C program that uses ODBC to perform various operations.

Below:   Test 1 is a unique insert.    Test 6 is an insert using ODBC arrays.   
 R indicates row arrays, C indicates column arrays.
                 NC indicates to use UPSERT instead of INSERT.
                 UL indicates to use USING LOAD.

/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 1 
N 500 30 NC UL
Loops: 9500 for 30.883 seconds for test IUSN0500.
-- Loops: 9500 for 30.883 seconds for for test IUSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 1 
N -500 30 NC UL
Loops: 9500 for 30.808 seconds for test IUSN0500.
-- Loops: 9500 for 30.808 seconds for for test IUSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 
R 500 30
Loops: 18000 for 29.913 seconds for test IRSN0500.
-- Loops: 18000 for 29.913 seconds for for test IRSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 
C 500 30
Loops: 15000 for 29.879 seconds for test ICSN0500.
-- Loops: 15000 for 29.879 seconds for for test ICSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 
C -500 30 UL
Loops: 16500 for 30.251 seconds for test ICSN0500.
-- Loops: 16500 for 30.251 seconds for for test ICSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 
R -500 30 UL
Loops: 18000 for 29.939 seconds for test IRSN0500.
-- Loops: 18000 for 29.939 seconds for for test IRSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf squser2 redhat06 TBL500 
500 6 R -500 30 UL NC
Segmentation fault (core dumped)

Above is showing that UPSERTS works with single inserts but fails using arrays.

/home/squser2/guy/ODBCAtomics> ls /local/cores/$UID
core.1418942238.spinel-hn1.16244.ODBCatomics  
core.1418942596.spinel-hn1.26295.ODBCatomics
/home/squser2/guy/ODBCAtomics> 

Core was generated by `./ODBCatomics SpinelTraf user pass TBL500 500 6 R -500 
30 UL NC'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007ffff61d6857 in memcpy () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 
libgcc-4.4.6-4.el6.x86_64 libstdc++-4.4.6-4.el6.x86_64 
nss-pam-ldapd-0.7.5-14.el6_2.1.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb) bt
#0  0x00007ffff61d6857 in memcpy () from /lib64/libc.so.6
#1  0x00007ffff789fd19 in odbc_SQLDrvr_Execute_pst_ () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#2  0x00007ffff78dc722 in SQLEXECUTE_ () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#3  0x00007ffff78d741c in ThreadControlProc(void*) () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#4  0x00007ffff78c235c in CStmt::SendExecute(int) () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#5  0x00007ffff78c24ba in CStmt::Execute() () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#6  0x00007ffff78e79fe in ODBC::Execute(void*) () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#7  0x00007ffff78e4762 in NeoExecute(void*) () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#8  0x00007ffff792bf38 in SQLExecute () from 
/home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#9  0x00000000004048d4 in insert_with_rowsets (wantRandom=0) at 
ODBCatomics.c:1090
#10 0x000000000040daa8 in main (argc=12, argv=0x7fffffff85c8) at 
ODBCatomics.c:3784
(gdb)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to