当前位置: 首页 > news >正文

tp5手机网站开发只做一种产品的网站

tp5手机网站开发,只做一种产品的网站,服务器租用网站自动划分空间,环境搭建好了wordpress怎么建设前段时间在DeepSeek的辅助下#xff0c;先后实现了#xff1a; deepseek辅助编写的支持gmp高精度运算duckdb客户端利用DeepSeek编写能在DuckDB中读PostgreSQL表的表函数使用DeepSeek编写DuckDB支持中文字符集编码的read_csv表函数让DeepSeek参照libxls的xls2csv例子实现的Du…前段时间在DeepSeek的辅助下先后实现了 deepseek辅助编写的支持gmp高精度运算duckdb客户端利用DeepSeek编写能在DuckDB中读PostgreSQL表的表函数使用DeepSeek编写DuckDB支持中文字符集编码的read_csv表函数让DeepSeek参照libxls的xls2csv例子实现的DuckDB read_xls表函数DeepSeek辅助编写的将DuckDB查询结果写多种格式文件的通用类 但使用不同功能要调用不同的程序很麻烦而且有的程序没有输入SQL语句的界面每次改变语句都要重新编译不实用所以将它们整合到一个带有交互式界面的程序。 整合的步骤其实很机械在主程序中添加相应函数的注册代码以及用某种方式将实现该函数的cpp程序加入编译后者既可以用#include 源代码.cpp的方式也可以用#include 源代码.h的方式再将源代码.cpp加入编译命令行前一种更简单不过后一种更规范。 修改后的主程序的增加部分如下 包含头文件和源代码 #include readpg5.cpp //读取符合postgresql协议的数据库中的表 #include csv_reader2.hpp //读取中文字符集csv #include copy_files2.cpp //将查询结果写入xls电子表格文件和docx文档文件支持中文 #include read_xls2.cpp //读取xls电子表格文件在注册程序void registerGMPFunctions()中添加如下行 duckdb::DatabaseInstance db_instance *db_-instance;//注册read_pg自定义函数duckdb::ExtensionUtil::RegisterFunction(db_instance, PGTableFunction::GetFunction());//注册read_csv_e自定义函数duckdb::ExtensionUtil::RegisterFunction(db_instance, duckdb::ReadCSVEFunction::GetFunction());//注册read_xls自定义函数ExtensionUtil::RegisterFunction(db_instance, ReadXLSFunction::GetFunction());//注册copy to自定义函数, 支持xls和docx格式duckdb::RegisterMultiFormatCopyFunction(db_instance);因为有同名冲突修改了两处 1.在copy_files2.cpp中重新定义unsigned64_t后再包含xlslib.h再取消 #define unsigned64_t xls_unsigned64_t #include xlslib.h #undef unsigned64_t2.在read_xls2.cpp中将结构体XLSGlobalState改名为ReadXLSGlobalState并同步修改两处对它的使用。 struct ReadXLSGlobalState {xlsWorkBook* workbook;xlsWorkSheet* worksheet;unsigned int current_row;bool finished; };struct XLSFunctionGlobalState : public GlobalTableFunctionState {duckdb::unique_ptrReadXLSGlobalState xls_state; };unique_ptrGlobalTableFunctionState ReadXLSFunction::InitGlobal(ClientContext context, TableFunctionInitInput input) {auto result make_uniqXLSFunctionGlobalState();auto bind_data (BindData )*input.bind_data;result-xls_state make_uniqReadXLSGlobalState();用如下命令行编译通过注意xlslib是用的是修改后的支持中文的版本 export LIBRARY_PATH/par:/usr/local/lib:/par/duck/build/src export LD_LIBRARY_PATH/par:/usr/local/lib:/par/duck/build/srcg csv_reader2.cpp minidocx-0.6.0/src/minidocx.cpp minidocx-0.6.0/3rdparty/pugixml-1.13/*.cpp minidocx-0.6.0/3rdparty/zip-0.2.1/*.c ducksql2.cpp -o ducksql2 -lduckdb -lxls -I /par/duck/src/include -I /par/xlslib/xlslib/src -I minidocx-0.6.0/src -I minidocx-0.6.0/3rdparty/pugixml-1.13 -I minidocx-0.6.0/3rdparty/zip-0.2.1 -I xlslib/src -stdc17 -lgmp -lpqxx -lpq -liconv -lxlsreader -O3这里将minidocx-0.6.0的代码直接链接到二进制文件中而没有使用动态链接库如果使用后者可以自行修改。 为了验证我们加入的自定义函数可以采取以下步骤。 用官方duckdb CLI新建一个数据库将系统函数列表存入一个表中 ./duckdb130 duck130.db DuckDB v1.3.0 (Ossivalis) 71c5c07cdd Enter .help for usage hints. D create table tduckdb_functions as select * from duckdb_functions(); D select * from tduckdb_functions limit 1; ┌───────────────┬──────────────┬─────────────┬───────────────┬──────────┬───────────────┬─────────────┬───┬──────────────────┬──────────────────┬──────────┬──────────────┬───────────┬───────────┬────────────┐ │ database_name │ database_oid │ schema_name │ function_name │ alias_of │ function_type │ description │ … │ macro_definition │ has_side_effects │ internal │ function_oid │ examples │ stability │ categories │ │ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │ │ varchar │ boolean │ boolean │ int64 │ varchar[] │ varchar │ varchar[] │ ├───────────────┼──────────────┼─────────────┼───────────────┼──────────┼───────────────┼─────────────┼───┼──────────────────┼──────────────────┼──────────┼──────────────┼───────────┼───────────┼────────────┤ │ system │ 0 │ main │ duckdb_views │ NULL │ table │ NULL │ … │ NULL │ NULL │ true │ 72 │ [] │ NULL │ [] │ ├───────────────┴──────────────┴─────────────┴───────────────┴──────────┴───────────────┴─────────────┴───┴──────────────────┴──────────────────┴──────────┴──────────────┴───────────┴───────────┴────────────┤ │ 1 rows 20 columns (14 shown) │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ D然后用程序打开同一个数据库将现在的函数列表与原有的备份比较找出新增的 ./ducksql2 duck130.db DuckDB GMP Shell (enter exit; to quit, read file.sql to execute script) Type timi on/off to enable/disable timingduckdb select function_name, function_type from duckdb_functions() where function_name not in(select function_name from tduckdb_functions); ┌───────────────┬───────────────┐ │ function_name │ function_type │ │ varchar │ varchar │ ├───────────────┼───────────────┤ │ read_csv_e │ table │ │ read_xls │ table │ │ read_pg │ table │ │ mpz_add │ scalar │ │ mpz_div │ scalar │ │ mpz_mul │ scalar │ │ mpz_root │ scalar │ │ mpz_sub │ scalar │ │ mpz_sum │ aggregate │ └───────────────┴───────────────┘可见新增的copy to函数不在其中但其实它们存在当加载官方excel插件时报了如下错误 duckdb install excel; duckdb load excel; Error: Invalid Input Error: Initialization function excel_init from file /root/.duckdb/extensions/v1.3.0/linux_amd64/excel.duckdb_extension threw an exception: Catalog write-write conflict on create with xlsx而把copy_files2.cpp中涉及xlsx格式的内容完全删除以后重新编译执行以上错误消失证明我们原有的copy_files2.cpp确实处理了xlsx格式虽然它实际上就是把xls文件改个后缀名但duckdb还是不允许。 加载excel插件后的新增函数列表如下现在我们的程序和它和平共处了。 duckdb load excel; duckdb select function_name, function_type from duckdb_functions() where function_name not in(select function_name from tduckdb_functions); ┌───────────────┬───────────────┐ │ function_name │ function_type │ │ varchar │ varchar │ ├───────────────┼───────────────┤ │ read_pg │ table │ │ read_xls │ table │ │ read_xlsx │ table │-- │ read_csv_e │ table │ │ mpz_div │ scalar │ │ mpz_add │ scalar │ │ mpz_mul │ scalar │ │ mpz_root │ scalar │ │ mpz_sub │ scalar │ │ text │ scalar │-- │ excel_text │ scalar │-- │ mpz_sum │ aggregate │ ├───────────────┴───────────────┤ │ 12 rows 2 columns │ └───────────────────────────────┘各个函数的用法在引用的文章中都有就不重复了。 另外将程序输出结果的部分做了如下修改使得explain语句能像官方CLI那样输出而不是输出explain_value表的结果。 std::string lower;lower.resize(query.size()); transform(query.begin(), query.end(), lower.begin(), ::tolower);if (lower.find(explain ) std::string::npos)std::cout result-ToBox(context, config) std::endl; //正常语句输出else //explain语句输出std::cout result-GetValue(1,0) std::endl;修改前 duckdb explain select 1 a; ┌───────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ explain_key │ explain_value │ │ varchar │ varchar │ ├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ physical_plan │ ┌───────────────────────────┐\n│ PROJECTION │\n│ ──────────────────── │\n│ a │\n│ │\n│ ~1 Rows │\n└… │ └───────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘修改后 duckdb explain select 1 a; ┌───────────────────────────┐ │ PROJECTION │ │ ──────────────────── │ │ a │ │ │ │ ~1 Rows │ └─────────────┬─────────────┘ ┌─────────────┴─────────────┐ │ DUMMY_SCAN │ └───────────────────────────┘其他语句现在的输出看起来不错比如copy to返回写入的行数就没有修改如有需要也可以自行修改。 duckdb copy (select mpz_mul(111111111111111111111111,222222222222222222222222)) to mpz_mul.docx; ┌───────┐ │ Count │ │ int64 │ ├───────┤ │ 1 │ └───────┘
http://www.w-s-a.com/news/7580/

相关文章:

  • 网站建设员工技能要求网站制作简单协议
  • 没有ipc备案的网站wordpress isux主题
  • 清远做网站电子商务网站建设需要的语言及特点6
  • 万州那家做网站c语言基础知识入门
  • 齐河网站建设公司价格网站建设包括什么
  • 论坛网站开发费用怎么把文件放到网站的根目录
  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司
  • 免费网站建设无广告网站开发 华景新城
  • 湖州网站制作报价西安网站开发有哪些公司
  • google 浏览器开源seo软件
  • 网站空间是什么意思自己怎样建设网站
  • 国外家装设计网站如何做软件开发
  • 凡科建站登录官网当当网网站建设策划书
  • 网站百度屏蔽关键词杭州排名优化公司
  • h5响应式网站模板下载wordpress鼠标指针
  • 摄影作品投稿网站目前最好的引流推广方法
  • 资源站源码永久dede网站搬家 空间转移的方法
  • 网站建设销售的技巧话语it培训机构
  • 自建本地网站服务器wordpress南充房产网最新楼盘最近房价
  • 郑州代做网站天津哪里能做网站
  • 网站如何做排名网站建设项目的工作分解
  • 洛阳网络建站公司网站开发主流语言
  • 广州各区正在进一步优化以下措施seo值是什么意思
  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好