Package path refactor.
This commit is contained in:
parent
829736279b
commit
83d4c5ad03
72 changed files with 162 additions and 188 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type alias struct {
|
type alias struct {
|
||||||
expression Expression
|
expression Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type BoolExpression interface {
|
type BoolExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type cast struct {
|
type cast struct {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// Modeling of columns
|
// Modeling of columns
|
||||||
|
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type column interface {
|
type column interface {
|
||||||
Name() string
|
Name() string
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
//------------------------------------------------------//
|
//------------------------------------------------------//
|
||||||
type ColumnBool interface {
|
type ColumnBool interface {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type DateExpression interface {
|
type DateExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
)
|
)
|
||||||
|
|
||||||
type DeleteStatement interface {
|
type DeleteStatement interface {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
3
doc.go
Normal file
3
doc.go
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
//
|
||||||
|
|
||||||
|
package jet
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type enumValue struct {
|
type enumValue struct {
|
||||||
expressionInterfaceImpl
|
expressionInterfaceImpl
|
||||||
|
|
@ -436,11 +436,6 @@ func valueToString(value reflect.Value) string {
|
||||||
return fmt.Sprintf("%#v", valueInterface)
|
return fmt.Sprintf("%#v", valueInterface)
|
||||||
}
|
}
|
||||||
|
|
||||||
var timeType = reflect.TypeOf(time.Now())
|
|
||||||
var floatType = reflect.TypeOf(1.0)
|
|
||||||
var stringType = reflect.TypeOf("str")
|
|
||||||
var intType = reflect.TypeOf(1)
|
|
||||||
|
|
||||||
func isGoBaseType(objType reflect.Type) bool {
|
func isGoBaseType(objType reflect.Type) bool {
|
||||||
typeStr := objType.String()
|
typeStr := objType.String()
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
@ -69,11 +69,11 @@ func (e *expressionInterfaceImpl) AS(alias string) projection {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) ASC() OrderByClause {
|
func (e *expressionInterfaceImpl) ASC() OrderByClause {
|
||||||
return &orderByClauseImpl{expression: e.parent, ascent: true}
|
return newOrderByClause(e.parent, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) DESC() OrderByClause {
|
func (e *expressionInterfaceImpl) DESC() OrderByClause {
|
||||||
return &orderByClauseImpl{expression: e.parent, ascent: false}
|
return newOrderByClause(e.parent, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *expressionInterfaceImpl) TO(dbType string) Expression {
|
func (e *expressionInterfaceImpl) TO(dbType string) Expression {
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
// Query building functions for expressions components
|
// Query building functions for expressions components
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -51,9 +50,3 @@ func (c *intervalExpression) serialize(statement statementType, out *queryData,
|
||||||
//
|
//
|
||||||
// return intervalExp
|
// return intervalExp
|
||||||
//}
|
//}
|
||||||
|
|
||||||
var likeEscaper = strings.NewReplacer("_", "\\_", "%", "\\%")
|
|
||||||
|
|
||||||
func EscapeForLike(s string) string {
|
|
||||||
return likeEscaper.Replace(s)
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// +build disabled
|
// +build disabled
|
||||||
|
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type FloatExpression interface {
|
type FloatExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -23,18 +23,18 @@ var sqlBuilderTableTemplate = `
|
||||||
package table
|
package table
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/go-jet/jet/sqlbuilder"
|
"github.com/go-jet/jet"
|
||||||
)
|
)
|
||||||
|
|
||||||
type {{.GoStructName}} struct {
|
type {{.GoStructName}} struct {
|
||||||
sqlbuilder.Table
|
jet.Table
|
||||||
|
|
||||||
//Columns
|
//Columns
|
||||||
{{- range .Columns}}
|
{{- range .Columns}}
|
||||||
{{camelize .Name}} sqlbuilder.Column{{.SqlBuilderColumnType}}
|
{{camelize .Name}} jet.Column{{.SqlBuilderColumnType}}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
|
|
||||||
AllColumns sqlbuilder.ColumnList
|
AllColumns jet.ColumnList
|
||||||
}
|
}
|
||||||
|
|
||||||
var {{camelize .Name}} = new{{.GoStructName}}()
|
var {{camelize .Name}} = new{{.GoStructName}}()
|
||||||
|
|
@ -42,19 +42,19 @@ var {{camelize .Name}} = new{{.GoStructName}}()
|
||||||
func new{{.GoStructName}}() *{{.GoStructName}} {
|
func new{{.GoStructName}}() *{{.GoStructName}} {
|
||||||
var (
|
var (
|
||||||
{{- range .Columns}}
|
{{- range .Columns}}
|
||||||
{{camelize .Name}}Column = sqlbuilder.{{.SqlBuilderColumnType}}Column("{{.Name}}")
|
{{camelize .Name}}Column = jet.{{.SqlBuilderColumnType}}Column("{{.Name}}")
|
||||||
{{- end}}
|
{{- end}}
|
||||||
)
|
)
|
||||||
|
|
||||||
return &{{.GoStructName}}{
|
return &{{.GoStructName}}{
|
||||||
Table: sqlbuilder.NewTable("{{.SchemaName}}", "{{.Name}}", {{template "column-list" .Columns}}),
|
Table: jet.NewTable("{{.SchemaName}}", "{{.Name}}", {{template "column-list" .Columns}}),
|
||||||
|
|
||||||
//Columns
|
//Columns
|
||||||
{{- range .Columns}}
|
{{- range .Columns}}
|
||||||
{{camelize .Name}}: {{camelize .Name}}Column,
|
{{camelize .Name}}: {{camelize .Name}}Column,
|
||||||
{{- end}}
|
{{- end}}
|
||||||
|
|
||||||
AllColumns: sqlbuilder.ColumnList{ {{template "column-list" .Columns}} },
|
AllColumns: jet.ColumnList{ {{template "column-list" .Columns}} },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,15 +122,15 @@ func (e {{camelize $.Name}}) String() string {
|
||||||
`
|
`
|
||||||
var enumTypeTemplate = `package enum
|
var enumTypeTemplate = `package enum
|
||||||
|
|
||||||
import "github.com/go-jet/jet/sqlbuilder"
|
import "github.com/go-jet/jet"
|
||||||
|
|
||||||
var {{camelize $.Name}} = &struct {
|
var {{camelize $.Name}} = &struct {
|
||||||
{{- range $index, $element := .Values}}
|
{{- range $index, $element := .Values}}
|
||||||
{{camelize $element}} sqlbuilder.StringExpression
|
{{camelize $element}} jet.StringExpression
|
||||||
{{- end}}
|
{{- end}}
|
||||||
} {
|
} {
|
||||||
{{- range $index, $element := .Values}}
|
{{- range $index, $element := .Values}}
|
||||||
{{camelize $element}}: sqlbuilder.NewEnumValue("{{$element}}"),
|
{{camelize $element}}: jet.NewEnumValue("{{$element}}"),
|
||||||
{{- end}}
|
{{- end}}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$" />
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type groupByClause interface {
|
type groupByClause interface {
|
||||||
serializeForGroupBy(statement statementType, out *queryData) error
|
serializeForGroupBy(statement statementType, out *queryData) error
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
)
|
)
|
||||||
|
|
||||||
type InsertStatement interface {
|
type InsertStatement interface {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type IntegerExpression interface {
|
type IntegerExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DEFAULT keywordClause = "DEFAULT"
|
DEFAULT keywordClause = "DEFAULT"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "fmt"
|
import "fmt"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type NumericExpression interface {
|
type NumericExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
|
|
@ -55,12 +55,12 @@ func EXISTS(subQuery SelectStatement) BoolExpression {
|
||||||
|
|
||||||
// --------------- CASE operator -------------------//
|
// --------------- CASE operator -------------------//
|
||||||
|
|
||||||
type caseOperatorExpression interface {
|
type CaseOperatorExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
||||||
WHEN(condition Expression) caseOperatorExpression
|
WHEN(condition Expression) CaseOperatorExpression
|
||||||
THEN(then Expression) caseOperatorExpression
|
THEN(then Expression) CaseOperatorExpression
|
||||||
ELSE(els Expression) caseOperatorExpression
|
ELSE(els Expression) CaseOperatorExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
type caseOperatorImpl struct {
|
type caseOperatorImpl struct {
|
||||||
|
|
@ -72,7 +72,7 @@ type caseOperatorImpl struct {
|
||||||
els Expression
|
els Expression
|
||||||
}
|
}
|
||||||
|
|
||||||
func CASE(expression ...Expression) caseOperatorExpression {
|
func CASE(expression ...Expression) CaseOperatorExpression {
|
||||||
caseExp := &caseOperatorImpl{}
|
caseExp := &caseOperatorImpl{}
|
||||||
|
|
||||||
if len(expression) > 0 {
|
if len(expression) > 0 {
|
||||||
|
|
@ -84,17 +84,17 @@ func CASE(expression ...Expression) caseOperatorExpression {
|
||||||
return caseExp
|
return caseExp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *caseOperatorImpl) WHEN(when Expression) caseOperatorExpression {
|
func (c *caseOperatorImpl) WHEN(when Expression) CaseOperatorExpression {
|
||||||
c.when = append(c.when, when)
|
c.when = append(c.when, when)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *caseOperatorImpl) THEN(then Expression) caseOperatorExpression {
|
func (c *caseOperatorImpl) THEN(then Expression) CaseOperatorExpression {
|
||||||
c.then = append(c.then, then)
|
c.then = append(c.then, then)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *caseOperatorImpl) ELSE(els Expression) caseOperatorExpression {
|
func (c *caseOperatorImpl) ELSE(els Expression) CaseOperatorExpression {
|
||||||
c.els = els
|
c.els = els
|
||||||
|
|
||||||
return c
|
return c
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
|
|
@ -29,10 +29,6 @@ func (o *orderByClauseImpl) serializeForOrderBy(statement statementType, out *qu
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ASC(expression Expression) OrderByClause {
|
func newOrderByClause(expression Expression, ascent bool) OrderByClause {
|
||||||
return &orderByClauseImpl{expression: expression, ascent: true}
|
return &orderByClauseImpl{expression: expression, ascent: ascent}
|
||||||
}
|
|
||||||
|
|
||||||
func DESC(expression Expression) OrderByClause {
|
|
||||||
return &orderByClauseImpl{expression: expression, ascent: false}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type projection interface {
|
type projection interface {
|
||||||
serializeForProjection(statement statementType, out *queryData) error
|
serializeForProjection(statement statementType, out *queryData) error
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type rowsType interface {
|
type rowsType interface {
|
||||||
clause
|
clause
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SetStatement interface {
|
type SetStatement interface {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
//
|
|
||||||
|
|
||||||
package sqlbuilder
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
@ -22,20 +22,20 @@ type Statement interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
func DebugSql(statement Statement) (string, error) {
|
func DebugSql(statement Statement) (string, error) {
|
||||||
sql, args, err := statement.Sql()
|
sqlQuery, args, err := statement.Sql()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
debugSql := sql
|
debugSqlQuery := sqlQuery
|
||||||
|
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
argPlaceholder := "$" + strconv.Itoa(i+1)
|
argPlaceholder := "$" + strconv.Itoa(i+1)
|
||||||
debugSql = strings.Replace(debugSql, argPlaceholder, ArgToString(arg), 1)
|
debugSqlQuery = strings.Replace(debugSqlQuery, argPlaceholder, ArgToString(arg), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
return debugSql, nil
|
return debugSqlQuery, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func Query(statement Statement, db execution.Db, destination interface{}) error {
|
func Query(statement Statement, db execution.Db, destination interface{}) error {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type StringExpression interface {
|
type StringExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// Modeling of tables. This is where query preparation starts
|
// Modeling of tables. This is where query preparation starts
|
||||||
|
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -67,7 +67,7 @@ func assertClauseSerializeErr(t *testing.T, clause clause, errString string) {
|
||||||
|
|
||||||
//fmt.Println(out.buff.String())
|
//fmt.Println(out.buff.String())
|
||||||
assert.Assert(t, err != nil)
|
assert.Assert(t, err != nil)
|
||||||
assert.Equal(t, err.Error(), errString)
|
assert.Error(t, err, errString)
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertProjectionSerialize(t *testing.T, projection projection, query string, args ...interface{}) {
|
func assertProjectionSerialize(t *testing.T, projection projection, query string, args ...interface{}) {
|
||||||
|
|
@ -93,5 +93,5 @@ func assertStatementErr(t *testing.T, stmt Statement, errorStr string) {
|
||||||
_, _, err := stmt.Sql()
|
_, _, err := stmt.Sql()
|
||||||
|
|
||||||
assert.Assert(t, err != nil)
|
assert.Assert(t, err != nil)
|
||||||
assert.Equal(t, err.Error(), errorStr)
|
assert.Error(t, err, errorStr)
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,7 @@ package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
@ -11,7 +11,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAllTypesSelect(t *testing.T) {
|
func TestAllTypesSelect(t *testing.T) {
|
||||||
|
|
||||||
dest := []model.AllTypes{}
|
dest := []model.AllTypes{}
|
||||||
|
|
||||||
err := AllTypes.SELECT(AllTypes.AllColumns).Query(db, &dest)
|
err := AllTypes.SELECT(AllTypes.AllColumns).Query(db, &dest)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/chinook/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/chinook/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/chinook/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/chinook/table"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -254,14 +254,14 @@ func assertJson(t *testing.T, jsonFilePath string, data interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func jsonPrint(v interface{}) {
|
func jsonPrint(v interface{}) {
|
||||||
json, _ := json.MarshalIndent(v, "", "\t")
|
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||||
fmt.Println(string(json))
|
fmt.Println(string(jsonText))
|
||||||
}
|
}
|
||||||
|
|
||||||
func jsonSave(path string, v interface{}) {
|
func jsonSave(path string, v interface{}) {
|
||||||
json, _ := json.MarshalIndent(v, "", "\t")
|
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||||
|
|
||||||
err := ioutil.WriteFile(path, json, 0644)
|
err := ioutil.WriteFile(path, jsonText, 0644)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
"github.com/go-jet/jet/generator"
|
"github.com/go-jet/jet/generator"
|
||||||
"github.com/go-jet/jet/tests/dbconfig"
|
"github.com/go-jet/jet/tests/dbconfig"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
|
@ -12,45 +13,35 @@ func main() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("Failed to connect to test db")
|
panic("Failed to connect to test db")
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer func() {
|
||||||
|
err := db.Close()
|
||||||
|
printOnError(err)
|
||||||
|
}()
|
||||||
|
|
||||||
testSampleSql, err := ioutil.ReadFile("./init/data/test_sample.sql")
|
schemaNames := []string{
|
||||||
|
"dvds",
|
||||||
|
"test_sample",
|
||||||
|
"chinook",
|
||||||
|
}
|
||||||
|
|
||||||
panicOnError(err)
|
for _, schemaName := range schemaNames {
|
||||||
|
testSampleSql, err := ioutil.ReadFile("./init/data/" + schemaName + ".sql")
|
||||||
|
|
||||||
_, err = db.Exec(string(testSampleSql))
|
panicOnError(err)
|
||||||
|
|
||||||
panicOnError(err)
|
_, err = db.Exec(string(testSampleSql))
|
||||||
|
|
||||||
dvdsSql, err := ioutil.ReadFile("./init/data/dvds.sql")
|
err = generator.Generate("./.test_files", generator.GeneratorData{
|
||||||
|
Host: dbconfig.Host,
|
||||||
|
Port: "5432",
|
||||||
|
User: dbconfig.User,
|
||||||
|
Password: dbconfig.Password,
|
||||||
|
DBName: dbconfig.DBName,
|
||||||
|
SchemaName: schemaName,
|
||||||
|
})
|
||||||
|
|
||||||
panicOnError(err)
|
panicOnError(err)
|
||||||
|
}
|
||||||
_, err = db.Exec(string(dvdsSql))
|
|
||||||
|
|
||||||
panicOnError(err)
|
|
||||||
|
|
||||||
err = generator.Generate("./.test_files", generator.GeneratorData{
|
|
||||||
Host: dbconfig.Host,
|
|
||||||
Port: "5432",
|
|
||||||
User: dbconfig.User,
|
|
||||||
Password: dbconfig.Password,
|
|
||||||
DBName: dbconfig.DBName,
|
|
||||||
SchemaName: "dvds",
|
|
||||||
})
|
|
||||||
|
|
||||||
panicOnError(err)
|
|
||||||
|
|
||||||
err = generator.Generate("./.test_files", generator.GeneratorData{
|
|
||||||
Host: dbconfig.Host,
|
|
||||||
Port: "5432",
|
|
||||||
User: dbconfig.User,
|
|
||||||
Password: dbconfig.Password,
|
|
||||||
DBName: dbconfig.DBName,
|
|
||||||
SchemaName: "test_sample",
|
|
||||||
})
|
|
||||||
|
|
||||||
panicOnError(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func panicOnError(err error) {
|
func panicOnError(err error) {
|
||||||
|
|
@ -58,3 +49,9 @@ func panicOnError(err error) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func printOnError(err error) {
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package tests
|
package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package tests
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package tests
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/table"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package tests
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/enum"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/enum"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/table"
|
||||||
|
|
@ -1129,7 +1129,9 @@ LOCK TABLE dvds.address IN`
|
||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
tx.Rollback()
|
err = tx.Rollback()
|
||||||
|
|
||||||
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, lockMode := range testData {
|
for _, lockMode := range testData {
|
||||||
|
|
@ -1143,7 +1145,9 @@ LOCK TABLE dvds.address IN`
|
||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
tx.Rollback()
|
err = tx.Rollback()
|
||||||
|
|
||||||
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1178,7 +1182,8 @@ FOR`
|
||||||
rowsAffected, _ := res.RowsAffected()
|
rowsAffected, _ := res.RowsAffected()
|
||||||
assert.Equal(t, rowsAffected, int64(3))
|
assert.Equal(t, rowsAffected, int64(3))
|
||||||
|
|
||||||
tx.Rollback()
|
err = tx.Rollback()
|
||||||
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for lockType, lockTypeStr := range getRowLockTestData() {
|
for lockType, lockTypeStr := range getRowLockTestData() {
|
||||||
|
|
@ -1193,7 +1198,8 @@ FOR`
|
||||||
rowsAffected, _ := res.RowsAffected()
|
rowsAffected, _ := res.RowsAffected()
|
||||||
assert.Equal(t, rowsAffected, int64(3))
|
assert.Equal(t, rowsAffected, int64(3))
|
||||||
|
|
||||||
tx.Rollback()
|
err = tx.Rollback()
|
||||||
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for lockType, lockTypeStr := range getRowLockTestData() {
|
for lockType, lockTypeStr := range getRowLockTestData() {
|
||||||
|
|
@ -1208,6 +1214,7 @@ FOR`
|
||||||
rowsAffected, _ := res.RowsAffected()
|
rowsAffected, _ := res.RowsAffected()
|
||||||
assert.Equal(t, rowsAffected, int64(3))
|
assert.Equal(t, rowsAffected, int64(3))
|
||||||
|
|
||||||
tx.Rollback()
|
err = tx.Rollback()
|
||||||
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
. "github.com/go-jet/jet/sqlbuilder"
|
. "github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/model"
|
||||||
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/test_sample/table"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package tests
|
package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/go-jet/jet/sqlbuilder"
|
"github.com/go-jet/jet"
|
||||||
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func assertStatementSql(t *testing.T, query sqlbuilder.Statement, expectedQuery string, expectedArgs ...interface{}) {
|
func assertStatementSql(t *testing.T, query jet.Statement, expectedQuery string, expectedArgs ...interface{}) {
|
||||||
_, args, err := query.Sql()
|
_, args, err := query.Sql()
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
//assert.Equal(t, queryStr, expectedQuery)
|
//assert.Equal(t, queryStr, expectedQuery)
|
||||||
|
|
@ -22,7 +22,7 @@ func assertStatementSql(t *testing.T, query sqlbuilder.Statement, expectedQuery
|
||||||
assert.Equal(t, debuqSql, expectedQuery)
|
assert.Equal(t, debuqSql, expectedQuery)
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertExec(t *testing.T, stmt sqlbuilder.Statement, rowsAffected int64) {
|
func assertExec(t *testing.T, stmt jet.Statement, rowsAffected int64) {
|
||||||
res, err := stmt.Exec(db)
|
res, err := stmt.Exec(db)
|
||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
@ -31,10 +31,10 @@ func assertExec(t *testing.T, stmt sqlbuilder.Statement, rowsAffected int64) {
|
||||||
assert.Equal(t, rows, rowsAffected)
|
assert.Equal(t, rows, rowsAffected)
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertExecErr(t *testing.T, stmt sqlbuilder.Statement, errorStr string) {
|
func assertExecErr(t *testing.T, stmt jet.Statement, errorStr string) {
|
||||||
_, err := stmt.Exec(db)
|
_, err := stmt.Exec(db)
|
||||||
|
|
||||||
assert.Equal(t, err.Error(), errorStr)
|
assert.Error(t, err, errorStr)
|
||||||
}
|
}
|
||||||
func boolPtr(b bool) *bool {
|
func boolPtr(b bool) *bool {
|
||||||
return &b
|
return &b
|
||||||
|
|
@ -68,29 +68,29 @@ func float64Ptr(f float64) *float64 {
|
||||||
}
|
}
|
||||||
|
|
||||||
func uuidPtr(u string) *uuid.UUID {
|
func uuidPtr(u string) *uuid.UUID {
|
||||||
uuid := uuid.MustParse(u)
|
newUUID := uuid.MustParse(u)
|
||||||
|
|
||||||
return &uuid
|
return &newUUID
|
||||||
}
|
}
|
||||||
|
|
||||||
func timeWithoutTimeZone(t string) *time.Time {
|
func timeWithoutTimeZone(t string) *time.Time {
|
||||||
time, err := time.Parse("15:04:05", t)
|
newTime, err := time.Parse("15:04:05", t)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &time
|
return &newTime
|
||||||
}
|
}
|
||||||
|
|
||||||
func timeWithTimeZone(t string) *time.Time {
|
func timeWithTimeZone(t string) *time.Time {
|
||||||
time, err := time.Parse("15:04:05 -0700", t)
|
newTimez, err := time.Parse("15:04:05 -0700", t)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &time
|
return &newTimez
|
||||||
}
|
}
|
||||||
|
|
||||||
func timestampWithoutTimeZone(t string, precision int) *time.Time {
|
func timestampWithoutTimeZone(t string, precision int) *time.Time {
|
||||||
|
|
@ -101,13 +101,13 @@ func timestampWithoutTimeZone(t string, precision int) *time.Time {
|
||||||
precisionStr = "." + strings.Repeat("9", precision)
|
precisionStr = "." + strings.Repeat("9", precision)
|
||||||
}
|
}
|
||||||
|
|
||||||
time, err := time.Parse("2006-01-02 15:04:05"+precisionStr+" +0000", t+" +0000")
|
newTime, err := time.Parse("2006-01-02 15:04:05"+precisionStr+" +0000", t+" +0000")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &time
|
return &newTime
|
||||||
}
|
}
|
||||||
|
|
||||||
func timestampWithTimeZone(t string, precision int) *time.Time {
|
func timestampWithTimeZone(t string, precision int) *time.Time {
|
||||||
|
|
@ -118,17 +118,13 @@ func timestampWithTimeZone(t string, precision int) *time.Time {
|
||||||
precisionStr = "." + strings.Repeat("9", precision)
|
precisionStr = "." + strings.Repeat("9", precision)
|
||||||
}
|
}
|
||||||
|
|
||||||
time, err := time.Parse("2006-01-02 15:04:05"+precisionStr+" -0700 MST", t)
|
newTime, err := time.Parse("2006-01-02 15:04:05"+precisionStr+" -0700 MST", t)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &time
|
return &newTime
|
||||||
}
|
|
||||||
|
|
||||||
func M3(a, b, c interface{}) []interface{} {
|
|
||||||
return []interface{}{a, b, c}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var customer0 = model.Customer{
|
var customer0 = model.Customer{
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type TimeExpression interface {
|
type TimeExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type TimestampExpression interface {
|
type TimestampExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type TimestampzExpression interface {
|
type TimestampzExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
type TimezExpression interface {
|
type TimezExpression interface {
|
||||||
Expression
|
Expression
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/go-jet/jet/sqlbuilder/execution"
|
"github.com/go-jet/jet/execution"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UpdateStatement interface {
|
type UpdateStatement interface {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package sqlbuilder
|
package jet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue