Coder Social home page Coder Social logo

Comments (19)

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

承知しました。ご回答ありがとうございました。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

インストール等に手間取りましたが、aptコマンドでインストールしたPostgreSQL12.14上で実行してみました。

PostgreSQLは正常に起動しましたが、CREATE TABLEを実行したタイミングでSIGABRTが発生しています。
環境周りで少し気になるところがありますので、この辺を中心に確認している状況になります。

時間も経ってしまっていますので、一旦現在の状況をご報告させていただきます。

tsurugi=# CREATE TABLE table3 (column1 INTEGER NOT NULL PRIMARY KEY) TABLESPACE tsurugi;
*** Aborted at 1681951607 (unix time) try "date -d @1681951607" if you are using GNU date ***
PC: @     0x7fcd944ed00b gsignal
*** SIGABRT (@0x7100019b7c) received by PID 105340 (TID 0x7fcd80ef9700) from PID 105340; stack trace: ***
    @     0x7fcd948de631 (unknown)
    @     0x7fcd94f2b420 (unknown)
    @     0x7fcd944ed00b gsignal
    @     0x7fcd944cc859 abort
    @     0x7fcd94bb6926 (unknown)
    @     0x7fcd94be497f ogawayama::bridge::Worker::run()
    @     0x7fcd94bba2ab _ZNSt17_Function_handlerIFSt10unique_ptrINSt13__future_base12_Result_baseENS2_8_DeleterEEvENS1_12_Task_setterIS0_INS1_7_ResultIvEES3_EZNS1_11_Task_stateIZN9ogawayama6bridge8listenerclEvEUlvE_SaIiEFvvEE6_M_runEvEUlvE_vEEE9_M_invokeERKSt9_Any_data
    @     0x7fcd94bbab42 std::__future_base::_State_baseV2::_M_do_set()
    @     0x7fcd94f284df __pthread_once_slow
    @     0x7fcd94bbc05a std::call_once<>()
    @     0x7fcd94bbc271 std::thread::_State_impl<>::_M_run()
    @     0x7fcd9478dde4 (unknown)
    @     0x7fcd94f1f609 start_thread
    @     0x7fcd945c9133 clone

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

再度環境を作成しなおしたところ、無事成功しました。
お騒がせして申し訳ございませんでした。

[email protected]:~$ psql -d tsurugi
psql (12.14 (Ubuntu 12.14-1.pgdg20.04+1))
Type "help" for help.

tsurugi=# CREATE TABLE table1 (column1 INTEGER NOT NULL PRIMARY KEY) TABLESPACE tsurugi;
CREATE TABLE
tsurugi=# CREATE FOREIGN TABLE table1 (column1 INTEGER NOT NULL) SERVER ogawayama;
CREATE FOREIGN TABLE
tsurugi=# SELECT * FROM table1;
 column1
---------
(0 rows)

tsurugi=# INSERT INTO table1(column1) VALUES (100);
INSERT 0 0
tsurugi=# SELECT * FROM table1;
 column1
---------
     100
(1 row)

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

PostgreSQL12.14以外での実行結果を以下に示します。

  • PostgreSQL13.10 → NG

    [2023-04-21 16:18:42 JST] 21677[41]FATAL: could not load library "/usr/lib/postgresql/13/lib/ogawayama_fdw.so": /usr/lib/postgresql/13/lib/ogawayama_fdw.so: undefined symbol: elog_finish

  • PostgreSQL14.7 → NG

    [2023-04-21 16:25:19 JST] 22319[41]FATAL: could not load library "/usr/lib/postgresql/14/lib/ogawayama_fdw.so": /usr/lib/postgresql/14/lib/ogawayama_fdw.so: undefined symbol: elog_finish

  • PostgreSQL15.2 → NG

    [2023-04-21 16:32:29 JST] 22668[41]FATAL: could not load library "/usr/lib/postgresql/15/lib/ogawayama_fdw.so": /usr/lib/postgresql/15/lib/ogawayama_fdw.so: undefined symbol: elog_finish

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024 1

以下のページなどを参照して、照合順序がどのように設定されているか確認してみてください。
https://www.postgresql.jp/document/14/html/sql-expressions.html#SQL-SYNTAX-COLLATE-EXPRS

tsurugi=# show lc_collate;
 lc_collate
-------------
 en_US.UTF-8
(1 row)

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

動作検証の結果についてご報告させていただきます。

frontendのビルド環境

  • Ubuntu 20.04
  • PostgreSQL 12.4

検証結果一覧

# 結果 Ubuntu20.04 Ubuntu22.04 PostgreSQL 12.14 PostgreSQL13.10 PostgreSQL14.7 PostgreSQL15.2
1.
2. ×
3. ×
4. ×
5.
6.
7.
8.

検証NGログ

  • (2.) Ubuntu20.04 + PostgreSQL13.10

    [2023-04-21 16:18:42 JST] 21677[41]FATAL: could not load library "/usr/lib/postgresql/13/lib/ogawayama_fdw.so": /usr/lib/postgresql/13/lib/ogawayama_fdw.so: undefined symbol: elog_finish

  • (3.) Ubuntu20.04 + PostgreSQL14.7

    [2023-04-21 16:25:19 JST] 22319[41]FATAL: could not load library "/usr/lib/postgresql/14/lib/ogawayama_fdw.so": /usr/lib/postgresql/14/lib/ogawayama_fdw.so: undefined symbol: elog_finish

  • (4.) Ubuntu20.04 + PostgreSQL15.2

    [2023-04-21 16:32:29 JST] 22668[41]FATAL: could not load library "/usr/lib/postgresql/15/lib/ogawayama_fdw.so": /usr/lib/postgresql/15/lib/ogawayama_fdw.so: undefined symbol: elog_finish

  • (5.) Ubuntu22.04 + PostgreSQL12.14

    • tsurugiがUbuntu22.04でビルドできていないため、検証としては参考レベル。
    • psqlにてCREATE TABLEを実行した結果、oltpが起動していないためエラーは発生するものの、各メタデータが正常に格納されているため、frontendとしては正常に動作していると考えられる。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

こちらになります。

$ gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024 1

すみません。ちょっと勘違いしていました。
frontendとmetadata-managerは、Ubuntu22.04ではビルドしていません。
frontend、metadata-manager、message-managerは、Ubuntu20.04でビルドしたモジュールになります。

Ubuntu22.04上でビルドを試みていたのは、tsurugi-distributionの一式になります。
※metadata-managerとmessage-managerはこれに含まれますが、これらのビルドに到達する前にエラーで止まっています。

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

以下の項目を追加。

  • UbuntuにデフォルトでインストールされるPostgreSQLでの動作可否

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024

UbuntuにデフォルトでインストールされるPostgreSQLに関して質問させてください。

当方の環境下では標準でインストールされていませんでしたので、再インストールしてみましたがデフォルトではインストールされていませんでした。
Ubuntsuのインストール標準インストールされているPostgreSQLの情報など、何か情報をお持ちであればご教示ください。

※Ubuntuインストール後に、sudo apt install postgresqlを実行すれば12.14(12系最新)のパッケージをインストールできますが、この環境でも同等になるのでしょうか。

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

※Ubuntuインストール後に、sudo apt install postgresqlを実行すれば12.14(12系最新)のパッケージをインストールできますが、この環境でも同等になるのでしょうか。

それでOKです。

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

OKのパターンでmake testsを実行する。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024

PostgreSQL12.14の環境下 にて、make testsを実行してみたところ1件FAILEDとなっています。
ログを見る限り、ORDER BYでの大文字小文字の扱いの違いが原因で、期待値は大文字小文字を無視ですが、実績値は大文字→小文字の順となっているためと思われます。
念のためご確認いただけますでしょうか。

※ちなみに、ビルド環境下 (Ubuntu20.04+PostgreSQL12.04) でも同様となりましたので、PostgreSQL12.14固有ではないと認識しています。

$ ../../src/test/regress/pg_regress --inputdir=. --bindir='/usr/lib/postgresql/12/bin' --dbname=contrib_regression test_preparation create_table insert_select_happy update_delete select_statements user_management
(using postmaster on Unix socket, port 5432)
============== dropping database "contrib_regression" ==============
DROP DATABASE
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries        ==============
test test_preparation             ... ok           63 ms
test create_table                 ... ok         2027 ms
test insert_select_happy          ... ok        11538 ms
test update_delete                ... ok         6342 ms
test select_statements            ... FAILED     8319 ms
test user_management              ... ok         3763 ms

======================
 1 of 6 tests failed.
======================

The differences that caused some tests to fail can be viewed in the
file "/home/vagrant/postgresql-12.4/contrib/frontend/regression.diffs".  A copy of the test summary that you see
above is saved in the file "/home/vagrant/postgresql-12.4/contrib/frontend/regression.out".
$ cat regression.diffs
diff -U3 /home/vagrant/postgresql-12.4/contrib/frontend/expected/select_statements.out /home/vagrant/postgresql-12.4/contrib/frontend/results/select_statements.out
--- /home/vagrant/postgresql-12.4/contrib/frontend/expected/select_statements.out       2023-04-25 07:33:07.483279924 +0900
+++ /home/vagrant/postgresql-12.4/contrib/frontend/results/select_statements.out        2023-04-25 14:59:57.368237582 +0900
@@ -325,8 +325,8 @@
     c6;
  c1 | c2 | c3  | c4  |  c5  |     c6     | c7
 ----+----+-----+-----+------+------------+-----
-  5 | 55 | 555 | 5.5 | 5.55 | five       | XYZ
   4 |    |     |     |      | NULL       |
+  5 | 55 | 555 | 5.5 | 5.55 | five       | XYZ
   1 | 11 | 111 | 1.1 | 1.11 | one        | ABC
   3 | 33 | 333 | 3.3 | 3.33 | three      | ABC
   2 | 22 | 222 | 2.2 | 2.22 | two        | XYZ
@@ -358,8 +358,8 @@
     6;
  c1 | c2 | c3  | c4  |  c5  |     c6     | c7
 ----+----+-----+-----+------+------------+-----
-  5 | 55 | 555 | 5.5 | 5.55 | five       | XYZ
   4 |    |     |     |      | NULL       |
+  5 | 55 | 555 | 5.5 | 5.55 | five       | XYZ
   1 | 11 | 111 | 1.1 | 1.11 | one        | ABC
   3 | 33 | 333 | 3.3 | 3.33 | three      | ABC
   2 | 22 | 222 | 2.2 | 2.22 | two        | XYZ

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

OKです。

該当のSQLはPostgreSQL用のクエリだと思うので、ORDER句にNULLS FIRSTなどを付けるなどして結果が一定になるように修正をお願いします。
クエリ文は sql/select_statements.sql にあります。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024

c6のカラムには、'NULL'という文字列が入っているようで、NULLS FIRSTではダメなようです。
expected/select_statements.outの期待値の順序を入れ替えるなどでも良いものでしょうか。
それともPostgreSQLのデフォルトの設定などでしょうか。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024

当方の環境ですと、postgresC.UTF-8tsurugiCとなっていました。
postgresはインストールしたままのデフォルト状態、tsurugimetadata-manager/sql/ddl.sqlで指定した状態です。

postgres=# show lc_collate;
 lc_collate
------------
 C.UTF-8
(1 row)

postgres=# \c tsurugi
You are now connected to database "tsurugi" as user "postgres".
tsurugi=# show lc_collate;
 lc_collate
------------
 C
(1 row)

クエリをSELECT * FROM pt2 ORDER BY c6 COLLATE "en_US";とすることで行けそうですが、これで良いでしょうか?

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

OKです。

from tsurugi_fdw.

kcc-oniki avatar kcc-oniki commented on August 27, 2024

承知しました。

from tsurugi_fdw.

koh-okada avatar koh-okada commented on August 27, 2024

鬼木さん

Ubuntu22.04でfrontend, metadata-managerをビルドしたgccのバージョンはわかりますか?

(参考)
Tsurugiの都合でUbuntu22.04でもgcc9系でビルドするようになる予定です。

from tsurugi_fdw.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.