User Tools

Site Tools


dr:zeitgeist

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dr:zeitgeist [2007/12/22 14:45] – external edit 127.0.0.1dr:zeitgeist [2020/11/23 17:23] (current) – external edit 127.0.0.1
Line 4: Line 4:
  
 Ensuing discussion on [[irc://irc.freenode.net/drupal|#drupal]] and on the patch page suggested that: Ensuing discussion on [[irc://irc.freenode.net/drupal|#drupal]] and on the patch page suggested that:
 +
  
   * the idea was interesting   * the idea was interesting
Line 11: Line 12:
  
 As this involves changes to core features, I hope developers with a deeper understanding of core than me will comment on this/edit this page to improve it before I write code involving these core changes. The wiki structure allows this more easily than comments on the patch page. As this involves changes to core features, I hope developers with a deeper understanding of core than me will comment on this/edit this page to improve it before I write code involving these core changes. The wiki structure allows this more easily than comments on the patch page.
 +
  
 ===== Problems with the current patch ===== ===== Problems with the current patch =====
Line 16: Line 18:
 If you look at the patch, what it basically does is this, along with the definition of a new block in search_block: If you look at the patch, what it basically does is this, along with the definition of a new block in search_block:
  
-<php>function _search_recent()+<code php> 
 +function _search_recent()
   {   {
   $sq = "   $sq = "
Line 37: Line 40:
   unset ($ar);   unset ($ar);
   return $output ;   return $output ;
-  }</php>+  } 
 +</code>
  
 You'll notice the "substr" line is dependent of the current format of the watchdog entries, which means it will most likely break on any translated site. And I know drupal style does not like multiline queries. You'll notice the "substr" line is dependent of the current format of the watchdog entries, which means it will most likely break on any translated site. And I know drupal style does not like multiline queries.
  
 Also, processing is done in PHP whereas a better implementation would just ask the DBMS for the set of distinct entries in proper order to minimize the global workload. Also, processing is done in PHP whereas a better implementation would just ask the DBMS for the set of distinct entries in proper order to minimize the global workload.
- 
- 
  
 ===== Changes to watchdog ===== ===== Changes to watchdog =====
Line 50: Line 52:
     * add a new column (say, "data") to the watchdog table, to hold a php serialized content, or NULL     * add a new column (say, "data") to the watchdog table, to hold a php serialized content, or NULL
     * modify bootstrap.inc/watchdog to pass a new parameter:     * modify bootstrap.inc/watchdog to pass a new parameter:
- +<code php>
-<php>+
 function watchdog( function watchdog(
   $type,    $type, 
Line 57: Line 58:
   $severity = WATCHDOG_NOTICE,    $severity = WATCHDOG_NOTICE, 
   $link = NULL,   $link = NULL,
-  $data = NULL) {</php>+  $data = NULL) { 
 +</code>
  
 The new parameter could be used by modules aware of this new feature to store content of their choice in the watchdog along with the standard parameters, while retaining compatibility with existing call through the use of a default NULL. The new parameter could be used by modules aware of this new feature to store content of their choice in the watchdog along with the standard parameters, while retaining compatibility with existing call through the use of a default NULL.
Line 68: Line 70:
  
 In the current 4.6.x core, only watchdog module queries the watchdog table, and does so with queries like: In the current 4.6.x core, only watchdog module queries the watchdog table, and does so with queries like:
 +
 <code sql>select w.* [...] from {watchdog} w</code> <code sql>select w.* [...] from {watchdog} w</code>
-which means no outside modules should be impacted. These queries could be improved to avoid querying this additional column if it is not needed. 
- 
  
 +which means no outside modules should be impacted. These queries could be improved to avoid querying this additional column if it is not needed.
  
 ===== Changes to search ===== ===== Changes to search =====
Line 86: Line 88:
  
 ===== TODO ===== ===== TODO =====
 +
 2005-11-29 8:33 chx says: 2005-11-29 8:33 chx says:
 +
 If you want to win the developers' hearts then you change the trigger_error in _db_query to a watchdog call (avoid infinite loops! keep a static var about 'tried watchdog it') which stores the debug_backtrace and lift the debug_backtrace renderer from devel. The latter is a contrib module but this would be just great, i think two lines o' code and would make drupal a hell lot easier to debug. If you want to win the developers' hearts then you change the trigger_error in _db_query to a watchdog call (avoid infinite loops! keep a static var about 'tried watchdog it') which stores the debug_backtrace and lift the debug_backtrace renderer from devel. The latter is a contrib module but this would be just great, i think two lines o' code and would make drupal a hell lot easier to debug.
  
 2005-1129 20:33 After further discussion, it looks like the idea is to log the debug_backtrace() information in the additional field. 2005-1129 20:33 After further discussion, it looks like the idea is to log the debug_backtrace() information in the additional field.
dr/zeitgeist.1198334700.txt.gz · Last modified: 2020/11/23 17:23 (external edit)