SQL/MP Installation and Management Guide

Managing Database Applications
HP NonStop SQL/MP Installation and Management Guide523353-004
10-3
Operations That Do Not Invalidate a Program
catalog to register the program, and has marked the object file label as SQL-
sensitive and valid, but before the compiler normally terminates
If a compilation terminates abnormally, the TMF subsystem backs out the updates
to the catalog but cannot undo the changes to the object file label because the
label for an SQL object file is always nonaudited. In such a case, a seemingly valid
object file exists on disk, but no entry for this file exists in the PROGRAMS table of
the catalog.
You can sometimes recover from this condition by running SQLCOMP again to
reenter the information in the catalog. If this strategy does not resolve the problem,
use the CLEANUP utility or the GOAWAY utility to remove the object file, and
recompile the program. (For more information about using the CLEANUP and
GOAWAY utilities, see the SQL/MP Reference Manual.)
Operations That Do Not Invalidate a Program
Not all changes to the program or database invalidate a program. These operations do
not invalidate a program:
Altering the security or owner of the program or SQL objects
Creating new views on a table
Altering file attributes, including the AUDIT flag
Adding or dropping comments on a table or view
Adding a column or partition if the CHECK INOPERABLE PLANS option is used
and referenced tables and protection views have the similarity check enabled
Adding an index with the NO INVALIDATE option in the CREATE INDEX statement
or if the CHECK INOPERABLE PLANS option is used and referenced tables and
protection views have the similarity check enabled
For the source object, duplicating a program or SQL object
Executing the UPDATE STATISTICS statement with the NORECOMPILE option on
tables used by the program; however, the new statistics might enable the SQL
compiler to determine a better access path for the programs.
Although changing the AUDIT attribute of a table referred to by an SQL statement does
not invalidate the statement, this change does cause automatic SQL recompilation (if it
is specifically allowed) in these cases:
If a statement performs a DELETE or UPDATE set operation on a nonaudited table
that has a SYNCDEPTH of 1, the SQL executor returns SQL error 8203 and forces
automatic recompilation of the statement.
If a statement is executed in parallel on a table whose AUDIT attribute has
changed since the last explicit SQL compilation, the SQL executor returns SQL
error 8207 and forces automatic recompilation of the statement.