When you run PROC SQL UPDATE against compressed SPDS tables in SAS® Scalable Performance Data (SPD) Server 5.5, intermittent failures occur with the following errors in the SAS log:
ERROR: External converter unconvert failed.
ERROR: SPDS Sql Passthru Error.
The failure is intermittent (the same code might succeed on retry) with a failure rate ranging between ~10% and ~50%. The issue is not isolated to a single table and has been observed across multiple SPDS members within the same domain.
When PROC SQL UPDATE modifies a row stored in a compressed SPDS table, the updated data might no longer fit within the original compressed block. SPD Server must then allocate overflow blocks to accommodate the expanded row. The error occurs during this compressed block rewrite path.
A fix is available for this issue on the following SAS platform releases:
If the fix cannot be applied immediately, the following workaround eliminates the error reliably and has been validated in the customer environment.
Avoid using compression on SPDS tables that will be subject to PROC SQL UPDATE. If compression is required for final storage, apply it only after all update operations are complete.
/* Step 1 – Load without compression */
data dwhtemp.table_uncompressed (compress=no);
set source;
run;
/* Step 2 – Perform all UPDATE operations */
proc sql;
update dwhtemp.table_uncompressed
set column = value
where condition;
quit;
/* Step 3 – Copy to compressed table if needed */
data dwhtemp.table_compressed (compress=yes);
set dwhtemp.table_uncompressed;
run;