Я читал тему о геопространственном расширении для Presto в этом выпуске Github , где была представлена функция line_locate_point
. Он основан на ST_LineLocatePoint
функции PostGIS , которая возвращает число с плавающей запятой, представляющее дробь вдоль линии ближайшей точки на этой линии в заданном месте.
Был задан вопрос, почему он был назван, line_locate_point
а не ST_LineLocatePoint
как версия PostGIS. Ответ был таков: эта функция не существует в стандарте SQL / MM Part 3 и поэтому не должна начинаться с ST_
.
Быстро читая стандарт, я не вижу никаких комментариев о том, как обрабатывать случаи, когда вы вводите пространственную функцию в вашу базу данных, которая не входит в стандарт. Является ли смысл ST_
префикса отличать пространственные функции от непространственных функций (как это имеет место в PostGIS), или это указывает на то, что функция соответствует эквивалентной функции в SQL / MM Part 3?
Глядя на текущее состояние API Presto , я должен сказать, что последний подход выглядит менее чистым и вносит некоторую путаницу в вопрос о том, почему имена не согласованы, но, возможно, это можно решить с помощью простой заметки вверху.
Мой вопрос, таким образом, заключается в том, есть ли какой-то аспект стандарта, который я пропускаю, который позволяет расширить его за пределы определенного набора пространственных объектов, или, в качестве альтернативы, если это прямо запрещено каким-либо письменным или неписаным правилом следования стандартам ,
источник
Ответы:
Спецификация OpenSpatial говорит об этом много вещей,
И,
Из этого комитета Проект ИСО / МЭК CD13249-3 изд 5
Итак, вот что мы имеем,
ST_
тоже использует префикс ..Я бы сказал это,
ST_
должно рассматриваться как незарезервированные ключевые слова для конечных пользователей. На самом деле нет причин создавать функции конечного пользователя с этим префиксом. Тебе лучше просто использоватьSTx_
. Мы знаем как минимум о двух телах, которые опубликовали с этими префиксами предложения (OpenSpatial) SQL / MM и ISO. Кроме того, многие СУБД загрязняют символы этим префиксом.В истории может быть что-то еще, но я не могу найти более современной информации об этом.
источник