2012-02-04 10 views
1

PostgresのSQL ServerのUDF(関数をDLLにエクスポートし、SQL Serverの関数としてインポートできる)のようなものはありますか?SQL ServerのようなPostgres dllimport

例えば私は、インポートする機能は、次のシグネチャがあります。DLLインポートは、次のようになります

public static extern double* svd(double[] a, int d); 

[DllImport("D:\\my.dll", EntryPoint = "mydll")] 
+0

[Postgresの外部DLLに.NET関数を呼び出す]の複製が可能です(http://stackoverflow.com/questions/841158/call-net-function-in-external-dll-from-postgres) –

+1

二重。質問をお読みください。 – codekaizen

+0

@codekaizen最初の答えは、ネイティブ関数を呼び出す方法と、管理対象関数呼び出しを回避する方法を示しています。私たちはここで新たな地歩を築いていません。 –

答えて

0

あなたはPostgresのでCreate Functionを使用することができます。

CREATE FUNCTION svd(double*, int) RETURNS double* 
AS 'c:/path/mydll.dll' 
LANGUAGE 'C'; 

詳細情報:http://www.postgresql.org/docs/current/static/xfunc-c.html

複合型は、可変数の行と列を持つ行列を操作しているように見えるので、おそらく複合型を使用する必要があります。

+0

はい私は複合型については少し詳細を与えることができる行列を操作していますか? – cMinor

+0

@cMinor n次元のPostgreSQL配列を使用してn次元の行列を表すことができるので、独自のデータ型を実装する必要はありません。 double [] []配列を受け入れ、別のdouble [] []を返すC関数を書くだけで、 "CREATE FUNCTION"を使ってSQLにマップします。例として、PostgreSQLのソースを読んでください。n次元の配列を受け取ったり返す関数を検索したり、Cの実装を見たりします。このドキュメントでは、C関数の基本について説明しています。 –

関連する問題