NAME
sqlite3session_indirect —
Set Or Clear
the Indirect Change Flag
SYNOPSIS
int
sqlite3session_indirect(
sqlite3_session
*pSession,
int bIndirect);
DESCRIPTION
Each change recorded by a session object is marked as either direct or indirect.
A change is marked as indirect if either:
- The session object "indirect" flag is set when
the change is made, or
- The change is made by an SQL trigger or foreign key
action instead of directly as a result of a users SQL statement.
If a single row is affected by more than one operation within a session, then
the change is considered indirect if all operations meet the criteria for an
indirect change above, or direct otherwise.
This function is used to set, clear or query the session object indirect flag.
If the second argument passed to this function is zero, then the indirect flag
is cleared. If it is greater than zero, the indirect flag is set. Passing a
value less than zero does not modify the current value of the indirect flag,
and may be used to query the current state of the indirect flag for the
specified session object.
The return value indicates the final state of the indirect flag: 0 if it is
clear, or 1 if it is set.