diff --git a/spanner/spansql/sql.go b/spanner/spansql/sql.go index 99f7b7d1335..fee79916f50 100644 --- a/spanner/spansql/sql.go +++ b/spanner/spansql/sql.go @@ -331,7 +331,7 @@ func (sfj SelectFromJoin) SQL() string { // TODO: hints go here str += sfj.RHS.SQL() if sfj.On != nil { - str += " " + sfj.On.SQL() + str += " ON " + sfj.On.SQL() } else if len(sfj.Using) > 0 { str += " USING (" + idList(sfj.Using, ", ") + ")" } diff --git a/spanner/spansql/sql_test.go b/spanner/spansql/sql_test.go index 1f9db7db597..b4805489ed4 100644 --- a/spanner/spansql/sql_test.go +++ b/spanner/spansql/sql_test.go @@ -318,6 +318,29 @@ func TestSQL(t *testing.T) { `TIMESTAMP '2014-09-27 12:34:56.123456 -07:00'`, reparseExpr, }, + { + Query{ + Select: Select{ + List: []Expr{ + ID("A"), ID("B"), + }, + From: []SelectFrom{ + SelectFromJoin{ + Type: InnerJoin, + LHS: SelectFromTable{Table: "Table1"}, + RHS: SelectFromTable{Table: "Table2"}, + On: ComparisonOp{ + LHS: PathExp{"Table1", "A"}, + Op: Eq, + RHS: PathExp{"Table2", "A"}, + }, + }, + }, + }, + }, + "SELECT A, B FROM Table1 INNER JOIN Table2 ON Table1.A = Table2.A", + reparseQuery, + }, } for _, test := range tests { sql := test.data.SQL()