<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 35.16\. 擴展基礎設施建設 如果你正在考慮分配你的PostgreSQL的擴展模塊, 為它們設置便攜式編譯系統相當困難。 因此PostgreSQL安裝提供了一個構建 基礎設施的擴展,稱為PGXS,所以 這個簡單的擴展模塊可以在已安裝的服務器上簡單編譯。 PGXS的主要目的是為了包含C代碼的擴展, 雖然它也可以用于純SQL擴展。 注意:PGXS不打算 作為一個通用編譯系統框架,可用于構建 任何軟件接口到PostgreSQL; 它只是為了簡單的服務器擴展模塊自動化公共建立規則。 對于更復雜的軟件包,您可能需要寫入自己的構建系統。 為了您的擴展使用PGXS設施, 你必須寫一個簡單的makefile。 在makefile中,你需要設置一些變量并且 最后包括全局PGXS makefile。 下面是一個例子,建立一個`isbn_issn`命名的擴展模塊, 由包含一些C代碼,擴展的控制文件,SQL腳本,和文本文件的共享庫組成: ``` MODULES = isbn_issn EXTENSION = isbn_issn DATA = isbn_issn--1.0.sql DOCS = README.isbn_issn PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) include $(PGXS) ``` 最后三行總是相同的。早在文件中,你可以指定變量或者添加自定義make 規則。 設置這三個變量之一指定建立什么: `MODULES` 從源文件同一地方編譯共享庫對象列表(不包括列表中的庫后綴) `MODULE_big` 從多個源文件構建共享庫(在`OBJS`中列出對象文件) `PROGRAM` 建立可執行程序(在`OBJS`中列出對象文件) 下面的變量也可以設置: `EXTENSION` 擴展名:對于每一個名字你必須提供一個`_extension_`.control 文件,它將被安裝到`_prefix_`/share/extension中。 `MODULEDIR` DATA和DOCS文件應該被安裝到`_prefix_`/share 子目錄中(如果沒有設置,如果設置`EXTENSION`, 缺省是`extension`。如果沒有則為`contrib`)。 `DATA` 隨機文件安裝到`_prefix_`/share/$MODULEDIR。 `DATA_built` 隨機文件安裝到`_prefix_`/share/$MODULEDIR, 這首先需要編譯。 `DATA_TSEARCH` 隨機文件安裝到`_prefix_`/share/tsearch_data中。 `DOCS` 隨機文件安裝到`_prefix_`/doc/$MODULEDIR `SCRIPTS` 腳本文件(非二進制數)安裝到`_prefix_`/bin中 `SCRIPTS_built` 腳本文件(非二進制數)安裝到`_prefix_`/bin, 這需要首先編譯。 `REGRESS` 回歸測試用例列表(沒有后綴),參見下文。 `REGRESS_OPTS` 另外切換到pg_regress `EXTRA_CLEAN` `make clean`中刪除額外文件 `PG_CPPFLAGS` 被添加到`CPPFLAGS` `PG_LIBS` 被添加到`PROGRAM`連接線 `SHLIB_LINK` 被添加到`MODULE_big`連接線 `PG_CONFIG` 為了PostgreSQL安裝編譯其路徑指向pg_config 應用程序(通常`pg_config`使用你的`PATH`中的第一個)。 把這個makefile作為`Makefile`放在持有你的擴展的目錄中。 然后你可以執行`make`編譯, 然后`make install`安裝模塊。默認情況下,為PostgreSQL對應于 你的`PATH`中找到的第一個`pg_config`程序擴展被 編譯安裝。你可以通過設置`PG_CONFIG`指向 `pg_config`程序來使用一個不同的安裝, 或者在makefile中或在`make`命令行上。 | **Caution** | |:--- | | 當編譯PostgreSQL 8.3或更高版本時, 改變`PG_CONFIG`。老版本不工作設置它除了`pg_config`; 你必須改變你的`PATH`來選擇編譯安裝。 | 在`REGRESS`變量中列出的腳本用于 你的模塊的回歸測試,這可以在執行`make install`之后通過 `make installcheck`調用。 為了可以運行你必須有一個運行的PostgreSQL服務器。 在`REGRESS`中的腳本文件必須出現在您的擴展目錄中的`sql/` 命名的子目錄中。這些文件必須有擴展`.sql`, 這沒有包含在makefile列出的`REGRESS`中。 每個測試還應在`expected/`命名的子目錄中包含一個預期的輸出文件, 以及相同的詞干和擴展`.out`。 `make installcheck`執行每個psql的測試腳本, 并且比較結果輸出到匹配期望的文件。 任何差異會寫入`diff -c`格式的文件`regression.diffs`中。 請注意,試圖運行一個測試,缺少預期的文件將被作為"問題"報告, 所以確保你有所有預期的文件。 > **Tip:** 創造期望文件的最簡單的方法是創建空文件, 然后做一個測試運行(這當然會報告差異)。檢查 在`results/`目錄中發現的實際結果文件,如果匹配從這個試驗中你期望的, 那么將它們復制到`expected/`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看