czy taka funkcja waszym zdaniem mocno obciąży mysql-a ?

  1. DROP FUNCTION IF EXISTS wraper2 $$
  2.  
  3. CREATE FUNCTION wraper2(haystack TEXT, am INT, pl INT,)
  4. RETURNS INT(11)
  5.  
  6. BEGIN DECLARE s1 INT DEFAULT 0;
  7. DECLARE s2 INT DEFAULT 1;
  8. DECLARE wl INT DEFAULT 0;
  9. DECLARE lin INT DEFAULT 1;
  10. DECLARE lg INT DEFAULT 1;
  11. DECLARE nln INT DEFAULT 0;
  12. DECLARE tmp INT DEFAULT 0;
  13.  
  14. WHILE lin <= am
  15. DO
  16.  
  17. SET s1 = LOCATE(' ', haystack, s2);
  18.  
  19. IF s2 = 0 THEN
  20. SET wl = s1-1;
  21. ELSE
  22. SET s2 = LOCATE(' ', haystack, s1+1);
  23. SET wl = s2-s1;
  24. END IF;
  25.  
  26. SET lg= lg + wl;
  27.  
  28. IF lg > pl THEN
  29. SET lin = lin+1;
  30. SET lg = 0;
  31.  
  32. WHILE nln <= s2
  33. DO
  34. SET tmp = LOCATE('\n\r',haystack,nln+1);
  35. IF tmp > 0 THEN
  36. SET lin=lin+1;
  37. SET nln=tmp;
  38. ELSE
  39. SET nln=s2;
  40. END IF;
  41. END WHILE;
  42. SET s2=s1;
  43.  
  44. END IF;
  45.  
  46. END WHILE;
  47.  
  48. RETURN lin;
  49.  
  50. END $$