feat: 新增 SQLite3 虚拟表框架及方言扩展
- 新增 dialect/sqlite3/vtab 包,提供干净的虚拟表接口(Module/Table/Cursor) - 适配层自动将 BestIndex 约束与 Filter 值绑定(ConstraintInfo.Value),无需手动编解码 IdxStr - 支持 OpLIMIT/OpOFFSET 约束下推 - 新增 SupportsDistinct 方言选项,控制 SELECT 级和表达式级 DISTINCT 生成 - sqlite3 方言注册 IF() 函数支持
This commit is contained in:
@@ -31,6 +31,7 @@ type ColumnOptions struct {
|
||||
primary bool // Add a primary index
|
||||
index bool // Add an index
|
||||
spatialIndex bool // Add a spatial index
|
||||
hidden bool // SQLite 虚拟表 HIDDEN 列:不出现在 SELECT *,可在 WHERE 中作为参数传入
|
||||
}
|
||||
|
||||
// VirtualAs Create a virtual generated column (MySQL)
|
||||
@@ -166,3 +167,14 @@ func (c *ColumnDefinition) IsUseCurrent() bool {
|
||||
func (c *ColumnDefinition) GetRename() string {
|
||||
return c.rename
|
||||
}
|
||||
|
||||
// Hidden 将列标记为 SQLite 虚拟表 HIDDEN 列。
|
||||
// HIDDEN 列不出现在 SELECT * 结果中,但可以通过 WHERE col = ? 向虚拟表传递参数。
|
||||
func (c *ColumnDefinition) Hidden() *ColumnDefinition {
|
||||
c.hidden = true
|
||||
return c
|
||||
}
|
||||
|
||||
func (c *ColumnDefinition) IsHidden() bool {
|
||||
return c.hidden
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user