Estaba leyendo un hilo sobre la extensión geoespacial para Presto en este tema de Github , donde line_locate_point
se introdujo una función . Se basó en la ST_LineLocatePoint
función de PostGIS , que devuelve un flotante que representa la fracción a lo largo de una línea del punto más cercano en esa línea a una ubicación determinada.
Se planteó la pregunta de por qué se nombró line_locate_point
y no ST_LineLocatePoint
como la versión PostGIS. La respuesta fue que esta función no existe en el estándar SQL / MM Parte 3, por lo que no debería comenzar con ST_
.
Al leer rápidamente el estándar, no veo ningún comentario sobre cómo manejar los casos en los que introduce una función espacial en su base de datos que no está en el estándar. ¿El espíritu del ST_
prefijo es diferenciar funciones espaciales de funciones no espaciales (como parece ser el caso con PostGIS), o es para indicar que la función cumple con una función equivalente en SQL / MM Parte 3?
Mirando el estado actual de la API de Presto , tengo que decir que el último enfoque parece menos limpio e introduce cierta confusión en cuanto a por qué los nombres no son consistentes, pero quizás esto podría abordarse con una simple nota en la parte superior.
Mi pregunta, entonces, es si hay algún aspecto del estándar que estoy pasando por alto que permita extensiones más allá del conjunto definido de objetos espaciales, o alternativamente, si esto está expresamente prohibido por alguna regla escrita o no escrita de seguir los estándares .
fuente
Respuestas:
La especificación OpenSpatial dice numerosas cosas sobre esto,
Y,
De este Comité Borrador ISO / IEC CD13249-3 ed 5
Entonces aquí está lo que tenemos,
ST_
prefijo.Yo diría esto
ST_
debe considerarse como palabras clave no reservadas para los usuarios finales. Realmente no hay razón para hacer funciones de usuario final con este prefijo. Es mejor que solo lo usesSTx_
. Sabemos de al menos dos cuerpos que han publicado con este prefijo sugerencias (OpenSpatial) SQL / MM e ISO. Además, muchos símbolos de RDBMS contaminan con ese prefijo.Puede haber más en la historia, pero no puedo encontrar más información contemporánea sobre esto.
fuente