ST_ 접두사가 SQL / MM Part 3에 포함되지 않은 함수에 적합합니까?


12

이 Github 이슈 에서 Presto의 지리 공간 확장에 대한 스레드를 읽고 있었는데 여기서 기능 line_locate_point이 도입되었습니다. PostGIS의 ST_LineLocatePoint함수를 기반으로했습니다.이 함수는 해당 라인에서 가장 가까운 점을 따라 분수를 나타내는 부동 소수점을 주어진 위치에 반환합니다.

PostGIS 버전 line_locate_point과 달리 이름이 붙은 이유가 제기되었습니다 ST_LineLocatePoint. 응답은이 함수가 SQL / MM Part 3 표준에 없기 때문에로 시작해서는 안된다는 것입니다 ST_.

표준을 빠르게 읽으면 표준에없는 데이터베이스에 공간 기능을 도입하는 경우를 처리하는 방법에 대한 의견이 없습니다. ST_공간 함수와 비 공간 함수를 구별 하는 접두사 정신 (PostGIS의 경우와 같이)입니까, 아니면 함수가 SQL / MM Part 3의 동등한 함수를 준수 함을 나타내는 것입니까?

Presto의 API현재 상태를 살펴보면 후자의 접근 방식이 덜 깨끗해 보이고 이름이 일치하지 않는 이유에 대해 약간의 혼란이 생길 ​​수 있지만 맨 위에 간단한 메모로 해결할 수 있습니다.

내 질문은 정의 된 공간 객체 세트 이상으로 확장 할 수있는 표준의 일부 측면이 있는지, 아니면 표준을 따르는 서면 또는 기록되지 않은 규칙에 의해 명시 적으로 금지 된 경우 .


나는 이것이 공정한 질문이라고 생각하지만 본질적으로 의견의 문제로 귀착됩니다. 공간, 즉 벡터, 래스터, 토폴로지, 3D 표면 등에서 작동하는 모든 함수는 ST_ 접두사를 사용합니다. 이것이 사양에 있는지 여부에 따라 적절한 사용법인지 묻기 위해 결코 나에게 오지 않았습니다. 상호 운용성이 중요하고 바람직하지만 SQL / MM 사양에서만 함수를 구현하여 Postgis를 보류하고 싶지는 않습니다. 그리고 다른 접두사를 사용하면 많은 혼란이 생길 ​​것이라고 생각합니다.
존 파월

왜 "의견에 입각하여"내 질문이 보류되었는지 이해가되지 않습니다. 내 질문은 그것이 의견에 근거한 것인지 , 또는 내가 간과하고있는 표준의 일부 측면 있는지에 대해 명시 적으로 결정하는 것입니다.
Brideau

사과, 나는 단지 당신의 질문을 다시 읽었으며 실제로 거기에는 분명한 비 의견에 근거한 질문이 있습니다. 내 2c는 명시 적으로 공간적 인 경우 표준에 있는지 여부에 관계없이 ST_를 얻는다는 것입니다. 재개 표를했습니다.
존 파월

내 생각에 그것은 의견에 근거한다. SQL / MM 표준은 개발자가 원하는 경우 공간이 아닌 함수 일지라도 ST_ 접두사를 사용하여 자체 함수를 작성하는 것을 거부 할 수 없습니다. 그러나 개발자는 다른 방법으로 할 수도 있습니다. SpatiaLite에는 ST_ 동의어가있는 공간적이지만 비 SQL / MM 함수가 많지만 gaia-gis.it/gaia-sins/spatialite-sql-latest.html이없는 함수도 있습니다.
user30184

SQL / MM이 개발자에게 무언가를 강요 할 수 있는지 여부는 내가 묻는 질문이 아닙니다. 표준 자체가 권장하는 것에 대해 묻고 있습니다. 표준은 1500 페이지 길이이며, 모든 내용을 읽지는 않았으므로 여기에 커뮤니티를 요청합니다. 일부는 표준 및 관련 표준을 작성하는 데 도움을 줄 것입니다-권장 사항 또는 이러한 결정을 연기할지 여부 다른 표준 또는 명시 적으로이 문제를 해결하지 않기로 선택했습니다. 사실 기반 요청입니다.
Brideau

답변:


1

OpenSpatial 사양은 , 이것에 대해 많은 것을 말한다

이 SQL을 SQL / MM의 SQL과 통합 할 때, 형식 이름 접두사 " ST_"를 적절하게 사용해야합니다.

과,

SQL / MM의 클래스 이름에는 " ST_"접두사가 있습니다. 이것은 선택 사항이며 구현시이 표준의 다양한 위치에서 수행 된 것처럼이 접두사를 삭제하도록 선택할 수 있습니다.

위원회의 초안 ISO / IEC CD13249-3 ed 5

ISO / IEC 13249의이 부분은 ST_사용자 정의 형식, 속성, SQL 호출 루틴 테이블 및 뷰 이름에 접두사 를 사용합니다. ISO / IEC 13249의이 부분은 ST_Private특정 속성의 이름에 접두사 ' '를 사용합니다. ' ST_Private' 사용은 속성이 공용이 아님을 나타냅니다.

여기 우리가 가진 것이 있습니다.

  • SQL / MM은 접두사 사용을 제안합니다.
  • 그러나 SQL / MM은 접두사가 선택 사항이라고 말합니다.
  • ISO ST_도 접두사를 사용합니다 .

나는 이것을 말할 것이다.

  • 의 사용 ST_으로 간주되어야한다 예약되지 않은 키워드가 최종 사용자에게. 이 접두사를 사용하여 최종 사용자 기능을 만들 이유가 없습니다. 을 사용하는 것이 좋습니다 STx_. 우리는이 접두사 제안 (OpenSpatial) SQL / MM 및 ISO로 공개 한 두 개 이상의 본문을 알고 있습니다. 또한 많은 RDBMS의 오염 기호가 해당 접두사를 갖습니다.

역사에 더 많은 것이 있을지 모르지만 이에 관한 더 현대적인 정보를 찾을 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.