开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1256)
标签 (152)
master
cli_extension
branch-3.42
reuse-schema
bedrock
wal2
begin-concurrent
fts5-expr-limit
oo1-no-cache-Stmt.columnCount
subsec-modifier
comma-format
cli-hex-escape
json5
generate_series-revamp
rtree-batch-insert
branch-3.41
sessions-rowid-tables
rtree-bulk-insert-perf
shell-for-test
cli-no-dump
release
version-3.42.0
version-3.41.2
version-3.41.1
version-3.41.0
version-3.40.1
major-release
version-3.40.0
version-3.39.4
version-3.39.3
version-3.39.2
version-3.39.1
version-3.39.0
version-3.38.5
version-3.38.4
relese
version-3.38.3
version-3.38.2
version-3.38.1
version-3.38.0
master
分支 (1256)
标签 (152)
master
cli_extension
branch-3.42
reuse-schema
bedrock
wal2
begin-concurrent
fts5-expr-limit
oo1-no-cache-Stmt.columnCount
subsec-modifier
comma-format
cli-hex-escape
json5
generate_series-revamp
rtree-batch-insert
branch-3.41
sessions-rowid-tables
rtree-bulk-insert-perf
shell-for-test
cli-no-dump
release
version-3.42.0
version-3.41.2
version-3.41.1
version-3.41.0
version-3.40.1
major-release
version-3.40.0
version-3.39.4
version-3.39.3
version-3.39.2
version-3.39.1
version-3.39.0
version-3.38.5
version-3.38.4
relese
version-3.38.3
version-3.38.2
version-3.38.1
version-3.38.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1256)
标签 (152)
master
cli_extension
branch-3.42
reuse-schema
bedrock
wal2
begin-concurrent
fts5-expr-limit
oo1-no-cache-Stmt.columnCount
subsec-modifier
comma-format
cli-hex-escape
json5
generate_series-revamp
rtree-batch-insert
branch-3.41
sessions-rowid-tables
rtree-bulk-insert-perf
shell-for-test
cli-no-dump
release
version-3.42.0
version-3.41.2
version-3.41.1
version-3.41.0
version-3.40.1
major-release
version-3.40.0
version-3.39.4
version-3.39.3
version-3.39.2
version-3.39.1
version-3.39.0
version-3.38.5
version-3.38.4
relese
version-3.38.3
version-3.38.2
version-3.38.1
version-3.38.0
sqlite
/
ext
/
misc
/
uint.c
sqlite
/
ext
/
misc
/
uint.c
uint.c 2.49 KB
一键复制 编辑 原始数据 按行查看 历史
drh 提交于 2020年05月05日 03:52 +08:00 . Fix harmless compiler warnings.
/*
** 2020年04月14日
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
******************************************************************************
**
** This SQLite extension implements the UINT collating sequence.
**
** UINT works like BINARY for text, except that embedded strings
** of digits compare in numeric order.
**
** * Leading zeros are handled properly, in the sense that
** they do not mess of the maginitude comparison of embedded
** strings of digits. "x00123y" is equal to "x123y".
**
** * Only unsigned integers are recognized. Plus and minus
** signs are ignored. Decimal points and exponential notation
** are ignored.
**
** * Embedded integers can be of arbitrary length. Comparison
** is *not* limited integers that can be expressed as a
** 64-bit machine integer.
*/
#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
#include <assert.h>
#include <string.h>
#include <ctype.h>
/*
** Compare text in lexicographic order, except strings of digits
** compare in numeric order.
*/
static int uintCollFunc(
void *notUsed,
int nKey1, const void *pKey1,
int nKey2, const void *pKey2
){
const unsigned char *zA = (const unsigned char*)pKey1;
const unsigned char *zB = (const unsigned char*)pKey2;
int i=0, j=0, x;
(void)notUsed;
while( i<nKey1 && j<nKey2 ){
x = zA[i] - zB[j];
if( isdigit(zA[i]) ){
int k;
if( !isdigit(zB[j]) ) return x;
while( i<nKey1 && zA[i]=='0' ){ i++; }
while( j<nKey2 && zB[j]=='0' ){ j++; }
k = 0;
while( i+k<nKey1 && isdigit(zA[i+k])
&& j+k<nKey2 && isdigit(zB[j+k]) ){
k++;
}
if( i+k<nKey1 && isdigit(zA[i+k]) ){
return +1;
}else if( j+k<nKey2 && isdigit(zB[j+k]) ){
return -1;
}else{
x = memcmp(zA+i, zB+j, k);
if( x ) return x;
i += k;
j += k;
}
}else if( x ){
return x;
}else{
i++;
j++;
}
}
return (nKey1 - i) - (nKey2 - j);
}
#ifdef _WIN32
__declspec(dllexport)
#endif
int sqlite3_uint_init(
sqlite3 *db,
char **pzErrMsg,
const sqlite3_api_routines *pApi
){
SQLITE_EXTENSION_INIT2(pApi);
(void)pzErrMsg; /* Unused parameter */
return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

https://github.com/sqlite/sqlite
暂无标签
未知许可证
查看未知开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/gitlgx/sqlite.git
git@gitee.com:gitlgx/sqlite.git
gitlgx
sqlite
sqlite
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /