sql >> データベース >  >> RDS >> PostgreSQL

PostgresPlus AdvanceServer9.1を使用したPL/プロキシのコンパイル

    PostgresPlus Advance Server 9.1(PPAS)はEnterpriseDB製品であり、コミュニティPostgreSQLに追加されたエンタープライズ機能が付属しています。ほとんどのcontribモジュール(pgfoundry)は、Stackbuilderを使用してこの製品にプラグインできます。ただし、現在、Pl/ProxyはStack-builderにバンドルまたはダウンロードできません。したがって、PPAS9.1を使用してPl/Proxyをコンパイルする方法は次のとおりです。

    1. Pl/Proxyをダウンロードします。

    wget http://pgfoundry.org/frs/download.php/3274/plproxy-2.4.tar.gz
    tar -xvf plproxy-2.4.tar.gz
    make PG_CONFIG=/opt/PostgresPlus/9.1AS/bin/pg_config
    make intall PG_CONFIG=/opt/PostgresPlus/9.1AS/bin/pg_config

    Note: Flex & Bison must be installed before compiling pl/proxy.

    2.構成が正常に完了すると、$ PGPATH / libにあるplproxy.soと、$ PGPATH / share / extension/の場所にあるplproxy–2.4.0.sqlの2つのファイルが取得されます。
    call_handlerと言語を作成する.sqlファイルを実行します。

    bash-4.1$ psql -p 5444 -U enterprisedb -d edb -f /opt/PostgresPlus/9.1AS/share/extension/plproxy--2.4.0.sql
    CREATE FUNCTION
    CREATE LANGUAGE
    CREATE FUNCTION
    CREATE FOREIGN DATA WRAPPER

    これで、インストールされている言語を確認できます。

    edb=# dL
    List of languages
    Name | Owner | Trusted
    ---------+--------------+---------
    edbspl | enterprisedb | t
    plpgsql | enterprisedb | t
    plproxy | enterprisedb | f
    (3 rows)

    3. pl/proxyを使用してサンプルコードをテストしましょう。

    create table users(username text,blog text);
    insert into users values('Raghav','raghavt.blogspot.com');

    CREATE or replace FUNCTION get_user_blog(i_username text)
    RETURNS SETOF text AS $$
    CONNECT 'dbname=edb';
    SELECT blog FROM users WHERE username = $1;
    $$ LANGUAGE plproxy;

    edb=# select * from get_user_blog('Raghav');
    get_user_blog
    ----------------------------------
    raghavt.blogspot.com
    (1 rows)

    すべて、PPAS9.1でpl/proxyを使用してテストするように設定されています。 pl / proxyの設定方法を知りたい場合は、以下のリンクをたどってください。
    http://www.depesz.com/2011/12/02/the-secret-ingredient-in-the-webscale-sauce/
    http://kaiv.wordpress.com/2007/07/27/postgresql-cluster-partitioning-with-plproxy-part-i/


    1. カンマ区切りの値をOracleの行に変換するにはどうすればよいですか?

    2. PostgreSQLの将来のテーブルに対する特権を付与しますか?

    3. MAX対トップ1-どちらが良いですか?

    4. SQL Server 2016:SQLスクリプトからテーブルを作成する