|
|
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
Если заглянет кто-то из hstore--писателей -- хочу [в весьма отдалённом будущем] что-то типа: Код: sql 1. т.е. пропустить уже на этапе заворачивания Код: sql 1. -- а то неприятная дилемма -- то ли вычитывать из системников состав полей, и собирать весь hstore самому, руками на коленке, со всеми вычетами [так и сделаю, кажется], то ли через упомянутый delete чистить результат полного заворачивания. (в исключаемых полях предполагаются БЛОБ-ы -- зачем мне их сначала класть в hstore, чтобы потом подропать из него же ? ) или же хочу операцию/функцию обратную Код: sql 1. 2. 3. (заполнить предопределенный поля hstore тем, что найдётся в record-е, оставив бесхозные поля необработанными. PS если кто видит третий путь -- намекните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 16:49 |
|
||
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
qwwq, а что мешает использовать delete ? =# select delete('a=>b, c=>1'::hstore, ARRAY['c','a']); delete -------- (1 row) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 19:50 |
|
||
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
qwwq, если это after insert/update триггер, то можно прямо прописать null в нужные поля в NEW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 20:17 |
|
||
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
Oleg Bartunovqwwq, а что мешает использовать delete ? =# select delete('a=>b, c=>1'::hstore, ARRAY['c','a']); delete -------- (1 row) я и написал, что есть вариант с делет. только он состоит в том , чтобы сначала, значицца положить мегабайтный блов в шсторе, а потом его оттуа дропнуть. вот этого всего хотелось бы избежать. таки вы , олег, не практикуете, с очевидностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 20:27 |
|
||
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
Alexiusqwwq, если это after insert/update триггер, то можно прямо прописать null в нужные поля в NEW. красивая мысль. только в new оно остаться должно -- следовательно -- использовать буферный record. -- следовательно размножить блоб минимум дважды -- при кладке в этот буферный рекорд, с последующем обнулением. (или кладку уже писать с разбором всего набора полей (это универсальный триггер, т.ч. тип надо будет извлекать на лету), другого способа положить сразу null в выделенное поле я не вижу -- т.е. тот же вид, но уже в профиль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 20:32 |
|
||
|
хочу странного: hstore(record except keys[])
|
|||
|---|---|---|---|
|
#18+
Oleg Bartunov, размышляя о вечном [ковыряя в носу], обнаружил отсутствие в hstore--расширении агрегата вида "hstore_agg()" думаете, он не нужен ? в моем конкретном случае оно бы меня вряд ли спасло [-- надо заполнить хештаблицу имён prepared стейтментов на агрегирующем проходе, агрегируя sql создания и вызова самих prepared string_agg-ами в том же проходе], но факт попутно не обнаружил в справке ограничения на длину ключа. его нет ? и чем чреваты длинные ключи ? (например -- ключ , созданный из имён по маске ~ "схема.таблица.поле1[,поле2[,...полеN]..] при 100 полях даёт оценку длины ключа в ~6400 символов ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1997686]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
162ms |
get topic data: |
5ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 446ms |

| 0 / 0 |
