diff --git a/builder/buffer.go b/builder/buffer.go index 243cffc..e807a62 100644 --- a/builder/buffer.go +++ b/builder/buffer.go @@ -133,6 +133,9 @@ func (b Buffer) escape(table, value string) string { var escaped_table string if table != "" { + if i := strings.Index(strings.ToLower(table), " as "); i > -1 { + return b.escape(table[:i], "") + " AS " + b.Quoter.ID(table[i+4:]) + } if b.AllowTableSchema && strings.IndexByte(table, '.') >= 0 { parts := strings.Split(table, ".") for i, part := range parts { diff --git a/builder/buffer_test.go b/builder/buffer_test.go index 5141669..3bc1486 100644 --- a/builder/buffer_test.go +++ b/builder/buffer_test.go @@ -71,6 +71,10 @@ func TestBuffer_escape(t *testing.T) { field: "person.address as person.address", result: "[person].[address] AS [person.address]", }, + { + table: "schema.user as primary_user", + result: "[schema].[user] AS [primary_user]", + }, } for _, test := range tests { t.Run(test.result, func(t *testing.T) {