sandynz opened a new issue, #37826:
URL: https://github.com/apache/shardingsphere/issues/37826

   1. Conclusion
   Consider to use `enmotech/opengauss-lite:5.1.0` instead of 
`opengauss/opengauss:3.1.0` in E2E, for:
   - easy usage. Sometimes we need to login docker openGauss for troubleshooting
   - default sql_compatibility for PostgreSQL
   
   2. Usage details
   
   - opengauss/opengauss:3.1.0
   
   We must use long /usr/local/... prefix, else could not find `gsql`.
   And use LD_LIBRARY_PATH, else run failure:
   > error while loading shared libraries: libcjson.so.1: cannot open shared 
object file: No such file or directory
   
   ```
   [root@eb031fd89e36 /]# su - opengauss
   [opengauss@eb031fd89e36 ~]$ export 
LD_LIBRARY_PATH=/usr/local/opengauss/lib:$LD_LIBRARY_PATH
   [opengauss@eb031fd89e36 ~]$ /usr/local/opengauss/bin/gsql -d postgres -U 
gaussdb
   Password for user gaussdb: 
   gsql ((openGauss 3.1.0 build ) compiled at 2023-02-17 16:13:51 commit 0 last 
mr  )
   Non-SSL connection (SSL connection is recommended when requiring 
high-security)
   Type "help" for help.
   
   openGauss=> SHOW sql_compatibility;
    sql_compatibility 
   -------------------
    A
   (1 row)
   ```
   
   - enmotech/opengauss-lite:5.1.0
   ```
   root@4a965c766223:/# su - omm
   omm@4a965c766223:~$ gsql -d postgres
   gsql ((openGauss-lite 5.1.0 build b5a8d5b0) compiled at 2023-09-28 00:54:13 
commit 0 last mr  release)
   Non-SSL connection (SSL connection is recommended when requiring 
high-security)
   Type "help" for help.
   
   openGauss=# SHOW sql_compatibility;
    sql_compatibility 
   -------------------
    PG
   (1 row)
   ```
   
   3. sql_compatibility
   - `A` means for `Oracle`
   - `PG` means for `PostgreSQL`
   
   One difference of sql_compatibility.
   Found it in `CreateTableSQLGeneratorIT`.
   We use `SELECT * FROM pg_get_tabledef ('schemaName.tableName')` to get 
create definition SQL. The `DATE` column return different results in these two 
sql_compatibility.
   e.g.
   - original column definition: `creation_date DATE`
   - return `creation_date DATE` (the same as original definition), on `PG` 
(enmotech/opengauss-lite:5.1.0 default value)
   - return `creation_date timestamp(0) without time zone` (compatible with 
Oracle), on `A` (opengauss/opengauss:3.1.0 default value)
   
   4. Is it easy to change `sql_compatibility` in testcontainer?
   Seems it's not easy to change it.
   - When adding `default_sql_compatibility = 'PG'` in `postgresql.conf`, 
openGauss container start failed.
   - The recommended usage: `CREATE DATABASE my_db DBCOMPATIBILITY 'PG';`. It's 
not suitable in our test cases.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to