diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..2c15a06 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,27 @@ +# Golang CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-go/ for more details +version: 2 +jobs: + build: + docker: + # specify the version + - image: circleci/golang:1.9 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/postgres:9.4 + + #### TEMPLATE_NOTE: go expects specific checkout path representing url + #### expecting it in the form of + #### /go/src/github.com/circleci/go-tool + #### /go/src/bitbucket.org/circleci/go-tool + working_directory: /go/src/github.com/go-jet/jet + steps: + - checkout + + # specify any bash command here prefixed with `run: ` + #- run: go get -v -t -d ./... + #- run: go test -v ./... + - run: go test diff --git a/sqlbuilder/alias.go b/alias.go similarity index 97% rename from sqlbuilder/alias.go rename to alias.go index 2fdba92..13a1584 100644 --- a/sqlbuilder/alias.go +++ b/alias.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type alias struct { expression Expression diff --git a/sqlbuilder/bool_expresion.go b/bool_expresion.go similarity index 99% rename from sqlbuilder/bool_expresion.go rename to bool_expresion.go index 703cfd9..85625e8 100644 --- a/sqlbuilder/bool_expresion.go +++ b/bool_expresion.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type BoolExpression interface { Expression diff --git a/sqlbuilder/bool_expression_test.go b/bool_expression_test.go similarity index 99% rename from sqlbuilder/bool_expression_test.go rename to bool_expression_test.go index d6c0f9d..804e204 100644 --- a/sqlbuilder/bool_expression_test.go +++ b/bool_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/cast.go b/cast.go similarity index 99% rename from sqlbuilder/cast.go rename to cast.go index 829ceeb..146d264 100644 --- a/sqlbuilder/cast.go +++ b/cast.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type cast struct { Expression diff --git a/sqlbuilder/clause.go b/clause.go similarity index 99% rename from sqlbuilder/clause.go rename to clause.go index d7ac801..b54bcd9 100644 --- a/sqlbuilder/clause.go +++ b/clause.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "bytes" diff --git a/sqlbuilder/column.go b/column.go similarity index 99% rename from sqlbuilder/column.go rename to column.go index 7fd37a3..2a54361 100644 --- a/sqlbuilder/column.go +++ b/column.go @@ -1,6 +1,6 @@ // Modeling of columns -package sqlbuilder +package jet type column interface { Name() string diff --git a/sqlbuilder/column_test.go b/column_test.go similarity index 95% rename from sqlbuilder/column_test.go rename to column_test.go index be1c0a1..376c4f0 100644 --- a/sqlbuilder/column_test.go +++ b/column_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "testing" diff --git a/sqlbuilder/column_types.go b/column_types.go similarity index 99% rename from sqlbuilder/column_types.go rename to column_types.go index ab87180..63b614c 100644 --- a/sqlbuilder/column_types.go +++ b/column_types.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet //------------------------------------------------------// type ColumnBool interface { diff --git a/sqlbuilder/column_types_test.go b/column_types_test.go similarity index 99% rename from sqlbuilder/column_types_test.go rename to column_types_test.go index 0be91ba..df8c241 100644 --- a/sqlbuilder/column_types_test.go +++ b/column_types_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/date_expression.go b/date_expression.go similarity index 98% rename from sqlbuilder/date_expression.go rename to date_expression.go index 7f31a0a..9bf7dd2 100644 --- a/sqlbuilder/date_expression.go +++ b/date_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type DateExpression interface { Expression diff --git a/sqlbuilder/delete_statement.go b/delete_statement.go similarity index 96% rename from sqlbuilder/delete_statement.go rename to delete_statement.go index 868a579..e3ed399 100644 --- a/sqlbuilder/delete_statement.go +++ b/delete_statement.go @@ -1,10 +1,10 @@ -package sqlbuilder +package jet import ( "context" "database/sql" "errors" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" ) type DeleteStatement interface { diff --git a/sqlbuilder/delete_statement_test.go b/delete_statement_test.go similarity index 95% rename from sqlbuilder/delete_statement_test.go rename to delete_statement_test.go index 59e6e82..2c37927 100644 --- a/sqlbuilder/delete_statement_test.go +++ b/delete_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..64b11fd --- /dev/null +++ b/doc.go @@ -0,0 +1,3 @@ +// + +package jet diff --git a/sqlbuilder/enum_value.go b/enum_value.go similarity index 96% rename from sqlbuilder/enum_value.go rename to enum_value.go index b06d77b..f6485ba 100644 --- a/sqlbuilder/enum_value.go +++ b/enum_value.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type enumValue struct { expressionInterfaceImpl diff --git a/sqlbuilder/execution/db.go b/execution/db.go similarity index 100% rename from sqlbuilder/execution/db.go rename to execution/db.go diff --git a/sqlbuilder/execution/execution.go b/execution/execution.go similarity index 99% rename from sqlbuilder/execution/execution.go rename to execution/execution.go index 843d6a8..4f699c7 100644 --- a/sqlbuilder/execution/execution.go +++ b/execution/execution.go @@ -436,11 +436,6 @@ func valueToString(value reflect.Value) string { 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 { typeStr := objType.String() diff --git a/sqlbuilder/execution/null_types.go b/execution/null_types.go similarity index 100% rename from sqlbuilder/execution/null_types.go rename to execution/null_types.go diff --git a/sqlbuilder/expression.go b/expression.go similarity index 97% rename from sqlbuilder/expression.go rename to expression.go index bb1e137..98a23f9 100644 --- a/sqlbuilder/expression.go +++ b/expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "errors" @@ -69,11 +69,11 @@ func (e *expressionInterfaceImpl) AS(alias string) projection { } func (e *expressionInterfaceImpl) ASC() OrderByClause { - return &orderByClauseImpl{expression: e.parent, ascent: true} + return newOrderByClause(e.parent, true) } func (e *expressionInterfaceImpl) DESC() OrderByClause { - return &orderByClauseImpl{expression: e.parent, ascent: false} + return newOrderByClause(e.parent, false) } func (e *expressionInterfaceImpl) TO(dbType string) Expression { diff --git a/sqlbuilder/expression_old.go b/expression_old.go similarity index 88% rename from sqlbuilder/expression_old.go rename to expression_old.go index 82f06e3..3201538 100644 --- a/sqlbuilder/expression_old.go +++ b/expression_old.go @@ -1,9 +1,8 @@ // Query building functions for expressions components -package sqlbuilder +package jet import ( "strconv" - "strings" "time" ) @@ -51,9 +50,3 @@ func (c *intervalExpression) serialize(statement statementType, out *queryData, // // return intervalExp //} - -var likeEscaper = strings.NewReplacer("_", "\\_", "%", "\\%") - -func EscapeForLike(s string) string { - return likeEscaper.Replace(s) -} diff --git a/sqlbuilder/expression_old_test.go b/expression_old_test.go similarity index 98% rename from sqlbuilder/expression_old_test.go rename to expression_old_test.go index fc42841..bde087b 100644 --- a/sqlbuilder/expression_old_test.go +++ b/expression_old_test.go @@ -1,6 +1,6 @@ // +build disabled -package sqlbuilder +package jet import ( "bytes" diff --git a/sqlbuilder/expression_table.go b/expression_table.go similarity index 98% rename from sqlbuilder/expression_table.go rename to expression_table.go index b986ee7..c3a3114 100644 --- a/sqlbuilder/expression_table.go +++ b/expression_table.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "errors" diff --git a/sqlbuilder/expression_test.go b/expression_test.go similarity index 99% rename from sqlbuilder/expression_test.go rename to expression_test.go index c7e593e..45e60a7 100644 --- a/sqlbuilder/expression_test.go +++ b/expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/float_expression.go b/float_expression.go similarity index 99% rename from sqlbuilder/float_expression.go rename to float_expression.go index a3fcb04..5448a36 100644 --- a/sqlbuilder/float_expression.go +++ b/float_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type FloatExpression interface { Expression diff --git a/sqlbuilder/float_expression_test.go b/float_expression_test.go similarity index 99% rename from sqlbuilder/float_expression_test.go rename to float_expression_test.go index f748a05..1b83868 100644 --- a/sqlbuilder/float_expression_test.go +++ b/float_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/func_expression.go b/func_expression.go similarity index 99% rename from sqlbuilder/func_expression.go rename to func_expression.go index eca8f3f..6e618e3 100644 --- a/sqlbuilder/func_expression.go +++ b/func_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "errors" diff --git a/sqlbuilder/func_expression_test.go b/func_expression_test.go similarity index 99% rename from sqlbuilder/func_expression_test.go rename to func_expression_test.go index d575f7b..46e3bf5 100644 --- a/sqlbuilder/func_expression_test.go +++ b/func_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "gotest.tools/assert" diff --git a/generator/templates.go b/generator/templates.go index 38eaaa9..5a96d33 100644 --- a/generator/templates.go +++ b/generator/templates.go @@ -23,18 +23,18 @@ var sqlBuilderTableTemplate = ` package table import ( - "github.com/go-jet/jet/sqlbuilder" + "github.com/go-jet/jet" ) type {{.GoStructName}} struct { - sqlbuilder.Table + jet.Table //Columns {{- range .Columns}} - {{camelize .Name}} sqlbuilder.Column{{.SqlBuilderColumnType}} + {{camelize .Name}} jet.Column{{.SqlBuilderColumnType}} {{- end}} - AllColumns sqlbuilder.ColumnList + AllColumns jet.ColumnList } var {{camelize .Name}} = new{{.GoStructName}}() @@ -42,19 +42,19 @@ var {{camelize .Name}} = new{{.GoStructName}}() func new{{.GoStructName}}() *{{.GoStructName}} { var ( {{- range .Columns}} - {{camelize .Name}}Column = sqlbuilder.{{.SqlBuilderColumnType}}Column("{{.Name}}") + {{camelize .Name}}Column = jet.{{.SqlBuilderColumnType}}Column("{{.Name}}") {{- end}} ) return &{{.GoStructName}}{ - Table: sqlbuilder.NewTable("{{.SchemaName}}", "{{.Name}}", {{template "column-list" .Columns}}), + Table: jet.NewTable("{{.SchemaName}}", "{{.Name}}", {{template "column-list" .Columns}}), //Columns {{- range .Columns}} {{camelize .Name}}: {{camelize .Name}}Column, {{- 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 -import "github.com/go-jet/jet/sqlbuilder" +import "github.com/go-jet/jet" var {{camelize $.Name}} = &struct { {{- range $index, $element := .Values}} - {{camelize $element}} sqlbuilder.StringExpression + {{camelize $element}} jet.StringExpression {{- end}} } { {{- range $index, $element := .Values}} - {{camelize $element}}: sqlbuilder.NewEnumValue("{{$element}}"), + {{camelize $element}}: jet.NewEnumValue("{{$element}}"), {{- end}} } ` diff --git a/go-sqlbuilder.iml b/go-sqlbuilder.iml deleted file mode 100644 index 8021953..0000000 --- a/go-sqlbuilder.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/sqlbuilder/group_by_clause.go b/group_by_clause.go similarity index 88% rename from sqlbuilder/group_by_clause.go rename to group_by_clause.go index 5e68dda..ea4799f 100644 --- a/sqlbuilder/group_by_clause.go +++ b/group_by_clause.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type groupByClause interface { serializeForGroupBy(statement statementType, out *queryData) error diff --git a/sqlbuilder/insert_statement.go b/insert_statement.go similarity index 98% rename from sqlbuilder/insert_statement.go rename to insert_statement.go index 2991083..c84e478 100644 --- a/sqlbuilder/insert_statement.go +++ b/insert_statement.go @@ -1,10 +1,10 @@ -package sqlbuilder +package jet import ( "context" "database/sql" "errors" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" ) type InsertStatement interface { diff --git a/sqlbuilder/insert_statement_test.go b/insert_statement_test.go similarity index 99% rename from sqlbuilder/insert_statement_test.go rename to insert_statement_test.go index 94115c5..2e09d53 100644 --- a/sqlbuilder/insert_statement_test.go +++ b/insert_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "gotest.tools/assert" diff --git a/sqlbuilder/integer_expression.go b/integer_expression.go similarity index 99% rename from sqlbuilder/integer_expression.go rename to integer_expression.go index f1344ca..6de2a77 100644 --- a/sqlbuilder/integer_expression.go +++ b/integer_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type IntegerExpression interface { Expression diff --git a/sqlbuilder/integer_expression_test.go b/integer_expression_test.go similarity index 99% rename from sqlbuilder/integer_expression_test.go rename to integer_expression_test.go index 5b91a9b..4ff81d1 100644 --- a/sqlbuilder/integer_expression_test.go +++ b/integer_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/keyword.go b/keyword.go similarity index 93% rename from sqlbuilder/keyword.go rename to keyword.go index 70079b9..6667f95 100644 --- a/sqlbuilder/keyword.go +++ b/keyword.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet const ( DEFAULT keywordClause = "DEFAULT" diff --git a/sqlbuilder/literal_expression.go b/literal_expression.go similarity index 99% rename from sqlbuilder/literal_expression.go rename to literal_expression.go index ff1412d..b098d1d 100644 --- a/sqlbuilder/literal_expression.go +++ b/literal_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "fmt" diff --git a/sqlbuilder/literal_expression_test.go b/literal_expression_test.go similarity index 87% rename from sqlbuilder/literal_expression_test.go rename to literal_expression_test.go index 7c134bf..4752ce2 100644 --- a/sqlbuilder/literal_expression_test.go +++ b/literal_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "testing" diff --git a/sqlbuilder/lock_statement.go b/lock_statement.go similarity index 97% rename from sqlbuilder/lock_statement.go rename to lock_statement.go index cd6894d..5cbe689 100644 --- a/sqlbuilder/lock_statement.go +++ b/lock_statement.go @@ -1,9 +1,9 @@ -package sqlbuilder +package jet import ( "context" "database/sql" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" "github.com/pkg/errors" ) diff --git a/sqlbuilder/lock_statement_test.go b/lock_statement_test.go similarity index 97% rename from sqlbuilder/lock_statement_test.go rename to lock_statement_test.go index da878e1..8ae2376 100644 --- a/sqlbuilder/lock_statement_test.go +++ b/lock_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/numeric_expression.go b/numeric_expression.go similarity index 92% rename from sqlbuilder/numeric_expression.go rename to numeric_expression.go index 736f70b..004fd40 100644 --- a/sqlbuilder/numeric_expression.go +++ b/numeric_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type NumericExpression interface { Expression diff --git a/sqlbuilder/operators.go b/operators.go similarity index 86% rename from sqlbuilder/operators.go rename to operators.go index db23f1b..027cdf7 100644 --- a/sqlbuilder/operators.go +++ b/operators.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "errors" @@ -55,12 +55,12 @@ func EXISTS(subQuery SelectStatement) BoolExpression { // --------------- CASE operator -------------------// -type caseOperatorExpression interface { +type CaseOperatorExpression interface { Expression - WHEN(condition Expression) caseOperatorExpression - THEN(then Expression) caseOperatorExpression - ELSE(els Expression) caseOperatorExpression + WHEN(condition Expression) CaseOperatorExpression + THEN(then Expression) CaseOperatorExpression + ELSE(els Expression) CaseOperatorExpression } type caseOperatorImpl struct { @@ -72,7 +72,7 @@ type caseOperatorImpl struct { els Expression } -func CASE(expression ...Expression) caseOperatorExpression { +func CASE(expression ...Expression) CaseOperatorExpression { caseExp := &caseOperatorImpl{} if len(expression) > 0 { @@ -84,17 +84,17 @@ func CASE(expression ...Expression) caseOperatorExpression { return caseExp } -func (c *caseOperatorImpl) WHEN(when Expression) caseOperatorExpression { +func (c *caseOperatorImpl) WHEN(when Expression) CaseOperatorExpression { c.when = append(c.when, when) return c } -func (c *caseOperatorImpl) THEN(then Expression) caseOperatorExpression { +func (c *caseOperatorImpl) THEN(then Expression) CaseOperatorExpression { c.then = append(c.then, then) return c } -func (c *caseOperatorImpl) ELSE(els Expression) caseOperatorExpression { +func (c *caseOperatorImpl) ELSE(els Expression) CaseOperatorExpression { c.els = els return c diff --git a/sqlbuilder/operators_test.go b/operators_test.go similarity index 98% rename from sqlbuilder/operators_test.go rename to operators_test.go index f587ec7..6e6af04 100644 --- a/sqlbuilder/operators_test.go +++ b/operators_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "testing" diff --git a/sqlbuilder/order_by_clause.go b/order_by_clause.go similarity index 68% rename from sqlbuilder/order_by_clause.go rename to order_by_clause.go index 3eb48d4..1dfd4fe 100644 --- a/sqlbuilder/order_by_clause.go +++ b/order_by_clause.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "errors" @@ -29,10 +29,6 @@ func (o *orderByClauseImpl) serializeForOrderBy(statement statementType, out *qu return nil } -func ASC(expression Expression) OrderByClause { - return &orderByClauseImpl{expression: expression, ascent: true} -} - -func DESC(expression Expression) OrderByClause { - return &orderByClauseImpl{expression: expression, ascent: false} +func newOrderByClause(expression Expression, ascent bool) OrderByClause { + return &orderByClauseImpl{expression: expression, ascent: ascent} } diff --git a/sqlbuilder/projection.go b/projection.go similarity index 97% rename from sqlbuilder/projection.go rename to projection.go index 0a6c89f..dcb1cd9 100644 --- a/sqlbuilder/projection.go +++ b/projection.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type projection interface { serializeForProjection(statement statementType, out *queryData) error diff --git a/sqlbuilder/row_type.go b/row_type.go similarity index 77% rename from sqlbuilder/row_type.go rename to row_type.go index 9f9f7d9..2777373 100644 --- a/sqlbuilder/row_type.go +++ b/row_type.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type rowsType interface { clause diff --git a/sqlbuilder/select_statement.go b/select_statement.go similarity index 98% rename from sqlbuilder/select_statement.go rename to select_statement.go index c3d067e..24fadb2 100644 --- a/sqlbuilder/select_statement.go +++ b/select_statement.go @@ -1,10 +1,10 @@ -package sqlbuilder +package jet import ( "context" "database/sql" "errors" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" ) var ( diff --git a/sqlbuilder/select_statement_test.go b/select_statement_test.go similarity index 99% rename from sqlbuilder/select_statement_test.go rename to select_statement_test.go index 230e768..f726376 100644 --- a/sqlbuilder/select_statement_test.go +++ b/select_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import "testing" diff --git a/sqlbuilder/set_statement.go b/set_statement.go similarity index 98% rename from sqlbuilder/set_statement.go rename to set_statement.go index 44cd24b..bbe738a 100644 --- a/sqlbuilder/set_statement.go +++ b/set_statement.go @@ -1,10 +1,10 @@ -package sqlbuilder +package jet import ( "context" "database/sql" "errors" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" ) type SetStatement interface { diff --git a/sqlbuilder/set_statement_test.go b/set_statement_test.go similarity index 99% rename from sqlbuilder/set_statement_test.go rename to set_statement_test.go index a0db46d..87b57bb 100644 --- a/sqlbuilder/set_statement_test.go +++ b/set_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "gotest.tools/assert" diff --git a/sqlbuilder/doc.go b/sqlbuilder/doc.go deleted file mode 100644 index f8d568c..0000000 --- a/sqlbuilder/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// - -package sqlbuilder diff --git a/sqlbuilder/statement.go b/statement.go similarity index 87% rename from sqlbuilder/statement.go rename to statement.go index 9e806ac..d8d67e7 100644 --- a/sqlbuilder/statement.go +++ b/statement.go @@ -1,9 +1,9 @@ -package sqlbuilder +package jet import ( "context" "database/sql" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" "strconv" "strings" ) @@ -22,20 +22,20 @@ type Statement interface { } func DebugSql(statement Statement) (string, error) { - sql, args, err := statement.Sql() + sqlQuery, args, err := statement.Sql() if err != nil { return "", err } - debugSql := sql + debugSqlQuery := sqlQuery for i, arg := range args { 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 { diff --git a/sqlbuilder/string_expression.go b/string_expression.go similarity index 99% rename from sqlbuilder/string_expression.go rename to string_expression.go index 5793062..f13926d 100644 --- a/sqlbuilder/string_expression.go +++ b/string_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type StringExpression interface { Expression diff --git a/sqlbuilder/string_expression_test.go b/string_expression_test.go similarity index 99% rename from sqlbuilder/string_expression_test.go rename to string_expression_test.go index 543ef5f..8dd7b18 100644 --- a/sqlbuilder/string_expression_test.go +++ b/string_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/table.go b/table.go similarity index 99% rename from sqlbuilder/table.go rename to table.go index 1994143..8103207 100644 --- a/sqlbuilder/table.go +++ b/table.go @@ -1,6 +1,6 @@ // Modeling of tables. This is where query preparation starts -package sqlbuilder +package jet import ( "errors" diff --git a/sqlbuilder/table_test.go b/table_test.go similarity index 99% rename from sqlbuilder/table_test.go rename to table_test.go index a04e74a..d22f39d 100644 --- a/sqlbuilder/table_test.go +++ b/table_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/test_utils.go b/test_utils.go similarity index 95% rename from sqlbuilder/test_utils.go rename to test_utils.go index 1a7adad..30d5050 100644 --- a/sqlbuilder/test_utils.go +++ b/test_utils.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "gotest.tools/assert" @@ -67,7 +67,7 @@ func assertClauseSerializeErr(t *testing.T, clause clause, errString string) { //fmt.Println(out.buff.String()) 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{}) { @@ -93,5 +93,5 @@ func assertStatementErr(t *testing.T, stmt Statement, errorStr string) { _, _, err := stmt.Sql() assert.Assert(t, err != nil) - assert.Equal(t, err.Error(), errorStr) + assert.Error(t, err, errorStr) } diff --git a/tests/all_types_test.go b/tests/all_types_test.go index de96f75..5c29c9b 100644 --- a/tests/all_types_test.go +++ b/tests/all_types_test.go @@ -2,7 +2,7 @@ package tests import ( "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/table" "github.com/google/uuid" @@ -11,7 +11,6 @@ import ( ) func TestAllTypesSelect(t *testing.T) { - dest := []model.AllTypes{} err := AllTypes.SELECT(AllTypes.AllColumns).Query(db, &dest) diff --git a/tests/chinook_db_test.go b/tests/chinook_db_test.go index 1c46b39..a7a3220 100644 --- a/tests/chinook_db_test.go +++ b/tests/chinook_db_test.go @@ -5,7 +5,7 @@ import ( "encoding/json" "fmt" "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/table" "gotest.tools/assert" @@ -254,14 +254,14 @@ func assertJson(t *testing.T, jsonFilePath string, data interface{}) { } func jsonPrint(v interface{}) { - json, _ := json.MarshalIndent(v, "", "\t") - fmt.Println(string(json)) + jsonText, _ := json.MarshalIndent(v, "", "\t") + fmt.Println(string(jsonText)) } 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 { panic(err) diff --git a/tests/init/init.go b/tests/init/init.go index 11270e9..15f574f 100644 --- a/tests/init/init.go +++ b/tests/init/init.go @@ -2,6 +2,7 @@ package main import ( "database/sql" + "fmt" "github.com/go-jet/jet/generator" "github.com/go-jet/jet/tests/dbconfig" "io/ioutil" @@ -12,45 +13,35 @@ func main() { if err != nil { 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) - - _, 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) + panicOnError(err) + } } func panicOnError(err error) { @@ -58,3 +49,9 @@ func panicOnError(err error) { panic(err) } } + +func printOnError(err error) { + if err != nil { + fmt.Println(err.Error()) + } +} diff --git a/tests/insert_test.go b/tests/insert_test.go index 184a977..61d4f30 100644 --- a/tests/insert_test.go +++ b/tests/insert_test.go @@ -1,7 +1,7 @@ package tests 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/table" "gotest.tools/assert" diff --git a/tests/sample_test.go b/tests/sample_test.go index ecb9734..296832e 100644 --- a/tests/sample_test.go +++ b/tests/sample_test.go @@ -3,7 +3,7 @@ package tests import ( "fmt" "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/table" "gotest.tools/assert" diff --git a/tests/scan_test.go b/tests/scan_test.go index 59d7a28..b1919b1 100644 --- a/tests/scan_test.go +++ b/tests/scan_test.go @@ -3,7 +3,7 @@ package tests import ( "fmt" "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/table" "github.com/google/uuid" diff --git a/tests/select_test.go b/tests/select_test.go index a534bd8..f0c8c87 100644 --- a/tests/select_test.go +++ b/tests/select_test.go @@ -3,7 +3,7 @@ package tests import ( "fmt" "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/model" . "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) - tx.Rollback() + err = tx.Rollback() + + assert.NilError(t, err) } for _, lockMode := range testData { @@ -1143,7 +1145,9 @@ LOCK TABLE dvds.address IN` assert.NilError(t, err) - tx.Rollback() + err = tx.Rollback() + + assert.NilError(t, err) } } @@ -1178,7 +1182,8 @@ FOR` rowsAffected, _ := res.RowsAffected() assert.Equal(t, rowsAffected, int64(3)) - tx.Rollback() + err = tx.Rollback() + assert.NilError(t, err) } for lockType, lockTypeStr := range getRowLockTestData() { @@ -1193,7 +1198,8 @@ FOR` rowsAffected, _ := res.RowsAffected() assert.Equal(t, rowsAffected, int64(3)) - tx.Rollback() + err = tx.Rollback() + assert.NilError(t, err) } for lockType, lockTypeStr := range getRowLockTestData() { @@ -1208,6 +1214,7 @@ FOR` rowsAffected, _ := res.RowsAffected() assert.Equal(t, rowsAffected, int64(3)) - tx.Rollback() + err = tx.Rollback() + assert.NilError(t, err) } } diff --git a/tests/update_test.go b/tests/update_test.go index 866a118..26304b1 100644 --- a/tests/update_test.go +++ b/tests/update_test.go @@ -2,7 +2,7 @@ package tests import ( "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/table" "gotest.tools/assert" diff --git a/tests/test_util.go b/tests/util_test.go similarity index 77% rename from tests/test_util.go rename to tests/util_test.go index d89b5d9..53df69e 100644 --- a/tests/test_util.go +++ b/tests/util_test.go @@ -1,7 +1,7 @@ package tests 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/google/uuid" "gotest.tools/assert" @@ -10,7 +10,7 @@ import ( "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() assert.NilError(t, err) //assert.Equal(t, queryStr, expectedQuery) @@ -22,7 +22,7 @@ func assertStatementSql(t *testing.T, query sqlbuilder.Statement, 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) assert.NilError(t, err) @@ -31,10 +31,10 @@ func assertExec(t *testing.T, stmt sqlbuilder.Statement, rowsAffected int64) { 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) - assert.Equal(t, err.Error(), errorStr) + assert.Error(t, err, errorStr) } func boolPtr(b bool) *bool { return &b @@ -68,29 +68,29 @@ func float64Ptr(f float64) *float64 { } func uuidPtr(u string) *uuid.UUID { - uuid := uuid.MustParse(u) + newUUID := uuid.MustParse(u) - return &uuid + return &newUUID } 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 { panic(err) } - return &time + return &newTime } 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 { panic(err) } - return &time + return &newTimez } 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) } - 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 { panic(err) } - return &time + return &newTime } 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) } - 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 { panic(err) } - return &time -} - -func M3(a, b, c interface{}) []interface{} { - return []interface{}{a, b, c} + return &newTime } var customer0 = model.Customer{ diff --git a/sqlbuilder/time_expression.go b/time_expression.go similarity index 99% rename from sqlbuilder/time_expression.go rename to time_expression.go index 2e63066..990122a 100644 --- a/sqlbuilder/time_expression.go +++ b/time_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type TimeExpression interface { Expression diff --git a/sqlbuilder/time_expression_test.go b/time_expression_test.go similarity index 99% rename from sqlbuilder/time_expression_test.go rename to time_expression_test.go index 10372c5..1a328a5 100644 --- a/sqlbuilder/time_expression_test.go +++ b/time_expression_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/timestamp_expression.go b/timestamp_expression.go similarity index 99% rename from sqlbuilder/timestamp_expression.go rename to timestamp_expression.go index 3f64e7b..fceae89 100644 --- a/sqlbuilder/timestamp_expression.go +++ b/timestamp_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type TimestampExpression interface { Expression diff --git a/sqlbuilder/timestampz_expression.go b/timestampz_expression.go similarity index 99% rename from sqlbuilder/timestampz_expression.go rename to timestampz_expression.go index 36bbb33..dac9230 100644 --- a/sqlbuilder/timestampz_expression.go +++ b/timestampz_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type TimestampzExpression interface { Expression diff --git a/sqlbuilder/timez_expression.go b/timez_expression.go similarity index 99% rename from sqlbuilder/timez_expression.go rename to timez_expression.go index 56decc9..2721895 100644 --- a/sqlbuilder/timez_expression.go +++ b/timez_expression.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet type TimezExpression interface { Expression diff --git a/sqlbuilder/update_statement.go b/update_statement.go similarity index 97% rename from sqlbuilder/update_statement.go rename to update_statement.go index c491e79..c63d154 100644 --- a/sqlbuilder/update_statement.go +++ b/update_statement.go @@ -1,10 +1,10 @@ -package sqlbuilder +package jet import ( "context" "database/sql" "errors" - "github.com/go-jet/jet/sqlbuilder/execution" + "github.com/go-jet/jet/execution" ) type UpdateStatement interface { diff --git a/sqlbuilder/update_statement_test.go b/update_statement_test.go similarity index 98% rename from sqlbuilder/update_statement_test.go rename to update_statement_test.go index 4b50a49..ae5edf9 100644 --- a/sqlbuilder/update_statement_test.go +++ b/update_statement_test.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "testing" diff --git a/sqlbuilder/utils.go b/utils.go similarity index 99% rename from sqlbuilder/utils.go rename to utils.go index 8b6bec3..f9c6f68 100644 --- a/sqlbuilder/utils.go +++ b/utils.go @@ -1,4 +1,4 @@ -package sqlbuilder +package jet import ( "errors"