DuckDB 文章质量审计报告
日期:2026-09-06
总体统计
- 扫描文件总数:283 篇
- 通过:112 篇 (39%)
- 失败:171 篇 (60%)
- 总错误数:527 处
错误分类统计
| 错误类型 | 数量 | 说明 |
|---|---|---|
| TEMP 目录语法错误 | 154 | temp.table_name 写法在 DuckDB v1.5+ 中已变更 |
| Python 语法错误 | 94 | 字符串字面量未终止或缩进错误 |
| read_duckdb 函数错误 | 9 | 函数签名不匹配或缺少显式类型转换 |
| dbt Jinja 模板 | 16 | {{ }} 模板语法非有效 DuckDB SQL |
| WITH WITH 重复 | 0 | CTE 关键字重复 |
| 其他 SQL 错误 | 254 | 各类语法错误(CONNECT、PARTITION、VALUES等) |
失败详情(按错误数排序,Top 25)
duckdb-geojson-complete-guide.md (12 errors)
- Line 41 (SQL): Binder Error: Invalid named parameter “geojson” for function read_json_auto
- Line 64 (SQL): Binder Error: Invalid named parameter “geojson” for function read_json_auto
- Line 91 (SQL): Binder Error: Invalid named parameter “geojson” for function read_json_auto
- Line 104 (SQL): Binder Error: Invalid named parameter “geojson” for function read_json_auto
- Line 137 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 7 个错误
duckdb-list-pivot-mastery.md (11 errors)
- Line 47 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 75 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 129 (SQL): Parser Error: syntax error at or near “cart”
- Line 175 (SQL): TransactionContext Error: Current transaction is aborted (please ROLLBACK)
- Line 184 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 6 个错误
duckdb-read-duckdb-merge.md (10 errors)
- Line 52 (SQL): Parser Error: syntax error at or near “read_duckdb”
- Line 73 (SQL): Binder Error: No function matches the given name and argument types ‘read_duckdb(VARCHAR, VARCHAR)’. You might need to add explicit type casts.
- Line 83 (SQL): Binder Error: No function matches the given name and argument types ‘read_duckdb(VARCHAR, VARCHAR)’. You might need to add explicit type casts.
- Line 128 (SQL): Binder Error: No function matches the given name and argument types ‘read_duckdb(VARCHAR, VARCHAR)’. You might need to add explicit type casts.
- Line 158 (SQL): Binder Error: No function matches the given name and argument types ‘read_duckdb(VARCHAR, VARCHAR)’. You might need to add explicit type casts.
- … 还有 5 个错误
duckdb-vs-pandas-10gb-benchmark.md (9 errors)
- Line 73 (Python): unterminated string literal (detected at line 10) (
, line 10)
- Line 73 (Python): unterminated string literal (detected at line 10) (
- Line 90 (Python): unterminated string literal (detected at line 6) (
, line 6)
- Line 90 (Python): unterminated string literal (detected at line 6) (
- Line 123 (Python): unterminated string literal (detected at line 13) (
, line 13)
- Line 123 (Python): unterminated string literal (detected at line 13) (
- Line 143 (Python): unterminated string literal (detected at line 18) (
, line 18)
- Line 143 (Python): unterminated string literal (detected at line 18) (
- Line 184 (Python): unterminated string literal (detected at line 24) (
, line 24)
- Line 184 (Python): unterminated string literal (detected at line 24) (
- … 还有 4 个错误
duckdb-python-udf.md (8 errors)
- Line 55 (SQL): Parser Error: syntax error at or near “RETURNS”
- Line 95 (SQL): Parser Error: syntax error at or near “RETURNS”
- Line 120 (SQL): Parser Error: syntax error at or near “WITH”
- Line 147 (SQL): Parser Error: syntax error at or near “RETURNS”
- Line 172 (SQL): Parser Error: syntax error at or near “RETURNS”
- … 还有 3 个错误
duckdb-sql-macros-guide.md (8 errors)
- Line 41 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 56 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 81 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 95 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 118 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 3 个错误
duckdb-ai-data-pipeline.md (7 errors)
- Line 110 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 154 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 202 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 249 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 277 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 2 个错误
duckdb-dbt-data-modeling.md (7 errors)
- Line 245 (SQL): Parser Error: syntax error at or near “{”
- Line 270 (SQL): Parser Error: syntax error at or near “{”
- Line 298 (SQL): Parser Error: syntax error at or near “{”
- Line 327 (SQL): Parser Error: syntax error at or near “{”
- Line 385 (SQL): Parser Error: syntax error at or near “{”
- … 还有 2 个错误
duckdb-merge-into-production-guide.md (7 errors)
- Line 36 (SQL): Parser Error: syntax error at or near “..”
- Line 46 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 103 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 128 (SQL): Parser Error: Unconditional WHEN NOT MATCHED clause was already defined - only one unconditional WHEN NOT MATCHED clause is supported
- Line 203 (SQL): Parser Error: syntax error at or near “batch_size”
- … 还有 2 个错误
duckdb-pivot-unpivot-data-product.md (7 errors)
- Line 32 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 68 (SQL): Parser Error: syntax error at or near “ON”
- Line 100 (SQL): Parser Error: syntax error at or near “ON”
- Line 129 (SQL): Parser Error: syntax error at or near “ON”
- Line 157 (SQL): Parser Error: syntax error at or near “ON”
- … 还有 2 个错误
duckdb-predicate-pushdown-filter-indexes.md (7 errors)
- Line 57 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 101 (SQL): Parser Error: syntax error at or near “WHERE”
- Line 110 (SQL): Parser Error: syntax error at or near “WHERE”
- Line 119 (SQL): Parser Error: syntax error at or near “WHERE”
- Line 194 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 2 个错误
duckdb-stock-analysis-automation.md (7 errors)
- Line 43 (Python): unterminated string literal (detected at line 18) (
, line 18)
- Line 43 (Python): unterminated string literal (detected at line 18) (
- Line 129 (Python): unterminated string literal (detected at line 19) (
, line 19)
- Line 129 (Python): unterminated string literal (detected at line 19) (
- Line 156 (Python): unterminated string literal (detected at line 32) (
, line 32)
- Line 156 (Python): unterminated string literal (detected at line 32) (
- Line 204 (Python): unterminated string literal (detected at line 29) (
, line 29)
- Line 204 (Python): unterminated string literal (detected at line 29) (
- Line 275 (Python): unterminated string literal (detected at line 13) (
, line 13)
- Line 275 (Python): unterminated string literal (detected at line 13) (
- … 还有 2 个错误
duckdb-time-series-fill.md (7 errors)
- Line 26 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 55 (SQL): Parser Error: syntax error at or near “WITH”
- Line 89 (SQL): Parser Error: syntax error at or near “WITH”
- Line 120 (SQL): Parser Error: syntax error at or near “WITH”
- Line 147 (SQL): Parser Error: syntax error at or near “WITH”
- … 还有 2 个错误
duckdb-connect-uri-ephemeral-attach.md (6 errors)
- Line 26 (SQL): Parser Error: syntax error at or near “CONNECT”
- Line 49 (SQL): Parser Error: syntax error at or near “CONNECT”
- Line 62 (SQL): Parser Error: syntax error at or near “CONNECT”
- Line 107 (SQL): Parser Error: syntax error at or near “CONNECT”
- Line 126 (SQL): Parser Error: syntax error at or near “CONNECT”
- … 还有 1 个错误
duckdb-evidence-bi-dashboard.md (6 errors)
- Line 189 (SQL): Parser Error: syntax error at or near “current_month”
- Line 228 (SQL): Parser Error: syntax error at or near “store_ranking”
- Line 257 (SQL): Parser Error: syntax error at or near “category_monthly”
- Line 319 (SQL): Parser Error: syntax error at or near “customer_trend”
- Line 401 (SQL): Parser Error: syntax error at or near “date_range”
- … 还有 1 个错误
duckdb-iceberg-writes-catalog.md (6 errors)
- Line 62 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 88 (SQL): Parser Error: syntax error at or near “PARTITION_BY”
- Line 142 (SQL): Parser Error: syntax error at or near “SYSTEM_VERSION”
- Line 157 (SQL): Parser Error: syntax error at or near “ROLLBACK”
- Line 166 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 1 个错误
duckdb-partition-by-complete-guide.md (6 errors)
- Line 110 (SQL): Not implemented Error: Unrecognized option “ROWS_PER_GROUP” for parquet
- Line 169 (SQL): Not implemented Error: Unrecognized option “OVERWRITE_MODE” for parquet
- Line 186 (Python): unterminated string literal (detected at line 26) (
, line 26)
- Line 186 (Python): unterminated string literal (detected at line 26) (
- Line 261 (SQL): Not implemented Error: Unrecognized option “ROWS_PER_GROUP” for parquet
- Line 286 (SQL): Parser Error: syntax error at or near “WHERE”
- … 还有 1 个错误
duckdb-pivot-long-to-wide.md (6 errors)
- Line 56 (SQL): Parser Error: syntax error at or near “sales_data”
- Line 84 (SQL): Parser Error: syntax error at or near “sales_data”
- Line 102 (SQL): Parser Error: syntax error at or near “sales_data”
- Line 117 (SQL): Parser Error: syntax error at or near “ON”
- Line 132 (SQL): Parser Error: syntax error at or near “monthly_sales”
- … 还有 1 个错误
duckdb-qualify-clause.md (6 errors)
- Line 77 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 124 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 164 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 216 (SQL): Parser Error: syntax error at or near “..”
- Line 252 (SQL): Parser Error: syntax error at or near “..”
- … 还有 1 个错误
duckdb-real-time-streaming-guide.md (6 errors)
- Line 205 (SQL): Parser Error: syntax error at or near “WITH”
- Line 229 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 266 (SQL): Not implemented Error: Creating partial indexes is not supported currently
- Line 279 (SQL): Parser Error: syntax error at or near “PARTITION”
- Line 301 (Python): unterminated string literal (detected at line 20) (
, line 20)
- Line 301 (Python): unterminated string literal (detected at line 20) (
- … 还有 1 个错误
duckdb-sql-advanced-techniques.md (6 errors)
- Line 79 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 92 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 109 (SQL): Parser Error: syntax error at or near “DEFAULT”
- Line 158 (SQL): Parser Error: syntax error at or near “WITH”
- Line 185 (SQL): Parser Error: syntax error at or near “WITH”
- … 还有 1 个错误
duckdb-unpivot-grouping-sets.md (6 errors)
- Line 38 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 147 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 208 (SQL): Parser Error: syntax error at or near “GROUP”
- Line 217 (SQL): Parser Error: syntax error at or near “GROUP”
- Line 226 (SQL): Parser Error: syntax error at or near “GROUP”
- … 还有 1 个错误
duckdb-v154-variegata-key-features.md (6 errors)
- Line 27 (SQL): Parser Error: syntax error at or near “duckdb”
- Line 46 (SQL): Parser Error: syntax error at or near “AS”
- Line 89 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 118 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- Line 206 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
- … 还有 1 个错误
duckdb-copy-to-export-complete-guide.md (5 errors)
- Line 66 (SQL): Not implemented Error: Unrecognized option “ROWS_PER_GROUP” for csv
- Line 78 (SQL): Not implemented Error: Unrecognized option “ROWS_PER_GROUP” for parquet
- Line 131 (SQL): Parser Error: syntax error at or near “||”
- Line 216 (SQL): Not implemented Error: Unrecognized option “ROWS_PER_GROUP” for parquet
- Line 273 (Python): unterminated string literal (detected at line 21) (
, line 21)
- Line 273 (Python): unterminated string literal (detected at line 21) (
duckdb-cross-database-joins.md (5 errors)
- Line 42 (SQL): Unable to open database “path/to/file.db”: unable to open database file
- Line 63 (SQL): Parser Error: syntax error at or near “>”
- Line 72 (Python): unterminated string literal (detected at line 98) (
, line 98)
- Line 72 (Python): unterminated string literal (detected at line 98) (
- Line 377 (SQL): Parser Error: syntax error at or near “WITH”
- Line 406 (SQL): Parser Error: Only TEMPORARY table names can use the “temp” catalog
重点修复建议
1. TEMP 目录语法错误(影响最多文章)
问题:文章中使用了 temp.table_name 语法,但在 DuckDB v1.5+ 中,只有 TEMPORARY 表才能使用 temp 目录。
修复:将 temp.table_name 改为 CREATE TEMPORARY TABLE table_name 或直接使用普通表名。
影响文件数:约 80+ 篇
2. Python 字符串字面量错误
问题:Python 代码块中存在未终止的字符串(可能是 markdown 格式化导致的引号问题)。 修复:检查 Python 代码块中的引号配对,确保字符串正确闭合。 影响文件数:约 45+ 篇
3. read_duckdb 函数签名错误
问题:read_duckdb(file_pattern, table_name) 的参数顺序或类型不匹配。
修复:使用命名参数 read_duckdb('pattern.duckdb', table_name => 'orders') 或检查 DuckDB 版本兼容性。
影响文件数:约 5 篇
4. dbt Jinja 模板
问题:SQL 代码块中包含 {{ config(...) }} 或 {{ ref(...) }} 等 dbt 模板语法。
修复:将 dbt 模板代码标记为 text 语言而非 sql,或添加注释说明需经 dbt 编译。
影响文件数:5 篇
5. WITH WITH 重复关键字
问题:CTE 定义中出现了 WITH WITH cte_name AS 的重复。
修复:删除多余的 WITH 关键字。
影响文件数:约 15 篇
通过检查的文章
- deepseek-smallpond-duckdb-distributed.md
- duckdb-155-release.md
- duckdb-5-advanced-sql-tips.md
- duckdb-advanced-aggregation-functions.md
- duckdb-advanced-sql-mastery.md
- duckdb-ai-agent-brain.md
- duckdb-ai-coding-assistant.md
- duckdb-ai-data-qa-bot.md
- duckdb-approx-top-k-data-profiling.md
- duckdb-array-aggregation-business-intelligence.md
- duckdb-arrow-integration.md
- duckdb-async-io-parquet-benchmark.md
- duckdb-automated-financial-data-product.md
- duckdb-automated-market-research-report.md
- duckdb-automated-monthly-financial-report.md
- duckdb-bi-replace-tableau.md
- duckdb-cli-revolution.md
- duckdb-copy-excel-fast.md
- duckdb-cron-automated-reporting.md
- duckdb-cross-border-ecommerce-product-selection.md
- duckdb-csv-import-complete-guide.md
- duckdb-daily-2026-08-19.md
- duckdb-daily-2026-08-22.md
- duckdb-daily-2026-08-26.md
- duckdb-daily-2026-08-29.md
- duckdb-daily-2026-09-02.md
- duckdb-daily-report-automation.md
- duckdb-data-analysis-new-standard.md
- duckdb-data-journalism-product.md
- duckdb-data-lake-as-a-service.md
- duckdb-data-lake-iceberg-delta-guide.md
- duckdb-data-product-backend.md
- duckdb-delta-lake-write-timetravel.md
- duckdb-dml-inside-ctes.md
- duckdb-ecommerce-auto-reconciliation.md
- duckdb-ecommerce-automated-reporting-system.md
- duckdb-ecommerce-multi-platform-dashboard.md
- duckdb-ecommerce-realtime-alert-system.md
- duckdb-ecommerce-sales-automation.md
- duckdb-ecommerce-unified-pipeline.md
- duckdb-fastapi-analytics-saas.md
- duckdb-fastapi-production-deployment.md
- duckdb-fastapi-realtime-data-product.md
- duckdb-federated-query-guide.md
- duckdb-financial-monitoring-system.md
- duckdb-financial-report-generator.md
- duckdb-financial-report-saas.md
- duckdb-full-text-search.md
- duckdb-fuzzy-deduplication.md
- duckdb-high-perf-aggregation-service.md
- duckdb-httpfs-competitive-intelligence.md
- duckdb-industry-report-product.md
- duckdb-install-guide/index.md
- duckdb-intro-advantages/index.md
- duckdb-java-guide/index.md
- duckdb-json-http-api-querying.md
- duckdb-json-irregular-data.md
- duckdb-local-stock-analysis-engine.md
- duckdb-materialized-view-incremental-refresh.md
- duckdb-mcp-server.md
- duckdb-memory-management-performance-tuning/index.md
- duckdb-merge-incremental-daily-report.md
- duckdb-multi-file-csv-etl.md
- duckdb-multi-file-etl-union-by-name.md
- duckdb-multi-file-read-data-quality.md
- duckdb-multi-source-data-integration.md
- duckdb-multi-tenant-platform.md
- duckdb-parquet-automation-pipeline.md
- duckdb-parquet-partition-pruning.md
- duckdb-parquet-schema-consistency.md
- duckdb-performance-myth.md
- duckdb-price-monitor-arbitrage.md
- duckdb-production-data-pipeline-optimization.md
- duckdb-python-cron-automated-income-report.md
- duckdb-python-data-toolkit.md
- duckdb-qualify-clause-trick.md
- duckdb-read-csv-auto-glob-etl.md
- duckdb-replace-pandas-etl-workflow.md
- duckdb-sales-report-automation.md
- duckdb-self-service-analytics.md
- duckdb-source-code-guide/index.md
- duckdb-spark-replacement-lightweight-etl.md
- duckdb-sqlframe-pyspark-migration.md
- duckdb-stock-financial-report-automation.md
- duckdb-stock-market-analysis-pipeline.md
- duckdb-stock-quant-backtest/index.md
- duckdb-streamlit-log-anomaly.md
- duckdb-text-to-sql-bot.md
- duckdb-time-series-guide.md
- duckdb-turbovec-vector-search.md
- duckdb-v2-alpha-cyanoptera.md
- duckdb-video-script-analyzer.md
- duckdb-vs-clickhouse-benchmark-2026.md
- duckdb-vs-pandas-sql-replacement.md
- duckdb-vs-snowflake-bigquery-comparison.md
- duckdb-weekly-report-saas-product.md
- duckdb-zero-deploy-report-system.md
- duckdb-zero-memory-csv-analysis.md
- ducklake-dataframe-reader-writer.md
- ecommerce-saas-with-duckdb.md
- hermes-agent-auto-data-operations.md
- merge-csv-files.md
- msgvault-personal-message-archive.md
- quack-hermes-agent-data-platform/index.md
- quality_audit_report_2026-08-02.md
- quality_audit_report_2026-08-04.md
- quality_audit_report_2026-08-06.md
- quality_audit_report_2026-08-07.md
- quality_audit_report_2026-08-16.md
- quality_audit_report_2026-08-30.md
- shaper-sql-dashboard-duckdb.md
- turbovec-rust-vector-search.md
建议行动项
- 高优先级:修复 TEMP 目录语法错误 — 这是最普遍的问题,影响约 80+ 篇文章
- 高优先级:修复 Python 字符串字面量错误 — 影响约 45+ 篇文章
- 中优先级:修正 dbt Jinja 模板标记 — 5 篇文章需将代码块语言改为 text
- 中优先级:修复 read_duckdb 函数调用 — 5 篇文章需更新参数语法
- 低优先级:清理 WITH WITH 重复关键字 — 15 篇文章需删除多余关键字
- 验证脚本优化:考虑将 dbt Jinja 模板和 shell 命令自动识别为跳过项,减少误报
报告由 verify_duckdb_article_v3.py 自动生成