- 博客(139)
- 资源 (14)
- 收藏
- 关注
原创 DeepSeek辅助编写的将DuckDB查询结果写多种格式文件的通用类
本文介绍了一个通用数据导出框架的开发过程,用于将DuckDB数据库查询结果导出为多种格式(XLS/DOCX等)。作者基于CSV导出实现进行了抽象,设计了可扩展的模板架构,通过添加特定格式的处理代码即可支持新格式。在实现DOCX导出功能时,遇到两个关键问题:(1) duckx库只能修改现有文件而不能创建新文件;(2) C++移动语义导致的文件路径失效问题。经过调试后成功实现功能,并总结了重要经验:使用CSV进行概念验证的重要性,以及正确处理C++移动语义的注意事项。最终方案允许通过文件后缀自动选择相应的导出工
2025-06-11 13:57:20
296
原创 DeepSeek辅助实现的DuckDB copy to自定义函数
摘要: 开发DuckDB自定义导出函数mycsv时,发现需注意两个关键点:1) InitializeGlobal仅处理表头,数据写入需通过InitializeLocal实现;2) 数据读取必须从DataChunk参数而非LocalFunctionData获取,否则字段值会为空。本程序通过插入myduck前缀区分系统CSV文件。
2025-06-09 22:05:47
300
原创 让DeepSeek参照libxls的xls2csv例子实现的DuckDB read_xls表函数
本文实现了DuckDB读取传统xls格式文件的表函数read_xls。通过整合libxls库的xls解析功能和DuckDB的增强CSV读取能力,该函数支持指定sheet编号或名称读取Excel文件。实现要点:1) 使用iconv进行字符编码转换;2) 通过xlsWorkSheet结构解析表格数据;3) 提供sheet参数选择功能;4) 自动推断列名和数据类型。测试表明该实现能正确处理中文字符。代码结构清晰,包含绑定、初始化和数据处理三个核心模块,为DuckDB扩展了传统Excel文件读取能力。
2025-06-08 13:50:35
353
原创 改写一行提速group by cube查询五倍
多组数据库测试表明,直接使用GROUP BY CUBE语句的效率往往低于等价改写方法。通过创建1亿行测试表,对比四种实现方式发现:直接使用GROUP BY CUBE耗时8秒;拆分为UNION ALL语句耗时3秒;先GROUP BY全部列再UNION ALL耗时1.3秒;而优化后的方法——先GROUP BY全部列再使用CUBE,仅需1.5秒且保留分组标识,实现了5倍性能提升。该方法在GlareDB中也获得验证,具有普适性。对于ROLLUP操作,由于组合较少,优化效果相对不明显。
2025-06-08 08:02:30
313
原创 一个DeepSeek辅助编写的将group by cube查询语句转为等价CTE的程序
该程序实现了将SQL中的GROUP BY CUBE查询转换为等价的UNION ALL多组CTE查询。主要功能包括:预处理输入SQL、提取CUBE列清单、生成所有可能的组合(2^n-1种)、处理列别名解析,最终将原始查询重写为包含多个CTE查询的UNION ALL语句。程序采用正则表达式匹配GROUP BY CUBE模式,并支持复杂的列表达式解析,确保了查询转换的准确性和完整性。
2025-06-08 07:58:37
101
原创 三种读写传统xls格式文件开源库libxls、xlslib、BasicExcel的比较
本文介绍三种读写传统xls格式文件开源库libxls、xlslib、BasicExcel的安装、使用方法,并比较其功能与性能,提供了测试源代码和编译命令行
2025-06-06 19:36:28
1551
原创 在aarch64平台编译写入传统xls格式文件开源库xlslib的步骤
摘要:在aarch64平台编译旧版xlslib库时遇到系统类型识别问题,通过替换新的config.guess和config.sub文件解决configure错误。虽然make时出现链接错误,但成功生成所需的libxls.so动态库文件。测试程序testCPP能正常运行并生成xls文件,将该so库用于新编写的C++14程序也成功完成xls文件输出。值得注意的是,该库虽用g++5.4编译,但与g++14编译的程序兼容。
2025-06-06 10:57:37
222
原创 在aarch64平台编译依赖pqxx库和iconv库的c++程序的办法
本文介绍了一个从下载软件包中提取lib和include目录用于c++程序编译的方法,适用于在线安装和和从源代码编译失败的情况
2025-06-04 12:28:38
337
原创 使用DeepSeek编写DuckDB支持中文字符集编码的read_csv表函数
本文介绍了一个解决DuckDB不支持指定CSV文件字符集问题的方案。通过实现read_csv_e表函数,支持读取GBK、GB2312、GB18030和BIG5编码的CSV文件,并将其转换为UTF-8存储。该方案使用iconv库进行字符编码转换,包含文件读取、编码转换和数据绑定等功能,避免了用户使用命令行工具预处理文件的不便。源码提供了完整的C++实现,包括头文件和源文件,展示了如何通过DuckDB的TableFunction接口扩展功能。
2025-06-02 11:57:01
321
原创 Debian上安装PostgreSQL的故障和排除
摘要:用户在使用apt install postgresql安装PostgreSQL 15时遇到404错误,尝试--fix-missing仍无效。自行下载相近版本安装包(15.13)后,又出现依赖版本不匹配(libpq5需要15.13而系统为15.12)。解决依赖后启动服务时发现缺少配置文件,手动创建postgresql.conf和pg_hba.conf文件(配置本地连接为trust模式)后成功启动。通过psql和DuckDB测试连接正常。问题根源可能是未执行apt-get update更新软件源信息。
2025-06-01 19:01:52
449
原创 利用DeepSeek编写能在DuckDB中读PostgreSQL表的表函数
本文介绍了如何利用DeepSeek编写DuckDB表函数read_pg(),实现从PostgreSQL中读取数据。该表函数接受PostgreSQL连接字符串和表名作为参数,通过pqxx库查询表结构并映射数据类型,最终在DuckDB中返回对应表的数据。文章重点解决了函数重复调用的问题,并分享了表函数注册的技巧。通过这个表函数,用户可以在单个SQL查询中关联PostgreSQL的多个表。
2025-06-01 18:56:32
483
原创 DeepSeek修改4行在duckdb自定义客户端中显示格式化表格结果
摘要: 本文纠正了先前关于DuckDB动态库缺乏格式化输出的错误观点,详细介绍了通过query_result.hpp中的ToBox函数实现表格化输出的方法。内容包括:1) 必要头文件引入;2) 查询执行代码改造步骤;3) BoxRendererConfig配置选项说明;4) 完整集成示例。文章同时指出:当前版本(≥0.6.0)的边框配置参数已变更,且实际输出包含数据类型行,通过字符串处理可调整格式。另提及脚本读取换行符问题的解决方案。最终输出效果接近DuckDB CLI的表格样式(示例展示)。
2025-05-31 07:19:00
326
原创 deepseek辅助编写的支持gmp高精度运算duckdb客户端
文章摘要:为解决DuckDB Decimal类型精度不足问题,通过自定义标量函数(UDF)和聚合函数(UDAF)调用GMP库实现高精度运算。开发过程中遇到函数实现、字符串转换等挑战,借助DeepSeek生成代码并解决编译错误。最终整合了支持加减乘除、开方等运算的交互式SQL工具,包含计时、脚本执行等功能。项目展示了AI对特定数据库系统的深入理解及DuckDB强大的扩展能力,但插件签名机制仍需进一步研究。相关代码已开源。
2025-05-28 21:17:09
713
原创 《Expert PL SQL Practices》阅读体会-2
1 软件工程第4章说到,Java社区有单元测试,而PL/SQL开发人员还不一定采用,有几种工具都支持,比如utplsql,quest,sql developer在大规模应用程序的开发中,按软件工程方式开发是必须的2 提高性能几种方法第6章 批量处理第3章 并行
2011-12-30 16:23:31
4896
原创 《Expert PL SQL Practices》阅读体会-1
第一章虽然是讲PL/SQL的书,但是首先分析哪些情况不适合用PL/SQL,并建议首选用SQL连接代替嵌套循环。还可以用关联数组实现查表。在使用PL/SQL的过程中,要注意:1 少用dual(序列、日期都可以直接在PL/SQL用,DML returning可以返回刚用过的值)2 少用函数3 少用远程数据库链接4 少提交5 少触发器6 少解析(少在循环中用动态SQL)
2011-12-21 21:01:28
5709
原创 Oracle 11.2命令行手工最简创建数据库的过程
Oracle 11.2命令行手工最简创建数据库的过程命令行手工最简创建数据库的过程环境:RHEL 5.4 x86 , oracle 11.21.设定环境变量在/home/oracle编辑# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi# User specif
2009-09-13 21:16:00
5492
原创 在HP-UX 11.11用swinstall安装gcc 4.2.3
1.下载软件包(我从http://hpux.connect.org.uk/下载,更新版本的可以在http://hpacxx.external.hp.com/gcc/下载)gcc-4.2.3-hppa-11.11.depot.gzgettext-0.17-hppa-11.11.depot.gzlibgcc-4.2.3-hppa-11.11.depot.gz (gcc-4.2.3的页面
2009-05-23 15:10:00
14351
原创 利用Oracle内置分析函数进行高效统计汇总
利用Oracle内置分析函数进行高效统计汇总分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式。在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的SQL语句就可以实现了,而且在执行效率方面也有相当大的提高。下面我将针对分析函数做一些具体的说明。分析函数的一般格式是函数名(参数列表)
2008-12-22 08:56:00
12342
原创 SQL对取值范围进行分组汇总的几种办法
SQL对取值范围进行分组汇总的几种办法在统计工作中,我们经常遇到对一个数量的取值范围进行分组汇总的情况,比如假定id取值为1~20000,按照组距5000进行分组,我们要分别求出5000以下包括5000,5000以上10000以下包括10000,10000以上15000以下包括15000,15000以上20000以下包括20000。的计数,可以用内置取整函数ceil和除法运算得到。selec
2008-09-05 09:17:00
21167
原创 一种SQL计算行间四则运算的办法
一种SQL计算行间四则运算的办法数据库的SQL语言只能计算行间的和,为了进行加减乘除四则运算,我们必须找到把其他运算转化为加法的办法。减法转化为加法的办法比较简单,只要先取要减的数的相反数,然后相加就可以了。乘法转化为加法我们要利用数学知识,假定a的常用对数是m,10的m次幂就等于a,用公式表示为:10^(lg(a))=a。两个数ab的积的常用对数等于ab各自常用对数的和,用公式表示为:l
2008-09-05 09:15:00
16695
1
原创 利用Oracle 10g的 MODEL SQL进行行间计算(2)
规则也可以是多个维度不同取值,本例假定不同年份之间比较,比如要求2008年的10=2007年的30+31SELECT year,code, p_id, v1FROM t603_2WHERE code IN (600001,600002) MODEL RETURN UPDATED ROWS PARTITION BY (code) DIMENSIO
2008-08-25 13:30:00
5141
原创 利用Oracle 10g的 MODEL SQL进行行间计算
利用Oracle 10g的 MODEL SQL进行行间计算以产品产量表为例,一个工厂(用code表示)生产多种产品(用p_id表示),每种产品具有生产量(v1)和销售量(v2)产品代码具有审核关系,比如10=30+31,其中10代表大类,30和31代表10大类下的小类。SQL> create table t603 (code varchar(10),p_id var
2008-08-22 15:07:00
4781
转载 HTML语言如何一次实现表格整列的对齐方式
HTML元素 - colGroup定义说明表格中一列或一组列的缺省属性。Specifies property defaults for a column or group of columns in a table.注释嵌套的 COL 属性将覆盖 COLGROUP 属性。使用 SPAN 属性可以指定 COLGROUP 定义的表格列数。该属性的缺省值为 1。COL 元素可以出现在 C
2008-08-21 15:22:00
12267
原创 我近4年的计算机学习经历
我近4年的计算机学习经历上次说到单位刚好有一个大的项目,这个大项目使我第一次进入了软件项目管理的领域,项目团队由3家公司的技术人员组成,另外聘用了一名第三方项目经理负责管理。3家公司的人被打散分到各个小组,有负责架构设计的,有负责前端界面的,有负责后台服务器的,还有文档和测试人员,其中不乏名校毕业的研究生。我们用户方则找了本部门系统的业务和技术专家。按说,这么“豪华”的阵容编写一个专用
2008-07-11 20:49:00
5685
1
原创 统计数据处理用数据库表的设计比较
统计数据处理用数据库的设计思考统计数据处理过程大致分为:数据录入、数据审核和修改、数据汇总三个主要步骤或阶段,一般还包括数据的导入和导出。我们在设计用于统计数据处理的数据库时需要考虑各个阶段的用户需求特点,并进行相应的设计。数据录入阶段:这一阶段的特点是大量数据的录入,每次插入的数据量不一定很大,但有大量的提交。数据审核和修改:这一阶段的特点是批量数据的处理,产生审核错误清单,
2008-06-20 16:22:00
8892
原创 n^2+(n+1)^2 为完全平方数问题的解法与实现
n^2+(n+1)^2 为完全平方数问题的解法与实现数学证明3 4 5 20 21 29 119 120 169 696 697 985 4059 4060 5741 23660 23661 33
2008-05-06 11:03:00
6476
原创 一个采用了MFC文档序列化的C++文件管理类
/*-----------------------------------------* Copyright (c) 2002,计算中心* All rights reserved.* * 文件名称:Formulas.h* 文件标识:见配置管理计划书* 摘 要:公式集合类和公式类的声明* * 当前版本:0.11* 作 者:* 完成日期:2002年6月29日** 取代版本:0.1 * 原作
2008-02-15 11:12:00
6771
原创 用jython 访问Oracle数据库
准备工作下载http://jaist.dl.sourceforge.net/sourceforge/zxjdbc/zxJDBC-2.1.tar.gzhttp://jaist.dl.sourceforge.net/sourceforge/jython/jython_installer-2.2.1.jar根据自己的jdk版本下载对应的ojdbc版本http://download.oracle
2007-11-16 14:35:00
6713
原创 用jython 访问mysql数据库
用jython 访问mysql数据库 准备工作下载http://jaist.dl.sourceforge.net/sourceforge/zxjdbc/zxJDBC-2.1.tar.gzhttp://jaist.dl.sourceforge.net/sourceforge/jython/jython_installer-2.2.1.jarhttp://mmmysql.sourceforge.net
2007-11-13 11:15:00
6869
原创 在HP-UX下编译使用7-zip
从p7zip.sf.net下载源代码包p7zip_4.51_src_all.tar.bz2用7-zip的Windows版本解压缩为 p7zip_4.51_src_all.tar将p7zip_4.51_src_all.tar文件ftp到HP-UX的/home/user1cd /home/user1mkdir 7zcd 7ztar xf ~/p7zip_4.51_src_all
2007-08-27 19:30:00
7125
1
转载 忘了Linux 的根口令,现在怎么登录?
你可以使用单用户 Linux 模式来登录,然后创建一个新的根口令。 要进入单用户模式,重新引导计算机。如果你使用的是默认的引导装载程序 GRUB,你可以执行下列步骤来进入单用户模式: 在引导装载程序菜单上,键入 [e] 来进入编辑模式。 你会面对一个引导项目列表。查找其中类似以下输出的那一行:
2007-07-12 11:22:00
2354
转载 24点C++源代码
#include #include #include using namespace std; const double PRECISION = 1E-6; const int COUNT_OF_NUMBER = 4; const int NUMBER_TO_BE_CAL = 24; double number[COUNT_OF_N
2006-12-10 08:10:00
4556
1
转载 一切从游戏开始-完整的一个python to hack 实例
Hello ,引自:ChinesePython Wiki 中蟒大杂院 http://www.chinesepython.org/cgi_bin/moingb.cgi/_d2_bb_c7_d0_b4_d3_d3_ce_cf_b7_bf_aa_ca_bc------------------------------------------------------------------
2006-12-10 08:03:00
11262
2
原创 用Python实现去掉文章中特定的段落
有一份试题,每个问题以QUESTION NO开始,然后是该题的答案,以Answer:开始。为了摘出一份只包含问题,不包含答案的试题,尝试用ultraedit的正则表达式替换,但不支持跨行替换。于是写了下面的Python程序。from sys import*fp=open(argv[1],r)fo=open(argv[2],w)a=fp.readline()sym=0while a!=:
2006-09-14 12:19:00
5177
1
原创 Python语言的数学函数
5.7 math -- Mathematical functions This module is always available. It provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex num
2006-07-30 08:01:00
11369
原创 IBM DB2 9北京时间9月28日下午正式发布
新的 DB2® 9.1,它提供了与先前版本非常不同的体系结构.自从出现以来,DB2 Universal Database™ for Linux®、UNIX® 和 Windows® 第一次提供了新的查询语言、新的存储技术、新的索引技术以及支持 XML 数据及其固有层次结构的其他特性.但是,所有的 DB2 传统数据库管理特性仍然存在,包括对 SQL 和表结构的支持.新的 XML 技术,使 DB2 成为
2006-07-30 01:01:00
2303
原创 Oracle利用传输表空间方法导出导入数据的步骤
2个数据库(ltdb和epras),从ltdb导出tsts表空间(用户ts,包含2个数据文件)到epras执行步骤1.ltdb导出可传输表空间(以sysdba执行导出)到dmp文件2.将ltdb的tsts表空间改为只读3.用操作系统命令复制数据文件和dmp文件到另一个位置给另一个数据库epras使用。如果在一台服务器上,dmp文件可以不必复制,复制完成后,将ltdb的tsts表空间改为可读写4
2006-07-12 16:43:00
3126
从Windows转向Linux基础教程
2007-04-21
Microsoft Visual C++ Toolkit 2003 精简版
2009-10-21
《动手学深度学习》(Dive into Deep Learning)中文版
2019-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人