You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Oracle, Sqitch runs the SQL*Plus command WHENEVER SQLERROR EXIT SQL.SQLCODE, so that we can detect errors. However, on UNIX, SQL*Plus will return the actual error code modulo 256, which means the application can return zero exit status if the error code is a multiple of 256.
For example, if Sqitch tries to deploy a script creating a table with too many columns, causing error ORA-01792: maximum number of columns in a table or view is 1000, SQL*Plus will still exit with zero exit status (because 1792 mod 256 = 0), so Sqitch will not detect the error.
The text was updated successfully, but these errors were encountered:
Oh man, that's wild. Would WHENEVER SQLERROR EXIT FAILURE fix it? The Exasol engine usesWHENEVER SQLERROR EXIT 4 instead. I have no clue what's right for either of these cases TBH 😂
This is wild. Maybe should do EXIT 4, if only because in some places Sqitch thinks of error code 1 as more of a warning. Not as much as it used to, but still…
On Oracle, Sqitch runs the SQL*Plus command
WHENEVER SQLERROR EXIT SQL.SQLCODE
, so that we can detect errors. However, on UNIX, SQL*Plus will return the actual error code modulo 256, which means the application can return zero exit status if the error code is a multiple of 256.For example, if Sqitch tries to deploy a script creating a table with too many columns, causing error ORA-01792: maximum number of columns in a table or view is 1000, SQL*Plus will still exit with zero exit status (because 1792 mod 256 = 0), so Sqitch will not detect the error.
The text was updated successfully, but these errors were encountered: