Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.11.2016, 19:55
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
PostgreSQL 9.5.4 При выполнении 3 условий: 1. update на fdw 2. сторонняя таблица нарезана на партиции 3. where есть условия на локальные таблицы update на fdw работает неправильно запрос Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. превращается в Код: plsql 1. получается что FDW думает что ctid якобы уникальный, и им можно оперировать для указания конкретной записи. а по факту он уникальным не является (является не всегда) -- для набора партиций. в результате обновляются совершенно случайные записи , с совпадающим ctid! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.11.2016, 20:53
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Dany305, откуда мораль -- не присоединяйте предков и прочие суррогаты. присоединяйте сами "партиции" и наследуйте от таблицы--пустышки на стороне присоединения. (и повторяйте логику партицирования на этой пустышке) забавно, забавно. судя по всему fdw писали люди не знакомые с наследованием в пж. ара калоеды небось (ара--кальный фдв в прошлом был лучше постгресовского) а што буит при множественном наследоавании ? или вложенном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.11.2016, 21:12
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
qwwqDany305, откуда мораль -- не присоединяйте предков и прочие суррогаты. присоединяйте сами "партиции" и наследуйте от таблицы--пустышки на стороне присоединения. (и повторяйте логику партицирования на этой пустышке) а как тогда ловить появление новых партиций и цеплять к ним fdw? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.11.2016, 22:12
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Dany305qwwqDany305, откуда мораль -- не присоединяйте предков и прочие суррогаты. присоединяйте сами "партиции" и наследуйте от таблицы--пустышки на стороне присоединения. (и повторяйте логику партицирования на этой пустышке) а как тогда ловить появление новых партиций и цеплять к ним fdw? партицирование зло а динамическое -- подавно и кто вам виноват, что вы до него пали //боюсь не у вас одного это вылезло боком. теперь надо придумывать динамическое присоединение новых партиций -- потому как апдейт по цид в фдв -- данность (которую вы наблюли экспериментально), написанная людьми немного далёкими от пж. -- следовательно соединять предков попросту нельзя. можно только сами таблицы данных. попробуйте на стороне апдейта добавить ещё условие , по партицирующему признаку. хотя, боюсь, вам точно так же не удастся просунуть его "на ту сторону". в общем -- надо потыкаться экспериментально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 00:01
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
qwwq -- потому как апдейт по цид в фдв -- данность (которую вы наблюли экспериментально), написанная людьми немного далёкими от пж. надеюсь, в следующий раз они таки догадаются добавить " AND tableoid=$2" , <...> т.ч. пишите скорее письма в спортлото и вырезайте пока fdw--линковку иерархий из продакшыноф. (и планы её запилить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 00:32
|
|||
|---|---|---|---|
|
|||
Баг update fdw? |
|||
|
#18+
qwwqDany305пропущено... а как тогда ловить появление новых партиций и цеплять к ним fdw? партицирование зло а динамическое -- подавно и кто вам виноват, что вы до него пали смешно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 08:55
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
ocp_dba_rhceqwwqпропущено... партицирование зло а динамическое -- подавно и кто вам виноват, что вы до него пали смешно :) ага, уписаться можно. остается надеяться что это только если в планах запроса на вызывающей стороне -- фулскан. и что у нас в "2.0" этого нигде не возникает (т.к. фулскан -- "уже "ошибка"") хотел с утра отписаться. но теперь незачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 08:56
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Dany305, покажите, каков план запроса на вызывающей стороне ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 09:33
|
|||
|---|---|---|---|
|
|||
Баг update fdw? |
|||
|
#18+
qwwq, Там и возникло.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 11:31
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
ocp_dba_rhceqwwq, Там и возникло.... печаль есть слабая надежда, что оно так не всегда, а только когда не может пропихнуть условие "как есть" на ту сторону. т.е. скатывается в плане к фуллскану на стороне линковки и отсылает апдейт по конкретной отобранной фулсканом строке(кам) на ту сторону. (забывая про тейблоиды) тогда надо развалить конструкцию with .... на plpgsql--ное получение значения в переменную. и отдельный стейтмент -- апдейт по индексу по значению из переменной, который фдв сможет передать "как есть". (если нельзя клиентом разложить на части). даже бз динамики. но надежда не очень сильная, да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 13:43
|
|||
|---|---|---|---|
|
|||
Баг update fdw? |
|||
|
#18+
включу сюда в беседу (на всякий случай) -- пару строк кода из /contrib/postgres_fdw/postgres_fdw.c ( https://github.com/postgrespro/postgrespro/blob/PGPRO9_5/contrib/postgres_fdw/postgres_fdw.c ) Datum postgres_fdw_handler(PG_FUNCTION_ARGS) Код: 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. 34. 35. 36. 37. 38. 39. 40. postgresAddForeignUpdateTargets(..) Код: 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. 34. 35. 36. postgresBeginForeignModify(..) Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 15:02
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
antonov.impulsm, подсуньте вместо предка иерархии -- вью на него же. (т.е. подцепите снаружи как ф-таблу вьюху на корень) 1. она (вьюха) в 9.5. д.б. уже апдейтебл без рукописей. 2. и в ней (вьюхе) наверняка не видно ctid -- следовательно fdw может и обломаться со своим недохаком. хотя "C" я абсолютно не читаю. так, по их же комментам судя, ---- что--то должно "пойти не так". из минусов -- наиболее вероятен вечный фулскан (или же ашипка) т.е. чисто экспериментальная ценность. в спортлото уже отписались ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 15:32
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
вся сила в deparseUpdateSql() :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 15:40
|
|||
|---|---|---|---|
|
|||
Баг update fdw? |
|||
|
#18+
Dany305вся сила в deparseUpdateSql() :) Dany305, да.. это вызывается из ``routine->PlanForeignModify(..)`` ( то есть из ``postgresPlanForeignModify(..)`` ) тут кстати есть не далеко описание этих фнкций: https://github.com/postgrespro/postgrespro/blob/PGPRO9_5/doc/src/sgml/fdwhandler.sgml про PlanForeignModify написано: Код: 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. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2016, 16:00
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Dany305, если тут https://www.postgresql.org/docs/current/static/ddl-system-columns.html ctid The physical location of the row version within its table. Note that although the ctid can be used to locate the row version very quickly, a row's ctid will change if it is updated or moved by VACUUM FULL. Therefore ctid is useless as a long-term row identifier. The OID, or even better a user-defined serial number, should be used to identify logical rows. физ--смысл цтид не ясен. (т.е. степень уникальности/на базу) есть такая гипотеза : http://grokbase.com/t/postgresql/pgsql-general/02635say4v/ctid-updates it looks like (and I'm guessing) that ctid is a page/row offset. So there should be only one thing at each ctid address. ------------------------- ------------------------- 2# Also, is ctid unique for each row? Yes, per table. откуда марал -- эти экс--пертцы не заложились на наследство (hierarhy) и продинамили часть ключа -- tableoid -- и их надо поскорее пнуть. нас (вас) это не спасает, но упрощает будущее. которое рано или поздно придётся писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.12.2016, 13:13
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Всем доброе время суток! Так об этом глюке кто-нибудь написал в pgsql-bugs@postgresql.org или еще нет? Т.е. стоит вообще ожидать какой-то реакции в виде попыток выпуска исправлений в будущих релизах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.12.2016, 13:28
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
Нужно сделать самостоятельный тест кейс для 9.6.1 версии (как самой свежей), тогда можно будет закинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.12.2016, 13:37
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
qwwq... т.ч. пишите скорее письма в спортлото и вырезайте пока fdw--линковку иерархий из продакшыноф. (и планы её запилить) qwwq... в спортлото уже отписались ? qwwq... хотел с утра отписаться. но теперь незачем. vyegorovНужно сделать самостоятельный тест кейс для 9.6.1 версии (как самой свежей), тогда можно будет закинуть. Могу, конечно, сделать и сам, но хотелось бы знать, что никого не задублирую. Да и проблема не мною обнаружена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.12.2016, 17:45
|
|||
|---|---|---|---|
Баг update fdw? |
|||
|
#18+
RENO4, там всё очевидно из c--кода даже не читая. но вот вам тест: Код: sql 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1996815]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 196ms |

| 0 / 0 |
