Types rename.
This commit is contained in:
parent
db43f471ec
commit
18bbf1b5fb
32 changed files with 98 additions and 97 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
# Idea
|
# Idea
|
||||||
.idea
|
.idea
|
||||||
|
*.iml
|
||||||
|
|
||||||
# Test files
|
# Test files
|
||||||
gen
|
gen
|
||||||
|
|
|
||||||
12
README.md
12
README.md
|
|
@ -34,10 +34,10 @@ Use the bellow command to install jet
|
||||||
$ go get -u github.com/go-jet/jet
|
$ go get -u github.com/go-jet/jet
|
||||||
```
|
```
|
||||||
|
|
||||||
Install jetgen to GOPATH bin folder. This will allow generating jet files from the command line.
|
Install jet to GOPATH bin folder. This will allow generating jet files from the command line.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go install github.com/go-jet/jet/cmd/jetgen
|
go install github.com/go-jet/jet/cmd/jet
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure GOPATH bin folder is added to the PATH environment variable.
|
Make sure GOPATH bin folder is added to the PATH environment variable.
|
||||||
|
|
@ -47,10 +47,10 @@ For this quick start example we will use sample _dvd rental_ database. Full data
|
||||||
Schema diagram of interest for example can be found [here](./examples/quick-start/diagram.png).
|
Schema diagram of interest for example can be found [here](./examples/quick-start/diagram.png).
|
||||||
|
|
||||||
#### Generate sql builder and model files
|
#### Generate sql builder and model files
|
||||||
To generate Go sql builder and Go data model from postgres database we need to call jetgen, and provide it with postgres connection parameters and destination folder for generated go files.\
|
To generate Go sql builder and Go data model from postgres database we need to call jet, and provide it with postgres connection parameters and destination folder for generated go files.\
|
||||||
Assuming we are running local postgres database, with user `jet`, database `jetdb` and schema `dvds` we will use this command:
|
Assuming we are running local postgres database, with user `jet`, database `jetdb` and schema `dvds` we will use this command:
|
||||||
```sh
|
```sh
|
||||||
jetgen -host=localhost -port=5432 -user=jet -password=jet -dbname=jetdb -schema dvds -path ./gen
|
jet -host=localhost -port=5432 -user=jet -password=jet -dbname=jetdb -schema dvds -path ./gen
|
||||||
```
|
```
|
||||||
```sh
|
```sh
|
||||||
Connecting to postgres database: host=localhost port=5432 user=jet password=jet dbname=jetdb sslmode=disable
|
Connecting to postgres database: host=localhost port=5432 user=jet password=jet dbname=jetdb sslmode=disable
|
||||||
|
|
@ -63,7 +63,7 @@ Generating enum sql builder files...
|
||||||
Generating enum model files...
|
Generating enum model files...
|
||||||
Done
|
Done
|
||||||
```
|
```
|
||||||
As jetgen command output suggest, jetgen will:
|
As jet command output suggest, jet will:
|
||||||
- connect to postgres database and retrieve information about the tables and enums of `dvds` schema
|
- connect to postgres database and retrieve information about the tables and enums of `dvds` schema
|
||||||
- delete everything in destination folder `./gen`,
|
- delete everything in destination folder `./gen`,
|
||||||
- and finally generate sql builder and model Go files for each schema tables and enums into destination folder `./gen`.
|
- and finally generate sql builder and model Go files for each schema tables and enums into destination folder `./gen`.
|
||||||
|
|
@ -475,7 +475,7 @@ Without Jet these bugs will have to be either caught by some test or by manual t
|
||||||
## Dependencies
|
## Dependencies
|
||||||
At the moment Jet dependence only of:
|
At the moment Jet dependence only of:
|
||||||
- `github.com/google/uuid` _(Used for debug purposes)_
|
- `github.com/google/uuid` _(Used for debug purposes)_
|
||||||
- `github.com/lib/pq` _(Used by JetGen to read information about database schema)_
|
- `github.com/lib/pq` _(Used by Jet to read information about database schema)_
|
||||||
|
|
||||||
To run the tests, additional dependencies are required:
|
To run the tests, additional dependencies are required:
|
||||||
- `github.com/pkg/profile`
|
- `github.com/pkg/profile`
|
||||||
|
|
|
||||||
2
alias.go
2
alias.go
|
|
@ -20,7 +20,7 @@ func (a *alias) from(subQuery ExpressionTable) projection {
|
||||||
return &column
|
return &column
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *alias) serializeForProjection(statement statementType, out *queryData) error {
|
func (a *alias) serializeForProjection(statement statementType, out *sqlBuilder) error {
|
||||||
err := a.expression.serialize(statement, out)
|
err := a.expression.serialize(statement, out)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
2
cast.go
2
cast.go
|
|
@ -42,7 +42,7 @@ func CAST(expression Expression) cast {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *castImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (b *castImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
err := b.Expression.serialize(statement, out, options...)
|
err := b.Expression.serialize(statement, out, options...)
|
||||||
out.writeString("::" + b.castType)
|
out.writeString("::" + b.castType)
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
42
clause.go
42
clause.go
|
|
@ -16,7 +16,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type clause interface {
|
type clause interface {
|
||||||
serialize(statement statementType, out *queryData, options ...serializeOption) error
|
serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error
|
||||||
}
|
}
|
||||||
|
|
||||||
func contains(options []serializeOption, option serializeOption) bool {
|
func contains(options []serializeOption, option serializeOption) bool {
|
||||||
|
|
@ -29,7 +29,7 @@ func contains(options []serializeOption, option serializeOption) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
type queryData struct {
|
type sqlBuilder struct {
|
||||||
buff bytes.Buffer
|
buff bytes.Buffer
|
||||||
args []interface{}
|
args []interface{}
|
||||||
|
|
||||||
|
|
@ -50,11 +50,11 @@ const (
|
||||||
|
|
||||||
const defaultIdent = 5
|
const defaultIdent = 5
|
||||||
|
|
||||||
func (q *queryData) increaseIdent() {
|
func (q *sqlBuilder) increaseIdent() {
|
||||||
q.ident += defaultIdent
|
q.ident += defaultIdent
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) decreaseIdent() {
|
func (q *sqlBuilder) decreaseIdent() {
|
||||||
if q.ident < defaultIdent {
|
if q.ident < defaultIdent {
|
||||||
q.ident = 0
|
q.ident = 0
|
||||||
}
|
}
|
||||||
|
|
@ -62,14 +62,14 @@ func (q *queryData) decreaseIdent() {
|
||||||
q.ident -= defaultIdent
|
q.ident -= defaultIdent
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeProjections(statement statementType, projections []projection) error {
|
func (q *sqlBuilder) writeProjections(statement statementType, projections []projection) error {
|
||||||
q.increaseIdent()
|
q.increaseIdent()
|
||||||
err := serializeProjectionList(statement, projections, q)
|
err := serializeProjectionList(statement, projections, q)
|
||||||
q.decreaseIdent()
|
q.decreaseIdent()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeFrom(statement statementType, table ReadableTable) error {
|
func (q *sqlBuilder) writeFrom(statement statementType, table ReadableTable) error {
|
||||||
q.newLine()
|
q.newLine()
|
||||||
q.writeString("FROM")
|
q.writeString("FROM")
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ func (q *queryData) writeFrom(statement statementType, table ReadableTable) erro
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeWhere(statement statementType, where Expression) error {
|
func (q *sqlBuilder) writeWhere(statement statementType, where Expression) error {
|
||||||
q.newLine()
|
q.newLine()
|
||||||
q.writeString("WHERE")
|
q.writeString("WHERE")
|
||||||
|
|
||||||
|
|
@ -91,7 +91,7 @@ func (q *queryData) writeWhere(statement statementType, where Expression) error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeGroupBy(statement statementType, groupBy []groupByClause) error {
|
func (q *sqlBuilder) writeGroupBy(statement statementType, groupBy []groupByClause) error {
|
||||||
q.newLine()
|
q.newLine()
|
||||||
q.writeString("GROUP BY")
|
q.writeString("GROUP BY")
|
||||||
|
|
||||||
|
|
@ -102,7 +102,7 @@ func (q *queryData) writeGroupBy(statement statementType, groupBy []groupByClaus
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeOrderBy(statement statementType, orderBy []OrderByClause) error {
|
func (q *sqlBuilder) writeOrderBy(statement statementType, orderBy []OrderByClause) error {
|
||||||
q.newLine()
|
q.newLine()
|
||||||
q.writeString("ORDER BY")
|
q.writeString("ORDER BY")
|
||||||
|
|
||||||
|
|
@ -113,7 +113,7 @@ func (q *queryData) writeOrderBy(statement statementType, orderBy []OrderByClaus
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeHaving(statement statementType, having Expression) error {
|
func (q *sqlBuilder) writeHaving(statement statementType, having Expression) error {
|
||||||
q.newLine()
|
q.newLine()
|
||||||
q.writeString("HAVING")
|
q.writeString("HAVING")
|
||||||
|
|
||||||
|
|
@ -124,7 +124,7 @@ func (q *queryData) writeHaving(statement statementType, having Expression) erro
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeReturning(statement statementType, returning []projection) error {
|
func (q *sqlBuilder) writeReturning(statement statementType, returning []projection) error {
|
||||||
if len(returning) == 0 {
|
if len(returning) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -136,12 +136,12 @@ func (q *queryData) writeReturning(statement statementType, returning []projecti
|
||||||
return q.writeProjections(statement, returning)
|
return q.writeProjections(statement, returning)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) newLine() {
|
func (q *sqlBuilder) newLine() {
|
||||||
q.write([]byte{'\n'})
|
q.write([]byte{'\n'})
|
||||||
q.write(bytes.Repeat([]byte{' '}, q.ident))
|
q.write(bytes.Repeat([]byte{' '}, q.ident))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) write(data []byte) {
|
func (q *sqlBuilder) write(data []byte) {
|
||||||
if len(data) == 0 {
|
if len(data) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -162,15 +162,15 @@ func isPostSeparator(b byte) bool {
|
||||||
return b == ' ' || b == '.' || b == ',' || b == ')' || b == '\n' || b == ':'
|
return b == ' ' || b == '.' || b == ',' || b == ')' || b == '\n' || b == ':'
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeQuotedString(str string) {
|
func (q *sqlBuilder) writeQuotedString(str string) {
|
||||||
q.writeString(`"` + str + `"`)
|
q.writeString(`"` + str + `"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeString(str string) {
|
func (q *sqlBuilder) writeString(str string) {
|
||||||
q.write([]byte(str))
|
q.write([]byte(str))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeIdentifier(name string) {
|
func (q *sqlBuilder) writeIdentifier(name string) {
|
||||||
quoteWrap := name != strings.ToLower(name) || strings.ContainsAny(name, ". -")
|
quoteWrap := name != strings.ToLower(name) || strings.ContainsAny(name, ". -")
|
||||||
|
|
||||||
if quoteWrap {
|
if quoteWrap {
|
||||||
|
|
@ -180,26 +180,26 @@ func (q *queryData) writeIdentifier(name string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) writeByte(b byte) {
|
func (q *sqlBuilder) writeByte(b byte) {
|
||||||
q.write([]byte{b})
|
q.write([]byte{b})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) finalize() (string, []interface{}) {
|
func (q *sqlBuilder) finalize() (string, []interface{}) {
|
||||||
return q.buff.String() + ";\n", q.args
|
return q.buff.String() + ";\n", q.args
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) insertConstantArgument(arg interface{}) {
|
func (q *sqlBuilder) insertConstantArgument(arg interface{}) {
|
||||||
q.writeString(ArgToString(arg))
|
q.writeString(ArgToString(arg))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) insertPreparedArgument(arg interface{}) {
|
func (q *sqlBuilder) insertPreparedArgument(arg interface{}) {
|
||||||
q.args = append(q.args, arg)
|
q.args = append(q.args, arg)
|
||||||
argPlaceholder := "$" + strconv.Itoa(len(q.args))
|
argPlaceholder := "$" + strconv.Itoa(len(q.args))
|
||||||
|
|
||||||
q.writeString(argPlaceholder)
|
q.writeString(argPlaceholder)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryData) reset() {
|
func (q *sqlBuilder) reset() {
|
||||||
q.buff.Reset()
|
q.buff.Reset()
|
||||||
q.args = []interface{}{}
|
q.args = []interface{}{}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/go-jet/jet/generator/postgresgen"
|
"github.com/go-jet/jet/generator/postgres"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -39,12 +39,12 @@ func init() {
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
if host == "" || port == "" || user == "" || dbName == "" || schemaName == "" {
|
if host == "" || port == "" || user == "" || dbName == "" || schemaName == "" {
|
||||||
fmt.Println("jetgen: required flag missing")
|
fmt.Println("jet: required flag missing")
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
os.Exit(-2)
|
os.Exit(-2)
|
||||||
}
|
}
|
||||||
|
|
||||||
genData := postgresgen.DBConnection{
|
genData := postgres.DBConnection{
|
||||||
Host: host,
|
Host: host,
|
||||||
Port: port,
|
Port: port,
|
||||||
User: user,
|
User: user,
|
||||||
|
|
@ -56,7 +56,7 @@ func main() {
|
||||||
SchemaName: schemaName,
|
SchemaName: schemaName,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := postgresgen.Generate(destDir, genData)
|
err := postgres.Generate(destDir, genData)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err.Error())
|
fmt.Println(err.Error())
|
||||||
|
|
@ -61,7 +61,7 @@ func (c *columnImpl) defaultAlias() string {
|
||||||
return c.name
|
return c.name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *columnImpl) serializeForOrderBy(statement statementType, out *queryData) error {
|
func (c *columnImpl) serializeForOrderBy(statement statementType, out *sqlBuilder) error {
|
||||||
if statement == set_statement {
|
if statement == set_statement {
|
||||||
// set Statement (UNION, EXCEPT ...) can reference only select projections in order by clause
|
// set Statement (UNION, EXCEPT ...) can reference only select projections in order by clause
|
||||||
out.writeString(`"` + c.defaultAlias() + `"`) //always quote
|
out.writeString(`"` + c.defaultAlias() + `"`) //always quote
|
||||||
|
|
@ -72,7 +72,7 @@ func (c *columnImpl) serializeForOrderBy(statement statementType, out *queryData
|
||||||
return c.serialize(statement, out)
|
return c.serialize(statement, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c columnImpl) serializeForProjection(statement statementType, out *queryData) error {
|
func (c columnImpl) serializeForProjection(statement statementType, out *sqlBuilder) error {
|
||||||
err := c.serialize(statement, out)
|
err := c.serialize(statement, out)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -84,7 +84,7 @@ func (c columnImpl) serializeForProjection(statement statementType, out *queryDa
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c columnImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (c columnImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
|
|
||||||
if c.subQuery != nil {
|
if c.subQuery != nil {
|
||||||
out.writeIdentifier(c.subQuery.Alias())
|
out.writeIdentifier(c.subQuery.Alias())
|
||||||
|
|
@ -119,7 +119,7 @@ func (cl ColumnList) from(subQuery ExpressionTable) projection {
|
||||||
return newProjectionList
|
return newProjectionList
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl ColumnList) serializeForProjection(statement statementType, out *queryData) error {
|
func (cl ColumnList) serializeForProjection(statement statementType, out *sqlBuilder) error {
|
||||||
projections := columnListToProjectionList(cl)
|
projections := columnListToProjectionList(cl)
|
||||||
|
|
||||||
err := serializeProjectionList(statement, projections, out)
|
err := serializeProjectionList(statement, projections, out)
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ func (d *deleteStatementImpl) RETURNING(projections ...projection) DeleteStateme
|
||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *deleteStatementImpl) serializeImpl(out *queryData) error {
|
func (d *deleteStatementImpl) serializeImpl(out *sqlBuilder) error {
|
||||||
if d == nil {
|
if d == nil {
|
||||||
return errors.New("delete statement is nil")
|
return errors.New("delete statement is nil")
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,7 @@ func (d *deleteStatementImpl) serializeImpl(out *queryData) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *deleteStatementImpl) Sql() (query string, args []interface{}, err error) {
|
func (d *deleteStatementImpl) Sql() (query string, args []interface{}, err error) {
|
||||||
queryData := &queryData{}
|
queryData := &sqlBuilder{}
|
||||||
|
|
||||||
err = d.serializeImpl(queryData)
|
err = d.serializeImpl(queryData)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ func NewEnumValue(name string) StringExpression {
|
||||||
return enumValue
|
return enumValue
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e enumValue) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (e enumValue) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.insertConstantArgument(e.name)
|
out.insertConstantArgument(e.name)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,15 +66,15 @@ func (e *expressionInterfaceImpl) DESC() OrderByClause {
|
||||||
return newOrderByClause(e.parent, false)
|
return newOrderByClause(e.parent, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) serializeForGroupBy(statement statementType, out *queryData) error {
|
func (e *expressionInterfaceImpl) serializeForGroupBy(statement statementType, out *sqlBuilder) error {
|
||||||
return e.parent.serialize(statement, out, noWrap)
|
return e.parent.serialize(statement, out, noWrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) serializeForProjection(statement statementType, out *queryData) error {
|
func (e *expressionInterfaceImpl) serializeForProjection(statement statementType, out *sqlBuilder) error {
|
||||||
return e.parent.serialize(statement, out, noWrap)
|
return e.parent.serialize(statement, out, noWrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) serializeForOrderBy(statement statementType, out *queryData) error {
|
func (e *expressionInterfaceImpl) serializeForOrderBy(statement statementType, out *sqlBuilder) error {
|
||||||
return e.parent.serialize(statement, out, noWrap)
|
return e.parent.serialize(statement, out, noWrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,7 +94,7 @@ func newBinaryExpression(lhs, rhs Expression, operator string) binaryOpExpressio
|
||||||
return binaryExpression
|
return binaryExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *binaryOpExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (c *binaryOpExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return errors.New("binary Expression is nil")
|
return errors.New("binary Expression is nil")
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +143,7 @@ func newPrefixExpression(expression Expression, operator string) prefixOpExpress
|
||||||
return prefixExpression
|
return prefixExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *prefixOpExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (p *prefixOpExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return errors.New("Prefix Expression is nil.")
|
return errors.New("Prefix Expression is nil.")
|
||||||
}
|
}
|
||||||
|
|
@ -175,7 +175,7 @@ func newPostfixOpExpression(expression Expression, operator string) postfixOpExp
|
||||||
return postfixOpExpression
|
return postfixOpExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *postfixOpExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (p *postfixOpExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return errors.New("Postifx operator Expression is nil.")
|
return errors.New("Postifx operator Expression is nil.")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ type intervalExpression struct {
|
||||||
|
|
||||||
const intervalSep = ":"
|
const intervalSep = ":"
|
||||||
|
|
||||||
func (c *intervalExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (c *intervalExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString("INTERVAL '")
|
out.writeString("INTERVAL '")
|
||||||
|
|
||||||
duration := c.duration
|
duration := c.duration
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ func (e *expressionTableImpl) AllColumns() ProjectionList {
|
||||||
return e.projections
|
return e.projections
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionTableImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (e *expressionTableImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if e == nil {
|
if e == nil {
|
||||||
return errors.New("Expression table is nil. ")
|
return errors.New("Expression table is nil. ")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ func newFunc(name string, expressions []Expression, parent Expression) *funcExpr
|
||||||
return funcExp
|
return funcExp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *funcExpressionImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (f *funcExpressionImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if f == nil {
|
if f == nil {
|
||||||
return errors.New("Function expressions is nil. ")
|
return errors.New("Function expressions is nil. ")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ func TestFuncLEAST(t *testing.T) {
|
||||||
func TestInterval(t *testing.T) {
|
func TestInterval(t *testing.T) {
|
||||||
query := INTERVAL(`6 years 5 months 4 days 3 hours 2 minutes 1 second`)
|
query := INTERVAL(`6 years 5 months 4 days 3 hours 2 minutes 1 second`)
|
||||||
|
|
||||||
queryData := &queryData{}
|
queryData := &sqlBuilder{}
|
||||||
|
|
||||||
err := query.serialize(select_statement, queryData)
|
err := query.serialize(select_statement, queryData)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package postgresgen
|
package postgres
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package postgresgen
|
package postgres
|
||||||
|
|
||||||
var autoGenWarningTemplate = `
|
var autoGenWarningTemplate = `
|
||||||
//
|
//
|
||||||
// Code generated by jetgen DO NOT EDIT.
|
// Code generated by go-jet DO NOT EDIT.
|
||||||
// Generated at {{now}}
|
// Generated at {{now}}
|
||||||
//
|
//
|
||||||
// WARNING: Changes to this file may cause incorrect behavior and will be lost
|
// WARNING: Changes to this file may cause incorrect behavior and will be lost
|
||||||
// if the code is regenerated
|
// if the code is regenerated
|
||||||
//
|
//
|
||||||
// Licence under github.com/go-jet/jet/LICENSE
|
// Licence under: https://github.com/go-jet/jet/blob/master/LICENSE
|
||||||
//
|
//
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package jet
|
package jet
|
||||||
|
|
||||||
type groupByClause interface {
|
type groupByClause interface {
|
||||||
serializeForGroupBy(statement statementType, out *queryData) error
|
serializeForGroupBy(statement statementType, out *sqlBuilder) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: GROUPING SETS, CUBE, and ROLLUP
|
// TODO: GROUPING SETS, CUBE, and ROLLUP
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ func (i *insertStatementImpl) DebugSql() (query string, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *insertStatementImpl) Sql() (sql string, args []interface{}, err error) {
|
func (i *insertStatementImpl) Sql() (sql string, args []interface{}, err error) {
|
||||||
queryData := &queryData{}
|
queryData := &sqlBuilder{}
|
||||||
|
|
||||||
queryData.newLine()
|
queryData.newLine()
|
||||||
queryData.writeString("INSERT INTO")
|
queryData.writeString("INSERT INTO")
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ var (
|
||||||
|
|
||||||
type keywordClause string
|
type keywordClause string
|
||||||
|
|
||||||
func (k keywordClause) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (k keywordClause) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString(string(k))
|
out.writeString(string(k))
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ func constLiteral(value interface{}) *literalExpression {
|
||||||
return exp
|
return exp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l literalExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (l literalExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if l.constant {
|
if l.constant {
|
||||||
out.insertConstantArgument(l.value)
|
out.insertConstantArgument(l.value)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -189,7 +189,7 @@ func newNullLiteral() Expression {
|
||||||
return nullExpression
|
return nullExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *nullLiteral) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (n *nullLiteral) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString("NULL")
|
out.writeString("NULL")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -207,7 +207,7 @@ func newStarLiteral() Expression {
|
||||||
return starExpression
|
return starExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *starLiteral) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (n *starLiteral) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString("*")
|
out.writeString("*")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -219,7 +219,7 @@ type wrap struct {
|
||||||
expressions []Expression
|
expressions []Expression
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *wrap) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (n *wrap) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString("(")
|
out.writeString("(")
|
||||||
err := serializeExpressionList(statement, n.expressions, ", ", out)
|
err := serializeExpressionList(statement, n.expressions, ", ", out)
|
||||||
out.writeString(")")
|
out.writeString(")")
|
||||||
|
|
@ -240,7 +240,7 @@ type rawExpression struct {
|
||||||
raw string
|
raw string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *rawExpression) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (n *rawExpression) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString(n.raw)
|
out.writeString(n.raw)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ func (l *lockStatementImpl) Sql() (query string, args []interface{}, err error)
|
||||||
return "", nil, errors.New("There is no table selected to be locked. ")
|
return "", nil, errors.New("There is no table selected to be locked. ")
|
||||||
}
|
}
|
||||||
|
|
||||||
out := &queryData{}
|
out := &sqlBuilder{}
|
||||||
|
|
||||||
out.newLine()
|
out.newLine()
|
||||||
out.writeString("LOCK TABLE")
|
out.writeString("LOCK TABLE")
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ func (c *caseOperatorImpl) ELSE(els Expression) CaseOperatorExpression {
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *caseOperatorImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (c *caseOperatorImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return errors.New("Case Expression is nil. ")
|
return errors.New("Case Expression is nil. ")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package jet
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
type OrderByClause interface {
|
type OrderByClause interface {
|
||||||
serializeForOrderBy(statement statementType, out *queryData) error
|
serializeForOrderBy(statement statementType, out *sqlBuilder) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type orderByClauseImpl struct {
|
type orderByClauseImpl struct {
|
||||||
|
|
@ -11,7 +11,7 @@ type orderByClauseImpl struct {
|
||||||
ascent bool
|
ascent bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *orderByClauseImpl) serializeForOrderBy(statement statementType, out *queryData) error {
|
func (o *orderByClauseImpl) serializeForOrderBy(statement statementType, out *sqlBuilder) error {
|
||||||
if o.expression == nil {
|
if o.expression == nil {
|
||||||
return errors.New("nil orderBy by clause.")
|
return errors.New("nil orderBy by clause.")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package jet
|
package jet
|
||||||
|
|
||||||
type projection interface {
|
type projection interface {
|
||||||
serializeForProjection(statement statementType, out *queryData) error
|
serializeForProjection(statement statementType, out *sqlBuilder) error
|
||||||
from(subQuery ExpressionTable) projection
|
from(subQuery ExpressionTable) projection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ func (cl ProjectionList) from(subQuery ExpressionTable) projection {
|
||||||
return newProjectionList
|
return newProjectionList
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl ProjectionList) serializeForProjection(statement statementType, out *queryData) error {
|
func (cl ProjectionList) serializeForProjection(statement statementType, out *sqlBuilder) error {
|
||||||
err := serializeProjectionList(statement, cl, out)
|
err := serializeProjectionList(statement, cl, out)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ func (s *selectStatementImpl) projections() []projection {
|
||||||
return s.projectionList
|
return s.projectionList
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *selectStatementImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (s *selectStatementImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return errors.New("Select expression is nil. ")
|
return errors.New("Select expression is nil. ")
|
||||||
}
|
}
|
||||||
|
|
@ -173,7 +173,7 @@ func (s *selectStatementImpl) serialize(statement statementType, out *queryData,
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *selectStatementImpl) serializeImpl(out *queryData) error {
|
func (s *selectStatementImpl) serializeImpl(out *sqlBuilder) error {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return errors.New("Select expression is nil. ")
|
return errors.New("Select expression is nil. ")
|
||||||
}
|
}
|
||||||
|
|
@ -259,7 +259,7 @@ func (s *selectStatementImpl) serializeImpl(out *queryData) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *selectStatementImpl) Sql() (query string, args []interface{}, err error) {
|
func (s *selectStatementImpl) Sql() (query string, args []interface{}, err error) {
|
||||||
queryData := queryData{}
|
queryData := sqlBuilder{}
|
||||||
|
|
||||||
err = s.serializeImpl(&queryData)
|
err = s.serializeImpl(&queryData)
|
||||||
|
|
||||||
|
|
@ -326,7 +326,7 @@ func (s *selectLockImpl) SKIP_LOCKED() SelectLock {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *selectLockImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (s *selectLockImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
out.writeString(s.lockStrength)
|
out.writeString(s.lockStrength)
|
||||||
|
|
||||||
if s.noWait {
|
if s.noWait {
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ func (s *setStatementImpl) projections() []projection {
|
||||||
return []projection{}
|
return []projection{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *setStatementImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (s *setStatementImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return errors.New("Set expression is nil. ")
|
return errors.New("Set expression is nil. ")
|
||||||
}
|
}
|
||||||
|
|
@ -96,7 +96,7 @@ func (s *setStatementImpl) serialize(statement statementType, out *queryData, op
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *setStatementImpl) serializeImpl(out *queryData) error {
|
func (s *setStatementImpl) serializeImpl(out *sqlBuilder) error {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return errors.New("Set expression is nil. ")
|
return errors.New("Set expression is nil. ")
|
||||||
}
|
}
|
||||||
|
|
@ -158,7 +158,7 @@ func (s *setStatementImpl) serializeImpl(out *queryData) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *setStatementImpl) Sql() (query string, args []interface{}, err error) {
|
func (s *setStatementImpl) Sql() (query string, args []interface{}, err error) {
|
||||||
queryData := &queryData{}
|
queryData := &sqlBuilder{}
|
||||||
|
|
||||||
err = s.serializeImpl(queryData)
|
err = s.serializeImpl(queryData)
|
||||||
|
|
||||||
|
|
|
||||||
4
table.go
4
table.go
|
|
@ -168,7 +168,7 @@ func (t *tableImpl) columns() []column {
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tableImpl) serialize(statement statementType, out *queryData, options ...serializeOption) error {
|
func (t *tableImpl) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) error {
|
||||||
if t == nil {
|
if t == nil {
|
||||||
return errors.New("tableImpl is nil. ")
|
return errors.New("tableImpl is nil. ")
|
||||||
}
|
}
|
||||||
|
|
@ -235,7 +235,7 @@ func (t *joinTable) columns() []column {
|
||||||
return append(t.lhs.columns(), t.rhs.columns()...)
|
return append(t.lhs.columns(), t.rhs.columns()...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *joinTable) serialize(statement statementType, out *queryData, options ...serializeOption) (err error) {
|
func (t *joinTable) serialize(statement statementType, out *sqlBuilder, options ...serializeOption) (err error) {
|
||||||
if t == nil {
|
if t == nil {
|
||||||
return errors.New("Join table is nil. ")
|
return errors.New("Join table is nil. ")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ var table3 = NewTable(
|
||||||
table3StrCol)
|
table3StrCol)
|
||||||
|
|
||||||
func assertClauseSerialize(t *testing.T, clause clause, query string, args ...interface{}) {
|
func assertClauseSerialize(t *testing.T, clause clause, query string, args ...interface{}) {
|
||||||
out := queryData{}
|
out := sqlBuilder{}
|
||||||
err := clause.serialize(select_statement, &out)
|
err := clause.serialize(select_statement, &out)
|
||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
@ -62,7 +62,7 @@ func assertClauseSerialize(t *testing.T, clause clause, query string, args ...in
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertClauseSerializeErr(t *testing.T, clause clause, errString string) {
|
func assertClauseSerializeErr(t *testing.T, clause clause, errString string) {
|
||||||
out := queryData{}
|
out := sqlBuilder{}
|
||||||
err := clause.serialize(select_statement, &out)
|
err := clause.serialize(select_statement, &out)
|
||||||
|
|
||||||
//fmt.Println(out.buff.String())
|
//fmt.Println(out.buff.String())
|
||||||
|
|
@ -71,7 +71,7 @@ func assertClauseSerializeErr(t *testing.T, clause clause, errString string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertProjectionSerialize(t *testing.T, projection projection, query string, args ...interface{}) {
|
func assertProjectionSerialize(t *testing.T, projection projection, query string, args ...interface{}) {
|
||||||
out := queryData{}
|
out := sqlBuilder{}
|
||||||
err := projection.serializeForProjection(select_statement, &out)
|
err := projection.serializeForProjection(select_statement, &out)
|
||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/go-jet/jet/generator/postgresgen"
|
"github.com/go-jet/jet/generator/postgres"
|
||||||
"github.com/go-jet/jet/tests/dbconfig"
|
"github.com/go-jet/jet/tests/dbconfig"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
)
|
)
|
||||||
|
|
@ -33,7 +33,7 @@ func main() {
|
||||||
|
|
||||||
_, err = db.Exec(string(testSampleSql))
|
_, err = db.Exec(string(testSampleSql))
|
||||||
|
|
||||||
err = postgresgen.Generate("./.gentestdata", postgresgen.DBConnection{
|
err = postgres.Generate("./.gentestdata", postgres.DBConnection{
|
||||||
Host: dbconfig.Host,
|
Host: dbconfig.Host,
|
||||||
Port: "5432",
|
Port: "5432",
|
||||||
User: dbconfig.User,
|
User: dbconfig.User,
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ func (u *updateStatementImpl) RETURNING(projections ...projection) UpdateStateme
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *updateStatementImpl) Sql() (sql string, args []interface{}, err error) {
|
func (u *updateStatementImpl) Sql() (sql string, args []interface{}, err error) {
|
||||||
out := &queryData{}
|
out := &sqlBuilder{}
|
||||||
|
|
||||||
out.newLine()
|
out.newLine()
|
||||||
out.writeString("UPDATE")
|
out.writeString("UPDATE")
|
||||||
|
|
|
||||||
12
utils.go
12
utils.go
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func serializeOrderByClauseList(statement statementType, orderByClauses []OrderByClause, out *queryData) error {
|
func serializeOrderByClauseList(statement statementType, orderByClauses []OrderByClause, out *sqlBuilder) error {
|
||||||
|
|
||||||
for i, value := range orderByClauses {
|
for i, value := range orderByClauses {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
|
|
@ -24,7 +24,7 @@ func serializeOrderByClauseList(statement statementType, orderByClauses []OrderB
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func serializeGroupByClauseList(statement statementType, clauses []groupByClause, out *queryData) (err error) {
|
func serializeGroupByClauseList(statement statementType, clauses []groupByClause, out *sqlBuilder) (err error) {
|
||||||
|
|
||||||
for i, c := range clauses {
|
for i, c := range clauses {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
|
|
@ -43,7 +43,7 @@ func serializeGroupByClauseList(statement statementType, clauses []groupByClause
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func serializeClauseList(statement statementType, clauses []clause, out *queryData) (err error) {
|
func serializeClauseList(statement statementType, clauses []clause, out *sqlBuilder) (err error) {
|
||||||
|
|
||||||
for i, c := range clauses {
|
for i, c := range clauses {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
|
|
@ -62,7 +62,7 @@ func serializeClauseList(statement statementType, clauses []clause, out *queryDa
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func serializeExpressionList(statement statementType, expressions []Expression, separator string, out *queryData) error {
|
func serializeExpressionList(statement statementType, expressions []Expression, separator string, out *sqlBuilder) error {
|
||||||
|
|
||||||
for i, value := range expressions {
|
for i, value := range expressions {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
|
|
@ -79,7 +79,7 @@ func serializeExpressionList(statement statementType, expressions []Expression,
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func serializeProjectionList(statement statementType, projections []projection, out *queryData) error {
|
func serializeProjectionList(statement statementType, projections []projection, out *sqlBuilder) error {
|
||||||
for i, col := range projections {
|
for i, col := range projections {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
out.writeString(",")
|
out.writeString(",")
|
||||||
|
|
@ -98,7 +98,7 @@ func serializeProjectionList(statement statementType, projections []projection,
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func serializeColumnNames(columns []column, out *queryData) error {
|
func serializeColumnNames(columns []column, out *sqlBuilder) error {
|
||||||
for i, col := range columns {
|
for i, col := range columns {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
out.writeString(", ")
|
out.writeString(", ")
|
||||||
|
|
|
||||||
|
|
@ -6,18 +6,18 @@ This files can be generated in two ways:
|
||||||
|
|
||||||
#### 1) Generating from command line
|
#### 1) Generating from command line
|
||||||
|
|
||||||
Install jetgen to GOPATH bin folder. This will allow generating jet files from the command line.
|
Install jet to GOPATH bin folder. This will allow generating jet files from the command line.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go install github.com/go-jet/jet/cmd/jetgen
|
go install github.com/go-jet/jet/cmd/jet
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure GOPATH bin folder is added to the PATH environment variable.
|
Make sure GOPATH bin folder is added to the PATH environment variable.
|
||||||
|
|
||||||
Test jetgen can be found in the PATH.
|
Test jet can be found in the PATH.
|
||||||
```sh
|
```sh
|
||||||
jetgen -h
|
jet -h
|
||||||
Usage of jetgen:
|
Usage of jet:
|
||||||
-host string
|
-host string
|
||||||
Database host path (Example: localhost)
|
Database host path (Example: localhost)
|
||||||
-port string
|
-port string
|
||||||
|
|
@ -40,7 +40,7 @@ Usage of jetgen:
|
||||||
|
|
||||||
Now to generate sample database:
|
Now to generate sample database:
|
||||||
```sh
|
```sh
|
||||||
jetgen -host=localhost -port=5432 -user=jet -password=jet -dbname=jetdb -schema dvds -path ./gen
|
jet -host=localhost -port=5432 -user=jet -password=jet -dbname=jetdb -schema dvds -path ./gen
|
||||||
```
|
```
|
||||||
```sh
|
```sh
|
||||||
Connecting to postgres database: host=localhost port=5432 user=jet password=jet dbname=jetdb sslmode=disable
|
Connecting to postgres database: host=localhost port=5432 user=jet password=jet dbname=jetdb sslmode=disable
|
||||||
|
|
@ -56,11 +56,11 @@ Done
|
||||||
#### 2) Generating from code
|
#### 2) Generating from code
|
||||||
|
|
||||||
```
|
```
|
||||||
import "github.com/go-jet/jet/generator/postgresgen"
|
import "github.com/go-jet/jet/generator/postgres"
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
err = postgresgen.Generate("./gen", postgresgen.DBConnection{
|
err = postgres.Generate("./gen", postgres.DBConnection{
|
||||||
Host: "localhost",
|
Host: "localhost",
|
||||||
Port: "5432",
|
Port: "5432",
|
||||||
User: "jet",
|
User: "jet",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue