[development] Field "body" no longer part of node table in 4.7 - looking for guidance on what to change

Nedjo Rogers nedjo at islandnet.com
Mon Jan 9 03:09:50 UTC 2006

You can of course do a node_load($nid).  But if you need to manually load 
data (e.g., so you can do a custom select), then, yes, you need to do a join 
on {node_revisions}.  Examples are in the core modules--searc for 
"{node_revisions}".  I don't see this in the module update 
instructions--I'll add in a note (unless on second look I find it already 

----- Original Message ----- 
From: "Scott McLewin" <drupal at mclewin.com>
To: <development at drupal.org>
Sent: Sunday, January 08, 2006 6:52 PM
Subject: [development] Field "body" no longer part of node table in 4.7 - 
looking for guidance on what to change

> Good evening.
> I'm busy upgrading the one module I maintain (wishlist.module) to Drupal 
> 4.7.  It has been pretty straightforward, following 
> http://drupal.org/node/33338 helped a lot.  The forms api conversion was 
> simple with the help of the http://www.lullabot.com/formupdater.  Thanks 
> for the work that went into both of these.
> I've gone through the upgrade steps and rummaged around drupal.org looking 
> for some help with a problem.  I can save, delete and edit a wishlist node 
> with no problem.  But my custom display for showing wishlist items in a 
> table (http://mclewin.com/wishlist/2 [4.6 version]) spews SQL errors. 
> Looking at the table schema, it appears that database structure was 
> changed to remove the field "body" from the NODE table.  A little digging 
> found a "body" field in the NODE_REVISONS table.  Before I rework my code 
> to add another join between NODE and NODE_REVISIONS I thought I would 
> double check that doing so is considered 'correct' - what is the intended 
> way to retrieve the body text of the node in Druapl 4.7?
> Here is the error I'm getting:
>    * user warning: Unknown column 'n.body' in 'field list' query:
>      SELECT n.nid, n.title, n.uid, w.item_priority, w.item_est_cost,
>      w.item_currency, n.body, n.changed, w.item_quantity_requested,
>      w.item_url1, w.item_url2 FROM node n LEFT JOIN wishlist w ON n.nid
>      = w.nid WHERE n.type='wishlist' AND n.uid=1 AND w.item_is_public
>      ORDER BY n.title ASC LIMIT 0, 10 in
> /raid/home/www-drupaldev/drupal-4.7.0-beta2/includes/database.mysql.inc
>      on line 108.
> Scott

More information about the development mailing list