
Anton [Mgn, az09@osm]
01.03.2017
13:10:13
если бы ты писал просто апдейт то как бы он выглядел (без конфликт вот этого всего)

Andrew
01.03.2017
13:12:05

Anton [Mgn, az09@osm]
01.03.2017
13:12:33
в инсерте есть. в апдейте нет

Andrew
01.03.2017
13:15:59
я почему-то не нашел примеров с CONFLICT чтоб куда-то указывать надо было таблицу
подскажите куда подставить эту таблицу тогда?
обычный упдейт бы выглядил так
update my_table set my_table.price = tablename.price where my_table.id=tablename.id

Google

Anton [Mgn, az09@osm]
01.03.2017
13:17:05
и этот бы сругался ровно так же. фром нужен

raksita
01.03.2017
13:19:27
можно использовать EXCLUDED таблицу
https://www.postgresql.org/docs/current/static/sql-insert.html
Note that the special excluded table is used to reference values originally proposed for insertion:
INSERT INTO distributors (did, dname)
VALUES (5, 'Gizmo Transglobal'), (6, 'Associated Computing, Inc')
ON CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;

Andrew
01.03.2017
13:34:24
спасибо
оказывается можно еще вот так
ON CONFLICT (id) DO UPDATE SET price='tablename.price'

Darafei
01.03.2017
13:59:57

Andrew
01.03.2017
14:04:12

Vlad
01.03.2017
15:07:41
Всем доброго времени суток!)
Подскажите пожалуйста, кто-нибудь использовал https://github.com/sorintlab/stolon? какие впечатления (стабильность, производительность и тд)?

Evgeniy
01.03.2017
16:17:24
а у меня есть вопрос про BRIN
когда вставили новый батч, который не подпадал под существующие рейнджы и до того как запуститли вакуум, то есть не вызывалась суммаризация
как вопрос будет выполняться
будет ли брин работать хотя бы как эксклуд для блоков которые не надо сканить

Stas
01.03.2017
16:19:44

Evgeniy
01.03.2017
16:21:01
As new pages are filled with data, page ranges that are already summarized will cause the summary information to be updated with data from the new tuples. When a new page is created that does not fall within the last summarized range, that range does not automatically acquire a summary tuple; those tuples remain unsummarized until a summarization run is invoked later, creating initial summaries. This process can be invoked manually using the brin_summarize_new_values(regclass) function, or automatically when VACUUM processes the table.

Google

Stas
01.03.2017
16:22:17
вот тоже сейчас нашел этот коммент, значит не прав, думал оно всегда на обновление дергается

Evgeniy
01.03.2017
16:23:07
неа, brininsert() не делает
мне в итоге хочется понять как запрос выполняется
судя по плану, он всё равно юзает брин индекс, но получается что как блум фильтр что ли
вот спросят меня прогромисты, и что я им отвечу :(

Fike
01.03.2017
16:51:22

Darafei
01.03.2017
16:54:42
я вам завидую
у меня и без индексов-то ничего не работает :(

Evgeniy
01.03.2017
16:57:42
полигон не вертится, не растет кокос

Darafei
01.03.2017
17:02:13
ERROR: CREATE TABLE juno_osm_testing_point_tmp AS SELECT * FROM juno_osm_testing_point ORDER BY CASE WHEN ST_IsEmpty(way) THEN NULL ELSE ST_GeoHash(ST_Transform(ST_Envelope(way),4326),10) END COLLATE "C" failed: PANIC: stuck spinlock detected at hash_search_with_hash_value, /build/postgresql-9.6-999/build/../src/backend/utils/hash/dynahash.c:994
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

Anton [Mgn, az09@osm]
01.03.2017
17:17:19

Darafei
01.03.2017
17:18:15
с картинками на http://workshops.boundlessgeo.com/postgis-intro/clusterindex.html

Anton [Mgn, az09@osm]
01.03.2017
17:21:29

Darafei
01.03.2017
17:21:53
в смысле - не срабатывают?
это osm2pgsql

Anton [Mgn, az09@osm]
01.03.2017
17:25:17

Darafei
01.03.2017
17:29:58
да, только застревает оно на спинлоках

Evgeniy
01.03.2017
17:54:49
а если прибавить макс_чарс?

Google

Evgeniy
01.03.2017
17:59:34
хотя наверное я херню несу
кот, а вы не писали в кх на тему спонсирования поддержки гиса?

Darafei
01.03.2017
18:22:56
кх?

Evgeniy
01.03.2017
18:23:54
клик хаус

Darafei
01.03.2017
18:24:27
нет, не писали
уж слишком уж большое количество эджкейсов - или следовать стандарту (и начинать тормозить), или не следовать (и реимплементить всё-превсё заново)
я смотрел, что нужно написать, чтобы просто сделать в базе минимальный закос под постгис, который сделал бы её drop-in совместимой с qgis
самая критическая штука - ST_Intersects от двух произвольных шейпов, чтобы лассо работало
крешер в ST_Intersects в постгисе я словил буквально прошлым летом :)
https://github.com/postgis/postgis/pull/105

Evgeniy
01.03.2017
18:51:22
ну мне кажется ты зря так пессимистично настроен

Darafei
01.03.2017
18:52:06
окей, а что такое в твоём понимании "поддержка гиса"?

Darafei
01.03.2017
18:58:53
в постгресе вот нативная геометрия есть. по ней есть быстрый кнн и всякие другие плюшки, но в моей картине мира для гисов она непригодна

Dmitrii
01.03.2017
19:00:06
А почему вот этот огромный экстеншен postgis еще не в самом pg?

Evgeniy
01.03.2017
19:00:38
а зачем

Darafei
01.03.2017
19:00:45
ты хочешь видеокодеки в ядре постгреса?

Evgeniy
01.03.2017
19:00:47
разные релиз цикли, модель разработки

Dmitrii
01.03.2017
19:01:12
Видео кодеки?

Darafei
01.03.2017
19:01:40
постгис в последних убунтах их вполне тянет с собой :)

Dmitrii
01.03.2017
19:01:59
А зачем они ему?) О_о

Google

Darafei
01.03.2017
19:02:16
c растрами работать, как зачем?
https://www.youtube.com/watch?v=fCrB1t8MncY

Andrey
01.03.2017
19:18:00

Аггей
01.03.2017
20:52:23

Darafei
01.03.2017
20:53:11

Аггей
01.03.2017
20:54:30
А при построении полигонов есть проверки на самопересечение и прочее?
Сам в геодезии и картографии слаб, но сталкивался с entity spatial в oracle. Там достаточно много чего есть

Darafei
01.03.2017
20:57:01
OGC Simple Features

Admin
ERROR: S client not available

Darafei
01.03.2017
20:57:53
если в имплементации нет всего, что на рисунке выше, оно обязательно с чем-нибудь окажется несовместимо

Аггей
01.03.2017
21:01:12
А вот полигоны те же с дырками - я не совсем понимаю как они должны храниться. Полигон хранится координатами точек - полигон с дырками - номер контура и координаты?

Darafei
01.03.2017
21:01:26
там есть проверки вида "если вы вызовете area(), то мы проверим на самонепересечение"
для примера глянь https://en.wikipedia.org/wiki/Well-known_text
в общем случае полигон - это массив колец
первое кольцо внешнее, остальные - дырки

Аггей
01.03.2017
21:02:40
Кольцо - в моей терминологии - контур )

Darafei
01.03.2017
21:02:40
бокс полигона считается по первому кольцу
LinearRing в OGC-терминологии

Аггей
01.03.2017
21:04:54
А в pg получается нет возможности вычислить ту же площадь без костылей вида area(ring1)-area(ring2)...- area(ringN)?

Google

Darafei
01.03.2017
21:05:13
да
ну, всегда можно сделать с-образный полигон с канавкой, только его рисовать погано

Аггей
01.03.2017
21:06:45
)) и площадь чуть меньше будет

Darafei
01.03.2017
21:06:52
ровно такая же

Аггей
01.03.2017
21:06:57
На площадь канавки )

Darafei
01.03.2017
21:07:00
если по тем же точкам
но на дворе, кажется, не 1998, когда это было в моде :)
в общем, они срисованы откуда-то с интервалов и массивов, есть не сильно нужные операторы вроде "точно слева от?" и выколотость точек на концах, но нету ничего мульти-

Аггей
01.03.2017
21:16:49
Сталкивался с человеческим фактором который был где-то в 98. Когда в РФ ставили землю на учёт требования к точности были так себе, и сотрудники кадастровых палат рисовали мелкие участки буквально на глаз. Под теми же опорами ЛЭП площадь участка 20 кв.м что в массштабах целых районов/регионов - совсем ничто. И сотрудники для ускорения ввода рисовали их "кружочками" (2 клика мыши - центр и радиус, вместо 4х при рисовании квадратов). После нескольких лет работы с этим и нескольких перегонов из ГИС в ГИС эти кружочки стали полигоном с 360 точками. А учитывая их количество - вызывали нереальные нагрузки на oracle при обработках пересечений, расчетах площадей и прочем
Вот такая у нас картография в РФ )


Darafei
01.03.2017
21:20:50
ага. в нынешнем josm квадратик массово рисуется в полтора-два клика (если референсная линия зафиксирована, то одна протяжка по диагонали, если нет - клик по одному углу и протяжка по противоположной стене)
ребята из питерского транспорта жаловались, что сделали прототип на постгисе и всё работало, а потом заставили переделать всё на оракл и оно стало тормозить, так что могу представить :)

Аггей
01.03.2017
21:23:53
Ну я про эти 360 точек тоже узнал - когда тормозило и я искал медленные запросы. Почитаю про wkt думаю ещё будут вопросы

Алексей
01.03.2017
21:26:51

Darafei
01.03.2017
21:27:03
это уже мультиполигон
и он массив полигонов
потому что в каждом внешнем кольце свои дырки

Алексей
01.03.2017
21:27:22
А речь шла о полигонах? Сорри, не заметил.

Darafei
01.03.2017
21:30:42
но да, мультиполигоны - это следующее, про что забывают при имплементации
потом забывают про смешанные коллекции
потом про коллекции коллекций