Treat columns with spaces inbetween [s3Select] (#6597)

replace the double/single quotes with backticks for the xwb1989/sqlparser
to recognise such queries.

Fixes #6589
This commit is contained in:
Praveen raj Mani
2018-10-17 23:31:26 +05:30
committed by Dee Koder
parent c998d1ac8c
commit cef044178c
4 changed files with 19 additions and 11 deletions
+8 -2
View File
@@ -70,6 +70,12 @@ func setHeadGetRespHeaders(w http.ResponseWriter, reqParams url.Values) {
}
}
// This function replaces "",'' with `` for the select parser
func cleanExpr(expr string) string {
r := strings.NewReplacer("\"", "`", "'", "`")
return r.Replace(expr)
}
// SelectObjectContentHandler - GET Object?select
// ----------
// This implementation of the GET operation retrieves object content based
@@ -255,7 +261,7 @@ func (api objectAPIHandlers) SelectObjectContentHandler(w http.ResponseWriter, r
Name: "S3Object", // Default table name for all objects
ReadFrom: gr,
Compressed: string(selectReq.InputSerialization.CompressionType),
Expression: selectReq.Expression,
Expression: cleanExpr(selectReq.Expression),
OutputFieldDelimiter: selectReq.OutputSerialization.CSV.FieldDelimiter,
StreamSize: objInfo.Size,
HeaderOpt: selectReq.InputSerialization.CSV.FileHeaderInfo == CSVFileHeaderInfoUse,
@@ -266,7 +272,7 @@ func (api objectAPIHandlers) SelectObjectContentHandler(w http.ResponseWriter, r
writeErrorResponse(w, toAPIErrorCode(err), r.URL)
return
}
_, _, _, _, _, _, err = s3s.ParseSelect(selectReq.Expression)
_, _, _, _, _, _, err = s3s.ParseSelect(options.Expression)
if err != nil {
writeErrorResponse(w, toAPIErrorCode(err), r.URL)
return