1. Список говнокодов пользователя N21

    Всего: 6

  2. SQL / Говнокод #11903

    −125

    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
    Замечательная ошибка, встречающаяся в Firebird <2.0
    
    SELECT '1' FROM table1
    UNION
    SELECT '12' FROM table2
    
    Invalid token.
    Dynamic SQL Error.
    SQL error code = -104.
    Invalid command.
    Data type unknown.
    
    /* Работает, только если сделать явное преобразование в тип достаточного размера */
    SELECT cast('1' as char(2)) FROM table1
    UNION
    SELECT cast('12' as char(2)) FROM table2

    N21, 10 Октября 2012

    Комментарии (2)
  3. SQL / Говнокод #11821

    −130

    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
    create or alter procedure PVN_CHK_IN_TEXT_PPR (
        TEXT varchar(255))
    returns (
        OK integer,
        REZ_STR varchar(255))
    as
    begin
        select FN_ATRIM(REZ_STR)
            from PVN_DEL_ALFAS(:TEXT)
            into :REZ_STR;
        if (FN_STRLEN(REZ_STR) >= 6) then
            suspend;
    end

    Очередная прекрасная процедура без комментариев и документации. Почему именно 6, а не 28 или 429, пока загадка.

    N21, 21 Сентября 2012

    Комментарии (6)
  4. SQL / Говнокод #11818

    −168

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    AC varchar(6),
        PC varchar(12),
        KT varchar(15),
        AD varchar(10),
        DV varchar(10)
    ...
    if (kt ='               ' or kt ='') then kt=null; /* 15 пробелов */
    if (pc='' or pc='            ') then pc= null; /* 12 пробелов */
    if (ac='' or ac='      ') then ac= null; /* 6 пробелов */
    if (ad ='               ') then ad=null;  if (ad ='') then ad=null; /* 15 пробелов */

    Очень хитрая магия..

    N21, 21 Сентября 2012

    Комментарии (6)
  5. SQL / Говнокод #11806

    −171

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Firebird
    
    create or alter procedure ..
    ..
    ID varchar(16),
    ..
    begin
    ..
    ID = FN_SUBSTR(ID, 0, 15);
    ..
    end

    Описание FN_SUBSTR из местного манула:

    char* fn_substr(char* s, int* f, int* n)
    Extracts n characters from string s starting from f.
    s - source string
    f - starts there (zero based)
    n - how many characters extract


    ЗАЧЕМ?

    N21, 20 Сентября 2012

    Комментарии (2)
  6. SQL / Говнокод #11801

    −164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    create procedure PVN_CNV_DATE (
        DATUMS varchar(28))
    returns (
        RDATUMS date)
    AS
    begin
     datums=rdatums;
     when any do exit;
    end

    Очередной перл предшественника. cast as date? Не, не видал..

    N21, 19 Сентября 2012

    Комментарии (7)
  7. SQL / Говнокод #11762

    −161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (IDATUMS is null) then
        begin
            suspend;
            exit;
            REZULT = "Nevar importet gramatojumu id:" || :NOMER_DOC;
            execute procedure TSEND_ERROR(:REZULT);
        end

    Гениальнейшая PSQL-конструкция в СУБД Firebird. Автор, видимо, не в курсе, что после EXIT процедура больше не выполняется :]

    N21, 13 Сентября 2012

    Комментарии (3)