SQL: PostgreSQL extensions (PGXS Makefile, *.control, sql/*.sql, pg_regress/TAP tests) are not recognised; scan-build --status-bugs is not a static analyzer run
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
调研方向
Start with ecosystems/sql.py around sql_project (lines 291-297), which only recognises _TOOL_FILES, Flyway paths and pgTAP, then with tools/wrappers.py:13, which treats scan-build as a transparent launcher. Also check ecosystems/c_cpp/ for missing installcheck/prove handling. Done means a PGXS repo fixture (foo.control, sql/, test/sql) is detected as SQL with its pg_regress tests credited, and scan-build --status-bugs make is no longer read as plain make. This spans several subsystems, so ask a maintainer before starting.
由索引模型根据 Issue 内容生成。
描述
pgvector and pgaudit are the SQL ecosystem's archetype outside dbt (EXTENSION, MODULE_big, DATA = sql/*.sql, REGRESS =, TAP_TESTS = 1, test/sql + test/expected), yet .sql ×57 is unrecognised and the projects are plain C. Their pg_regress and TAP tests run in every CI job (make installcheck, make prove_installcheck) → "no tests found (CTest or Meson)"; pgvector's mac job runs the Clang Static Analyzer with scan-build --status-bugs make (fails on any finding) → "no static analyzer runs" (scan-build is listed as a transparent wrapper in tools/wrappers.py:13). The matrix that matters is the server version (ankane/setup-postgres postgres-version, 15–20) and the valgrind job (check-ub: yes) is the ecosystem's memory/UB check. dbt-utils' ci.yml runs only on workflow_dispatch and create-table-of-contents.yml has on: [], yet ci-present lists both as CI.
Evidence from the corpus audit
pgvector/pgvector, pgaudit/pgaudit / detection
- kind: DETECTION
- actual: map: languages
["C"], ecosystems C/C++, Data, Docker;unrecognised_suffixes:.sql(57 / 2 files),
.control(1),.out(14 / 1),.pl(48 / 1) - expected: SQL detected: both are PostgreSQL extensions, the SQL ecosystem's archetype outside dbt; the control file,
the PGXS Makefile (EXTENSION,MODULE_big,DATA = sql/*.sql) andtest/sql+test/expectedare unambiguous - evidence: pgvector
vector.control:1:comment = 'vector data type and ivfflat and hnsw access methods';
Makefile:1:EXTENSION = vector;Makefile:5:DATA = $(wildcard sql/*--*--*.sql); pgauditMakefile:1:
MODULE_big = pgaudit,Makefile:7:EXTENSION = pgaudit; validatorecosystems/sql.py:291-297(sql_project)
recognises only_TOOL_FILES, Flyway/migrations/paths and pgTAPSELECT plan(;docs/ecosystems/sql.md:3-7
documents the same list - repro: a repo with
foo.control,MakefilecontainingEXTENSION = foo/PGXS := $(shell $(PG_CONFIG) --pgxs),
sql/foo--1.0.sql,test/sql/a.sql,test/expected/a.out - confidence: high
pgvector/pgvector, pgaudit/pgaudit / tests-run
- kind: FALSE_NEGATIVE
- actual: FAIL: "no tests found (tests registered with CTest (...) or tests registered with Meson's test() in meson.build)"
- expected: PASS: pg_regress tests (
REGRESS =) and TAP tests (TAP_TESTS = 1,test/t/*.pl) exist and every CI
job runs them withmake installcheck/make prove_installcheck - evidence: pgvector
Makefile:10-11:TESTS = $(wildcard test/sql/*.sql)/REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS));Makefile:60:prove_installcheck:;.github/workflows/build.yml:35:- run: make installcheck,:41:- run: make prove_installcheck,:125-126:sudo -u postgres make installcheck/
sudo -u postgres make prove_installcheck; pgauditMakefile:12:REGRESS = pgaudit,:15:TAP_TESTS = 1,
test/test.sh:14:make -C /pgaudit installcheck USE_PGXS=1; validator: noinstallcheck/pg_regress/prove
anywhere underecosystems/c_cpp/(grep returns nothing) - repro:
MakefilewithREGRESS = a+include $(PGXS),test/sql/a.sql, workflow steprun: make installcheck - confidence: high
pgvector/pgvector / static-analysis
- kind: FALSE_NEGATIVE (also UNREAD: no unknown raised)
- actual: FAIL: "C/C++: no static analyzer runs"
- expected: PASS (or ERROR in the strict run): the mac job runs the Clang Static Analyzer over the whole build with
--status-bugs, which fails the job on any finding - evidence:
.github/workflows/build.yml:77:- run: make clean && $(brew --prefix llvm@$LLVM_VERSION)/bin/scan-build --status-bugs make; validatortools/wrappers.py:13:*((name,) for name in ("emcmake", "emmake", "emconfigure", "scan-build", "ccache", "sccache"))lists scan-build as a transparent launcher, so even a plainscan-build make
is read asmake; the$(brew --prefix ...)/bin/program prefix is a command substitution, yet the strict.txt
has no ERROR for static-analysis (strict and allow outputs are identical) - repro: workflow step
run: scan-build --status-bugs makeon a C project with a Makefile - confidence: high (that it is not credited); medium (which of the two causes applies here)
pgvector/pgvector / platform-matrix, sanitizers
- kind: UNSUPPORTED
- actual: platform-matrix PASS "3 OS(es), 3 compiler(s)"; sanitizers FAIL "no sanitizers found"
- expected: the matrix that matters for a Postgres extension is the server version (15-20 here, via
ankane/setup-postgrespostgres-version), and the valgrind job (ankane/setup-postgres-valgrind,check-ub: yes)
is the ecosystem's memory/UB check; neither is known - evidence:
.github/workflows/build.yml:11-22matrixpostgres: 20 ... 15;:27:postgres-version: ${{ matrix.postgres }};:136-139:- uses: ankane/setup-postgres-valgrind@v1/postgres-version: 18/
check-ub: yes; validator:grep -rn valgrind project_validator/returns nothing - repro: unclear (new tool knowledge)
- confidence: medium
dbt-labs/dbt-utils / ci-present
- kind: MESSAGE
- actual: PASS: lists
.github/workflows/ci.ymland.github/workflows/create-table-of-contents.ymlas CI; the strict
run's ERRORs cascade fromci.yml's reusable workflow - expected: a note that
ci.ymlruns only onworkflow_dispatch(its automatic triggers are commented out) and
create-table-of-contents.ymlnever runs (on: []): the project's actual CI is CircleCI - evidence:
.github/workflows/ci.yml:12-19:# Automatic triggers temporarily disabled while investigating .../
workflow_dispatch:;.github/workflows/create-table-of-contents.yml:8:on: [] - repro: a workflow with
on: [] - confidence: medium
Found by the regression-corpus audit (235 real repositories, one or more per ecosystem profile; corpus and expected results in corpus/). Evidence is quoted from the audited checkouts at the commits pinned in corpus/projects.toml; <checkouts>/<owner>__<repo> is such a checkout.
🤖 Generated with Claude Code
- 主要语言
- Python
- 星标
- 4
- 派生
- 1
- 平均合并
- 10 小时 41 分钟
- 30 天内合并 PR
- 79
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cpp-best-practices/project_validator 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 62/100
cpp-best-practices/project_validator#267 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
cpp-best-practices/project_validator#263 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
cpp-best-practices/project_validator#260 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
cpp-best-practices/project_validator#259 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
cpp-best-practices/project_validator#255 ·
维护者通常 1 天内回复
查看 cpp-best-practices/project_validator 的全部 Issue
相似的 Issue
-
plot_graph crashes when a mesh node has no m2m edge可能已有人在做 @tygvi 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
mllam/neural-lam#883 · 1 条评论 ·
维护者通常 2 天内回复
-
enhancement possible-duplicate
难度 1/5 1-3 小时 新手友好度 78/100
AOSSIE-Org/PictoPy#1715 · 2 条评论 ·
维护者通常 6 天内回复
-
SQLite connector omits generated columns from the catalog, and drops relationships sourced on them未关闭
难度 2/5 1-3 小时 新手友好度 72/100
NVIDIA/auto-ontology#511 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
ethereum/execution-specs#3996 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
Project-N-E-K-O/N.E.K.O#3725 ·
维护者通常 1 天内回复