1. Java / Говнокод #10246

    +72

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    final String sqlString=
    					" select distinct 1 "+
    					" , c_rep.card_id as rep_id "+
    					" , av_rep_xml.long_binary_value as rep_xml "+
    					" , av_sname_nm.string_value as name "+
    					" , av_c_date.date_value as date \n"+
    					" from	card c_res \n"+
    					" 	join 	attribute_value av_res_rep on (av_res_rep.card_id = c_res.card_id and av_res_rep.attribute_code = 'JBR_RIMP_REPORT') \n"+
    					" 	join	attribute_value av_res_exec on (av_res_exec.card_id = c_res.card_id and av_res_exec.attribute_code = 'JBR_INFD_EXEC_LINK') \n"+
    					" 	join 	card c_rep on (c_rep.card_id = av_res_rep.number_value ) \n"+
    					" 	left outer join attribute_value av_rep_xml on (av_rep_xml.card_id = c_rep.card_id and av_rep_xml.attribute_code = 'ADMIN_702354') \n"+
    					" 	left outer join attribute_value av_c_date on (av_c_date.card_id = c_rep.card_id and av_c_date.attribute_code = 'CREATED') \n"+
    					" 	left outer join	attribute_value av_rep_exec on (av_rep_exec.card_id = c_rep.card_id and av_rep_exec.attribute_code ='ADMIN_702335') \n"+
    					" 	left outer join	person person_card on (person_card.person_id=av_rep_exec.number_value) \n"+
    					" 	left outer join attribute_value av_sname_nm on (av_sname_nm.card_id = person_card.card_id and av_sname_nm.attribute_code = 'JBR_PERS_SNAME_NM') \n"+
    					" 	left outer join attribute_value av_on_control on ( av_on_control.attribute_code = 'JBR_TCON_ONCONT' and av_on_control.card_id = c_res.card_id) \n"+
    					" where	c_res.card_id = " + sResId+ "\n"+
    					" 	and av_res_exec.number_value = av_rep_exec.number_value \n"+
    					" 	and av_on_control.value_id=1449 \n"+
    					" 	and c_res.status_id in (103, 206) \n"+
    
    					// UNION
    					" UNION select 51 \n"+
    					" , c_rep.card_id as rep_id \n"+
    					" , av_rep_xml.long_binary_value as rep_xml \n"+
    					" , av_sname_nm.string_value as name \n"+
    					" , av_c_date.date_value as date \n"+
    					" from card c_prnt \n"+
    					" 	left outer join attribute_value av_res on ( av_res.attribute_code = 'JBR_IMPL_RESOLUT' and av_res.card_id = c_prnt.card_id) "+
    					" 	left outer join card c_res on (c_res.card_id=av_res.number_value)"+
    					" 	join 	attribute_value av_res_rep on (av_res_rep.card_id = c_res.card_id and av_res_rep.attribute_code = 'JBR_RIMP_REPORT') "+
    					" 	join	attribute_value av_res_exec on (av_res_exec.card_id = c_res.card_id and av_res_exec.attribute_code = 'JBR_INFD_EXEC_LINK') "+
    					" 	join 	card c_rep on (c_rep.card_id = av_res_rep.number_value ) "+
    					" 	left outer join attribute_value av_rep_xml on (av_rep_xml.card_id = c_rep.card_id and av_rep_xml.attribute_code = 'ADMIN_702354') "+
    					" 	left outer join attribute_value av_c_date on (av_c_date.card_id = c_rep.card_id and av_c_date.attribute_code = 'CREATED') "+
    					" 	left outer join	attribute_value av_rep_exec on (av_rep_exec.card_id = c_rep.card_id and av_rep_exec.attribute_code = 'ADMIN_702335') "+
    					" 	left outer join	person person_card on (person_card.person_id=av_rep_exec.number_value) "+
    					" 	left outer join attribute_value av_sname_nm on (av_sname_nm.card_id = person_card.card_id and av_sname_nm.attribute_code = 'JBR_PERS_SNAME_NM') "+
    					" 	left outer join attribute_value av_on_control on ( av_on_control.attribute_code = 'JBR_TCON_ONCONT' and av_on_control.card_id = c_res.card_id)  "+
    					" where "+
    					" 	c_prnt.card_id = "+ sResId+ "\n"+
    					" 	and c_prnt.template_id <> 324 \n"+
    					" 	and av_res_exec.number_value = av_rep_exec.number_value \n"+
    					" 	and av_on_control.value_id=1449 \n"+
    					" 	and c_res.status_id in (103, 206) \n"+
    	
    .... и еще 8 UNION, куча строчек в том же стиле и с тем же смыслом

    Формирование SQL запроса в методе, который возвращает строковое представление хода исполнения поручения (кто сделал, что сделал, когда и в какой последовательности). Сам метод, если кому интересно дергается из Jasper report.

    Мало того, что запросик имеет длину 250 строк кода (большая часть которых копи/паст с небольшими изменениями), так он ещё и возвращает полную ахинею вместо того что нужно. Чего хотел сказать автор - теперь уже не узнать...

    Запостил: amberLord, 11 Мая 2012

    Комментарии (12) RSS

    • Почему уже не узнать? Расстреляли?
      Ответить
    • Всего 250 строк?
      Ответить
      • Нужно больше.
        Ответить
        • Помню в одном проекте был у нас запрос > 700кБ

          П. С. Его гибер сгенерил
          Ответить
          • Долго исполнялся?
            Ответить
            • 700 часов, средняя скорость 1kБ/ч
              Ответить
            • на удивление нет - пара секунд.

              на еще большее удивление postgres распарсил его за смешное время - точно не помню, но меньше 100мс это точно.
              Ответить
    • Можно больше) не нужно) а лучше надеяться, что с таким никогда в жизни не придется столкнуться)
      Ответить
    • Вы ведь это придумали? Такого на самом деле не бывает
      Ответить
      • На самом деле кода не существует, мы его придумываем.
        Ответить
    • Где здесь С+^WJava?
      А SQL скил говную.
      Ответить

    Добавить комментарий