|
Как вернуть массив массивов из C-фунции для Postgres
|
|||
---|---|---|---|
#18+
Возвращать массив (1) я научился, а как положить его внутрь другого (2) не получается. 1: CREATE TYPE libc_collect_item AS (goods_id bigint, priority integer); 2: CREATE TYPE libc_collect AS (collect_number integer, collect_items libc_collect_item[]); Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2018, 00:20 |
|
Как вернуть массив массивов из C-фунции для Postgres
|
|||
---|---|---|---|
#18+
Сделал следующее: // Генерим массив который будем вкладывать. Код: 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.
Пытаюсь воткнуть массив в элемент массива, предварительно его разобрав, чтобы получить Datum Код: 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.
Получаю: ...... ИНФОРМАЦИЯ: elemType: 106553 ИНФОРМАЦИЯ: elemWidth: -1 ИНФОРМАЦИЯ: elemTypeByVal: 0 ИНФОРМАЦИЯ: count: 2 ИНФОРМАЦИЯ: outputBaseTypeId: 106556 ИНФОРМАЦИЯ: Object type of the return type: 0 ИНФОРМАЦИЯ: Object base type of the return type: 106553 ИНФОРМАЦИЯ: Object base type rel id of the return type: 106551 ИНФОРМАЦИЯ: Attribute names: goods_id priority ИНФОРМАЦИЯ: Attribute oids: 20 23 ИНФОРМАЦИЯ: Attribute type mods: -1 -1 ИНФОРМАЦИЯ: elemType: 106553 ИНФОРМАЦИЯ: elemWidth: -1 ИНФОРМАЦИЯ: elemTypeByVal: 0 ИНФОРМАЦИЯ: count: 2 ИНФОРМАЦИЯ: outputBaseTypeId: 106556 ОШИБКА: cache lookup failed for type 4294967295 Понятное дело, что этого типа в базе нет и быть не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 22:33 |
|
Как вернуть массив массивов из C-фунции для Postgres
|
|||
---|---|---|---|
#18+
AzimuthСделал следующее:..... старый добрый постгресс, потроха движка... песня одним словом... по поводу форумов - не скажу как сейчас а раньше было мало инфы по данной теме(написание своих инлайн функций). по поводу вопроса - рекомендую заглянуть внутрь исходников самого постгресса. многие вещи приходилось тянуть оттуда. и разбираться "как оно по уму"... удачи вам (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 10:29 |
|
Как вернуть массив массивов из C-фунции для Postgres
|
|||
---|---|---|---|
#18+
И снова-здорова. Сам спросил, сам отвечаю: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 16:09 |
|
|
start [/forum/topic.php?fid=53&tid=1995682]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 158ms |
0 / 0 |