diff --git a/util/sqlgen/column.go b/util/sqlgen/column.go
index 27f44f55e00283259538990d4fb13ee3022c0abf..4eb395e173a4d2634bbe0c2519508c07f891bfed 100644
--- a/util/sqlgen/column.go
+++ b/util/sqlgen/column.go
@@ -27,7 +27,7 @@ func (c *Column) Hash() string {
 		var s string
 
 		switch t := c.Name.(type) {
-		case cc:
+		case Fragment:
 			s = t.Hash()
 		case fmt.Stringer:
 			s = t.String()
diff --git a/util/sqlgen/column_value.go b/util/sqlgen/column_value.go
index a0d6fd47888c59d85f65f8aca7524ebb0c9475c6..18acdec98832df7d4a4a24ffcd113836c88480cd 100644
--- a/util/sqlgen/column_value.go
+++ b/util/sqlgen/column_value.go
@@ -9,7 +9,7 @@ import (
 type ColumnValue struct {
 	Column
 	Operator string
-	Value    cc
+	Value    Fragment
 	hash     string
 }
 
diff --git a/util/sqlgen/interfaces.go b/util/sqlgen/interfaces.go
index 30746c4327477f1386b17228dc21e44b7c26b6d2..8d6cb109034d5890bb47b8aeb25395640e7b9398 100644
--- a/util/sqlgen/interfaces.go
+++ b/util/sqlgen/interfaces.go
@@ -4,7 +4,7 @@ import (
 	"upper.io/cache"
 )
 
-type cc interface {
+type Fragment interface {
 	cache.Hashable
 	compilable
 }
diff --git a/util/sqlgen/statement.go b/util/sqlgen/statement.go
index b0b458b51225e9e2290e1fa50ff15e1d7103837f..16b8800d72a2805b6a29986cac5de4f7ceb9c2af 100644
--- a/util/sqlgen/statement.go
+++ b/util/sqlgen/statement.go
@@ -10,17 +10,17 @@ import (
 // Statement represents different kinds of SQL statements.
 type Statement struct {
 	Type
-	Table    cc
-	Database cc
+	Table    Fragment
+	Database Fragment
 	Limit
 	Offset
-	Columns      cc
-	Values       cc
-	ColumnValues cc
-	OrderBy      cc
-	GroupBy      cc
+	Columns      Fragment
+	Values       Fragment
+	ColumnValues Fragment
+	OrderBy      Fragment
+	GroupBy      Fragment
 	Extra
-	Where cc
+	Where Fragment
 	hash  string
 }
 
@@ -38,7 +38,7 @@ type statementT struct {
 	Where        string
 }
 
-func (layout *Template) doCompile(c cc) string {
+func (layout *Template) doCompile(c Fragment) string {
 	if c != nil {
 		return c.Compile(layout)
 	}
diff --git a/util/sqlgen/table.go b/util/sqlgen/table.go
index 1ab0a90e93fdf9a21ab6bcadba6e23cd9d81566f..43dcda62cf50ba9d85020915916aa211954c186f 100644
--- a/util/sqlgen/table.go
+++ b/util/sqlgen/table.go
@@ -61,7 +61,7 @@ func (t *Table) Hash() string {
 		var s string
 
 		switch v := t.Name.(type) {
-		case cc:
+		case Fragment:
 			s = v.Hash()
 		case fmt.Stringer:
 			s = v.String()
diff --git a/util/sqlgen/value.go b/util/sqlgen/value.go
index f2f821ee60f29b770a2cd407bc2607f6b672dedd..8c9ff9208c504f778e8dff6c42649546082937cb 100644
--- a/util/sqlgen/value.go
+++ b/util/sqlgen/value.go
@@ -25,7 +25,7 @@ func NewValue(v interface{}) *Value {
 func (v *Value) Hash() string {
 	if v.hash == "" {
 		switch t := v.V.(type) {
-		case cc:
+		case Fragment:
 			v.hash = `Value(` + t.Hash() + `)`
 		case string:
 			v.hash = `Value(` + t + `)`
@@ -45,7 +45,7 @@ func (v *Value) Compile(layout *Template) (compiled string) {
 
 	if raw, ok := v.V.(Raw); ok {
 		compiled = raw.Compile(layout)
-	} else if raw, ok := v.V.(cc); ok {
+	} else if raw, ok := v.V.(Fragment); ok {
 		compiled = raw.Compile(layout)
 	} else {
 		compiled = mustParse(layout.ValueQuote, RawValue(fmt.Sprintf(`%v`, v.V)))
diff --git a/util/sqlgen/where.go b/util/sqlgen/where.go
index 60ea15465221f2cecd582ad6bfd6cd5a97e806be..64ea9f106424231e3c38dd73c405cbb26a0feb9e 100644
--- a/util/sqlgen/where.go
+++ b/util/sqlgen/where.go
@@ -13,7 +13,7 @@ type And Where
 
 // Where represents an SQL WHERE clause.
 type Where struct {
-	Conditions []cc
+	Conditions []Fragment
 	hash       string
 }
 
@@ -22,17 +22,17 @@ type conds struct {
 }
 
 // WhereConditions creates and retuens a new Where.
-func WhereConditions(conditions ...cc) *Where {
+func WhereConditions(conditions ...Fragment) *Where {
 	return &Where{Conditions: conditions}
 }
 
 // JoinWithOr creates and returns a new Or.
-func JoinWithOr(conditions ...cc) *Or {
+func JoinWithOr(conditions ...Fragment) *Or {
 	return &Or{Conditions: conditions}
 }
 
 // JoinWithAnd creates and returns a new And.
-func JoinWithAnd(conditions ...cc) *And {
+func JoinWithAnd(conditions ...Fragment) *And {
 	return &And{Conditions: conditions}
 }
 
@@ -104,7 +104,7 @@ func (w *Where) Compile(layout *Template) (compiled string) {
 	return
 }
 
-func groupCondition(layout *Template, terms []cc, joinKeyword string) string {
+func groupCondition(layout *Template, terms []Fragment, joinKeyword string) string {
 	l := len(terms)
 
 	chunks := make([]string, 0, l)