Skip to main content

Cloudberry Database v1.6.0 Release Notes

Version number: v1.6.0

Cloudberry Database v1.6.0 is a minor release that includes some improvements, changes, and bug fixes.

Quick try: v1.6.0

Full Changelog: https://github.com/cloudberrydb/cloudberrydb/compare/1.5.4...1.6.0

Improvements and modificationsโ€‹

tip

In the following notes, "AQUMV" refers to the "Answer Query Using Materialized Views" feature. See Use Automatic Materialized Views for Query Optimization for details.

  • Add warehouse_id to pg_stat_activity_extended by @lss602726449 in #453
  • Modify the ORCA optimizer's processing of UNION ALL distribution strategy by @Light-City in #399
  • Update the location of python-dependencies.txt by @Zhangbaowen-Hashdata in #460
  • Add hook for exec_simple_query and support custom spilling memory threshold in the cost module by @songdongxiaoa2 in #447
  • Use contain_var_clause instead of pull_var_clause in AQUMV by @avamingli in #451
  • Add matchignore and remove meta-command username output for Directory Table by @edespino in #464
  • Add hook to support different methods to create, drop, or alter warehouses by @lss602726449 in #462
  • Re-use index after ALTER COLUMN TYPE shouldn't change relfilenode by @lss602726449 in #474
  • Cherry-pick Resgroup-related code from Greenplum from Mar 2, 2022 to Feb 7, 2023 by @foreyes in #448
  • Add a weekly build and release process by @Zhangbaowen-Hashdata in #459
  • Consider mutable functions and bypass expressions with no Vars for view query targets in AQUMV by @avamingli in #455
  • Expose the function to adjust view query and varno fix in AQUMV by @avamingli in #469
  • Modify weekly build release details by @Zhangbaowen-Hashdata in #477
  • Call the query_info_collect_hook function directly if an exception occurs by @foreyes in #481
  • Cherry-pick: Work around a spurious compiler warning in inet operators by @gfphoenix78 in #499
  • Add LoongArch (loongarch64) support to s_lock.h by @wangzw in #500
  • Implement features of the directory table by @wenchaozhang-123 in #484
  • Re-enable the external FTS ICW by @jiaqizho in #483
  • Change AOCO_Compression test case to validate pg_relation_size and get_ao_compression_ratio within a ยฑ10% expected range by @congxuebin in #493
  • Maintain materialized view data status by @avamingli in #501
  • Define EXT_OID_START to suggest an OID range for extensions by @avamingli in #514
  • Ignore pg_upgrade to resolve CI issues by @avamingli in #515
  • Reduce flakiness in fts_segment_reset test by @jiaqizho in #518
  • Stabilize gp_dqa test case by @congxuebin in #521
  • Doc: Add more tools documentation for Cloudberry Database by @tuhaihe in #523
  • Reimplement COPY FROM for directory table by @wenchaozhang-123 in #527
  • Add materialized view-related trigger cases in SingleNode mode by @avamingli in #517
  • Refactor view query target list processing in AQUMV by @avamingli in #525
  • Implement the tagging feature by @wenchaozhang-123 in #444
  • Update orafce to version 4.9 and enhance it by @foreyes in #524
  • Allow normal materialized views to answer queries in AQUMV by @avamingli in #528
  • Support COPY FROM for directory tables with entry distribution policy by @wenchaozhang-123 in #533
  • Minor improvements to README.md by @reshke in #534
  • Use FDW to query multiple servers as shards by @oppenheimer01 in #320
  • Add an option in psql to avoid encoding issues on certain platforms by @gfphoenix78 in #535
  • Refactor cbdb_log to use vfprintf by @ruhuang2001 in #506
  • Update aocsam.c: Fix safeFSWriteSize argument type by @reshke in #540
  • Update the CI image to RockyLinux8 to ensure CI proper operations by @Zhangbaowen-Hashdata in #556
  • Remove the unsupported AC_FUNC_FSEEKO macro by @gfphoenix78 in #543
  • Adjust test cases for the cloudberrydb binary swap tests by @congxuebin in #537
  • Implement CREATE FOREIGN TABLE LIKE by @avamingli in #554
  • Enable SingleQE join with SegmentGeneralWorkers by @avamingli in #327
  • Use syscache lookup in ShouldUseReservedSegno by @gongxun0928 in #541
  • Implement READ_STRING_FIELD_NULL serializable read function by @wenchaozhang-123 in #553
  • Update appendonlywriter.c to fix debug messages by @reshke in #564
  • Support locking directory tables by @wenchaozhang-123 in #572
  • Update ALTER TABLE help command content by @EcaleD in #574
  • Cherry-pick Resgroup V2 and toolkit from Greenplum Database by @jiaqizho in #531
  • Fallback to PostgreSQL optimizer for ORCA when NL inner plan is index scan by @gfphoenix78 in #565
  • Add FIXME for redundant parameter in ivm_visible_in_prestate call by @reshke in #578
  • Support DISTRIBUTED BY clause specification when creating materialized views with the IF NOT EXISTS clause by @reshke in #563
  • Cherry-pick commits related to the recent Resgroup V2 merge by @reshke in #579
  • Change temporary table names used for IMMV to less frequent sequences by @reshke in #581
  • Rephrase comments for deferred IVM case by @reshke in #576
  • Enable fsync=on by default in gpAux/gpdemo/gpdemo-defaults.sh by @yjhjstz in #585
  • Forbid inherited tables from storing in gp_matview_aux by @avamingli in #587
  • Check that relations have children when performing view matching in AQUMV by @avamingli in #577
  • Update check.c to fix incorrect references to Cloudberry Database by @reshke in #600
  • Send rows in binary mode for ANALYZE by @Light-City in #601
  • Enable Resgroup test cases in CI by @jiaqizho in #539
  • Remove the cbdb weekly and release workflows by @edespino in #615
  • Free tupleDesc on commit or abort transaction by @yjhjstz in #551
  • Replace gpscp with gpsync in external FTS by @jiaqizho in #470
  • Add ao_unique_index_build test in greenplum_schedule by @lss602726449 in #562
  • Avoid executing the qual clause twice by @jiaqizho in #396

Bug fixesโ€‹

  • Fix the compile error caused by redefinition of pipe by @gfphoenix78 in #349
  • Fix the issue with recording password_history when the role is not allowed to use profile by @wenchaozhang-123 in #480
  • Resolve the inconsistent result issue in gpdtm_plpgsql test case by @congxuebin in #491
  • Fix the issue of Cloudberry Database CI not running properly by @Zhangbaowen-Hashdata in #497
  • Fix the incorrect display of copy number when using COPY TO on a replicated table by @wenchaozhang-123 in #498
  • Fix the memory block size issue in bitmapinsert by @gfphoenix78 in #495
  • Fix the issue of ignoring direct table test files by @avamingli in #502
  • Fix gpinitsystem issues by @fanfuxiaoran in #490
  • Fix compile errors detected by GCC 12 by @gfphoenix78 in #503
  • Fix the bsearch compare function in guc.c by @gfphoenix78 in #507
  • Fix commands that forgot to mark meta track by @avamingli in #505
  • Fix compile error in C++20 by @gfphoenix78 in #510
  • Fix the issue that COPY TO on directory table always returns 1 by @wenchaozhang-123 in #522
  • Fix segfilecount of AO/AOCO during bulk insertion using COPY by @avamingli in #530
  • Fix the crash of COPY FROM on AO/AOCO/PAX partitioned tables by @avamingli in #549
  • Fix the issue that occurs when copying some directory tables by @wenchaozhang-123 in #550
  • Fix bugs with base relation truncation for IMMV by @reshke in #570
  • Fix the compile-time error in SparseData.h by @reshke in #566
  • Fix pxf_fragment.c compilation failure by @Terry1504 in #590
  • Fix pg_upgrade version parsing when upgrading from Greenplum by @reshke in #599
  • Fix serialization of expression AEXPR_NOT_DISTINCT by @avamingli in #598
  • Fix writable rules on tables with related materialized views by @avamingli in #584
  • Fix the issue with writable CTEs causing incorrect materialized view data status by @avamingli in #602
  • Fix the issue of being unable to pull up equivalence class using the projected target list by @yjhjstz in #606

๐Ÿ™Œ๐Ÿป๏ธ New contributorsโ€‹

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Contributorsโ€‹

Thanks to all the contributors to make this release happen: @Aegeaner, @EcaleD, @Light-City, @RMTT, @SmartKeyerror, @Tao-T, @Terry1504, @Zhangbaowen-Hashdata, @adam8157, @airfan1994, @andr-sokolov, @ashwinstar, @avamingli, @beeender, @bmdoil, @charliettxx, @congxuebin, @dgkimura, @dh-cloud, @divyeshddv, @dreamedcheng, @edespino, @eespino, @fairyfar, @fanfuxiaoran, @foreyes, @gfphoenix78, @gongxun0928, @gpopt, @higuoxing, @huansong, @hyongtao-db, @jchampio, @jiaqizho, @jimmyyih, @kainwen, @l-wang, @lss602726449, @oppenheimer01, @reshke, @ruhuang2001, @songdongxiaoa2, @soumyadeep2007, @thedanhoffman, @tuhaihe, @wangzw, @wenchaozhang-123, @yanwr1, @yaowangm, @yjhjstz, @zhrt123, @zxuejing

๐Ÿง‚๐Ÿงช Try out Cloudberry Database via building one Docker-based Sandbox, which is tailored to help you gain a basic understanding of Cloudberry Database's capabilities and features a range of materials, including tutorials, sample code, and crash courses.