Ignore:
Timestamp:
May 20, 2011, 9:53:29 AM (10 years ago)
Author:
denisb@…
Message:

iterateurs : prendre en compte le cas particulier de sous-requetes produites par sql_in quand plus de 255 valeurs sont passees dans un critere IN d'une boucle DATA.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/iterateurs/public/iterateur.php

    r44794 r47955  
    217217                                        $menage = true;
    218218                                }
    219                                 // traiter {cle IN a,b} ou {valeur !IN a,b}
    220                                 if (preg_match(',^\(\(([\w/]+)(\s+NOT)?\s+IN\s+(\(.*\))\)\)$,', $op, $regs)) {
    221                                         $this->ajouter_filtre($regs[1], 'IN', $regs[3], $regs[2]);
     219                                // traiter {cle IN a,b} ou {valeur !IN a,b}                             
     220                                // prendre en compte le cas particulier de sous-requetes
     221                                // produites par sql_in quand plus de 255 valeurs passees a IN
     222                                if (preg_match_all(',\s+IN\s+(\(.*\)),', $op, $s_req)) {
     223                                        $req = '';
     224                                        foreach($s_req[1] as $key => $val) {
     225                                                $req .= trim($val, '(,)').',';
     226                                        }
     227                                        $req = '(' . rtrim($req, ',') . ')';
     228                                }
     229                                if (preg_match(',^\(\(([\w/]+)(\s+NOT)?\s+IN\s+(\(.*\))\)(?:\s+(AND|OR)\s+\(([\w/]+)(\s+NOT)?\s+IN\s+(\(.*\))\))*\)$,', $op, $regs)) {
     230                                        $this->ajouter_filtre($regs[1], 'IN', strlen($req) ? $req : $regs[3], $regs[2]);
    222231                                        unset($op);
    223232                                }
Note: See TracChangeset for help on using the changeset viewer.