17

Using revel, golang 1.1.2, gorp, postgres 9.3.2 on heroku

Following robfig's List booking example

func (c App) ViewPosts(page int) revel.Result {
    if page == 0 {
        page = 1
    }
    var posts []*models.Post
    size := 10
    posts = loadPosts(c.Txn.Select(models.Post{},
        `select * from posts offset ? limit ?`, (page-1)*size, size)) // error here
    return c.RenderJson(posts)
}

Not sure why I'm getting pq: syntax error at or near "limit". I'm assuming the combined query is wrong. Why does the query not end up being something like select * from posts offset 0 limit 10, which I've tested to run on postgres. Where am I messing up?

1 Answer 1

26

I'm not familiar with postgres, but I found this issue. I think you should use it like in the godoc

Example in godoc

age := 21
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)

(Replace "?" with "$n")

Your code

func (c App) ViewPosts(page int) revel.Result {
if page == 0 {
    page = 1
}
var posts []*models.Post
size := 10
posts = loadPosts(c.Txn.Select(models.Post{},
    `select * from posts offset $1 limit $2`, (page-1)*size, size))
return c.RenderJson(posts)
}
Sign up to request clarification or add additional context in comments.

1 Comment

If anyone else stumbles across this, I seen it with Gorm in Golang when using the .Limit(). This was because I had left a ; at the end of my query, so Gorm adding a limit after the fact was problematic.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.