From 696ad83d3486f86c834472c5c9f47acf413806ec Mon Sep 17 00:00:00 2001 From: Jelte Fennema-Nio Date: Thu, 1 Aug 2024 14:03:38 +0200 Subject: [PATCH] Add a clang-format GitHub action I had a few times that clang-format would change code that I did not touch. This adds a github action that checks if the code in a PR is correctly formatted. --- .github/workflows/build_and_test.yaml | 12 ++++++++++++ Makefile | 3 +++ src/pgduckdb.cpp | 1 - src/pgduckdb_hooks.cpp | 2 +- src/pgduckdb_memory_allocator.cpp | 2 +- src/pgduckdb_planner.cpp | 4 ++-- src/utility/copy.cpp | 2 +- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml index 8b92656b..3987aa45 100644 --- a/.github/workflows/build_and_test.yaml +++ b/.github/workflows/build_and_test.yaml @@ -13,6 +13,18 @@ on: - '.github/workflows/**' jobs: + clang-format: + runs-on: ubuntu-24.04 + + steps: + - name: Checkout pg_duckdb extension code + uses: actions/checkout@v4 + - name: Fetch main branch + run: git fetch --depth=1 origin +main:refs/remotes/origin/main + - name: Install clang-format + run: sudo apt-get install clang-format + - name: Run clang-format + run: git clang-format refs/remotes/origin/main --diff build-and-test: strategy: fail-fast: false diff --git a/Makefile b/Makefile index 44b85934..cba93f3d 100644 --- a/Makefile +++ b/Makefile @@ -99,4 +99,7 @@ lintcheck: $(RM) -f .depend $(foreach SRC,$(SRCS),$(CXX) $(CPPFLAGS) -I$(INCLUDEDIR) -I$(INCLUDEDIR_SERVER) -MM -MT $(SRC:.cpp=.o) $(SRC) >> .depend;) +format: + git clang-format origin/main + include .depend diff --git a/src/pgduckdb.cpp b/src/pgduckdb.cpp index 1b24ad98..627c3e5a 100644 --- a/src/pgduckdb.cpp +++ b/src/pgduckdb.cpp @@ -21,7 +21,6 @@ _PG_init(void) { duckdb_init_hooks(); duckdb_init_node(); } - } /* clang-format off */ diff --git a/src/pgduckdb_hooks.cpp b/src/pgduckdb_hooks.cpp index a6c234ae..b8520423 100644 --- a/src/pgduckdb_hooks.cpp +++ b/src/pgduckdb_hooks.cpp @@ -75,7 +75,7 @@ duckdb_planner(Query *parse, const char *query_string, int cursorOptions, ParamL static void duckdb_utility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, - ParamListInfo params, struct QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc) { + ParamListInfo params, struct QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc) { Node *parsetree = pstmt->utilityStmt; if (duckdb_execution && is_duckdb_extension_registered() && IsA(parsetree, CopyStmt)) { uint64 processed; diff --git a/src/pgduckdb_memory_allocator.cpp b/src/pgduckdb_memory_allocator.cpp index e5a824b0..775418fe 100644 --- a/src/pgduckdb_memory_allocator.cpp +++ b/src/pgduckdb_memory_allocator.cpp @@ -20,7 +20,7 @@ DuckdbFree(duckdb::PrivateAllocatorData *private_data, duckdb::data_ptr_t pointe duckdb::data_ptr_t DuckdbReallocate(duckdb::PrivateAllocatorData *private_data, duckdb::data_ptr_t pointer, duckdb::idx_t old_size, - duckdb::idx_t size) { + duckdb::idx_t size) { return reinterpret_cast(repalloc(pointer, size)); } diff --git a/src/pgduckdb_planner.cpp b/src/pgduckdb_planner.cpp index 7c17e289..e0ac78d0 100644 --- a/src/pgduckdb_planner.cpp +++ b/src/pgduckdb_planner.cpp @@ -82,8 +82,8 @@ duckdb_create_plan(Query *query, const char *queryString, ParamListInfo boundPar Var *var = makeVar(INDEX_VAR, i + 1, postgresColumnOid, typtup->typtypmod, typtup->typcollation, 0); duckdbNode->custom_scan_tlist = - lappend(duckdbNode->custom_scan_tlist, - makeTargetEntry((Expr *)var, i + 1, (char *)preparedQuery->GetNames()[i].c_str(), false)); + lappend(duckdbNode->custom_scan_tlist, + makeTargetEntry((Expr *)var, i + 1, (char *)preparedQuery->GetNames()[i].c_str(), false)); ReleaseSysCache(tp); } diff --git a/src/utility/copy.cpp b/src/utility/copy.cpp index e9debdfd..4a58531f 100644 --- a/src/utility/copy.cpp +++ b/src/utility/copy.cpp @@ -87,7 +87,7 @@ duckdb_copy(PlannedStmt *pstmt, const char *queryString, struct QueryEnvironment /* Copy `filename` should start with S3/GS/R2 prefix */ if (duckdb::string(copyStmt->filename).rfind(duckdbCopyS3FilenamePrefix, 0) && duckdb::string(copyStmt->filename).rfind(duckdbCopyGCSFilenamePrefix, 0) && - duckdb::string(copyStmt->filename).rfind(duckdbCopyR2FilenamePrefix, 0)) { + duckdb::string(copyStmt->filename).rfind(duckdbCopyR2FilenamePrefix, 0)) { return false; }