|
|
|
хочу странного (множественные функции для ARRAY-ев)
|
|||
|---|---|---|---|
|
#18+
потребовалось сделать индекс, по условию на содержимость в поле-массиве значения из наперед заданного подмножества, но с условием. (последний элемент в поле-массиве, такой, что есть в другом, заданном массиве -- удовлетворяет некоему условию). написать условие -- написал, но поимел ERROR: cannot use subquery in index predicate (там только unnest-ы и select-ы от них, т.е. никаких внешних данных, всё иммутабно) Получается, что надо писать свою функцию например INTERSEC(from_array,in_array), возвращающую элементы from_array ,присутствующие в in_array (+ в порядке, в котором они есть в from_array) т.к. все передачи параметров в postgres-sql/plpgsql очевидно идут по значению (как-то даже проверял), а не по ссылкам, хотелось бы иметь ф-ии типа такой INTERSEC(anyarray,anyarray) (и т.п., которые можно придумать, например union_arrays(anyarray,anyarray) , distinct_array[ordered] и т.п. уже реализованные в чем-то побыстрее . конечно набросал ф-ю (уже извлекая последний, раз уж мне он только и нужен): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. но хотелось бы тут понять, не упускаю ли я из виду что-то более шустрое, и уже реализованное "искаропки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 12:15:00 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=130&tid=1998792]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
320ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
16ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 557ms |

| 0 / 0 |
