Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
4e2bd7b
Add ExecClearTuple before read or fetch index tuple
jiaqizho Mar 8, 2024
4f054a3
Pax: add MicroPartitionWriter merging logic back to optimize performance
jiaqizho Mar 12, 2024
fcc5e88
Fix: pax broken gtest and add it into CI
jiaqizho Mar 5, 2024
7226bcf
Feature: pax store the vec-format decimal128
jiaqizho Mar 19, 2024
956ad09
Fix: pax got nullptr in table writer when exception happen
jiaqizho Mar 19, 2024
cfa1cc7
bugfix: Pax storage format fixes incorrect mapping of pg timestamp/ti…
gongxun0928 Mar 19, 2024
d581003
Fix: pax fast sequence will lost when swap table happen
jiaqizho Mar 19, 2024
6a1067d
Fix: the index in pax aux table should be same as aux table
jiaqizho Mar 20, 2024
74a395f
Fix: fix pax-storage make install will compile again
lss602726449 Mar 21, 2024
c9736a7
PAX: check the value of gp_interconnect_queue_depth and warning if it…
gongxun0928 Mar 21, 2024
64fb6d2
bugfix: check resource owner in FdHandleAbortCallback
gongxun0928 Mar 25, 2024
0f6ccbf
Fix: pax cluster index will make aux table invisible
jiaqizho Mar 29, 2024
20f27d1
Fix: PAX split by file size does not calculate the written sizes
jiaqizho Apr 1, 2024
6d70bb6
Enable pg statistics in pax
jiaqizho Apr 1, 2024
7c22cda
PAX: Fix null test for all columns
gfphoenix78 Mar 29, 2024
16773dc
Fix: PAX will cache the wrong text locale
jiaqizho Apr 2, 2024
8e59d7d
Pax change the default file split strategy to guc
jiaqizho Apr 2, 2024
6ac3a31
Bugfix: fix incorrect micro partition file skip logic
gongxun0928 Apr 7, 2024
fbc50dc
Fix: pax custom object support some of event_trigger callback
jiaqizho Apr 7, 2024
e8b1ea3
Fix: PAX numeric vec format memory leak
jiaqizho Mar 28, 2024
0e79c48
PAX:optimize queries with large wide tables
gongxun0928 Apr 8, 2024
59fd657
PAX: paxformat supports vectorized scan operators
gongxun0928 Apr 8, 2024
80d2118
Use scan_flags to indicate whether the table AM support vectorization
Apr 9, 2024
ed4e1e6
PAX: Preload pax extension and sync some GUCs
gfphoenix78 Mar 4, 2024
ad0793a
PAX: doesn't support non-btree index
gfphoenix78 Apr 10, 2024
e03eed7
Fix: PAX format need build CTID
jiaqizho Apr 15, 2024
7647929
Fix: the projection in orc group not right
jiaqizho Apr 15, 2024
4a5949d
Fix: new add column may cause array bounds violation
jiaqizho Apr 15, 2024
2152864
Fix: pax update table with dropped column return not-null tuple
jiaqizho Apr 15, 2024
50b0da7
PAX support bpchar type vectorization build
jiaqizho Apr 15, 2024
5405061
bugfix: pax filter does not filter NaN values correctly
gongxun0928 Apr 15, 2024
ade6217
Pax: RelationCopyData need do pending delete
jiaqizho Apr 16, 2024
8b72498
feature: skip read the column which is all null
gongxun0928 Apr 16, 2024
0b33d7e
PAX: Rename orc to porc
Apr 17, 2024
e53c4bf
pax: port regress tests to pax
jiaqizho Mar 6, 2024
4811d92
Fix: parallel_schedule pg optimizer test cases
jiaqizho Mar 18, 2024
4ff6d9c
Fix: fd handle owner ans some of test cases
gongxun0928 Mar 20, 2024
eb2b6c0
Fix: parallel_schedule ORCA test cases
jiaqizho Apr 1, 2024
0874767
PAX: add single CI to run icw and icw-orca with access method PAX
jiaqizho Apr 15, 2024
cee6d23
PAX: Add bitpacked column for arrow boolean type
gongxun0928 Apr 22, 2024
43b7386
bugfix: incorrect data stream origin length of bpchar type without co…
gongxun0928 Apr 22, 2024
10016d4
PAX: Add reloption to set minmax columns
Apr 23, 2024
9acb4a0
Pax: merge reloption numeric_vec_storage to reloption storage_format
jiaqizho Apr 24, 2024
19ad288
PAX: Update dependency management
gfphoenix78 Apr 24, 2024
c89c895
Feature: PAX support visibility map for delete/update
gongxun0928 Mar 6, 2024
c646dfb
Pax: storage format porc_vec support big group
jiaqizho Apr 25, 2024
ddd405e
Feature: pax length stream support encoding options
jiaqizho Apr 25, 2024
d17d836
PAX: Improve the performance of analyze
gongxun0928 Apr 25, 2024
9e6629f
Fix: link paxformat.so error
gongxun0928 Apr 25, 2024
b20daad
PAX: install pax_dump into rpm
jiaqizho Apr 25, 2024
dbba383
PAX: Fix compile warnings and enable -Wextra and -Werror
Apr 26, 2024
0d8e043
Fix: The cache_group cache hit condition is incorrect.
gongxun0928 Apr 26, 2024
62374b3
Bugfix: pax fix coredump with vectorization enable
gongxun0928 Apr 28, 2024
18c4ca6
Regularly synchronize CBDB and update CI
zhangwenchao-123 Apr 25, 2024
8eae150
Pax: add new interface to combine two of MicroPartitionStatisticsInfo
jiaqizho May 6, 2024
29313ed
PAX: Fix visibility map to build ctid for vectorization
May 9, 2024
7cf02c6
Fix: use BITS_TO_BYTES to calculte the length of bitpacked buffer.
gongxun0928 May 16, 2024
caf5bda
Pax: TupleDesc in TableTupleSlot is no longer used
jiaqizho May 16, 2024
7834594
Fix: the max value of pax_max_tuples_per_file is wrong
gongxun0928 May 17, 2024
a2b4bf7
PAX: Refactor the writer/reader options
jiaqizho May 20, 2024
2f9db0a
PAX: bpchar support porc_vec
jiaqizho May 22, 2024
a768ff1
PAX: bitpacked support porc_vec
jiaqizho May 22, 2024
009b8a0
Fix: pax return wrong value of bool type when vectorization is enabled
gongxun0928 May 23, 2024
cd251d8
Pax: feature support store toast datum
jiaqizho May 30, 2024
40e937c
bugfix: fix compilation errors in pax
gongxun0928 May 31, 2024
d8116e7
bugfix: pax support default values when vectorization is enable
gongxun0928 May 31, 2024
97433c7
Fix nullptr in missing column
jiaqizho Jun 3, 2024
8389cec
PAX: optimize min-max memory state
jiaqizho Jun 4, 2024
ea1929f
Fix: compile error when CBDB_BUILD_TYPE is release
gongxun0928 Jun 4, 2024
ca1f4f3
PAX: Add SCAN_SUPPORT_COLUMN_ORIENTED_SCAN in scan flags
jiaqizho Jun 7, 2024
5958ef8
Regularly synchronize CBDB and update CI
Jun 6, 2024
fd6f99e
Op: PAX Precompute null counts array in GetTuple
jiaqizho Jun 13, 2024
b8d0170
Fix: length 0 and all null bpchar in record batch
jiaqizho Jun 13, 2024
daa8095
feature: support dfs_tablespace in pax storage
gongxun0928 Jun 13, 2024
5017a4f
PAX: refactor vec adapter and split the format into different paths
jiaqizho Jun 14, 2024
b6102f5
PAX: plasma is no longer supported
jiaqizho Jun 17, 2024
70ad994
Fix PAX scanning with visimap for vectorization
jiaqizho Jun 20, 2024
552a270
PAX: icw support vectorization regress test cases
jiaqizho Jun 21, 2024
36fb849
PAX: support porc_vec format no filling datum header when typlen is n…
jiaqizho Jun 21, 2024
b89981e
PAX: add more exception message
jiaqizho Jun 24, 2024
8f6fb14
PAX: enable porc_vec format ICW
jiaqizho Jun 24, 2024
b0f93b9
PAX: add existexttoast to summary callback
jiaqizho Jul 5, 2024
1922ac5
PAX: Support SUM and COUNT in statistics
jiaqizho Jul 9, 2024
4596b9c
Ignore extension misc_sanity case primary key check.
avamingli Jul 12, 2024
52b50a0
PAX: re-enable the sql tests which defined in pax-tests target
jiaqizho Jul 16, 2024
014c925
PAX: support update stats when delete/update happend
jiaqizho Jul 19, 2024
efc78e8
Regularly synchronize CBDB and update CI
foreyes Jul 24, 2024
0af0c2b
PAX: support sum/count pb info combine
jiaqizho Jul 25, 2024
489af94
PAX: pax_dump support dump toast datum
jiaqizho Jul 29, 2024
d2c1de0
PAX: AM can't insert into table which use object storage
gongxun0928 Jul 30, 2024
9f378ce
PAX: enable kind of UDF to dump the PAX file
jiaqizho Jul 31, 2024
8cdb311
PAX: Disable the unsupport indexes
jiaqizho Aug 1, 2024
9ce9c35
pax: suport index cluster
gongxun0928 Jul 21, 2024
233a755
PAX: Support zorder curve
gongxun0928 Jul 21, 2024
c70781b
PAX: reset row filter memory context to avoid OOM
jiaqizho Aug 12, 2024
729a987
PAX: support varchar min/max operator
jiaqizho Aug 12, 2024
42d383c
Fix: pfree may free NULL datum
jiaqizho Aug 15, 2024
a159ae5
PAX: The type of ptblockname is changed to int type
gongxun0928 Aug 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion contrib/pax_storage/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ Thumbs.db
# Temp files dir
.tmp/**
build*/**
results/**
clang-tidy.result
# pb
**/*.pb.h
**/*.pb.cc

tools/**/*.data
tools/**/*.txt
# Executables
/*.out
!src/data/expected/*.out
43 changes: 14 additions & 29 deletions contrib/pax_storage/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,33 @@ set(CMAKE_CXX_STANDARD 14)
set(TOP_DIR ${PROJECT_SOURCE_DIR}/../..)
set(CBDB_INCLUDE_DIR ${TOP_DIR}/src/include)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-error=ignored-qualifiers -Wuninitialized -Winit-self -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-parameter -Wno-clobbered -Wno-sized-deallocation -g")

# Build gtest options
option(BUILD_GTEST "Build with google test" ON)


option(BUILD_GBENCH "Build with google benchmark" OFF)

# Build pax tools
option(BUILD_TOOLS "Build with pax tools" ON)

# env CBDB_BUILD_TYPE is set by Lighting pipeline
if (NOT DEFINED ENV{CBDB_BUILD_TYPE})
set(ENV{CBDB_BUILD_TYPE} "debug")
endif()

set(CBDB_BUILD_TYPE $ENV{CBDB_BUILD_TYPE})
message(STATUS "env CBDB_BUILD_TYPE=$ENV{CBDB_BUILD_TYPE} => ${CBDB_BUILD_TYPE}")
include(CheckSymbolExists)
SET(PG_CONFIG_HEADER_FILE "${CBDB_INCLUDE_DIR}/pg_config.h")
message(STATUS "pg_config.h => ${PG_CONFIG_HEADER_FILE}")

if (${CBDB_BUILD_TYPE} STREQUAL "release")
SET(CMAKE_BUILD_TYPE "Release")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3")
# no need build gtest in release mode
SET(BUILD_GTEST OFF)
elseif(${CBDB_BUILD_TYPE} STREQUAL "debug")
CHECK_SYMBOL_EXISTS(USE_ASSERT_CHECKING "${PG_CONFIG_HEADER_FILE}" PAX_USE_DEBUG)
CHECK_SYMBOL_EXISTS(USE_LZ4 "${PG_CONFIG_HEADER_FILE}" PAX_USE_LZ4)
if (PAX_USE_DEBUG)
ADD_DEFINITIONS(-DENABLE_DEBUG)
# Use to build compile_commands.json
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -ggdb")
else()
message(FATAL_ERROR "unknown CBDB_BUILD_TYPE: ${CBDB_BUILD_TYPE}")
SET(CMAKE_BUILD_TYPE "Release")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3")
# no need build gtest in release mode
SET(BUILD_GTEST OFF)
endif()
message(STATUS "PAX BUILD TYPE: ${CMAKE_BUILD_TYPE}")

if(BUILD_GBENCH)
SET(BUILD_GTEST ON)
Expand All @@ -47,23 +42,13 @@ if (BUILD_GTEST)
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-access-control -fno-inline -Wno-pmf-conversions -Wl,--allow-multiple-definition -no-pie -fno-stack-protector")
endif(BUILD_GTEST)

# Plasma options
option (ENABLE_PLASMA "Enable plasma cache" OFF)
if (ENABLE_PLASMA)
ADD_DEFINITIONS(-DENABLE_PLASMA)
# plasma need use CXX_STANDARD 17
set(CMAKE_CXX_STANDARD 17)
endif()

# Vec options
include(CheckSymbolExists)
SET(PG_CONFIG_HEADER_FILE "${CBDB_INCLUDE_DIR}/pg_config.h")
CHECK_SYMBOL_EXISTS(USE_VECTORIZATION "${PG_CONFIG_HEADER_FILE}" VEC_BUILD)
message(STATUS "pg_config.h => ${PG_CONFIG_HEADER_FILE}")
if (VEC_BUILD)
set(VEC_HOME "${PROJECT_SOURCE_DIR}/../vectorization")
set(INSTALL_HOME "${CMAKE_INSTALL_PREFIX}")
ADD_DEFINITIONS(-DVEC_BUILD)
message(STATUS "Build pax with vectorization support, VEC_HOME=${VEC_HOME}")
message(STATUS "Build pax with vectorization support, VEC_HOME=${VEC_HOME} INSTALL_HOME=${INSTALL_HOME}")
else()
message(STATUS "Build pax without vectorization support")
endif(VEC_BUILD)
Expand Down
15 changes: 1 addition & 14 deletions contrib/pax_storage/FindDependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,4 @@ endif()
if (VEC_BUILD)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB REQUIRED glib-2.0)

# resolve vectorization dependency, or the header files will miss
message(STATUS "Resolve vectorization dependency ...")
execute_process(
COMMAND make download_arrow
WORKING_DIRECTORY ${VEC_HOME}
RESULT_VARIABLE CMD_RESULT
)
if(CMD_RESULT EQUAL 0)
message(STATUS "Resolve vectorization dependency succeeded.")
else()
message(FATAL_ERROR "Resolve vectorization dependency failed with result: ${CMD_RESULT}")
endif()
endif(VEC_BUILD)
endif(VEC_BUILD)
51 changes: 38 additions & 13 deletions contrib/pax_storage/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,74 @@ PG_CXXFLAGS = -std=c++14
PGFILEDESC = "pax - PAX table access method"
SHLIB_LINK += -luuid

REGRESS = setup
REGRESS += detoast ddl types update
# FIXME: several plans are bad in update_gp when use orca
# REGRESS += update_gp
REGRESS += teardown
PAX_REGRESS_DIR = src/test/regress
PAX_VEC_REGRESS_DIR = src/test/vec

ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
PGXS_DIR := $(dir $(PGXS))
PG_REGRESS = $(PGXS_DIR)/../../src/test/regress/pg_regress
else
subdir = contrib/pax_storage
top_builddir = ../../
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
PG_REGRESS = $(top_builddir)/src/test/regress/pg_regress
endif

REGRESS_OPTS += --init-file=$(top_builddir)/src/test/regress/init_file

.PHONY: all
all: build-pax
all: build

DIRS = $(shell find src/cpp -maxdepth 2 -type d)
SRC = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))

.PHONY: install-data build-pax
build-pax:
.PHONY: install-data
build: $(SRC)
@echo "build pax"
mkdir -p build
cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(DESTDIR)$(prefix) && make -j8 && cp src/cpp/libpax.so ../pax.so

install-data: build-pax
pax-unit-test:
ifeq ($(enable_debug), yes)
cd build && ./src/cpp/test_main
endif

install-data: build
$(INSTALL_DATA) pax-cdbinit--1.0.sql '$(DESTDIR)$(datadir)/cdb_init.d/pax-cdbinit--1.0.sql'

.PHONY: install
install: install-data
@echo "install data"
@if [ -f build/src/cpp/pax_dump ]; then $(INSTALL_PROGRAM) build/src/cpp/pax_dump '$(DESTDIR)$(bindir)/pax_dump'; fi;
make -C build install

.PHONY: uninstall-data
.PHONY: pax-test
pax-test:
@echo "Begin running pax tests"
$(PG_REGRESS) \
--init-file=init_file --schedule=pax_schedule \
--load-extension=gp_inject_fault --dbname=pax_test
$(bindir)/dropdb --if-exists pax_test

.PHONY: icw_test
icw_test: pax-test
@echo "Begin running pax regression tests"
@echo "Current PGOPTIONS=$(PGOPTIONS)"
make -C $(PAX_REGRESS_DIR) icw_test
@echo "Begin running pax+vector regression tests"
@echo "Current PGOPTIONS=$(PGOPTIONS) -c vector.enable_vectorization=on"
PGOPTIONS="$(PGOPTIONS) -c vector.enable_vectorization=on" make -C $(PAX_VEC_REGRESS_DIR) icw_test
@echo "Begin running pax+vec format+vector regression tests"
@echo "Current PGOPTIONS=$(PGOPTIONS) -c vector.enable_vectorization=on -c pax_default_storage_format=porc_vec"
PGOPTIONS="$(PGOPTIONS) -c vector.enable_vectorization=on -c pax_default_storage_format=porc_vec" make -C $(PAX_VEC_REGRESS_DIR) icw_test

.PHONY: uninstall-data
uninstall-data:
$(RM) '$(DESTDIR)$(datadir)/cdb_init.d/pax-cdbinit--1.0.sql'

uninstall: uninstall-data

clean-data:
$(RM) pax-cdbinit--1.0.sql
$(RM) -r build
Expand Down
Loading
Loading