ST_ öneki SQL / MM Bölüm 3'te bulunmayan işlevler için uygun mu?


12

Bir işlevin tanıtıldığı bu Github sayısında Presto'nun jeo-uzamsal uzantısında bir iplik okuyordum line_locate_point. PostGIS'in ST_LineLocatePointfonksiyonunu temel alarak, kesiti temsil eden bir şamandırayı, o çizgideki en yakın noktanın bir çizgisi boyunca belirli bir konuma geri döndürür.

Soru neden isimlendirildi line_locate_pointve ST_LineLocatePointPostGIS sürümü gibi değil . Yanıt, bu işlevin SQL / MM Part 3 standardında mevcut olmaması ve bu nedenle başlamamasıydı ST_.

Standart üzerinden hızlı bir şekilde okuma, veritabanınıza standart olmayan bir uzamsal işlevi tanıtmak durumunda nasıl ele alınacağı hakkında herhangi bir yorum görmüyorum. ST_Ön ekin ruhu, mekansal işlevleri mekansal olmayan işlevlerden ayırmak mıdır (PostGIS'de olduğu gibi) veya işlevin SQL / MM Bölüm 3'te eşdeğer bir işlevle uyumlu olduğunu belirtmek mi?

Presto'nun API'sinin şu anki durumuna baktığımda , ikinci yaklaşımın daha az temiz göründüğünü ve isimlerin neden tutarlı olmadığına dair biraz karışıklık getirdiğini söylemeliyim, ancak belki de bu üstte basit bir notla ele alınabilir.

Benim sorum, o zaman, tanımladığım uzamsal nesneler kümesinin ötesinde uzantılara izin veren standartın gözden kaçan bir yönü olup olmadığı veya alternatif olarak, bu, aşağıdaki standartların yazılı veya yazılı olmayan bir kuralı tarafından açıkça yasaklanmışsa .


Bence bu adil bir soru, ama esasen bir görüş meselesi. Açıkça uzamsal olan tüm işlevlerin, yani bir vektör, raster, topoloji, 3D yüzey, vb. Üzerinde çalışarak ST_ önekini almasını bekliyorum. Bir spesifikasyonda olup olmadığına bağlı olarak bunun uygun kullanım olup olmadığını sormak bana hiç gelmedi. Birlikte çalışabilirlik önemli ve arzu edilir olsa da, kesinlikle Postgis'in sadece SQL / MM spesifikasyonundaki fonksiyonları uygulayarak geri tutulmasını istemem. Ve başka bir önek kullanmak çok fazla karışıklığa neden olacağını düşünüyorum.
John Powell

Sorumun "görüşe dayalı" olduğu için neden bekletildiğini anlamıyorum. Benim sorum bu olmadığı hakkında açıkça olan bir görüş içerikli veya bunu bakan ediyorum standardın bazı yönü varsa gerçeklere dayalı bu karar verir.
Brideau

Özür dilerim, sorunuzu tekrar okudum ve gerçekten de açık, görüşe dayalı olmayan bir soru var. Benim 2c, açıkça mekansal ise, standartlarda olup olmadığına bakılmaksızın bir ST_ alır. Yeniden oy kullandım.
John Powell

Zihnim için görüşe dayalı. SQL / MM standardı, geliştiricilerin, mekansal olmayan işlevler bile istedikleri takdirde ST_ öneki ile kendi işlevlerini oluşturmalarını engelleyemez. Ancak, geliştiriciler bunu başka bir şekilde yapmak isteyebilir. Karşılaştırma olarak SpatiaLite, ST_ eş anlamlılarına sahip birçok uzamsal ancak SQL / MM olmayan fonksiyona sahiptir, bazıları gaia-gis.it/gaia-sins/spatialite-sql-latest.html'ye sahip değildir .
user30184

SQL / MM'nin bir geliştiriciyi bir şey yapmaya zorlayıp zorlayamayacağı, sorduğum soru değil. Standardın kendisinin ne önerdiğini soruyorum. Standart 1500 sayfa uzunluğunda ve her satırını okumadım, bu yüzden topluluğa - bazıları yazmaya ve ilgili standartlara yardımcı olan - ne tavsiye edildiğini ya da belki de bu kararları başka bir standart veya açıkça bunu ele almamayı seçti. Bunlar gerçeğe dayalı taleplerdir.
Brideau

Yanıtlar:


1

OpenSpatial Spec , bu konuda sayısız şeyler söyler

Bu SQL'i SQL / MM ile entegre ederken, " ST_" tür-adı öneki uygun şekilde kullanılmalıdır.

Ve,

SQL / MM'deki sınıf adları " ST_" önekini taşır . Bu isteğe bağlıdır ve uygulamalar bu standardın çeşitli yerlerinde olduğu gibi bu öneki bırakmayı seçebilir.

Bu Komiteden Taslak ISO / IEC CD13249-3 ed 5

ISO / IEC 13249'un bu kısmı, ST_kullanıcı tanımlı tür, nitelik, SQL tarafından çağrılan rutin ve görünüm adları için önek kullanır . ISO / IEC 13249'un bu kısmı ST_Private, belirli özelliklerin adları için ' ' önekini kullanır . ' ST_Private' Kullanımı , özelliğin genel kullanım için olmadığını belirtir.

İşte sahip olduğumuz şey,

  • SQL / MM önek kullanılmasını önerir.
  • SQL / MM önekin isteğe bağlı olduğunu söylüyor.
  • ISO da ST_öneki kullanıyor ..

Bunu söyleyebilirim,

  • Kullanımı son kullanıcılar için ayrılmış olmayan anahtar kelimelerST_ olarak düşünülmelidir . Bu önekle son kullanıcı işlevlerini gerçekleştirmek için gerçekten hiçbir neden yoktur. Sadece kullanmak daha iyi . Bu önek önerileri (OpenSpatial) SQL / MM ve ISO ile yayınlanan en az iki gövdeyi biliyoruz. Buna ek olarak, birçok RDBMS'nin bu önekle kirletici sembolleri vardır.STx_

Tarihte daha fazlası olabilir, ancak bu konuda daha çağdaş bir bilgi bulamıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.