DIP script “DIPRTBLOP - R Table Operator” failing with error cannot find -ludfGPLudf

Problem:

When I executed the DIP script “DIPRTBLOP - R Table Operator” failing, it failing with following error:

Error in file:
CREATE FUNCTION td_sysgpl.ExecR()

RETURNS TABLE VARYING USING FUNCTION ExecR_contract

LANGUAGE R

NO SQL

PARAMETER STYLE SQLTABLE

EXTERNAL NAME 'CS!ExecR!udfexecR.c!F!ExecR';

 

 *** Create function completed with error(s).

 *** Warning: 5603 Errors encountered in compiling UDF/XSP/UDM/UDT/JAR.

 *** Total elapsed time was 1 second.

 

Errors/Warnings reported during compilation

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/usr/bin/gcc -D_REENTRANT -D_LIBC_REENTRANT    -I/usr/tdbms/etc   -L/usr/td

bms/lib -DHOSTCHARSET=0  -fpic -c ExecR.c

ExecR.c: In function 'executeRUDF':

ExecR.c:747: warning: assignment from incompatible pointer type

ExecR.c:762: warning: assignment from incompatible pointer type

/usr/bin/gcc -D_REENTRANT -D_LIBC_REENTRANT    -I/usr/tdbms/etc   -L/usr/td

bms/lib -DHOSTCHARSET=0  -fpic -c Teradata_new_delete.cpp

/usr/bin/gcc -D_REENTRANT -D_LIBC_REENTRANT    -I/usr/tdbms/etc   -L/usr/td

bms/lib -DHOSTCHARSET=0   -fpic -c  pre_ExecR_contract.c

/usr/bin/gcc -D_REENTRANT -D_LIBC_REENTRANT    -I/usr/tdbms/etc   -L/usr/td

bms/lib -DHOSTCHARSET=0   -fpic -c  pre_ExecR.c

/usr/bin/gcc -shared -fpic -Xlinker -rpath -Xlinker /usr/tdbms/lib -Wl,--ve

rsion-script=/var/opt/teradata/tdtemp/UDFTemp/03FC.30718.1D2e6/UserUdf_vers

ions.scr -D_REENTRANT -D_LIBC_REENTRANT    -I/usr/tdbms/etc   -L/usr/tdbms/

lib -DHOSTCHARSET=0  -o @FileList   -ludfGPLudf  -lm  -lstdc++

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -ludfGPLudf

collect2: ld returned 1 exit status

make: *** [libudf_03fc_0_17.so] Error 1

/var/opt/teradata/tdtemp/UDFTemp/03FC.30718.1D2e6/libudf_03fc_0_17.so: cannot open shared object file: No such file or directory

 

+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+-

Solution:

The dip script has failed due to compatible issue.  The functionality for R/udfgpl is tightly coupled with the ptdbms version. So, it's mandatory that the ptdbms and udfgpl package versions must match. 

The mismatch will not harm the Teradata database in any way, but R will clearly not work and R startup errors will be prevalent in /var/log/messages. 

 

You can see the current ptdbms running version on the system using the following command:

psh pdepath -i

<--------------------- localhost -------------------------------->
PDE: 16.20.07.01
TDBMS: 16.20.07.01
TDGSS: 16.20.07.01
TGTW: 16.20.07.01
TCHN: 16.20.10.60
PDEGPL: 16.20.07.01

you can check teradata-udfgpl version following way:

# rpm -qa|grep -E 'teradata-udfgpl'

teradata-udfgpl-16.20.23.01-1

 

If you see ptdbms version and udfgpl version is not matching. To solve this problem:

1. Install the Teradata-udfGPL package that matches your version of the PTDBMS.
2. Run DIP script DIPRTBLOP again

Comments