Skip to content

[Bug] [uos1050a:aarch64 only] pg_relation_size and get_ao_compression_ratio slightly different from other operating system #487

@congxuebin

Description

@congxuebin

Cloudberry Database version

PostgreSQL 14.4 (Cloudberry Database 1.5.5+dev.62.g96a73497 build 78237 commit:96a73497) (HashData Lightning 1.5.5+dev.62.g96a73497 build 78237 commit:96a73497) on aarch64-unknown-linux-gnu, compiled by gcc (GCC) 10.2.1 20201112 (UOS 10.2.1-8),
64-bit compiled on Jun 27 2024 04:10:22

What happened

AOCO_Compression failed against uos1050a:aarch64 only.

/code/cbdb_src/src/bin/pg_upgrade /code/cbdb_src/src/bin/pg_upgrade
make: Target 'installcheck-world' not remade because of errors.

        ======================================================================
        DIFF FILE: ../cbdb_src/src/test/regress/regression.diffs
        ----------------------------------------------------------------------

        diff -I HINT: -I CONTEXT: -I GP_IGNORE: -U3 /code/cbdb_src/src/test/regress/expected/AOCO_Compression.out /code/cbdb_src/src/test/regress/results/AOCO_Compression.out
--- /code/cbdb_src/src/test/regress/expected/AOCO_Compression.out	2024-06-27 11:07:58.635553206 +0800
+++ /code/cbdb_src/src/test/regress/results/AOCO_Compression.out	2024-06-27 11:07:58.775553966 +0800
@@ -3506,7 +3506,7 @@
 get_ao_compression_ratio('mpp17012_compress_test2');
  pg_size_pretty | get_ao_compression_ratio 
 ----------------+--------------------------
- 712 bytes      |                    36.75
+ 728 bytes      |                    35.95
 (1 row)
 

-- Given an AO/CO with zlib type compression
Drop table if exists mpp17012_compress_test2;
NOTICE:  table "mpp17012_compress_test2" does not exist, skipping
create table mpp17012_compress_test2 (
col1 character(2),
col2 int,
col3 varchar,
col4 character(44),
DEFAULT COLUMN ENCODING (COMPRESSTYPE=zlib, compresslevel=5)
)
WITH (APPENDONLY=true, ORIENTATION=column, OIDS=FALSE)
distributed by (col1);
select pg_size_pretty(pg_relation_size('mpp17012_compress_test2')),
get_ao_compression_ratio('mpp17012_compress_test2');
 pg_size_pretty | get_ao_compression_ratio
----------------+--------------------------
 0 bytes        |                       -1
(1 row)

\d+ mpp17012_compress_test2
                                                         Table "public.mpp17012_compress_test2"
 Column |       Type        | Collation | Nullable | Default | Storage  | Stats target | Compression Type | Compression Level | Block Size | Description 
--------+-------------------+-----------+----------+---------+----------+--------------+------------------+-------------------+------------+-------------
 col1   | character(2)      |           |          |         | extended |              | zlib             | 5                 | 32768      |
 col2   | integer           |           |          |         | plain    |              | zlib             | 5                 | 32768      |
 col3   | character varying |           |          |         | extended |              | zlib             | 5                 | 32768      |
 col4   | character(44)     |           |          |         | extended |              | zlib             | 5                 | 32768      |
Checksum: t
Distributed by: (col1)
Access method: ao_column

-- When I insert data
insert into mpp17012_compress_test2 values('a',generate_series(1,250),'ksjdhfksdhfksdhfksjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
-- Then the data will be compressed according to a consistent compression ratio
select pg_size_pretty(pg_relation_size('mpp17012_compress_test2')),
get_ao_compression_ratio('mpp17012_compress_test2');
 pg_size_pretty | get_ao_compression_ratio
----------------+--------------------------
 728 bytes      |                    35.95
(1 row)

What you think should happen instead

No response

How to reproduce

Run AOCO_Compression against uos1050a:aarch64

Operating System

uos1050a:aarch64

Anything else

No response

Are you willing to submit PR?

  • Yes, I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions