|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyГотов потестить Будет готово - отпишусь сюда. Но это не на полчаса работа. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2017, 15:04 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Попробуй в сегодняшнем билде. Пока только в эксперте, там галка новая есть "ALTER views instead of DROP/CREATE". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2017, 11:32 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Проверю сегодня-завтра. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2017, 14:16 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
попробовал, докладываю: 1. Есть нюанс, если поле наследуется прямиком от таблицы, то все ОК, тип правильный. Если же от хранимки, или обернут какой-нибудь функцией, например простейший случай: cast(0 as numeric (15,3)) то в заглушке стоит тип bigint. Насколько это плохо пока не соображу, наблюдаю, может и так сойдет. 2. Пустышка процедуры, которая подпитывает вьюху создается после самой вьюхи, что плохо. Добавляю выходной параметр в хранимку, потом его добавляю во вьюху и компарю все это дело. Скрипт обламывается в итоге. По идее надо сначала изготовить все пустышки, потом уж наполнять. Есть пример, на котором я упражнялся, но он гад 3600 строк. нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 15:04 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Если нужен пример, я тогда сделаю его с нуля, а то копаться в моих каракулях будет точно муторно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 15:28 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
тесткейз по проблеме №2, создаем объекты: Код: 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
добавляем поле, получаем скрипты в зависимости от галки или-или Код: 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
Код: 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88.
результат очевидный облом. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 15:52 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
тут меня еще посетила мысль, а не мало ли будет создание одной пустой вьюхи? может надо создать сначала пустышку со старым набором полей, потом пустышки процедур, потом пустышку вьюхи с новым набором полей и уже потом наполнять пустышки? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 15:57 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
встали в клинч на домене ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 16:21 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
С доменами явных манипуляций не проводил, пользовательских доменов не создавал, за основу была взята типовая база эмплоее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 16:34 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky1. Есть нюанс, если поле наследуется прямиком от таблицы, то все ОК, тип правильный. Если же от хранимки, или обернут какой-нибудь функцией, например простейший случай: cast(0 as numeric (15,3)) то в заглушке стоит тип bigint. Насколько это плохо пока не соображу, наблюдаю, может и так сойдет. Ну, значит, во вьюхе это поле именно такого типа. Или нет? Я ж их не сам придумываю, а прямиком из системных таблиц беру. А если во вьюхе таки это поле не bigint, тогда на баг похоже. Ivan_Pisarevsky2. Пустышка процедуры, которая подпитывает вьюху создается после самой вьюхи, что плохо. Добавляю выходной параметр в хранимку, потом его добавляю во вьюху и компарю все это дело. Скрипт обламывается в итоге. По идее надо сначала изготовить все пустышки, потом уж наполнять. Вынес процедуры выше, сейчас вроде нормально на твоем примере отрабатывает. Ivan_Pisarevskyтут меня еще посетила мысль, а не мало ли будет создание одной пустой вьюхи? может надо создать сначала пустышку со старым набором полей, потом пустышки процедур, потом пустышку вьюхи с новым набором полей и уже потом наполнять пустышки? С ходу в этом не видно смысла. Перед созданием пустышки все зависящие от этой вьюхи процедуры/триггеры/итд уже должны быть "обнулены". Хотя надо проверить этот момент... С доменом пока не разбирался. Там не массив ли объявлен? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2017, 14:30 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
IBExpertНу, значит, во вьюхе это поле именно такого типа. Или нет? Я ж их не сам придумываю, а прямиком из системных таблиц беру.У меня numeric(15.3) в пустышке bigint. Попробую на днях сделать воспроизводимый пример, чтоб тебе не ковырять тысячи строк. IBExpertВынес процедуры выше, сейчас вроде нормально на твоем примере отрабатывает.Это хорошо, проверю. IBExpertС доменом пока не разбирался. Там не массив ли объявлен?массивов нет. просто пара вьюх каскадом и хранимки сплетенные с вьюхами. Я когда-то давно на это уже натыкался, заменил в параметрах хранимки объявление с типов на явные пользовательские домены и проблема ушла. На тестовой базе сейчас случайно наткнулся, подумал будет интересно. Ворэраунд я знаю, если вьюха подпитывается хранимкой, то в ней надо объявить поля явными доменами, тогда компарится нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2017, 17:32 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_Pisarevskyвстали в клинч на домене Ну, собственно, что и требовалось доказать: не всякий ALTER сработает без предварительного вычищения зависимостей. Даже если имена, количество и типы полей вьюхи до и после изменения совпадают. В результате все равно все зависимости чистить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2017, 14:46 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyУ меня numeric(15.3) в пустышке bigint. Попробую на днях сделать воспроизводимый пример, чтоб тебе не ковырять тысячи строк.На простом примере так и не воспроизвел, хотя и предпринял несколько попыток. Есть подозрение, что на это проблему можно забить, ну поживет несколько миллисекунд пустышка с другими типами полей, и фиг с ней. По поводу доменов: компарер считает, что домен освободился и пытается удалять системный домен вида rdb$номер. Может его и не надо удалять? Ну будет болтаться в базе неиспользуемый домен, в самом худшем случае, кому от этого вред? В целом с вьюхами стало поприятней работать. Ты не обновлял ДЛЛ библиотеку под этот функционал, который уже есть в эксперте? Обнови, если не трудно и библиотечку скриптера. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 13:23 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyПо поводу доменов: компарер считает, что домен освободился и пытается удалять системный домен вида rdb$номер. Может его и не надо удалять? Ну будет болтаться в базе неиспользуемый домен, в самом худшем случае, кому от этого вред? Не надо, конечно. Только я уже давно забыл, что там и к чему в твоем примере было. Ivan_PisarevskyВ целом с вьюхами стало поприятней работать. Ты не обновлял ДЛЛ библиотеку под этот функционал, который уже есть в эксперте? Обнови, если не трудно и библиотечку скриптера. Сборки от 6 января лежат, все там должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 15:14 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
IBExpertНе надо, конечно. Только я уже давно забыл, что там и к чему в твоем примере было.Пара баз выше приложена, попробовал их сейчас скомпарить повторно на текущей версии, клинча с доменами нет, видимо меры ты уже предпринял, а я этот момент прошляпил, единственный небольшой безобидный дефект, пустышка вьюхи создается дважды, см скрипт под спойлером. Код: 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. 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. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158.
IBExpertСборки от 6 января лежат, все там должно быть.Спасибо, проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 15:54 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
IBExpertСборки от 6 января лежат, все там должно быть.Проверил, при вызове ДДЛ-ки происходит AV при попытке скормить опцию "AlterViews". Она точно синхронизирована после добавление оной опции? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 17:03 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyПроверил, при вызове ДДЛ-ки происходит AV при попытке скормить опцию "AlterViews". Она точно синхронизирована после добавление оной опции? Точно. Неизвестные опции просто игнорируются, так что если AV именно с этой опцией лезет, то движок точно про нее знает. А без нее как? Тот же блок из эксперта без AV выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 17:54 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
IBExpertА без нее как?без - все ОК. Просто вызов с галками из эксперта - ОК. вызов скрипта из эксперта на картинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 18:15 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Вот у меня на твоих базах (те, что выше в топике) не воспроизводится. Версия эксперта какая? Если базу саму с собой сравнивать, тоже AV лезет? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 06:47 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
IBExpertВот у меня на твоих базах (те, что выше в топике) не воспроизводится.аналогично. IBExpertВерсия эксперта какая?2018,1,27,1 IBExpertЕсли базу саму с собой сравнивать, тоже AV лезет?нет. Если столкнуть рабочую с тестовой(тестовая отличается), то вот такое сообщение(это просто в эксперте с выставлением галок мышкой): ошибкаError Message: ---------------------------------------- Access violation at address 00811EEF in module 'ibexpert.exe'. Read of address 4F4C5F6E [00811EEF] dbcComp_Viw.TViwData.GetFlds (Line 78, "dbcComp_Viw.pas" + 2) + $5 [00403BDF] System.@HandleAnyException + $33 [00812179] dbcComp_Viw.TViwData.DummyDef (Line 100, "dbcComp_Viw.pas" + 1) + $33 [00803851] dbcDBComparer.TDBComparer.ComposeDeactivateObjectsScript (Line 961, "dbcDBComparer.pas" + 41) + $26 [0080218B] dbcDBComparer.TDBComparer.CompareDatabases (Line 419, "dbcDBComparer.pas" + 47) + $2 [00F10BAC] DBCompareF.TDBCompareForm.CompareDBs (Line 563, "DBCompareF.pas" + 198) + $B [00F0FF14] DBCompareF.TDBCompareForm.actCompareExecute (Line 335, "DBCompareF.pas" + 3) + $2 [004DF86C] dxBar.TdxBarItemControl.ControlUnclick (Line 22796, "dxBar.pas" + 28) + $7 Могу выслать скрипты создания баз на почту в профиле или куда скажешь, мне бы не хотелось выкладывать оные публично. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 09:42 |
|
Comparer - View
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyМогу выслать скрипты создания баз на почту в профиле или куда скажешь, мне бы не хотелось выкладывать оные публично. Присылай на мыло, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2018, 05:18 |
|
|
start [/forum/topic.php?fid=42&gotonew=1&tid=1598993]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
13ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 243ms |
total: | 523ms |
0 / 0 |