|
|
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Как по мне - это не правильно, но уже версия 10 одбц драйвера постгрес, а код остается. Цикл начальный с переменной k и внутри него еще один с той же переменной. Я не прав? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 13:47 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kЯ не прав? не критично, т.к. во втором цикле переменная переинициализируется и отдельно вне и во втором цикле никак не используется. Видимо автор просто хотел сэкономить на переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 13:59 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kКак по мне - это не правильно, но уже версия 10 одбц драйвера постгрес, а код остается. Цикл начальный с переменной k и внутри него еще один с той же переменной. Я не прав? Ты прав. Первый цикл бесконечный при num_keys > 2, но он работает т.к. скорее всего заканчивается на одном из break. PS Для выделения кода есть тэг SRC Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:00 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Хотя... (немного не так воспринял код без тега SRC :( ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. вообще-то используется в верхнем цикле и сбрасывается во вложенном: первая итерация k = 0 k = 0, k = 1, k = 2 вторая итерация k = 3 k = 0, k = 1, k = 2 третья итерация k = 3 k = 0, k = 1, k = 2 и тд. если num_keys > 3, то данный цикл никогда не закончится, прервать его могут только break'и внутри внешнего for Если это не ошибка и так задумано специально, то очень индусский код с точки зрения восприятия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:12 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Dima TPS Для выделения кода есть тэг SRC есть, знаю, но под Оперой его практически нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:31 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Cerebrum256kЯ не прав? не критично, т.к. во втором цикле переменная переинициализируется и отдельно вне и во втором цикле никак не используется. Видимо автор просто хотел сэкономить на переменных. Во внутреннем то да, но ведь она выходя из внутреннего цикла сбивает значение переменной внешнего цикла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:32 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
CerebrumХотя... (немного не так воспринял код без тега SRC :( ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. вообще-то используется в верхнем цикле и сбрасывается во вложенном: первая итерация k = 0 k = 0, k = 1, k = 2 вторая итерация k = 3 k = 0, k = 1, k = 2 третья итерация k = 3 k = 0, k = 1, k = 2 и тд. если num_keys > 3, то данный цикл никогда не закончится, прервать его могут только break'и внутри внешнего for Если это не ошибка и так задумано специально, то очень индусский код с точки зрения восприятия... Здесь: https://github.com/hiinoue/psqlodbc/blob/master/info.c строки 4317 и 4342 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:36 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kЗдесь: https://github.com/hiinoue/psqlodbc/blob/master/info.c судя по всему это нормальная практика такого кода у авторов (см. скриншот) я бы добавил отдельную функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. тогда можно было бы записать вместо второго и всех других вложенных циклов: Код: plaintext 1. 2. и проблема была бы исчерпана и код был бы прозрачнее и не возникало головоломки с множественным использованием индексов. Возможно где-то это и оправдано, но рано или поздно сыграет человеческий фактор и это выльется в ошибку, которую будет ой как не просто найти, поэтому функции рулят! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:50 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kЗдесь: https://github.com/hiinoue/psqlodbc/blob/master/info.c и вообще писать такие портянки - это врагу не пожелаешь как потом отлаживать этот папирус, я хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:53 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kDima TPS Для выделения кода есть тэг SRC есть, знаю, но под Оперой его практически нет При чем тут твоя опера? Предлагаешь нам глаза ломать об твои посты? 256kВо внутреннем то да, но ведь она выходя из внутреннего цикла сбивает значение переменной внешнего цикла? В зависимости от num_keys внешний цикл вырождается в одно из двух: 1. Отсутствие цикла, т.е. 1 проход 2. Зацикливание и выход по одному из break Как выше подмечено - код корявый, но скорее всего вполне рабочий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:55 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Dima T256kпропущено... есть, знаю, но под Оперой его практически нет При чем тут твоя опера? Предлагаешь нам глаза ломать об твои посты? 256kВо внутреннем то да, но ведь она выходя из внутреннего цикла сбивает значение переменной внешнего цикла? В зависимости от num_keys внешний цикл вырождается в одно из двух: 1. Отсутствие цикла, т.е. 1 проход 2. Зацикливание и выход по одному из break Как выше подмечено - код корявый, но скорее всего вполне рабочий. В каких-то случаях рабочий, в каких-то нет, причем, как было сказано выше - обнаружить трудно. И код не мой, и Опера не моя, была бы моя я бы исправил :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 14:59 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kВ каких-то случаях рабочий, в каких-то нет, причем, как было сказано выше - обнаружить трудно. попробуй второй цикл поправить, может поможет Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 15:13 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Dima T256kВ каких-то случаях рабочий, в каких-то нет, причем, как было сказано выше - обнаружить трудно. попробуй второй цикл поправить, может поможет Код: plaintext 1. вариант, а можно наверное и так сделать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 15:40 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256kDima Tпропущено... попробуй второй цикл поправить, может поможет Код: plaintext 1. вариант, а можно наверное и так сделать Код: plaintext 1. это одно и тоже, но твой вариант читабельнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 15:45 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
256k, Ошибка есть, но если посмотреть внимательнее, то эта функция PGAPI_ForeignKeys_old вызывается в версиях PG < 8.1 Т.е. это старая ошибка, сейчас не используемая =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 19:24 |
|
||
|
Цикл: здесь нет ошибки?
|
|||
|---|---|---|---|
|
#18+
Siemargl256k, Ошибка есть, но если посмотреть внимательнее, то эта функция PGAPI_ForeignKeys_old вызывается в версиях PG < 8.1 Т.е. это старая ошибка, сейчас не используемая =) Всё бы так, но есть юзеры, использующие старую версию сервера, и, соответственно, драйверы Но, писатели оставили это место, не удалили, потмоу и вопрос возник. И там в коде такое место не одно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39698480&tid=2017763]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 379ms |

| 0 / 0 |
