In SAS® 9.4M9 (TS1M9), SQL joins between Vertica libraries that are assigned using identical DSN-based LIBNAME statements might not be pushed down to Vertica. Instead, the following error might occur:
ERROR: This SQL statement will not be passed to the DBMS for processing because it involves a join across librefs with different connection properties.
As a result, processing occurs in SAS rather than in Vertica, which can significantly impact performance. This behavior is specific to the Vertica engine when using the DSN= LIBNAME option.
Until a permanent solution is available, modify the Vertica LIBNAME statements to use explicit connection parameters instead of the DSN=option. Using explicit values for options such as SERVER=, PORT=, DATABASE=, USER=, and PASSWORD= allows SQL joins to be pushed down to Vertica as expected.
Here is an example:
libname x vertica server="vertica_server" port=5433 user=myuser password=mypassword database=test schema=dbitest; libname y vertica server="vertica_server" port=5433 user=myuser password=mypassword database=test schema=tmp;
With this configuration, SQL joins between the Vertica libraries are pushed down to Vertica as expected.