فهرست منبع

Normalize statement before initialization

Staņislavs Koikovs 11 سال پیش
والد
کامیت
c0906d8c0d
1فایلهای تغییر یافته به همراه7 افزوده شده و 1 حذف شده
  1. 7 1
      conn.go

+ 7 - 1
conn.go

@@ -361,6 +361,12 @@ func (c *Conn) prepareStatement(stmt string, trace Tracer) (*queryInfo, error) {
 	return flight.info, flight.err
 }
 
+func normalizeStatement(stmt string) string {
+	return strings.TrimLeftFunc(strings.TrimRightFunc(stmt, func(r rune) bool {
+		return unicode.IsSpace(r) || r == ';'
+	}), unicode.IsSpace)
+}
+
 func shouldPrepare(stmt string) bool {
 	var stmtType string
 	if n := strings.IndexFunc(stmt, unicode.IsSpace); n >= 0 {
@@ -380,7 +386,7 @@ func shouldPrepare(stmt string) bool {
 
 func (c *Conn) executeQuery(qry *Query) *Iter {
 	op := &queryFrame{
-		Stmt:      strings.TrimSpace(qry.stmt),
+		Stmt:      normalizeStatement(qry.stmt),
 		Cons:      qry.cons,
 		PageSize:  qry.pageSize,
 		PageState: qry.pageState,