Skip to main content

Error while creating TraditionalCsvParserLib

  • November 18, 2014
  • 1 reply
  • 10 views

Ravi_Ranjan_Kum
While creating the Library for CSV paerser.. . I am getting an error.. Below is the details:

CX=> \set csv_libfile '\'''pwd''/build/TraditionalCsvParser.so\'';
CX=> CREATE LIBRARY TraditionalCsvParserLib AS :csv_libfile;
ROLLBACK 3399:  Failure in UDx RPC call InvokeSetExecContext(): Error calling setupExecContext() in User Defined Object [] at [/scratch_a/release/30493/vbuild/vertica/OSS/UDxFence/vertica-udx-C++.cpp:195], error code: 0, message: Error happened in dlopen(): [/home/dbadmin/build/TraditionalCsvParser.so: cannot open shared object file: No such file or directory]

Can anyone please help me with this... 

1 reply

Navin_C
Forum|alt.badge.img+2
  • Participating Frequently
  • November 18, 2014
Hi Ravi,

Can you describe the steps you followed to set this package.

Below are detailed steps to install this package

1. This package come pre bundled with Vertica in this path 
/opt/vertica/sdk/examples
Here you can see a folder named ParserFunction, this is where your TraditionalCsvParser.cpp file exists


2. First you need to compile all these C++ (cpp) files, Compiling is done using make command

Come to this path
/opt/vertica/sdk/examples
Enter following command
make clean
make 
these two command first clean the build directory and then make  / compile your make file (makefile is already existing in your same directory). This will compile all the C++ packages in this directory

If everything goes good, you should be having \build directory in same location now.
Inside build directory will be your .so files which will be used by Vertica

3. Now run the install file for TraditionalCsvParser
vsql -f parserfunctions.sql
This will create libraries --> create function in database.


This should solve the issue.

Note- If TraditionalCsvParser.so is not created in \build directory then it might be an issue, you might be missing some BOOST headers. Get some boost libraries and this should fix it.