&& $attr !~ /^read_as\(\w+\)$/
                                && !elem $attr,
                                qw(copy_as_scalar
+                               custom_query_jumble
                                equal_as_scalar
                                equal_ignore
                                equal_ignore_if_zero
        my $t = $node_type_info{$n}->{field_types}{$f};
        my @a = @{ $node_type_info{$n}->{field_attrs}{$f} };
        my $query_jumble_ignore = $struct_no_query_jumble;
+       my $query_jumble_custom = 0;
        my $query_jumble_location = 0;
        my $query_jumble_squash = 0;
 
        # extract per-field attributes
        foreach my $a (@a)
        {
+           if ($a eq 'custom_query_jumble')
+           {
+               $query_jumble_custom = 1;
+           }
            if ($a eq 'query_jumble_ignore')
            {
                $query_jumble_ignore = 1;
        }
 
        # node type
-       if (($t =~ /^(\w+)\*$/ or $t =~ /^struct\s+(\w+)\*$/)
+       if ($query_jumble_custom)
+       {
+           # Custom function that applies to one field of a node.
+           print $jff "\tJUMBLE_CUSTOM($n, $f);\n";
+       }
+       elsif (($t =~ /^(\w+)\*$/ or $t =~ /^struct\s+(\w+)\*$/)
            and elem $1, @node_types)
        {
            # Squash constants if requested.
 
    if (expr->str) \
        AppendJumble(jstate, (const unsigned char *) (expr->str), strlen(expr->str) + 1); \
 } while(0)
+/* Function name used for the node field attribute custom_query_jumble. */
+#define JUMBLE_CUSTOM(nodetype, item) \
+   _jumble##nodetype##_##item(jstate, expr, expr->item)
 
 #include "queryjumblefuncs.funcs.c"
 
 
  *   readfuncs.c.
  *
  * - custom_query_jumble: Has custom implementation in queryjumblefuncs.c.
+ *   Also available as a node field attribute.
  *
  * - no_copy: Does not support copyObject() at all.
  *
  * - equal_ignore_if_zero: Ignore the field for equality if it is zero.
  *   (Otherwise, compare normally.)
  *
+ * - custom_query_jumble: Has custom implementation in queryjumblefuncs.c
+ *   for the field of a node.  Also available as a node attribute.
+ *
  * - query_jumble_ignore: Ignore the field for the query jumbling.  Note
  *   that typmod and collation information are usually irrelevant for the
  *   query jumbling.