original_string: protected static function merge_context_temp_table() {
          global $DB;
  
          /* MDL-11347:
           *  - mysql does not allow to use FROM in UPDATE statements
           *  - using two tables after UPDATE works in mysql, but might give unexpected
           *    results in pg 8 (depends on configuration)
           *  - using table alias in UPDATE does not work in pg < 8.2
           *
           * Different code for each database - mostly for performance reasons
           */
  
          $dbfamily = $DB->get_dbfamily();
          if ($dbfamily == 'mysql') {
              $updatesql = "UPDATE {context} ct, {context_temp} temp
                               SET ct.path     = temp.path,
                                   ct.depth    = temp.depth,
                                   ct.locked   = temp.locked
                             WHERE ct.id = temp.id";
          } else if ($dbfamily == 'oracle') {
              $updatesql = "UPDATE {context} ct
                               SET (ct.path, ct.depth, ct.locked) =
                                   (SELECT temp.path, temp.depth, temp.locked
                                      FROM {context_temp} temp
                                     WHERE temp.id=ct.id)
                             WHERE EXISTS (SELECT 'x'
                                             FROM {context_temp} temp
                                             WHERE temp.id = ct.id)";
          } else if ($dbfamily == 'postgres' or $dbfamily == 'mssql') {
              $updatesql = "UPDATE {context}
                               SET path     = temp.path,
                                   depth    = temp.depth,
                                   locked   = temp.locked
                              FROM {context_temp} temp
                             WHERE temp.id={context}.id";
          } else {
              // sqlite and others
              $updatesql = "UPDATE {context}
                               SET path     = (SELECT path FROM {context_temp} WHERE id = {context}.id),
                                   depth    = (SELECT depth FROM {context_temp} WHERE id = {context}.id),
                                   locked   = (SELECT locked FROM {context_temp} WHERE id = {context}.id)
                               WHERE id IN (SELECT id FROM {context_temp})";
          }
  
          $DB->execute($updatesql);
      }
code: protected static function merge_context_temp_table() {
          global $DB;
  
          /* MDL-11347:
           *  - mysql does not allow to use FROM in UPDATE statements
           *  - using two tables after UPDATE works in mysql, but might give unexpected
           *    results in pg 8 (depends on configuration)
           *  - using table alias in UPDATE does not work in pg < 8.2
           *
           * Different code for each database - mostly for performance reasons
           */
  
          $dbfamily = $DB->get_dbfamily();
          if ($dbfamily == 'mysql') {
              $updatesql = "UPDATE {context} ct, {context_temp} temp
                               SET ct.path     = temp.path,
                                   ct.depth    = temp.depth,
                                   ct.locked   = temp.locked
                             WHERE ct.id = temp.id";
          } else if ($dbfamily == 'oracle') {
              $updatesql = "UPDATE {context} ct
                               SET (ct.path, ct.depth, ct.locked) =
                                   (SELECT temp.path, temp.depth, temp.locked
                                      FROM {context_temp} temp
                                     WHERE temp.id=ct.id)
                             WHERE EXISTS (SELECT 'x'
                                             FROM {context_temp} temp
                                             WHERE temp.id = ct.id)";
          } else if ($dbfamily == 'postgres' or $dbfamily == 'mssql') {
              $updatesql = "UPDATE {context}
                               SET path     = temp.path,
                                   depth    = temp.depth,
                                   locked   = temp.locked
                              FROM {context_temp} temp
                             WHERE temp.id={context}.id";
          } else {
              // sqlite and others
              $updatesql = "UPDATE {context}
                               SET path     = (SELECT path FROM {context_temp} WHERE id = {context}.id),
                                   depth    = (SELECT depth FROM {context_temp} WHERE id = {context}.id),
                                   locked   = (SELECT locked FROM {context_temp} WHERE id = {context}.id)
                               WHERE id IN (SELECT id FROM {context_temp})";
          }
  
          $DB->execute($updatesql);
      }
code_tokens: protected static function merge_context_temp_table ( ) { global $ DB ; /* MDL-11347:
           *  - mysql does not allow to use FROM in UPDATE statements
           *  - using two tables after UPDATE works in mysql, but might give unexpected
           *    results in pg 8 (depends on configuration)
           *  - using table alias in UPDATE does not work in pg < 8.2
           *
           * Different code for each database - mostly for performance reasons
           */ $ dbfamily = $ DB -> get_dbfamily ( ) ; if ( $ dbfamily == 'mysql' ) { $ updatesql = "UPDATE {context} ct, {context_temp} temp
                               SET ct.path     = temp.path,
                                   ct.depth    = temp.depth,
                                   ct.locked   = temp.locked
                             WHERE ct.id = temp.id" ; } else if ( $ dbfamily == 'oracle' ) { $ updatesql = "UPDATE {context} ct
                               SET (ct.path, ct.depth, ct.locked) =
                                   (SELECT temp.path, temp.depth, temp.locked
                                      FROM {context_temp} temp
                                     WHERE temp.id=ct.id)
                             WHERE EXISTS (SELECT 'x'
                                             FROM {context_temp} temp
                                             WHERE temp.id = ct.id)" ; } else if ( $ dbfamily == 'postgres' or $ dbfamily == 'mssql' ) { $ updatesql = "UPDATE {context}
                               SET path     = temp.path,
                                   depth    = temp.depth,
                                   locked   = temp.locked
                              FROM {context_temp} temp
                             WHERE temp.id={context}.id" ; } else { // sqlite and others $ updatesql = "UPDATE {context}
                               SET path     = (SELECT path FROM {context_temp} WHERE id = {context}.id),
                                   depth    = (SELECT depth FROM {context_temp} WHERE id = {context}.id),
                                   locked   = (SELECT locked FROM {context_temp} WHERE id = {context}.id)
                               WHERE id IN (SELECT id FROM {context_temp})" ; } $ DB -> execute ( $ updatesql ) ; }
docstring: Copy prepared new contexts from temp table to context table,
  we do this in db specific way for perf reasons only.
  @static
docstring_tokens: Copy prepared new contexts from temp table to context table we do this in db specific way for perf reasons only .