array_append("val", "point") - добавляет, но поскольку точки приходят неупорядочено, то хочется тут вкрячиться со своей процедуркой которая при вставке делала бы упорядочивание.
соответственно бинарный поиск/сортировка нужны. можно конечно написать самому, но может быть опять что-то есть готовое на эту тему?
можно сделать еще
ARRAY_AGG(SELECT UNNEST(val || ARRAY["point"]::hstore[]) t ORDER BY t->'key')
но это будет сортировка на каждом добавлении точки