SQLite 3.44.0 发布!
SQLite 开发团队于 2023 年 11 月 01 日发布了 SQLite 3.44.0 版本,带来了一些 SQL 和优化器增强,本文给大家做一个简要分分析。
新增 concat() 函数
新版本增加了两个连接字符串的函数:concat() 以及 concat_ws()。它们可以兼容 PostgreSQL、SQLServer 以及 MySQL,例如:
sqlite> select concat('sql', 'ite');
sqlite
sqlite> select concat_ws('-','S', 'Q', 'L');
S-Q-L
新增 string_agg() 函数
SQLite 提供了实现字符串聚合的 group_concat 函数,新版本为其增加了一个别名函数 string_agg(),目的是为了兼容 PostgreSQL 以及 SQL Server 语法。例如:
sqlite> create table test(pid int, val text);
sqlite> insert into test values(1, 'S'),(1,'Q'),(1,'L');
sqlite> select pid, string_agg(val,'-')...> from test...> group by pid;
1|S-Q-L
聚合函数 ORDER BY 子句
新版本支持在聚合函数中使用 ORDER BY 子句,指定数据在聚合函数中处理的顺序。这个参数对于某些聚合函数没有实际意义,例如 max();但是对于某些聚合函数,比如 string_agg() 以及 json_group_array(),该参数将会影响最终的结果。例如:
sqlite> select pid, string_agg(val,'-' order by val)...> from test...> group by pid;
1|L-Q-S
strftime() 新增参数
strftime() 函数增加了以下格式参数:
- %e,返回月份中的第几天:0-31;
- %F,ISO-8601 格式日期:YYYY-MM-DD;
- %I,12小时制对应的小时:01-12;
- %k,24 小时制对应的小时:0-24;
- %l,12小时制对应的小时:1-12;
- %p,代表上午和下午的“AM”和“PM”;
- %P,代表上午和下午的“am”和“pm”;
- %R,ISO-8601 格式时间:HH:MM;
- %T,ISO-8601 格式时间:HH:MM:SS;
- %u,一周中的第几天,1 代表星期一。
查询优化器
对于部分索引扫描,如果 WHERE 子句包含一个字段的常量值,那么可以用该常量替换该字段。这种优化增加了部分索引成为覆盖索引的可能性。
禁用了 3.42.0 版本增加的视图扫描优化,因为它导致了成倍的性能下降。
其他改进
新增了两个 C 语言 API:sqlite3_get_clientdata() 以及 sqlite3_set_clientdata()。
CREATE TABLE 语句相关的许多错误在创建表时立即抛出,而不是等到该表第一次被访问时抛出。
PRAGMA integrity_check 命令使用新的 xIntegrity 方法验证各种内置虚拟表的内容一致性。该功能支持 FTS3、FTS4、FTS5、RTREE 以及 GEOPOLY 插件。
配置选项 SQLITE_DBCONFIG_DEFENSIVE 将会阻止启用 PRAGMA writable_schema 选项。在之前的版本中,writable_schema 可以被启用,但是不会实际生效。
内置 FTS3、FTS4、FTS5、RTREE 以及 GEOPOLY 虚拟表被设置为 SQLITE_VTAB_INNOCUOUS,因此它们可以在高安全部署环境中被用于触发器。
弃用 PRAGMA case_sensitive_like 语句,因为当模式包含 LIKE 操作符时会导致数据库被 PRAGMA integrity_check 损坏的报告。
当使用 Microsoft C 编译器时,默认启用 SQLITE_USE_SEH(结构化异常处理)。该选项可以使用 -DSQLITE_USE_SEH=0 禁用。
SQLite 在运行时检查底层硬件是否支持精度大于“double”的“long double”类型,并且基于检查结果使用相应的浮点数程序。
如果系统支持,Windows 命令行接口(CLI)默认使用 UTF-8 编码进行输入输出。使用 --no-utf8 选项启动可以禁用 UTF8 支持。
相关文章:
SQLite 3.44.0 发布!
SQLite 开发团队于 2023 年 11 月 01 日发布了 SQLite 3.44.0 版本,带来了一些 SQL 和优化器增强,本文给大家做一个简要分分析。 新增 concat() 函数 新版本增加了两个连接字符串的函数:concat() 以及 concat_ws()。它们可以兼容 PostgreSQ…...
本地生活新赛道-视频号团购怎么做?
目前有在做实体行业的商家一定要看完,只要你进入了这个本地生活新的赛道,那你的生意自然会源源不断,那这个赛道又是什么呢? 这就是十月份刚刚上线的视频号团购项目,开通团购之后,就可以通过发短视频&#…...
输入一个url后,会发生什么事?
Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator,统一资源定位器)。它是www的统一资源定位标志,简单地说URL就是web地址,俗称“网址”。 所以当我们在浏览器上输入一个url后&…...
R语言和jsonlite库编写代码示例
R语言和jsonlite库来下载的程序。 r # 导入jsonlite库 library(jsonlite) # 设置代理主机和端口 proxy_host <- "" proxy_port <- # 使用httr库创建一个对象 proxy <- create_proxy(proxy_host, proxy_port) # 使用httr库的GET方法下载网页内容 url <…...
容联七陌携手岚时科技,解决医美机构回访3大痛点
近日,岚时科技研发中心联合容联七陌发布了全新的智能呼叫中心系统,5大功能模块解决了医美机构回访过程中的3大难题:客户资产保全困难、客户回访技术被卡脖子、回访人员(客服、咨询)效率管理困难。 “智能呼叫中心”通过…...
自动计算零售数据分析指标?BI软件表示可行
随着BI技术的飞速发展,借助系统来计算分析指标也不是什么难事,即便是面对组合多变的零售数据分析指标,奥威BI软件也依旧可以又快又精准地完成指标计算。 BI软件可以自动计算零售数据分析指标,如销售额、库存量、订单量等。在计算…...
Qt读取xml文件并把内容显示到QTableview上
本例子中把xml文件作为数据库表。 xml文件名作为函数参数,把不同的xml文件名传入函数,会显示不同的文件内容。 以下为代码: void MainWindow::ShowContent(QString FileName) {LoadXmlContent(FileName);ShowContentInView();}bool MainWi…...
xv6-x86在ubuntu14.04 i386下正常编译、调试,在ubuntu23.04下编译各种报错--google镜像
来源 原git仓库 xv6-x86(xv6-public) 文档 mit 6.828/2023/ 文档 MIT 6.828/2018/xv6/book-rev11.pdf 原readme 注: xv6-x86(xv6-public) 已经被放弃了, 原作者转向了xv6-riscvxv6-x86文档来源:mit-pdos/xv6-book.git, 它需要 heirloom-doctools 来编译成pdf&#x…...
关于unity中 编辑器相关逻辑的记录
prefab 在场景中 , 用这个方法可以获取它的磁盘路径: [MenuItem("Gq_Tools/↓获取prefab路径")] public static void SaveDecalParameters() { var objs Selection.objects; var obj objs[0] as GameObject; Object parentObject Prefab…...
linux安装配置MongoDB并设置开机启动
linux安装配置MongoDB并设置开机启动 文章目录 linux安装配置MongoDB并设置开机启动1. 下载 MongoDB 的linux安装包2. 上传 MongoDB 安装包到linux系统中3. 解压 MongoDB 安装包4. 创建 MongoDB 必要目录5. 移动 MongoDB 安装目录6. 设置 MongoDB 环境变量7. 添加 MongoDB 配置…...
1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0...‘ for column编码错误
1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0…’ for column ‘campus_name’ at row 1 > 查询时间: 0s 原因是数据库创建的时候使用的默认编码latin1,导致表和字段的编码格式都是这种编码,显然这种编码不支持中文。 自己修改了数据库…...
K8S篇之谈谈kubelet的上报机制
浅析一下Kubelet的上报机制 1 kubelet上报节点状态 在K8S集群中,由运行在每个节点的Kubelet定期上报心跳到ApiServer,由此来判断Node是否存在,若Node超过一定时间没有上报心跳,则该节点的状态就会被设置为NotReady,同…...
混沌系统在图像加密中的应用(小波混沌神经网络)
混沌系统在图像加密中的应用(小波混沌神经网络) 前言一、小波混沌神经网络模型二、拓展三、python代码 前言 小波混沌神经网络是一种神经网络模型,结合了小波变换和混沌理论,用于信号处理、分类和预测。该模型基于多层前向神经网…...
Node.js中的文件系统(file system)模块
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...
react组件间通信之context
一般用于【祖组件】与【后代组件】间通信 案例: A,B,C,D四个组件的关系分别为:爷爷,爸爸,儿子,孙子 从A向C传递参数:C组件为类式组件 从A向D传递参数:D组件为函数组件 import React, { Componen…...
京东数据分析:2023年10月京东洗衣机行业品牌销售排行榜
鲸参谋监测的京东平台10月份洗衣机市场销售数据已出炉! 10月份,洗衣机市场整体销售呈上升走势。鲸参谋数据显示,今年10月,京东平台洗衣机市场的销量为143万,环比增长约23%,同比增长约1%;销售额约…...
QQ恢复聊天记录,就用这3个方法!
无论是因为误操作、手机丢失、系统崩溃,还是因为更换了新手机,恢复重要的QQ聊天记录都是一件必做的事情。通过聊天记录,用户可以随时查看之前的信息,以便了解事情的经过。 那么,如何恢复丢失的QQ聊天记录呢࿱…...
高能数造电池3D打印智能制造小试线,开启全固态电池数字化新时代
在科技创新的浪潮中,电池制造领域又迎来了一次突破性的进展。近日,高能数造(西安)技术有限公司重磅推出了其最新电池数字制造装备——全固态电池3D打印智能制造小试线 ,这一创新性的技术开启了全固态电池的数字化智造新时代,为全固…...
stable diffusion为什么能用于文本到图像的生成
推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具: DreamTexture.js自动纹理化开发包 - NSDT 稳定扩散获得如此多关注的原因 如果你还没有看过它:稳定扩散是一个文本到图像的生成模型,你可以输入一个文本提示,比如…...
c语言刷题第10周(16~20)
规律: 若多个次数最多按ASCII码顺序输出。 用for循环i取(0~26) 则输出满足条件的字符串中位置最靠前的那个。 用while循环遍历(while(a[i]!\0)) 从键盘输入任意只含有大小写字母的串s&…...
形态计算与软体机器人的生物启发原理及应用
1. 形态计算与软体机器人的生物启发原理形态计算(Morphological Computation)的核心思想是将计算任务"卸载"到物理结构本身。这个概念最早由Pfeifer和Iida在2005年提出,他们观察到生物系统(如章鱼触手)通过形…...
VMware Tools安装后别急着庆祝!共享文件夹设置、分辨率调整与性能优化的完整配置清单
VMware Tools安装后必做的10项深度配置:从能用变好用的进阶指南 当你看到"Enjoy, –the VMware team"的提示时,VMware Tools的安装只是完成了第一步。真正提升虚拟机体验的关键,在于后续这一系列深度配置。本文将带你解锁共享文件夹…...
超个性化推荐系统架构设计与关键技术解析
1. 超个性化推荐系统的核心价值与挑战推荐系统早已不是新鲜事物,但真正能做到"超个性化"的却凤毛麟角。我在电商平台和内容社区做过多年推荐算法优化,发现大多数系统止步于"用户分群推荐"层面——把相似行为的用户归为一类ÿ…...
【TI毫米波雷达】IWR6843AOP生命体征检测:从硬件连接到算法调试的实战避坑指南
1. IWR6843AOP生命体征检测入门指南 第一次接触TI毫米波雷达进行生命体征检测时,很多开发者都会感到无从下手。IWR6843AOP作为TI的60GHz毫米波雷达传感器,凭借其高精度和低功耗特性,在医疗监护、智能家居等领域展现出独特优势。相比传统光学传…...
七旬阿婆半年打赏330万,儿子回家发现连15块电费都交不起
王建国(化名)怎么也没想到,自己援边多年攒下的积蓄,会以这种方式化为乌有。今年4月初,他回到上海家中,发现母亲江阿婆神情恍惚,家里冷清得不像话。问起近况,老人才支支吾吾地说&…...
NVIDIA Profile Inspector:超越控制面板的显卡调校哲学
NVIDIA Profile Inspector:超越控制面板的显卡调校哲学 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾对NVIDIA控制面板中那些有限的选项感到不满?是否想过为什么有些游…...
别再死记硬背Apriori了!用Python手把手带你跑通超市购物篮分析(附完整代码和数据集)
从超市购物篮到商业洞察:Python实战Apriori算法全流程解析 走进任何一家现代超市,货架上的商品摆放绝非随意为之。当你在购买啤酒时顺手拿了一袋薯片,或是选购婴儿奶粉时带上了尿不湿,这些看似偶然的消费行为背后,隐藏…...
Mac上VS Code配置PySide6开发环境:从Qt Designer拖拽到代码运行的全流程避坑指南
Mac上VS Code配置PySide6开发环境:从Qt Designer拖拽到代码运行的全流程避坑指南 在Mac环境下使用VS Code进行PySide6开发,可以享受到Qt Designer可视化设计工具带来的高效界面开发体验。不同于Windows系统的一键安装,MacOS特有的应用包结构和…...
如何将深度学习MRI表型与iCCA淋巴结转移的生物学机制(KRAS突变、MUC5AC、免疫抑制微环境、大导管亚型)关联,并解释其对治疗响应的意义
01 导语 各位同学,大家好。现在做影像组学,如果还只停留在“提取特征—建个模型—算个AUC”,那就有点像算命算得挺准,但为啥准,自己也说不明白。别人一问:你这特征到底代表啥?背后有啥道理&am…...
电脑小白自救指南:当你的Win10被2345、小鸟壁纸攻占后,除了重装还能做什么?
电脑小白自救指南:当Win10被2345全家桶攻占后的终极清理方案 看着电脑右下角不断弹出的游戏广告、浏览器首页被篡改成陌生网址、任务管理器里挤满陌生进程——这可能是每个Windows用户都经历过的噩梦。尤其当2345系列软件、小鸟壁纸这类"业界毒瘤"侵入系统…...
