From f504838f1d55623f086f16bea9fa48d058468c1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Mon, 18 Jul 2016 22:11:32 -0500
Subject: [PATCH] Move sqlbuilder and reflectx to lib.

---
 Makefile                                           |  2 +-
 errors.go                                          |  6 +++---
 internal/sqladapter/collection.go                  |  2 +-
 internal/sqladapter/database.go                    |  8 ++++----
 internal/sqladapter/result.go                      |  6 +++---
 internal/sqladapter/testing/adapter.go.tpl         |  2 +-
 .../sqladapter/testing/adapter_benchmark.go.tpl    |  2 +-
 internal/sqladapter/tx.go                          |  2 +-
 {sqlbuilder => lib}/reflectx/LICENSE               |  0
 {sqlbuilder => lib}/reflectx/README.md             |  0
 {sqlbuilder => lib}/reflectx/reflect.go            |  0
 {sqlbuilder => lib}/reflectx/reflect_test.go       |  0
 {sqlbuilder => lib/sqlbuilder}/.travis.yml         |  6 +++---
 {sqlbuilder => lib/sqlbuilder}/builder.go          | 10 +++++-----
 {sqlbuilder => lib/sqlbuilder}/builder_test.go     |  0
 {sqlbuilder => lib/sqlbuilder}/cache/cache.go      |  2 +-
 {sqlbuilder => lib/sqlbuilder}/cache/cache_test.go |  0
 .../sqlbuilder}/cache/hashstructure/LICENSE        |  0
 .../sqlbuilder}/cache/hashstructure/README.md      |  0
 .../cache/hashstructure/hashstructure.go           |  0
 .../cache/hashstructure/hashstructure_test.go      |  0
 .../sqlbuilder}/cache/hashstructure/include.go     |  0
 {sqlbuilder => lib/sqlbuilder}/cache/interface.go  |  0
 {sqlbuilder => lib/sqlbuilder}/convert.go          |  2 +-
 {sqlbuilder => lib/sqlbuilder}/delete.go           |  2 +-
 {sqlbuilder => lib/sqlbuilder}/errors.go           |  0
 {sqlbuilder => lib/sqlbuilder}/exql/column.go      |  0
 {sqlbuilder => lib/sqlbuilder}/exql/column_test.go |  0
 .../sqlbuilder}/exql/column_value.go               |  0
 .../sqlbuilder}/exql/column_value_test.go          |  0
 {sqlbuilder => lib/sqlbuilder}/exql/columns.go     |  0
 .../sqlbuilder}/exql/columns_test.go               |  0
 {sqlbuilder => lib/sqlbuilder}/exql/database.go    |  0
 .../sqlbuilder}/exql/database_test.go              |  0
 {sqlbuilder => lib/sqlbuilder}/exql/default.go     |  2 +-
 {sqlbuilder => lib/sqlbuilder}/exql/group_by.go    |  0
 .../sqlbuilder}/exql/group_by_test.go              |  0
 {sqlbuilder => lib/sqlbuilder}/exql/hash.go        |  2 +-
 {sqlbuilder => lib/sqlbuilder}/exql/interfaces.go  |  2 +-
 {sqlbuilder => lib/sqlbuilder}/exql/join.go        |  0
 {sqlbuilder => lib/sqlbuilder}/exql/join_test.go   |  0
 {sqlbuilder => lib/sqlbuilder}/exql/order_by.go    |  0
 .../sqlbuilder}/exql/order_by_test.go              |  0
 {sqlbuilder => lib/sqlbuilder}/exql/raw.go         |  0
 {sqlbuilder => lib/sqlbuilder}/exql/raw_test.go    |  0
 {sqlbuilder => lib/sqlbuilder}/exql/returning.go   |  0
 {sqlbuilder => lib/sqlbuilder}/exql/statement.go   |  2 +-
 .../sqlbuilder}/exql/statement_test.go             |  0
 {sqlbuilder => lib/sqlbuilder}/exql/table.go       |  0
 {sqlbuilder => lib/sqlbuilder}/exql/table_test.go  |  0
 {sqlbuilder => lib/sqlbuilder}/exql/template.go    |  2 +-
 {sqlbuilder => lib/sqlbuilder}/exql/utilities.go   |  0
 .../sqlbuilder}/exql/utilities_test.go             |  0
 {sqlbuilder => lib/sqlbuilder}/exql/value.go       |  0
 {sqlbuilder => lib/sqlbuilder}/exql/value_test.go  |  0
 {sqlbuilder => lib/sqlbuilder}/exql/where.go       |  0
 {sqlbuilder => lib/sqlbuilder}/exql/where_test.go  |  0
 {sqlbuilder => lib/sqlbuilder}/fetch.go            |  2 +-
 {sqlbuilder => lib/sqlbuilder}/insert.go           |  2 +-
 {sqlbuilder => lib/sqlbuilder}/interfaces.go       |  6 +++---
 {sqlbuilder => lib/sqlbuilder}/scanner.go          |  0
 {sqlbuilder => lib/sqlbuilder}/select.go           |  2 +-
 {sqlbuilder => lib/sqlbuilder}/template_test.go    |  4 ++--
 {sqlbuilder => lib/sqlbuilder}/update.go           |  2 +-
 {sqlbuilder => lib/sqlbuilder}/wrapper.go          |  2 +-
 mysql/collection.go                                |  2 +-
 mysql/database.go                                  |  8 ++++----
 mysql/mysql.go                                     |  6 +++---
 mysql/template.go                                  |  4 ++--
 mysql/template_test.go                             |  2 +-
 postgresql/collection.go                           |  2 +-
 postgresql/database.go                             |  8 ++++----
 postgresql/postgresql.go                           |  6 +++---
 postgresql/template.go                             |  4 ++--
 postgresql/template_test.go                        |  2 +-
 postgresql/tx.go                                   |  2 +-
 ql/collection.go                                   |  2 +-
 ql/database.go                                     | 14 +++++++-------
 ql/ql.go                                           |  2 +-
 ql/template.go                                     |  4 ++--
 ql/template_test.go                                |  2 +-
 sqlite/collection.go                               |  2 +-
 sqlite/database.go                                 |  8 ++++----
 sqlite/sqlite.go                                   |  6 +++---
 sqlite/template.go                                 |  4 ++--
 sqlite/template_test.go                            |  2 +-
 86 files changed, 87 insertions(+), 87 deletions(-)
 rename {sqlbuilder => lib}/reflectx/LICENSE (100%)
 rename {sqlbuilder => lib}/reflectx/README.md (100%)
 rename {sqlbuilder => lib}/reflectx/reflect.go (100%)
 rename {sqlbuilder => lib}/reflectx/reflect_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/.travis.yml (57%)
 rename {sqlbuilder => lib/sqlbuilder}/builder.go (97%)
 rename {sqlbuilder => lib/sqlbuilder}/builder_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/cache.go (98%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/cache_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/hashstructure/LICENSE (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/hashstructure/README.md (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/hashstructure/hashstructure.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/hashstructure/hashstructure_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/hashstructure/include.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/cache/interface.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/convert.go (99%)
 rename {sqlbuilder => lib/sqlbuilder}/delete.go (95%)
 rename {sqlbuilder => lib/sqlbuilder}/errors.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/column.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/column_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/column_value.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/column_value_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/columns.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/columns_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/database.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/database_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/default.go (99%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/group_by.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/group_by_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/hash.go (89%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/interfaces.go (84%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/join.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/join_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/order_by.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/order_by_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/raw.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/raw_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/returning.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/statement.go (98%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/statement_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/table.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/table_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/template.go (97%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/utilities.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/utilities_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/value.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/value_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/where.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/exql/where_test.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/fetch.go (99%)
 rename {sqlbuilder => lib/sqlbuilder}/insert.go (98%)
 rename {sqlbuilder => lib/sqlbuilder}/interfaces.go (98%)
 rename {sqlbuilder => lib/sqlbuilder}/scanner.go (100%)
 rename {sqlbuilder => lib/sqlbuilder}/select.go (99%)
 rename {sqlbuilder => lib/sqlbuilder}/template_test.go (98%)
 rename {sqlbuilder => lib/sqlbuilder}/update.go (97%)
 rename {sqlbuilder => lib/sqlbuilder}/wrapper.go (99%)

diff --git a/Makefile b/Makefile
index e5e35f62..926c4a9d 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ DB_HOST ?= 127.0.0.1
 export DB_HOST
 
 test:
-	go test -v ./sqlbuilder/... && \
+	go test -v ./lib/... && \
 	go test -v ./internal/... && \
 	$(MAKE) test -C postgresql && \
 	$(MAKE) test -C mysql && \
diff --git a/errors.go b/errors.go
index c492ef81..afccfc4c 100644
--- a/errors.go
+++ b/errors.go
@@ -33,9 +33,9 @@ var (
 	ErrMissingCollectionName    = errors.New(`upper: missing collection name`)
 	ErrCollectionDoesNotExist   = errors.New(`upper: collection does not exist`)
 	ErrSockerOrHost             = errors.New(`upper: you may connect either to a unix socket or a tcp address, but not both`)
-	ErrQueryLimitParam          = errors.New(`upper: a query can accept only one dbLimit() parameter`)
-	ErrQuerySortParam           = errors.New(`upper: a query can accept only one dbSort{} parameter`)
-	ErrQueryOffsetParam         = errors.New(`upper: a query can accept only one dbOffset() parameter`)
+	ErrQueryLimitParam          = errors.New(`upper: a query can accept only one limit parameter`)
+	ErrQuerySortParam           = errors.New(`upper: a query can accept only one order by parameter`)
+	ErrQueryOffsetParam         = errors.New(`upper: a query can accept only one offset parameter`)
 	ErrMissingConditions        = errors.New(`upper: missing selector conditions`)
 	ErrUnsupported              = errors.New(`upper: this action is currently unsupported on this database`)
 	ErrUndefined                = errors.New(`upper: this value is undefined`)
diff --git a/internal/sqladapter/collection.go b/internal/sqladapter/collection.go
index 9b767f22..83984b39 100644
--- a/internal/sqladapter/collection.go
+++ b/internal/sqladapter/collection.go
@@ -5,7 +5,7 @@ import (
 	"reflect"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // Collection represents a SQL table.
diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index 71f86a8e..0aa1506b 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -8,9 +8,9 @@ import (
 
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/logger"
-	"upper.io/db.v2/sqlbuilder"
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // HasCleanUp
@@ -31,7 +31,7 @@ type Database interface {
 
 // PartialDatabase defines all the methods an adapter must provide.
 type PartialDatabase interface {
-	builder.SQLBuilder
+	builder.Builder
 
 	Collections() ([]string, error)
 	Open(db.ConnectionURL) error
diff --git a/internal/sqladapter/result.go b/internal/sqladapter/result.go
index e90a7b2a..3ad00023 100644
--- a/internal/sqladapter/result.go
+++ b/internal/sqladapter/result.go
@@ -25,12 +25,12 @@ import (
 	"sync"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // Result represents a delimited set of items bound by a condition.
 type Result struct {
-	b       builder.SQLBuilder
+	b       builder.Builder
 	table   string
 	iter    builder.Iterator
 	limit   int
@@ -51,7 +51,7 @@ func filter(conds []interface{}) []interface{} {
 
 // NewResult creates and Results a new Result set on the given table, this set
 // is limited by the given exql.Where conditions.
-func NewResult(b builder.SQLBuilder, table string, conds []interface{}) *Result {
+func NewResult(b builder.Builder, table string, conds []interface{}) *Result {
 	return &Result{
 		b:     b,
 		table: table,
diff --git a/internal/sqladapter/testing/adapter.go.tpl b/internal/sqladapter/testing/adapter.go.tpl
index b79fedbf..efc881c0 100644
--- a/internal/sqladapter/testing/adapter.go.tpl
+++ b/internal/sqladapter/testing/adapter.go.tpl
@@ -15,7 +15,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 type artistType struct {
diff --git a/internal/sqladapter/testing/adapter_benchmark.go.tpl b/internal/sqladapter/testing/adapter_benchmark.go.tpl
index 26fb3d4e..6e661a14 100644
--- a/internal/sqladapter/testing/adapter_benchmark.go.tpl
+++ b/internal/sqladapter/testing/adapter_benchmark.go.tpl
@@ -8,7 +8,7 @@ import (
 
 	"github.com/gocraft/dbr"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 const (
diff --git a/internal/sqladapter/tx.go b/internal/sqladapter/tx.go
index 18dd7cd2..d5d37b36 100644
--- a/internal/sqladapter/tx.go
+++ b/internal/sqladapter/tx.go
@@ -26,7 +26,7 @@ import (
 	"sync/atomic"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // Tx represents a database session within a transaction.
diff --git a/sqlbuilder/reflectx/LICENSE b/lib/reflectx/LICENSE
similarity index 100%
rename from sqlbuilder/reflectx/LICENSE
rename to lib/reflectx/LICENSE
diff --git a/sqlbuilder/reflectx/README.md b/lib/reflectx/README.md
similarity index 100%
rename from sqlbuilder/reflectx/README.md
rename to lib/reflectx/README.md
diff --git a/sqlbuilder/reflectx/reflect.go b/lib/reflectx/reflect.go
similarity index 100%
rename from sqlbuilder/reflectx/reflect.go
rename to lib/reflectx/reflect.go
diff --git a/sqlbuilder/reflectx/reflect_test.go b/lib/reflectx/reflect_test.go
similarity index 100%
rename from sqlbuilder/reflectx/reflect_test.go
rename to lib/reflectx/reflect_test.go
diff --git a/sqlbuilder/.travis.yml b/lib/sqlbuilder/.travis.yml
similarity index 57%
rename from sqlbuilder/.travis.yml
rename to lib/sqlbuilder/.travis.yml
index 5aa9a5af..c6f97b1c 100644
--- a/sqlbuilder/.travis.yml
+++ b/lib/sqlbuilder/.travis.yml
@@ -15,10 +15,10 @@ go:
 
 install:
   - mkdir -p $GOPATH/src/upper.io
-  - mv $PWD $GOPATH/src/upper.io/db.v2/sqlbuilder
-  - cd $GOPATH/src/upper.io/db.v2/sqlbuilder
+  - mv $PWD $GOPATH/src/upper.io/db.v2/lib/sqlbuilder
+  - cd $GOPATH/src/upper.io/db.v2/lib/sqlbuilder
   - go get -v -d -t ./...
 
 script:
-  - cd $GOPATH/src/upper.io/db.v2/sqlbuilder
+  - cd $GOPATH/src/upper.io/db.v2/lib/sqlbuilder
   - make test
diff --git a/sqlbuilder/builder.go b/lib/sqlbuilder/builder.go
similarity index 97%
rename from sqlbuilder/builder.go
rename to lib/sqlbuilder/builder.go
index 9820276b..b2fa6cae 100644
--- a/sqlbuilder/builder.go
+++ b/lib/sqlbuilder/builder.go
@@ -11,8 +11,8 @@ import (
 	"strings"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder/exql"
-	"upper.io/db.v2/sqlbuilder/reflectx"
+	"upper.io/db.v2/lib/reflectx"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 type hasStatement interface {
@@ -55,7 +55,7 @@ type sqlBuilder struct {
 }
 
 // WithSession returns a query builder that is bound to the given database session.
-func WithSession(sess interface{}, t *exql.Template) (SQLBuilder, error) {
+func WithSession(sess interface{}, t *exql.Template) (Builder, error) {
 	switch v := sess.(type) {
 	case *sql.DB:
 		sess = newSqlgenProxy(v, t)
@@ -72,7 +72,7 @@ func WithSession(sess interface{}, t *exql.Template) (SQLBuilder, error) {
 }
 
 // WithTemplate returns a builder that is based on the given template.
-func WithTemplate(t *exql.Template) SQLBuilder {
+func WithTemplate(t *exql.Template) Builder {
 	return &sqlBuilder{
 		t: newTemplateWithUtils(t),
 	}
@@ -436,6 +436,6 @@ func (p *exprProxy) StatementQueryRow(stmt *exql.Statement, args ...interface{})
 }
 
 var (
-	_ = SQLBuilder(&sqlBuilder{})
+	_ = Builder(&sqlBuilder{})
 	_ = exprDB(&exprProxy{})
 )
diff --git a/sqlbuilder/builder_test.go b/lib/sqlbuilder/builder_test.go
similarity index 100%
rename from sqlbuilder/builder_test.go
rename to lib/sqlbuilder/builder_test.go
diff --git a/sqlbuilder/cache/cache.go b/lib/sqlbuilder/cache/cache.go
similarity index 98%
rename from sqlbuilder/cache/cache.go
rename to lib/sqlbuilder/cache/cache.go
index 93eb38ab..0f85117c 100644
--- a/sqlbuilder/cache/cache.go
+++ b/lib/sqlbuilder/cache/cache.go
@@ -28,7 +28,7 @@ import (
 	"strconv"
 	"sync"
 
-	"upper.io/db.v2/sqlbuilder/cache/hashstructure"
+	"upper.io/db.v2/lib/sqlbuilder/cache/hashstructure"
 )
 
 const defaultCapacity = 128
diff --git a/sqlbuilder/cache/cache_test.go b/lib/sqlbuilder/cache/cache_test.go
similarity index 100%
rename from sqlbuilder/cache/cache_test.go
rename to lib/sqlbuilder/cache/cache_test.go
diff --git a/sqlbuilder/cache/hashstructure/LICENSE b/lib/sqlbuilder/cache/hashstructure/LICENSE
similarity index 100%
rename from sqlbuilder/cache/hashstructure/LICENSE
rename to lib/sqlbuilder/cache/hashstructure/LICENSE
diff --git a/sqlbuilder/cache/hashstructure/README.md b/lib/sqlbuilder/cache/hashstructure/README.md
similarity index 100%
rename from sqlbuilder/cache/hashstructure/README.md
rename to lib/sqlbuilder/cache/hashstructure/README.md
diff --git a/sqlbuilder/cache/hashstructure/hashstructure.go b/lib/sqlbuilder/cache/hashstructure/hashstructure.go
similarity index 100%
rename from sqlbuilder/cache/hashstructure/hashstructure.go
rename to lib/sqlbuilder/cache/hashstructure/hashstructure.go
diff --git a/sqlbuilder/cache/hashstructure/hashstructure_test.go b/lib/sqlbuilder/cache/hashstructure/hashstructure_test.go
similarity index 100%
rename from sqlbuilder/cache/hashstructure/hashstructure_test.go
rename to lib/sqlbuilder/cache/hashstructure/hashstructure_test.go
diff --git a/sqlbuilder/cache/hashstructure/include.go b/lib/sqlbuilder/cache/hashstructure/include.go
similarity index 100%
rename from sqlbuilder/cache/hashstructure/include.go
rename to lib/sqlbuilder/cache/hashstructure/include.go
diff --git a/sqlbuilder/cache/interface.go b/lib/sqlbuilder/cache/interface.go
similarity index 100%
rename from sqlbuilder/cache/interface.go
rename to lib/sqlbuilder/cache/interface.go
diff --git a/sqlbuilder/convert.go b/lib/sqlbuilder/convert.go
similarity index 99%
rename from sqlbuilder/convert.go
rename to lib/sqlbuilder/convert.go
index d9e22eee..0e1f3d94 100644
--- a/sqlbuilder/convert.go
+++ b/lib/sqlbuilder/convert.go
@@ -6,7 +6,7 @@ import (
 	"strings"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 var (
diff --git a/sqlbuilder/delete.go b/lib/sqlbuilder/delete.go
similarity index 95%
rename from sqlbuilder/delete.go
rename to lib/sqlbuilder/delete.go
index 113d95e2..c6044e8a 100644
--- a/sqlbuilder/delete.go
+++ b/lib/sqlbuilder/delete.go
@@ -3,7 +3,7 @@ package builder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 type deleter struct {
diff --git a/sqlbuilder/errors.go b/lib/sqlbuilder/errors.go
similarity index 100%
rename from sqlbuilder/errors.go
rename to lib/sqlbuilder/errors.go
diff --git a/sqlbuilder/exql/column.go b/lib/sqlbuilder/exql/column.go
similarity index 100%
rename from sqlbuilder/exql/column.go
rename to lib/sqlbuilder/exql/column.go
diff --git a/sqlbuilder/exql/column_test.go b/lib/sqlbuilder/exql/column_test.go
similarity index 100%
rename from sqlbuilder/exql/column_test.go
rename to lib/sqlbuilder/exql/column_test.go
diff --git a/sqlbuilder/exql/column_value.go b/lib/sqlbuilder/exql/column_value.go
similarity index 100%
rename from sqlbuilder/exql/column_value.go
rename to lib/sqlbuilder/exql/column_value.go
diff --git a/sqlbuilder/exql/column_value_test.go b/lib/sqlbuilder/exql/column_value_test.go
similarity index 100%
rename from sqlbuilder/exql/column_value_test.go
rename to lib/sqlbuilder/exql/column_value_test.go
diff --git a/sqlbuilder/exql/columns.go b/lib/sqlbuilder/exql/columns.go
similarity index 100%
rename from sqlbuilder/exql/columns.go
rename to lib/sqlbuilder/exql/columns.go
diff --git a/sqlbuilder/exql/columns_test.go b/lib/sqlbuilder/exql/columns_test.go
similarity index 100%
rename from sqlbuilder/exql/columns_test.go
rename to lib/sqlbuilder/exql/columns_test.go
diff --git a/sqlbuilder/exql/database.go b/lib/sqlbuilder/exql/database.go
similarity index 100%
rename from sqlbuilder/exql/database.go
rename to lib/sqlbuilder/exql/database.go
diff --git a/sqlbuilder/exql/database_test.go b/lib/sqlbuilder/exql/database_test.go
similarity index 100%
rename from sqlbuilder/exql/database_test.go
rename to lib/sqlbuilder/exql/database_test.go
diff --git a/sqlbuilder/exql/default.go b/lib/sqlbuilder/exql/default.go
similarity index 99%
rename from sqlbuilder/exql/default.go
rename to lib/sqlbuilder/exql/default.go
index c0f26c7d..09b18e52 100644
--- a/sqlbuilder/exql/default.go
+++ b/lib/sqlbuilder/exql/default.go
@@ -1,7 +1,7 @@
 package exql
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
 )
 
 const (
diff --git a/sqlbuilder/exql/group_by.go b/lib/sqlbuilder/exql/group_by.go
similarity index 100%
rename from sqlbuilder/exql/group_by.go
rename to lib/sqlbuilder/exql/group_by.go
diff --git a/sqlbuilder/exql/group_by_test.go b/lib/sqlbuilder/exql/group_by_test.go
similarity index 100%
rename from sqlbuilder/exql/group_by_test.go
rename to lib/sqlbuilder/exql/group_by_test.go
diff --git a/sqlbuilder/exql/hash.go b/lib/sqlbuilder/exql/hash.go
similarity index 89%
rename from sqlbuilder/exql/hash.go
rename to lib/sqlbuilder/exql/hash.go
index a198fe4e..828837f2 100644
--- a/sqlbuilder/exql/hash.go
+++ b/lib/sqlbuilder/exql/hash.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"sync/atomic"
 
-	"upper.io/db.v2/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
 )
 
 type hash struct {
diff --git a/sqlbuilder/exql/interfaces.go b/lib/sqlbuilder/exql/interfaces.go
similarity index 84%
rename from sqlbuilder/exql/interfaces.go
rename to lib/sqlbuilder/exql/interfaces.go
index 0515646a..a2ef8204 100644
--- a/sqlbuilder/exql/interfaces.go
+++ b/lib/sqlbuilder/exql/interfaces.go
@@ -1,7 +1,7 @@
 package exql
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
 )
 
 // Fragment is any interface that can be both cached and compiled.
diff --git a/sqlbuilder/exql/join.go b/lib/sqlbuilder/exql/join.go
similarity index 100%
rename from sqlbuilder/exql/join.go
rename to lib/sqlbuilder/exql/join.go
diff --git a/sqlbuilder/exql/join_test.go b/lib/sqlbuilder/exql/join_test.go
similarity index 100%
rename from sqlbuilder/exql/join_test.go
rename to lib/sqlbuilder/exql/join_test.go
diff --git a/sqlbuilder/exql/order_by.go b/lib/sqlbuilder/exql/order_by.go
similarity index 100%
rename from sqlbuilder/exql/order_by.go
rename to lib/sqlbuilder/exql/order_by.go
diff --git a/sqlbuilder/exql/order_by_test.go b/lib/sqlbuilder/exql/order_by_test.go
similarity index 100%
rename from sqlbuilder/exql/order_by_test.go
rename to lib/sqlbuilder/exql/order_by_test.go
diff --git a/sqlbuilder/exql/raw.go b/lib/sqlbuilder/exql/raw.go
similarity index 100%
rename from sqlbuilder/exql/raw.go
rename to lib/sqlbuilder/exql/raw.go
diff --git a/sqlbuilder/exql/raw_test.go b/lib/sqlbuilder/exql/raw_test.go
similarity index 100%
rename from sqlbuilder/exql/raw_test.go
rename to lib/sqlbuilder/exql/raw_test.go
diff --git a/sqlbuilder/exql/returning.go b/lib/sqlbuilder/exql/returning.go
similarity index 100%
rename from sqlbuilder/exql/returning.go
rename to lib/sqlbuilder/exql/returning.go
diff --git a/sqlbuilder/exql/statement.go b/lib/sqlbuilder/exql/statement.go
similarity index 98%
rename from sqlbuilder/exql/statement.go
rename to lib/sqlbuilder/exql/statement.go
index 79a6d07e..d0654cfe 100644
--- a/sqlbuilder/exql/statement.go
+++ b/lib/sqlbuilder/exql/statement.go
@@ -3,7 +3,7 @@ package exql
 import (
 	"reflect"
 
-	"upper.io/db.v2/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
 )
 
 // Statement represents different kinds of SQL statements.
diff --git a/sqlbuilder/exql/statement_test.go b/lib/sqlbuilder/exql/statement_test.go
similarity index 100%
rename from sqlbuilder/exql/statement_test.go
rename to lib/sqlbuilder/exql/statement_test.go
diff --git a/sqlbuilder/exql/table.go b/lib/sqlbuilder/exql/table.go
similarity index 100%
rename from sqlbuilder/exql/table.go
rename to lib/sqlbuilder/exql/table.go
diff --git a/sqlbuilder/exql/table_test.go b/lib/sqlbuilder/exql/table_test.go
similarity index 100%
rename from sqlbuilder/exql/table_test.go
rename to lib/sqlbuilder/exql/table_test.go
diff --git a/sqlbuilder/exql/template.go b/lib/sqlbuilder/exql/template.go
similarity index 97%
rename from sqlbuilder/exql/template.go
rename to lib/sqlbuilder/exql/template.go
index 557f4df2..c85c5da5 100644
--- a/sqlbuilder/exql/template.go
+++ b/lib/sqlbuilder/exql/template.go
@@ -4,7 +4,7 @@ import (
 	"bytes"
 	"text/template"
 
-	"upper.io/db.v2/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
 )
 
 // Type is the type of SQL query the statement represents.
diff --git a/sqlbuilder/exql/utilities.go b/lib/sqlbuilder/exql/utilities.go
similarity index 100%
rename from sqlbuilder/exql/utilities.go
rename to lib/sqlbuilder/exql/utilities.go
diff --git a/sqlbuilder/exql/utilities_test.go b/lib/sqlbuilder/exql/utilities_test.go
similarity index 100%
rename from sqlbuilder/exql/utilities_test.go
rename to lib/sqlbuilder/exql/utilities_test.go
diff --git a/sqlbuilder/exql/value.go b/lib/sqlbuilder/exql/value.go
similarity index 100%
rename from sqlbuilder/exql/value.go
rename to lib/sqlbuilder/exql/value.go
diff --git a/sqlbuilder/exql/value_test.go b/lib/sqlbuilder/exql/value_test.go
similarity index 100%
rename from sqlbuilder/exql/value_test.go
rename to lib/sqlbuilder/exql/value_test.go
diff --git a/sqlbuilder/exql/where.go b/lib/sqlbuilder/exql/where.go
similarity index 100%
rename from sqlbuilder/exql/where.go
rename to lib/sqlbuilder/exql/where.go
diff --git a/sqlbuilder/exql/where_test.go b/lib/sqlbuilder/exql/where_test.go
similarity index 100%
rename from sqlbuilder/exql/where_test.go
rename to lib/sqlbuilder/exql/where_test.go
diff --git a/sqlbuilder/fetch.go b/lib/sqlbuilder/fetch.go
similarity index 99%
rename from sqlbuilder/fetch.go
rename to lib/sqlbuilder/fetch.go
index 97d54155..d0802173 100644
--- a/sqlbuilder/fetch.go
+++ b/lib/sqlbuilder/fetch.go
@@ -27,7 +27,7 @@ import (
 	"reflect"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder/reflectx"
+	"upper.io/db.v2/lib/reflectx"
 )
 
 var mapper = reflectx.NewMapper("db")
diff --git a/sqlbuilder/insert.go b/lib/sqlbuilder/insert.go
similarity index 98%
rename from sqlbuilder/insert.go
rename to lib/sqlbuilder/insert.go
index a2529fe1..29e06f3c 100644
--- a/sqlbuilder/insert.go
+++ b/lib/sqlbuilder/insert.go
@@ -3,7 +3,7 @@ package builder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 type inserter struct {
diff --git a/sqlbuilder/interfaces.go b/lib/sqlbuilder/interfaces.go
similarity index 98%
rename from sqlbuilder/interfaces.go
rename to lib/sqlbuilder/interfaces.go
index c00a05dc..409cd594 100644
--- a/sqlbuilder/interfaces.go
+++ b/lib/sqlbuilder/interfaces.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 The upper.io/db.v2/sqlbuilder authors. All rights reserved.
+// Copyright (c) 2015 The upper.io/db.v2/lib/sqlbuilder authors. All rights reserved.
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -26,8 +26,8 @@ import (
 	"fmt"
 )
 
-// SQLBuilder defines methods that can serve as starting points for SQL queries.
-type SQLBuilder interface {
+// Builder defines methods that can serve as starting points for SQL queries.
+type Builder interface {
 
 	// Select initializes and returns a Selector pointed at the given columns.
 	//
diff --git a/sqlbuilder/scanner.go b/lib/sqlbuilder/scanner.go
similarity index 100%
rename from sqlbuilder/scanner.go
rename to lib/sqlbuilder/scanner.go
diff --git a/sqlbuilder/select.go b/lib/sqlbuilder/select.go
similarity index 99%
rename from sqlbuilder/select.go
rename to lib/sqlbuilder/select.go
index 846d6fa6..276f089e 100644
--- a/sqlbuilder/select.go
+++ b/lib/sqlbuilder/select.go
@@ -7,7 +7,7 @@ import (
 	"strings"
 
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 type selectMode uint8
diff --git a/sqlbuilder/template_test.go b/lib/sqlbuilder/template_test.go
similarity index 98%
rename from sqlbuilder/template_test.go
rename to lib/sqlbuilder/template_test.go
index 950072a8..506382a7 100644
--- a/sqlbuilder/template_test.go
+++ b/lib/sqlbuilder/template_test.go
@@ -1,8 +1,8 @@
 package builder
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 const (
diff --git a/sqlbuilder/update.go b/lib/sqlbuilder/update.go
similarity index 97%
rename from sqlbuilder/update.go
rename to lib/sqlbuilder/update.go
index eac23e9d..23ad57d1 100644
--- a/sqlbuilder/update.go
+++ b/lib/sqlbuilder/update.go
@@ -3,7 +3,7 @@ package builder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 type updater struct {
diff --git a/sqlbuilder/wrapper.go b/lib/sqlbuilder/wrapper.go
similarity index 99%
rename from sqlbuilder/wrapper.go
rename to lib/sqlbuilder/wrapper.go
index 40d2be0a..ef28556c 100644
--- a/sqlbuilder/wrapper.go
+++ b/lib/sqlbuilder/wrapper.go
@@ -41,7 +41,7 @@ func init() {
 // Backend holds common methods for SQL databases.
 type Backend interface {
 	db.Database
-	SQLBuilder
+	Builder
 }
 
 // Tx represents transaction on a SQL database. Transactions can only accept
diff --git a/mysql/collection.go b/mysql/collection.go
index 5d8d33c6..782c2341 100644
--- a/mysql/collection.go
+++ b/mysql/collection.go
@@ -26,7 +26,7 @@ import (
 
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/mysql/database.go b/mysql/database.go
index 202901d1..9d21f90d 100644
--- a/mysql/database.go
+++ b/mysql/database.go
@@ -30,14 +30,14 @@ import (
 	_ "github.com/go-sql-driver/mysql" // MySQL driver.
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.SQLBuilder
+	builder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
@@ -107,7 +107,7 @@ func (d *database) open() error {
 	if err != nil {
 		return err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	connFn := func() error {
 		sess, err := sql.Open("mysql", d.ConnectionURL().String())
diff --git a/mysql/mysql.go b/mysql/mysql.go
index ab56fad6..357f221c 100644
--- a/mysql/mysql.go
+++ b/mysql/mysql.go
@@ -27,7 +27,7 @@ import (
 	"upper.io/db.v2"
 
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 const sqlDriver = `mysql`
@@ -70,7 +70,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindTx(sqlTx); err != nil {
 		return nil, err
@@ -95,7 +95,7 @@ func New(sess *sql.DB) (builder.Database, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindSession(sess); err != nil {
 		return nil, err
diff --git a/mysql/template.go b/mysql/template.go
index b42d2a26..6f246f7b 100644
--- a/mysql/template.go
+++ b/mysql/template.go
@@ -22,8 +22,8 @@
 package mysql
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 const (
diff --git a/mysql/template_test.go b/mysql/template_test.go
index f04c6669..d7f09992 100644
--- a/mysql/template_test.go
+++ b/mysql/template_test.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/postgresql/collection.go b/postgresql/collection.go
index e2ec2582..71fba4bb 100644
--- a/postgresql/collection.go
+++ b/postgresql/collection.go
@@ -26,7 +26,7 @@ import (
 
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/postgresql/database.go b/postgresql/database.go
index 584e1c02..687957fd 100644
--- a/postgresql/database.go
+++ b/postgresql/database.go
@@ -29,14 +29,14 @@ import (
 	_ "github.com/lib/pq" // PostgreSQL driver.
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.SQLBuilder
+	builder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
@@ -106,7 +106,7 @@ func (d *database) open() error {
 	if err != nil {
 		return err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	connFn := func() error {
 		sess, err := sql.Open("postgres", d.ConnectionURL().String())
diff --git a/postgresql/postgresql.go b/postgresql/postgresql.go
index 198305e9..aba4d744 100644
--- a/postgresql/postgresql.go
+++ b/postgresql/postgresql.go
@@ -27,7 +27,7 @@ import (
 	"upper.io/db.v2"
 
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 const sqlDriver = `postgres`
@@ -70,7 +70,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindTx(sqlTx); err != nil {
 		return nil, err
@@ -95,7 +95,7 @@ func New(sess *sql.DB) (builder.Database, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindSession(sess); err != nil {
 		return nil, err
diff --git a/postgresql/template.go b/postgresql/template.go
index 697184c1..4c95c2af 100644
--- a/postgresql/template.go
+++ b/postgresql/template.go
@@ -22,8 +22,8 @@
 package postgresql
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 const (
diff --git a/postgresql/template_test.go b/postgresql/template_test.go
index 25c8f1ad..02f0defc 100644
--- a/postgresql/template_test.go
+++ b/postgresql/template_test.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/postgresql/tx.go b/postgresql/tx.go
index a73bb5ee..9d89e2fc 100644
--- a/postgresql/tx.go
+++ b/postgresql/tx.go
@@ -23,7 +23,7 @@ package postgresql
 
 import (
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 type tx struct {
diff --git a/ql/collection.go b/ql/collection.go
index b7d79956..fd663641 100644
--- a/ql/collection.go
+++ b/ql/collection.go
@@ -26,7 +26,7 @@ import (
 
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/ql/database.go b/ql/database.go
index 709d07f0..2458fcff 100644
--- a/ql/database.go
+++ b/ql/database.go
@@ -30,14 +30,14 @@ import (
 	_ "github.com/cznic/ql/driver" // QL driver
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.SQLBuilder
+	builder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
@@ -110,7 +110,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindTx(sqlTx); err != nil {
 		return nil, err
@@ -135,7 +135,7 @@ func New(sess *sql.DB) (builder.Database, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindSession(sess); err != nil {
 		return nil, err
@@ -180,7 +180,7 @@ func (d *database) open() error {
 	if err != nil {
 		return err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	openFn := func() error {
 		openFiles := atomic.LoadInt32(&fileOpenCount)
@@ -308,7 +308,7 @@ func (d *database) FindDatabaseName() (string, error) {
 // TableExists allows sqladapter check whether a table exists and returns an
 // error in case it doesn't.
 func (d *database) TableExists(name string) error {
-	q := d.SQLBuilder.Select("Name").
+	q := d.Builder.Select("Name").
 		From("__Table").
 		Where("Name == ?", name)
 
diff --git a/ql/ql.go b/ql/ql.go
index cdb85a88..f0682f1d 100644
--- a/ql/ql.go
+++ b/ql/ql.go
@@ -22,7 +22,7 @@
 package ql // import "upper.io/db.v2/ql"
 
 import (
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 const sqlDriver = `ql`
diff --git a/ql/template.go b/ql/template.go
index fe2d07a7..c75a41f5 100644
--- a/ql/template.go
+++ b/ql/template.go
@@ -22,8 +22,8 @@
 package ql
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 const (
diff --git a/ql/template_test.go b/ql/template_test.go
index df35ac79..286dad76 100644
--- a/ql/template_test.go
+++ b/ql/template_test.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/sqlite/collection.go b/sqlite/collection.go
index dd55c119..ed27f6b3 100644
--- a/sqlite/collection.go
+++ b/sqlite/collection.go
@@ -26,7 +26,7 @@ import (
 
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/sqlite/database.go b/sqlite/database.go
index 0da10077..7c71b38d 100644
--- a/sqlite/database.go
+++ b/sqlite/database.go
@@ -31,14 +31,14 @@ import (
 	_ "github.com/mattn/go-sqlite3" // SQLite3 driver.
 	"upper.io/db.v2"
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.SQLBuilder
+	builder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
@@ -122,7 +122,7 @@ func (d *database) open() error {
 	if err != nil {
 		return err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	openFn := func() error {
 		openFiles := atomic.LoadInt32(&fileOpenCount)
diff --git a/sqlite/sqlite.go b/sqlite/sqlite.go
index 6a1ef116..48bf9877 100644
--- a/sqlite/sqlite.go
+++ b/sqlite/sqlite.go
@@ -27,7 +27,7 @@ import (
 	"upper.io/db.v2"
 
 	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 const sqlDriver = `sqlite`
@@ -70,7 +70,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindTx(sqlTx); err != nil {
 		return nil, err
@@ -95,7 +95,7 @@ func New(sess *sql.DB) (builder.Database, error) {
 	if err != nil {
 		return nil, err
 	}
-	d.SQLBuilder = b
+	d.Builder = b
 
 	if err := d.BaseDatabase.BindSession(sess); err != nil {
 		return nil, err
diff --git a/sqlite/template.go b/sqlite/template.go
index c30a138f..abd5d132 100644
--- a/sqlite/template.go
+++ b/sqlite/template.go
@@ -22,8 +22,8 @@
 package sqlite
 
 import (
-	"upper.io/db.v2/sqlbuilder/cache"
-	"upper.io/db.v2/sqlbuilder/exql"
+	"upper.io/db.v2/lib/sqlbuilder/cache"
+	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
 const (
diff --git a/sqlite/template_test.go b/sqlite/template_test.go
index 96d845c9..a550ce4b 100644
--- a/sqlite/template_test.go
+++ b/sqlite/template_test.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	"upper.io/db.v2"
-	"upper.io/db.v2/sqlbuilder"
+	"upper.io/db.v2/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
-- 
GitLab