summaryrefslogtreecommitdiff
path: root/modules/node/node.api.php
diff options
context:
space:
mode:
authorJennifer Hodgdon <yahgrp@poplarware.com>2012-10-09 10:31:58 -0700
committerJennifer Hodgdon <yahgrp@poplarware.com>2012-10-09 10:31:58 -0700
commita202c699e0416c39f6da45c65df93a1447a1cc88 (patch)
tree98c9bc58173fae2a87c1d816d1ad5c47fa532c35 /modules/node/node.api.php
parent994b2b3d4b8bf093541d0e61f456110b19fda677 (diff)
downloadbrdo-a202c699e0416c39f6da45c65df93a1447a1cc88.tar.gz
brdo-a202c699e0416c39f6da45c65df93a1447a1cc88.tar.bz2
Issue #1677830 by slashrsm: Improve docs for user and node hooks in regards to database transactions
Diffstat (limited to 'modules/node/node.api.php')
-rw-r--r--modules/node/node.api.php30
1 files changed, 24 insertions, 6 deletions
diff --git a/modules/node/node.api.php b/modules/node/node.api.php
index 87194576f..052effc9b 100644
--- a/modules/node/node.api.php
+++ b/modules/node/node.api.php
@@ -498,9 +498,18 @@ function hook_node_revision_delete($node) {
/**
* Respond to creation of a new node.
*
- * This hook is invoked from node_save() after the node is inserted into the
- * node table in the database, after the type-specific hook_insert() is invoked,
- * and after field_attach_insert() is called.
+ * This hook is invoked from node_save() after the database query that will
+ * insert the node into the node table is scheduled for execution, after the
+ * type-specific hook_insert() is invoked, and after field_attach_insert() is
+ * called.
+ *
+ * Note that when this hook is invoked, the changes have not yet been written to
+ * the database, because a database transaction is still in progress. The
+ * transaction is not finalized until the save operation is entirely completed
+ * and node_save() goes out of scope. You should not rely on data in the
+ * database at this time as it is not updated yet. You should also note that any
+ * write/update database queries executed from this hook are also not committed
+ * immediately. Check node_save() and db_transaction() for more info.
*
* @param $node
* The node that is being created.
@@ -687,9 +696,18 @@ function hook_node_presave($node) {
/**
* Respond to updates to a node.
*
- * This hook is invoked from node_save() after the node is updated in the node
- * table in the database, after the type-specific hook_update() is invoked, and
- * after field_attach_update() is called.
+ * This hook is invoked from node_save() after the database query that will
+ * update node in the node table is scheduled for execution, after the
+ * type-specific hook_update() is invoked, and after field_attach_update() is
+ * called.
+ *
+ * Note that when this hook is invoked, the changes have not yet been written to
+ * the database, because a database transaction is still in progress. The
+ * transaction is not finalized until the save operation is entirely completed
+ * and node_save() goes out of scope. You should not rely on data in the
+ * database at this time as it is not updated yet. You should also note that any
+ * write/update database queries executed from this hook are also not committed
+ * immediately. Check node_save() and db_transaction() for more info.
*
* @param $node
* The node that is being updated.