Re: Polygon türünün nodl

From: Volkan YAZICI <yazicivo(at)ttnet(dot)net(dot)tr>
To: oguz d <oguz_1977(at)yahoo(dot)com>
Cc: pgsql-tr-genel(at)postgresql(dot)org
Subject: Re: Polygon türünün nodl
Date: 2006-02-20 19:13:42
Message-ID: 20060220191342.GB1468@alamut
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

Merhaba,

Size iyi haberlerim var!

On Feb 19 06:12, oguz d wrote:
> PostgreSql de node node cekersem bu sorunu
> halledebilecegimi dusunuyorum ancak, Postgrenin
>
> NodeGetir(Polygon, Node_Sayisi)
>
> gibi bir fonksiyonunu bulamadim.

Böyle bir fonksiyon ne PostgreSQL ne de (bildiğim kadarı ile)
PostGIS'te[1] var. Ama artık sizin olacak.

[1] PostGIS'te yanlış bilmiyorsam tek bir node getirmek için fonksiyon
var.

Ekte gönderdiğim C prosedürünü kullanabilirsiniz. Yapacağınız ise gayet
basit.

$ gcc -g -fpic -c geo_part.c -I`pg_config --pkgincludedir`/server
$ gcc -shared -o geo_part.so geo_part.o

$ psql test
test=# -- Aşağıdaki /home/vy/works/ dizini yerine yukarıdaki derleme
test=# -- işlemini yaptığınız dizini girin.
test=# CREATE FUNCTION geo_part(polygon, int, int) RETURNS polygon AS
test=> '/home/vy/works/geo_part', 'geo_part' LANGUAGE C STRICT;
CREATE FUNCTION
test=# SELECT geo_part('((1,2),(3,4),(5,6))'::polygon, 0, 5);
geo_part
---------------------
((1,2),(3,4),(5,6))
(1 row)

test=# SELECT geo_part('((1,2),(3,4),(5,6))'::polygon, 1, 5);
geo_part
---------------
((3,4),(5,6))
(1 row)

test=# -- Döndürülecek bir değer olmadığında geo_part(..., 0) gibi
test=# -- fonksiyon NULL değeri döndürecek. Buna dikkat!

Bu konuyu en kısa zamanda -hackers listesine taşıyacağım. (Evvela COPY
komutu için yazdığım yamayı düzelteyim. Birini düzeltmeden yenisini
yollamak ayıp olur.)

İyi çalışmalar.

Attachment Content-Type Size
geo_part.c text/plain 1.5 KB

In response to

Browse pgsql-tr-genel by date

  From Date Subject
Next Message esrefatak 2006-02-23 17:31:51 Re: Oracle'dan PostgreSQL'e
Previous Message Volkan YAZICI 2006-02-20 16:43:58 Re: Sorgu Önceliği / Ç