go-jet / jet

Type safe SQL builder with code generation and automatic query result data mapping
Apache License 2.0
2.52k stars 118 forks source link

Add postgres JSON cast type #160

Closed wexder closed 2 years ago

wexder commented 2 years ago

Is your feature request related to a problem? Please describe. We are using a lot of json fields in our postgres database. And it's hard to do the UPSERT with json column type. Currect solution I found is double casting the json string.

  insertStm := table.INSERT(table.AllColumns).MODEL(table).
  ON_CONFLICT(table.SomeColumn).DO_UPDATE(
  postgres.SET(
    table.JsonColumn.SET(postgres.StringExp(postgres.CAST(postgres.String(*data)).AS("json"))),
    ),

Describe the solution you'd like Add postgres.Json() func that would return StringExpression.

wexder commented 2 years ago

I've create PR for this https://github.com/go-jet/jet/pull/161

go-jet commented 2 years ago

Hi @wexder. Yeah, it makes sense to have a json literal.

go-jet commented 2 years ago

Support added with v2.9.0 release.