what
82f57deec8
docs: 补充 README,说明整体架构与 v1-legacy 分支的关系
...
老代码库(git.fsdpf.net/go/db 现在的 master)用的是链式字符串拼接的 db.Builder,
这个仓库是另开的新项目,架构 fork 自 doug-martin/goqu(表达式树 + 方言渲染),
两边历史不相关。记录当前仓库的整体能力(SelectDataset 系列、exp 表达式树、
engine 连接管理、schema 建表迁移),并说明还在用老 API 的项目应该去 v1-legacy
分支。
2026-08-20 16:47:34 +08:00
what
1e9a16b693
refactor: 移除 ScanStruct 中 time.Time 直接存储的特殊处理,同步更新测试精度预期
2026-06-02 17:24:10 +08:00
what
2a3f0afa6e
fix: DuckDB REGEXP_MATCHES 函数名改为大写
2026-06-02 15:57:13 +08:00
what
e7fabd282f
fix: 修复 *time.Time 字段扫描失败及 time.Time 精度丢失问题
...
- createColumnScans: *time.Time 等指针到结构体类型改用 *interface{} 扫描目标,
避免 database/sql 因无法将 []byte 转换为 *time.Time 而报 scan error
- ScanStruct: time.Time 值直接存入 record,跳过 toJSONRawMessage 格式化,
保留纳秒精度和时区 Location
- SafeSetVarValue: 新增 T→*T 赋值路径(适用于 time.Time→*time.Time 等场景),
以及从 *json.RawMessage 解析 *time.Time 的路径(处理 []byte datetime 字符串)
- 新增 parseTimeFromRaw 支持 MySQL datetime、date-only、ISO8601、RFC3339 等格式
- 新增测试:覆盖 time.Time/[]byte 驱动值、date-only 格式、NULL 指针等场景
2026-06-02 15:57:10 +08:00
what
37581f3a65
feat: 新增 BooleanFunctionLookup 支持函数式操作符
...
- sqlgen: 新增 BooleanFunctionLookup,生成 FUNC(LHS, RHS) 格式,优先级高于 BooleanOperatorLookup
- dialect/duckdb: 使用 regexp_matches 替代 ~ 实现部分匹配,等价于 MySQL REGEXP
- sqlgen/expression_sql_generator_test: 补充 BooleanFunctionLookup 测试用例,修正 encode_error 前缀
- sqlgen/sql_dialect_options_test: 验证 BooleanFunctionLookup 默认为 nil
- dialect/duckdb_test: 新增 regexp_matches SQL 生成测试
2026-05-21 13:34:04 +08:00
what
1288c4919c
merge: 合并 feature/sqlite3-vtab 到 master
2026-05-20 17:52:37 +08:00
what
21b80bdea4
feat: 完善扫描器、exec 及 schema 相关功能
...
- exec/scanner: 用 *interface{} 替换 **json.RawMessage 扫描目标,兼容 DuckDB 返回 map[string]interface{} 的场景;新增 toJSONRawMessage 转换函数
- exec/scanner: ScanVal 支持结构体指针,通过 JSON 中间层转换(DuckDB STRUCT 列)
- exec/scanner: 将 *sql.RawBytes 和 *[]byte 的处理从 ScanValContext 移入 scanner.ScanVal
- exec/query_executor: 简化 ScanValContext,移除私有 scan 方法
- exec: 补充 scanner 级别 ScanVal 测试用例
- internal/util/reflect: 重写 SafeSetVarValue,修复非指针 src 及 nil 指针字段的 panic
- internal/util/column_map: 恢复非匿名带标签结构体字段的展开逻辑
- schema: 新增 vector 列类型支持
- engine: 补充 DuckDB 相关配置
- dialect/sqlite3/vtab: 完善虚拟表适配器
- 各方言测试改用 sqlmock 虚拟连接
2026-05-20 17:52:28 +08:00
what
ac81f1ff0b
feat: 新增 SQLite3 虚拟表框架及方言扩展
...
- 新增 dialect/sqlite3/vtab 包,提供干净的虚拟表接口(Module/Table/Cursor)
- 适配层自动将 BestIndex 约束与 Filter 值绑定(ConstraintInfo.Value),无需手动编解码 IdxStr
- 支持 OpLIMIT/OpOFFSET 约束下推
- 新增 SupportsDistinct 方言选项,控制 SELECT 级和表达式级 DISTINCT 生成
- sqlite3 方言注册 IF() 函数支持
2026-04-18 13:41:41 +08:00
what
2221ca0ddb
feat: 新增 DuckDB 方言支持及 SQLite3 自动注册 IF 函数
...
- 新增 dialect/duckdb 方言,支持 DuckDB SQL 语法
- 新增 schema/dialect/duckdb DDL 操作支持
- dialect/sqlite3: 注册 sqlite3_with_if 驱动,连接时自动注册 IF() 函数
- engine: MakeConnection 对 sqlite3 自动使用带 IF 支持的驱动
- engine: 新增 DBConfig DuckDB 配置项及相关 Option 函数
- 统一各方言测试引用路径
2026-04-16 10:14:46 +08:00
what
c4590cf592
[feat] 移除对 db 库的直接依赖
2025-11-28 09:58:43 +08:00
what and Claude
304d553b3c
docs: Add CLAUDE.md with codebase guidance
...
Create comprehensive documentation for future Claude Code instances working in this repository, including:
- Development commands for testing, building, and code quality
- Core architecture overview of the SQL query builder system
- Directory structure and component explanations
- Testing patterns and conventions
- Key dependencies and their purposes
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-27 15:47:28 +08:00
what
764eccfafd
[feat] 新增 表结构操作
2025-03-24 16:58:37 +08:00
what
f9ca4a49ce
[feat] 增加解决 converting NULL to string is unsupported 的类型
2025-03-22 23:31:12 +08:00
what
717ae359bc
处理 string 和 int, converting NULL to string is unsupported
2025-03-22 23:04:29 +08:00
what
f14642a736
fork github.com/doug-martin
2025-03-22 23:02:05 +08:00