xormplus / xorm

xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作
BSD 3-Clause "New" or "Revised" License
1.55k stars 222 forks source link

使用 postgresql 时,不支持 index 属性定义 #40

Closed tao996 closed 5 years ago

tao996 commented 5 years ago

xormplus latest 版本,拉取的是 v0.0.0-20190724032102-0ee351fedce9 go version go1.12.6 darwin/amd64 psql (PostgreSQL) 11.1

对于 xorm:"index varchar(24) notnull default('')",无法创建索引,错误提示 pq: syntax error at or near ".";切换到 github.com/go-xorm/xorm v0.7.5 后正常

xormplus commented 5 years ago

具体调用代码可否贴上来我看下,xormplus当初对PostgreSQL的创建索引做过一次特殊处理

chenjitong commented 4 years ago

确实如此,在版本v0.0.0-20190926190243-42377f593eb1中也是如此,dialect_postgres.go在处理postgres中的tag【index】时报错“pq: syntax error at or near "."”。查询postgresql的官方文档http://www.postgres.cn/docs/9.3/sql-createindex.html,在create index name on table_name ( col...)语法中,name位置不能用“schema”."index_name"的模式,相反table_name可以使用"schema"."table_name"的模式。目前版本中的实现,刚好与实际情况相反,name使用了模式路径,tablename没有使用模式路径,所以报出“pq: syntax error at or near "."”