From f49daae4a1cc386be12a241939d5825e2b6fb875 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Fri, 16 Dec 2016 19:06:55 +0000
Subject: [PATCH] First v3 release

---
 .travis.yml                                |  6 +++---
 README.md                                  | 18 +++++++++---------
 _examples/booktown-books/main.go           |  2 +-
 db.go                                      | 10 +++++-----
 db_test.go                                 | 12 ++++++------
 internal/cache/cache.go                    |  2 +-
 internal/sqladapter/collection.go          |  4 ++--
 internal/sqladapter/database.go            |  8 ++++----
 internal/sqladapter/exql/default.go        |  2 +-
 internal/sqladapter/exql/hash.go           |  2 +-
 internal/sqladapter/exql/interfaces.go     |  2 +-
 internal/sqladapter/exql/statement.go      |  2 +-
 internal/sqladapter/exql/template.go       |  2 +-
 internal/sqladapter/result.go              |  6 +++---
 internal/sqladapter/testing/adapter.go.tpl |  4 ++--
 internal/sqladapter/tx.go                  |  4 ++--
 lib/sqlbuilder/.travis.yml                 |  6 +++---
 lib/sqlbuilder/builder.go                  |  6 +++---
 lib/sqlbuilder/builder_test.go             |  2 +-
 lib/sqlbuilder/convert.go                  |  4 ++--
 lib/sqlbuilder/delete.go                   |  4 ++--
 lib/sqlbuilder/fetch.go                    |  4 ++--
 lib/sqlbuilder/insert.go                   |  4 ++--
 lib/sqlbuilder/interfaces.go               |  2 +-
 lib/sqlbuilder/placeholder_test.go         |  2 +-
 lib/sqlbuilder/scanner.go                  |  2 +-
 lib/sqlbuilder/select.go                   |  6 +++---
 lib/sqlbuilder/template_test.go            |  4 ++--
 lib/sqlbuilder/update.go                   |  4 ++--
 lib/sqlbuilder/wrapper.go                  |  2 +-
 mongo/README.md                            |  4 ++--
 mongo/collection.go                        |  2 +-
 mongo/database.go                          |  4 ++--
 mongo/database_test.go                     |  2 +-
 mongo/result.go                            |  2 +-
 mysql/README.md                            |  4 ++--
 mysql/adapter_test.go                      |  4 ++--
 mysql/collection.go                        |  6 +++---
 mysql/database.go                          |  8 ++++----
 mysql/mysql.go                             |  8 ++++----
 mysql/stubs_test.go                        |  2 +-
 mysql/template.go                          |  4 ++--
 mysql/template_test.go                     |  4 ++--
 mysql/tx.go                                |  4 ++--
 postgresql/README.md                       |  4 ++--
 postgresql/adapter_test.go                 |  6 +++---
 postgresql/collection.go                   |  6 +++---
 postgresql/database.go                     |  8 ++++----
 postgresql/local_test.go                   |  2 +-
 postgresql/postgresql.go                   |  8 ++++----
 postgresql/stubs_test.go                   |  2 +-
 postgresql/template.go                     |  4 ++--
 postgresql/template_test.go                |  4 ++--
 postgresql/tx.go                           |  4 ++--
 ql/adapter_test.go                         |  2 +-
 ql/collection.go                           |  6 +++---
 ql/database.go                             |  8 ++++----
 ql/ql.go                                   |  4 ++--
 ql/stubs_test.go                           |  2 +-
 ql/template.go                             |  4 ++--
 ql/template_test.go                        |  4 ++--
 ql/tx.go                                   |  4 ++--
 sqlite/README.md                           |  4 ++--
 sqlite/adapter_test.go                     |  2 +-
 sqlite/collection.go                       |  6 +++---
 sqlite/database.go                         |  8 ++++----
 sqlite/sqlite.go                           |  8 ++++----
 sqlite/stubs_test.go                       |  2 +-
 sqlite/template.go                         |  4 ++--
 sqlite/template_test.go                    |  4 ++--
 sqlite/tx.go                               |  4 ++--
 71 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 395591e4..ccf654a1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,11 +29,11 @@ env: GOARCH=amd64 DB_HOST=127.0.0.1
 
 install:
   - mkdir -p $GOPATH/src/upper.io
-  - mv $PWD $GOPATH/src/upper.io/db.v2
-  - cd $GOPATH/src/upper.io/db.v2
+  - mv $PWD $GOPATH/src/upper.io/db.v3
+  - cd $GOPATH/src/upper.io/db.v3
   - go get -t -v -d ./...
   - go get -v github.com/cznic/ql/ql
-  - export TRAVIS_BUILD_DIR=$GOPATH/src/upper.io/db.v2
+  - export TRAVIS_BUILD_DIR=$GOPATH/src/upper.io/db.v3
 
 before_script:
   - mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
diff --git a/README.md b/README.md
index 632dcf85..826a48df 100644
--- a/README.md
+++ b/README.md
@@ -2,22 +2,22 @@
   <img src="https://upper.io/db.v2/images/gopher.svg" width="256" />
 </p>
 
-# upper.io/db.v2 [![Build Status](https://travis-ci.org/upper/db.svg?branch=v2)](https://travis-ci.org/upper/db) [![GoDoc](https://godoc.org/upper.io/db.v2?status.svg)](https://godoc.org/upper.io/db.v2)
+# upper.io/db.v3 [![Build Status](https://travis-ci.org/upper/db.svg?branch=master)](https://travis-ci.org/upper/db) [![GoDoc](https://godoc.org/upper.io/db.v3?status.svg)](https://godoc.org/upper.io/db.v3)
 
-The `upper.io/db.v2` package for [Go][2] is *not* an ORM, it's just a productive
+The `upper.io/db.v3` package for [Go][2] is *not* an ORM, it's just a productive
 data access layer for Go which provides a common interface to work with
-different data sources such as [PostgreSQL](https://upper.io/db.v2/postgresql),
-[MySQL](https://upper.io/db.v2/mysql), [SQLite](https://upper.io/db.v2/sqlite),
-[QL](https://upper.io/db.v2/ql) and [MongoDB](https://upper.io/db.v2/mongodb).
+different data sources such as [PostgreSQL](https://upper.io/db.v3/postgresql),
+[MySQL](https://upper.io/db.v3/mysql), [SQLite](https://upper.io/db.v3/sqlite),
+[QL](https://upper.io/db.v3/ql) and [MongoDB](https://upper.io/db.v3/mongodb).
 
 ```
-go get upper.io/db.v2
+go get upper.io/db.v3
 ```
 
 ## User documentation
 
 This is the source code repository, see examples and documentation at
-[upper.io/db.v2][1].
+[upper.io/db.v3][1].
 
 ## Demo
 
@@ -29,7 +29,7 @@ package main
 import (
 	"log"
 
-	"upper.io/db.v2/postgresql"
+	"upper.io/db.v3/postgresql"
 )
 
 var settings = postgresql.ConnectionURL{
@@ -134,5 +134,5 @@ This project is licensed under the terms of the **MIT License**.
 * rjmcguire <<rjmcguire@gmail.com>>
 * wei2912 <<wei2912_support@hotmail.com>>
 
-[1]: https://upper.io/db.v2
+[1]: https://upper.io/db.v3
 [2]: http://golang.org
diff --git a/_examples/booktown-books/main.go b/_examples/booktown-books/main.go
index 1e3d5287..1584183f 100644
--- a/_examples/booktown-books/main.go
+++ b/_examples/booktown-books/main.go
@@ -3,7 +3,7 @@ package main
 import (
 	"log"
 
-	"upper.io/db.v2/postgresql"
+	"upper.io/db.v3/postgresql"
 )
 
 var settings = postgresql.ConnectionURL{
diff --git a/db.go b/db.go
index 8bd3d2a4..c2f8a46c 100644
--- a/db.go
+++ b/db.go
@@ -27,7 +27,7 @@
 // driver. upper-db supports the MySQL, PostgreSQL, SQLite and QL databases and
 // provides partial support (CRUD, no transactions) for MongoDB.
 //
-//  go get upper.io/db.v2
+//  go get upper.io/db.v3
 //
 // Usage
 //
@@ -36,7 +36,7 @@
 //  import (
 //  	"log"
 //
-//  	"upper.io/db.v2/postgresql" // Imports the postgresql adapter.
+//  	"upper.io/db.v3/postgresql" // Imports the postgresql adapter.
 //  )
 //
 //  var settings = postgresql.ConnectionURL{
@@ -73,15 +73,15 @@
 //  }
 //
 // See more usage examples and documentation for users at
-// https://upper.io/db.v2.
-package db // import "upper.io/db.v2"
+// https://upper.io/db.v3.
+package db // import "upper.io/db.v3"
 
 import (
 	"fmt"
 	"reflect"
 	"time"
 
-	"upper.io/db.v2/internal/immutable"
+	"upper.io/db.v3/internal/immutable"
 )
 
 // Constraint interface represents a single condition, like "a = 1".  where `a`
diff --git a/db_test.go b/db_test.go
index 324ffda9..aa6a28fa 100644
--- a/db_test.go
+++ b/db_test.go
@@ -33,12 +33,12 @@ import (
 
 	"gopkg.in/mgo.v2"
 	"gopkg.in/mgo.v2/bson"
-	"upper.io/db.v2"
-	"upper.io/db.v2/mongo"
-	"upper.io/db.v2/mysql"
-	"upper.io/db.v2/postgresql"
-	"upper.io/db.v2/ql"
-	"upper.io/db.v2/sqlite"
+	"upper.io/db.v3"
+	"upper.io/db.v3/mongo"
+	"upper.io/db.v3/mysql"
+	"upper.io/db.v3/postgresql"
+	"upper.io/db.v3/ql"
+	"upper.io/db.v3/sqlite"
 )
 
 var wrappers = []string{
diff --git a/internal/cache/cache.go b/internal/cache/cache.go
index d81cebe2..0c65b468 100644
--- a/internal/cache/cache.go
+++ b/internal/cache/cache.go
@@ -28,7 +28,7 @@ import (
 	"strconv"
 	"sync"
 
-	"upper.io/db.v2/internal/cache/hashstructure"
+	"upper.io/db.v3/internal/cache/hashstructure"
 )
 
 const defaultCapacity = 128
diff --git a/internal/sqladapter/collection.go b/internal/sqladapter/collection.go
index bb21e27a..320209da 100644
--- a/internal/sqladapter/collection.go
+++ b/internal/sqladapter/collection.go
@@ -4,8 +4,8 @@ import (
 	"fmt"
 	"reflect"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 // Collection represents a SQL table.
diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index 6c63a2f5..f38d9121 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -8,10 +8,10 @@ import (
 	"sync/atomic"
 	"time"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 var (
diff --git a/internal/sqladapter/exql/default.go b/internal/sqladapter/exql/default.go
index abfc9a52..2c3a4668 100644
--- a/internal/sqladapter/exql/default.go
+++ b/internal/sqladapter/exql/default.go
@@ -1,7 +1,7 @@
 package exql
 
 import (
-	"upper.io/db.v2/internal/cache"
+	"upper.io/db.v3/internal/cache"
 )
 
 const (
diff --git a/internal/sqladapter/exql/hash.go b/internal/sqladapter/exql/hash.go
index 90a610e5..48f3c2f0 100644
--- a/internal/sqladapter/exql/hash.go
+++ b/internal/sqladapter/exql/hash.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"sync/atomic"
 
-	"upper.io/db.v2/internal/cache"
+	"upper.io/db.v3/internal/cache"
 )
 
 type hash struct {
diff --git a/internal/sqladapter/exql/interfaces.go b/internal/sqladapter/exql/interfaces.go
index 44b3e1c2..fb0f4346 100644
--- a/internal/sqladapter/exql/interfaces.go
+++ b/internal/sqladapter/exql/interfaces.go
@@ -1,7 +1,7 @@
 package exql
 
 import (
-	"upper.io/db.v2/internal/cache"
+	"upper.io/db.v3/internal/cache"
 )
 
 // Fragment is any interface that can be both cached and compiled.
diff --git a/internal/sqladapter/exql/statement.go b/internal/sqladapter/exql/statement.go
index 6453c860..137e7685 100644
--- a/internal/sqladapter/exql/statement.go
+++ b/internal/sqladapter/exql/statement.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"strings"
 
-	"upper.io/db.v2/internal/cache"
+	"upper.io/db.v3/internal/cache"
 )
 
 // Statement represents different kinds of SQL statements.
diff --git a/internal/sqladapter/exql/template.go b/internal/sqladapter/exql/template.go
index 5b8637f9..8333f0e3 100644
--- a/internal/sqladapter/exql/template.go
+++ b/internal/sqladapter/exql/template.go
@@ -5,7 +5,7 @@ import (
 	"sync"
 	"text/template"
 
-	"upper.io/db.v2/internal/cache"
+	"upper.io/db.v3/internal/cache"
 )
 
 // Type is the type of SQL query the statement represents.
diff --git a/internal/sqladapter/result.go b/internal/sqladapter/result.go
index d27525f7..9520673c 100644
--- a/internal/sqladapter/result.go
+++ b/internal/sqladapter/result.go
@@ -25,9 +25,9 @@ import (
 	"sync"
 	"sync/atomic"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/immutable"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/immutable"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 type Result struct {
diff --git a/internal/sqladapter/testing/adapter.go.tpl b/internal/sqladapter/testing/adapter.go.tpl
index 34671fba..1ddd7fe6 100644
--- a/internal/sqladapter/testing/adapter.go.tpl
+++ b/internal/sqladapter/testing/adapter.go.tpl
@@ -16,8 +16,8 @@ import (
 	"time"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 type customLogger struct {
diff --git a/internal/sqladapter/tx.go b/internal/sqladapter/tx.go
index e1a5dcd8..3239f310 100644
--- a/internal/sqladapter/tx.go
+++ b/internal/sqladapter/tx.go
@@ -25,8 +25,8 @@ import (
 	"database/sql"
 	"sync/atomic"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // DatabaseTx represents a database session within a transaction.
diff --git a/lib/sqlbuilder/.travis.yml b/lib/sqlbuilder/.travis.yml
index c6f97b1c..6e380aea 100644
--- a/lib/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/lib/sqlbuilder
-  - cd $GOPATH/src/upper.io/db.v2/lib/sqlbuilder
+  - mv $PWD $GOPATH/src/upper.io/db.v3/lib/sqlbuilder
+  - cd $GOPATH/src/upper.io/db.v3/lib/sqlbuilder
   - go get -v -d -t ./...
 
 script:
-  - cd $GOPATH/src/upper.io/db.v2/lib/sqlbuilder
+  - cd $GOPATH/src/upper.io/db.v3/lib/sqlbuilder
   - make test
diff --git a/lib/sqlbuilder/builder.go b/lib/sqlbuilder/builder.go
index be5eaa84..fb922dfb 100644
--- a/lib/sqlbuilder/builder.go
+++ b/lib/sqlbuilder/builder.go
@@ -10,9 +10,9 @@ import (
 	"strconv"
 	"strings"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/reflectx"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/reflectx"
 )
 
 // MapOptions represents options for the mapper.
diff --git a/lib/sqlbuilder/builder_test.go b/lib/sqlbuilder/builder_test.go
index 5c36603f..8e78ef8b 100644
--- a/lib/sqlbuilder/builder_test.go
+++ b/lib/sqlbuilder/builder_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 func TestSelect(t *testing.T) {
diff --git a/lib/sqlbuilder/convert.go b/lib/sqlbuilder/convert.go
index b8b2de40..bdae020e 100644
--- a/lib/sqlbuilder/convert.go
+++ b/lib/sqlbuilder/convert.go
@@ -6,8 +6,8 @@ import (
 	"reflect"
 	"strings"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 var (
diff --git a/lib/sqlbuilder/delete.go b/lib/sqlbuilder/delete.go
index 076162c6..764460e6 100644
--- a/lib/sqlbuilder/delete.go
+++ b/lib/sqlbuilder/delete.go
@@ -3,8 +3,8 @@ package sqlbuilder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/internal/immutable"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/immutable"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 type deleterQuery struct {
diff --git a/lib/sqlbuilder/fetch.go b/lib/sqlbuilder/fetch.go
index b5bf577f..c6620da7 100644
--- a/lib/sqlbuilder/fetch.go
+++ b/lib/sqlbuilder/fetch.go
@@ -26,8 +26,8 @@ import (
 	"encoding/json"
 	"reflect"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/reflectx"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/reflectx"
 )
 
 var mapper = reflectx.NewMapper("db")
diff --git a/lib/sqlbuilder/insert.go b/lib/sqlbuilder/insert.go
index 9cdee4d2..17b8260e 100644
--- a/lib/sqlbuilder/insert.go
+++ b/lib/sqlbuilder/insert.go
@@ -3,8 +3,8 @@ package sqlbuilder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/internal/immutable"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/immutable"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 type inserterQuery struct {
diff --git a/lib/sqlbuilder/interfaces.go b/lib/sqlbuilder/interfaces.go
index b94d9020..8684fd16 100644
--- a/lib/sqlbuilder/interfaces.go
+++ b/lib/sqlbuilder/interfaces.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 The upper.io/db.v2/lib/sqlbuilder authors. All rights reserved.
+// Copyright (c) 2015 The upper.io/db.v3/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
diff --git a/lib/sqlbuilder/placeholder_test.go b/lib/sqlbuilder/placeholder_test.go
index 80917b71..37b311c1 100644
--- a/lib/sqlbuilder/placeholder_test.go
+++ b/lib/sqlbuilder/placeholder_test.go
@@ -4,7 +4,7 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 func TestPlaceholderSimple(t *testing.T) {
diff --git a/lib/sqlbuilder/scanner.go b/lib/sqlbuilder/scanner.go
index 46c4506a..82de79d0 100644
--- a/lib/sqlbuilder/scanner.go
+++ b/lib/sqlbuilder/scanner.go
@@ -29,7 +29,7 @@ import (
 	"strconv"
 	"strings"
 
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 type scanner struct {
diff --git a/lib/sqlbuilder/select.go b/lib/sqlbuilder/select.go
index 4ebffd80..9df30e27 100644
--- a/lib/sqlbuilder/select.go
+++ b/lib/sqlbuilder/select.go
@@ -6,9 +6,9 @@ import (
 	"fmt"
 	"strings"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/immutable"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/immutable"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 type selectMode uint8
diff --git a/lib/sqlbuilder/template_test.go b/lib/sqlbuilder/template_test.go
index d3f8c6e9..ddae6da1 100644
--- a/lib/sqlbuilder/template_test.go
+++ b/lib/sqlbuilder/template_test.go
@@ -1,8 +1,8 @@
 package sqlbuilder
 
 import (
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 const (
diff --git a/lib/sqlbuilder/update.go b/lib/sqlbuilder/update.go
index 5e831e1a..56c071ec 100644
--- a/lib/sqlbuilder/update.go
+++ b/lib/sqlbuilder/update.go
@@ -3,8 +3,8 @@ package sqlbuilder
 import (
 	"database/sql"
 
-	"upper.io/db.v2/internal/immutable"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/immutable"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 type updaterQuery struct {
diff --git a/lib/sqlbuilder/wrapper.go b/lib/sqlbuilder/wrapper.go
index 6214a6c6..2c2445d9 100644
--- a/lib/sqlbuilder/wrapper.go
+++ b/lib/sqlbuilder/wrapper.go
@@ -26,7 +26,7 @@ import (
 	"fmt"
 	"sync"
 
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 var (
diff --git a/mongo/README.md b/mongo/README.md
index 0e4319c4..a23128ca 100644
--- a/mongo/README.md
+++ b/mongo/README.md
@@ -1,6 +1,6 @@
 # MongoDB adapter for upper.io/db
 
 Please read the full docs, acknowledgements and examples at
-[https://upper.io/db.v2/wrappers/mongo][1].
+[https://upper.io/db.v3/wrappers/mongo][1].
 
-[1]: https://upper.io/db.v2/wrappers/mongo
+[1]: https://upper.io/db.v3/wrappers/mongo
diff --git a/mongo/collection.go b/mongo/collection.go
index b2ee28b8..e3b00218 100644
--- a/mongo/collection.go
+++ b/mongo/collection.go
@@ -30,7 +30,7 @@ import (
 
 	"gopkg.in/mgo.v2"
 	"gopkg.in/mgo.v2/bson"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 // Collection represents a mongodb collection.
diff --git a/mongo/database.go b/mongo/database.go
index 1bb48287..2d92ac96 100644
--- a/mongo/database.go
+++ b/mongo/database.go
@@ -19,7 +19,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package mongo // import "upper.io/db.v2/mongo"
+package mongo // import "upper.io/db.v3/mongo"
 
 import (
 	"strings"
@@ -27,7 +27,7 @@ import (
 	"time"
 
 	"gopkg.in/mgo.v2"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 // Adapter holds the name of the mongodb adapter.
diff --git a/mongo/database_test.go b/mongo/database_test.go
index 5b333889..461b6465 100644
--- a/mongo/database_test.go
+++ b/mongo/database_test.go
@@ -31,7 +31,7 @@ import (
 	"time"
 
 	"gopkg.in/mgo.v2/bson"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 // Global settings for tests.
diff --git a/mongo/result.go b/mongo/result.go
index f871edab..fd9562d2 100644
--- a/mongo/result.go
+++ b/mongo/result.go
@@ -32,7 +32,7 @@ import (
 
 	"gopkg.in/mgo.v2"
 	"gopkg.in/mgo.v2/bson"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 // result represents a query result.
diff --git a/mysql/README.md b/mysql/README.md
index 8d89e1b1..e5853b10 100644
--- a/mysql/README.md
+++ b/mysql/README.md
@@ -1,7 +1,7 @@
 # MySQL adapter for upper.io/db
 
 See the full docs, acknowledgements and examples at
-[https://upper.io/db.v2/mysql][1]
+[https://upper.io/db.v3/mysql][1]
 
-[1]: https://upper.io/db.v2/mysql
+[1]: https://upper.io/db.v3/mysql
 
diff --git a/mysql/adapter_test.go b/mysql/adapter_test.go
index 278bc167..7474407c 100644
--- a/mysql/adapter_test.go
+++ b/mysql/adapter_test.go
@@ -28,8 +28,8 @@ import (
 	"os"
 	"time"
 
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const (
diff --git a/mysql/collection.go b/mysql/collection.go
index e9af67b1..c14ec09d 100644
--- a/mysql/collection.go
+++ b/mysql/collection.go
@@ -24,9 +24,9 @@ package mysql
 import (
 	"database/sql"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/mysql/database.go b/mysql/database.go
index 2cb66f73..068865b3 100644
--- a/mysql/database.go
+++ b/mysql/database.go
@@ -28,10 +28,10 @@ import (
 	"database/sql"
 
 	_ "github.com/go-sql-driver/mysql" // MySQL driver.
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // database is the actual implementation of Database
diff --git a/mysql/mysql.go b/mysql/mysql.go
index 5b6f26da..7f8da66e 100644
--- a/mysql/mysql.go
+++ b/mysql/mysql.go
@@ -19,16 +19,16 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package mysql // import "upper.io/db.v2/mysql"
+package mysql // import "upper.io/db.v3/mysql"
 
 import (
 	"database/sql"
 	"time"
 
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 var (
diff --git a/mysql/stubs_test.go b/mysql/stubs_test.go
index 4fd997e1..6a1eb1ac 100644
--- a/mysql/stubs_test.go
+++ b/mysql/stubs_test.go
@@ -6,7 +6,7 @@ import (
 	"log"
 	"testing"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func mustOpen() sqlbuilder.Database {
diff --git a/mysql/template.go b/mysql/template.go
index b81d4aae..976d4919 100644
--- a/mysql/template.go
+++ b/mysql/template.go
@@ -22,8 +22,8 @@
 package mysql
 
 import (
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 const (
diff --git a/mysql/template_test.go b/mysql/template_test.go
index 725cd0b0..a71de967 100644
--- a/mysql/template_test.go
+++ b/mysql/template_test.go
@@ -4,8 +4,8 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/mysql/tx.go b/mysql/tx.go
index 63cc4a7f..1414572f 100644
--- a/mysql/tx.go
+++ b/mysql/tx.go
@@ -22,8 +22,8 @@
 package mysql
 
 import (
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
 )
 
 type tx struct {
diff --git a/postgresql/README.md b/postgresql/README.md
index 370365fd..4610b74d 100644
--- a/postgresql/README.md
+++ b/postgresql/README.md
@@ -1,6 +1,6 @@
 # PostgreSQL adapter for upper.io/db
 
 Please read the full docs, acknowledgements and examples at
-[https://upper.io/db.v2/postgresql][1]
+[https://upper.io/db.v3/postgresql][1]
 
-[1]: https://upper.io/db.v2/postgresql
+[1]: https://upper.io/db.v3/postgresql
diff --git a/postgresql/adapter_test.go b/postgresql/adapter_test.go
index 72ab2f25..df744657 100644
--- a/postgresql/adapter_test.go
+++ b/postgresql/adapter_test.go
@@ -29,9 +29,9 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const (
diff --git a/postgresql/collection.go b/postgresql/collection.go
index fb6f89b4..1321f2d7 100644
--- a/postgresql/collection.go
+++ b/postgresql/collection.go
@@ -24,9 +24,9 @@ package postgresql
 import (
 	"database/sql"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/postgresql/database.go b/postgresql/database.go
index 8b92ba2d..a95975e6 100644
--- a/postgresql/database.go
+++ b/postgresql/database.go
@@ -27,10 +27,10 @@ import (
 	"sync"
 
 	_ "github.com/lib/pq" // PostgreSQL driver.
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // database is the actual implementation of Database
diff --git a/postgresql/local_test.go b/postgresql/local_test.go
index 82a9069e..1b7b5950 100644
--- a/postgresql/local_test.go
+++ b/postgresql/local_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 )
 
 func TestStringAndInt64Array(t *testing.T) {
diff --git a/postgresql/postgresql.go b/postgresql/postgresql.go
index e0b87cf9..bbbc5fff 100644
--- a/postgresql/postgresql.go
+++ b/postgresql/postgresql.go
@@ -19,16 +19,16 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package postgresql // import "upper.io/db.v2/postgresql"
+package postgresql // import "upper.io/db.v3/postgresql"
 
 import (
 	"database/sql"
 	"time"
 
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 var (
diff --git a/postgresql/stubs_test.go b/postgresql/stubs_test.go
index c07cf412..cf1f2834 100644
--- a/postgresql/stubs_test.go
+++ b/postgresql/stubs_test.go
@@ -6,7 +6,7 @@ import (
 	"log"
 	"testing"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func mustOpen() sqlbuilder.Database {
diff --git a/postgresql/template.go b/postgresql/template.go
index 5a986d93..13b5952c 100644
--- a/postgresql/template.go
+++ b/postgresql/template.go
@@ -22,8 +22,8 @@
 package postgresql
 
 import (
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 const (
diff --git a/postgresql/template_test.go b/postgresql/template_test.go
index fd1f237a..b71176e9 100644
--- a/postgresql/template_test.go
+++ b/postgresql/template_test.go
@@ -4,8 +4,8 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/postgresql/tx.go b/postgresql/tx.go
index 9d37aa9c..4320e0f5 100644
--- a/postgresql/tx.go
+++ b/postgresql/tx.go
@@ -22,8 +22,8 @@
 package postgresql
 
 import (
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 type tx struct {
diff --git a/ql/adapter_test.go b/ql/adapter_test.go
index 2715c9b0..2024b47d 100644
--- a/ql/adapter_test.go
+++ b/ql/adapter_test.go
@@ -26,7 +26,7 @@ import (
 	"database/sql"
 	"os"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const (
diff --git a/ql/collection.go b/ql/collection.go
index 7d801770..ff63992d 100644
--- a/ql/collection.go
+++ b/ql/collection.go
@@ -24,9 +24,9 @@ package ql
 import (
 	"database/sql"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/ql/database.go b/ql/database.go
index 59e2d48f..dd41ed68 100644
--- a/ql/database.go
+++ b/ql/database.go
@@ -28,10 +28,10 @@ import (
 	"sync/atomic"
 
 	_ "github.com/cznic/ql/driver" // QL driver
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // database is the actual implementation of Database
diff --git a/ql/ql.go b/ql/ql.go
index 3c9a06b2..2d8c3f57 100644
--- a/ql/ql.go
+++ b/ql/ql.go
@@ -19,10 +19,10 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package ql // import "upper.io/db.v2/ql"
+package ql // import "upper.io/db.v3/ql"
 
 import (
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const sqlDriver = `ql`
diff --git a/ql/stubs_test.go b/ql/stubs_test.go
index 58dda959..ba22dd17 100644
--- a/ql/stubs_test.go
+++ b/ql/stubs_test.go
@@ -6,7 +6,7 @@ import (
 	"log"
 	"testing"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func mustOpen() sqlbuilder.Database {
diff --git a/ql/template.go b/ql/template.go
index e483ca0a..53a09d3f 100644
--- a/ql/template.go
+++ b/ql/template.go
@@ -22,8 +22,8 @@
 package ql
 
 import (
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 const (
diff --git a/ql/template_test.go b/ql/template_test.go
index 7feef59c..23d3a701 100644
--- a/ql/template_test.go
+++ b/ql/template_test.go
@@ -4,8 +4,8 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/ql/tx.go b/ql/tx.go
index 14641731..0d5c6f9a 100644
--- a/ql/tx.go
+++ b/ql/tx.go
@@ -22,8 +22,8 @@
 package ql
 
 import (
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 type tx struct {
diff --git a/sqlite/README.md b/sqlite/README.md
index f53f430f..2b5d6e83 100644
--- a/sqlite/README.md
+++ b/sqlite/README.md
@@ -1,6 +1,6 @@
 # SQLite3 adapter for upper.io/db
 
 Please read the full docs, acknowledgements and examples at
-[https://upper.io/db.v2/sqlite][1]
+[https://upper.io/db.v3/sqlite][1]
 
-[1]: https://upper.io/db.v2/sqlite
+[1]: https://upper.io/db.v3/sqlite
diff --git a/sqlite/adapter_test.go b/sqlite/adapter_test.go
index 28eced22..b34f0547 100644
--- a/sqlite/adapter_test.go
+++ b/sqlite/adapter_test.go
@@ -26,7 +26,7 @@ import (
 	"database/sql"
 	"os"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const (
diff --git a/sqlite/collection.go b/sqlite/collection.go
index 6ad06ad9..2f801522 100644
--- a/sqlite/collection.go
+++ b/sqlite/collection.go
@@ -24,9 +24,9 @@ package sqlite
 import (
 	"database/sql"
 
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // table is the actual implementation of a collection.
diff --git a/sqlite/database.go b/sqlite/database.go
index 96c85d70..f1efa167 100644
--- a/sqlite/database.go
+++ b/sqlite/database.go
@@ -29,10 +29,10 @@ import (
 	"sync/atomic"
 
 	_ "github.com/mattn/go-sqlite3" // SQLite3 driver.
-	"upper.io/db.v2"
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/internal/sqladapter/exql"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/internal/sqladapter/exql"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 // database is the actual implementation of Database
diff --git a/sqlite/sqlite.go b/sqlite/sqlite.go
index 641b5d85..894459a2 100644
--- a/sqlite/sqlite.go
+++ b/sqlite/sqlite.go
@@ -19,15 +19,15 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package sqlite // import "upper.io/db.v2/sqlite"
+package sqlite // import "upper.io/db.v3/sqlite"
 
 import (
 	"database/sql"
 
-	"upper.io/db.v2"
+	"upper.io/db.v3"
 
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 const sqlDriver = `sqlite`
diff --git a/sqlite/stubs_test.go b/sqlite/stubs_test.go
index cd1dfdbc..7b45ff61 100644
--- a/sqlite/stubs_test.go
+++ b/sqlite/stubs_test.go
@@ -6,7 +6,7 @@ import (
 	"log"
 	"testing"
 
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func mustOpen() sqlbuilder.Database {
diff --git a/sqlite/template.go b/sqlite/template.go
index 546fa576..fce9dd4b 100644
--- a/sqlite/template.go
+++ b/sqlite/template.go
@@ -22,8 +22,8 @@
 package sqlite
 
 import (
-	"upper.io/db.v2/internal/cache"
-	"upper.io/db.v2/internal/sqladapter/exql"
+	"upper.io/db.v3/internal/cache"
+	"upper.io/db.v3/internal/sqladapter/exql"
 )
 
 const (
diff --git a/sqlite/template_test.go b/sqlite/template_test.go
index 39f023f8..80737a9a 100644
--- a/sqlite/template_test.go
+++ b/sqlite/template_test.go
@@ -4,8 +4,8 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	"upper.io/db.v2"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 func TestTemplateSelect(t *testing.T) {
diff --git a/sqlite/tx.go b/sqlite/tx.go
index c39e76e0..5917f29c 100644
--- a/sqlite/tx.go
+++ b/sqlite/tx.go
@@ -22,8 +22,8 @@
 package sqlite
 
 import (
-	"upper.io/db.v2/internal/sqladapter"
-	"upper.io/db.v2/lib/sqlbuilder"
+	"upper.io/db.v3/internal/sqladapter"
+	"upper.io/db.v3/lib/sqlbuilder"
 )
 
 type tx struct {
-- 
GitLab