From 9a413e0c322428b9fd2777eae62131a80cb85c02 Mon Sep 17 00:00:00 2001 From: Naisila Puka <37271756+naisila@users.noreply.github.com> Date: Mon, 18 Nov 2024 18:09:43 +0300 Subject: [PATCH] PG17 compatibility: Check whether table AM is default (#7747) PG 17 added support for DEFAULT in ALTER TABLE .. SET ACCESS METHOD Relevant PG commit: d61a6cad6418f643a5773352038d0dfe5d3535b8 https://github.com/postgres/postgres/commit/d61a6cad6418f643a5773352038d0dfe5d3535b8 In that case, name in `AlterTableCmd->name` would be null. Add a null check here to avoid crash. --- src/backend/columnar/columnar_tableam.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/columnar/columnar_tableam.c b/src/backend/columnar/columnar_tableam.c index 92a4b2342..83df11c42 100644 --- a/src/backend/columnar/columnar_tableam.c +++ b/src/backend/columnar/columnar_tableam.c @@ -2256,7 +2256,9 @@ ColumnarProcessAlterTable(AlterTableStmt *alterTableStmt, List **columnarOptions "Specify SET ACCESS METHOD before storage parameters, or use separate ALTER TABLE commands."))); } - destIsColumnar = (strcmp(alterTableCmd->name, COLUMNAR_AM_NAME) == 0); + destIsColumnar = (strcmp(alterTableCmd->name ? alterTableCmd->name : + default_table_access_method, + COLUMNAR_AM_NAME) == 0); if (srcIsColumnar && !destIsColumnar) {