MCPcopy Index your code
hub / github.com/uber/aresdb / HandleSQL

Method HandleSQL

api/sql_query_handler.go:39–82  ·  view source on GitHub ↗

HandleSQL swagger:route POST /query/sql querySQL query in SQL Consumes: - application/json - application/hll Produces: - application/json Responses: default: errorResponse 200: aqlResponse 400: aqlResponse

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

37// 200: aqlResponse
38// 400: aqlResponse
39func (handler *QueryHandler) HandleSQL(w http.ResponseWriter, r *http.Request) {
40 sqlRequest := common.SQLRequest{Device: -1}
41
42 if err := common.ReadRequest(r, &sqlRequest); err != nil {
43 common.RespondWithBadRequest(w, err)
44 utils.GetLogger().With(
45 "error", err,
46 "statusCode", http.StatusBadRequest,
47 ).Error("failed to parse query")
48 return
49 }
50
51 var aqlQueries []queryCom.AQLQuery
52 if sqlRequest.Body.Queries != nil {
53 aqlQueries = make([]queryCom.AQLQuery, len(sqlRequest.Body.Queries))
54 startTs := utils.Now()
55 for i, sqlQuery := range sqlRequest.Body.Queries {
56 parsedAQLQuery, err := sql.Parse(sqlQuery, utils.GetLogger())
57 if err != nil {
58 common.RespondWithBadRequest(w, err)
59 return
60 }
61 aqlQueries[i] = *parsedAQLQuery
62 }
63 sqlParseTimer := utils.GetRootReporter().GetTimer(utils.QuerySQLParsingLatency)
64 duration := utils.Now().Sub(startTs)
65 sqlParseTimer.Record(duration)
66
67 }
68
69 aqlRequest := common.AQLRequest{
70 Device: sqlRequest.Device,
71 Verbose: sqlRequest.Verbose + sqlRequest.Debug,
72 Debug: sqlRequest.Debug,
73 Profiling: sqlRequest.Profiling,
74 DeviceChoosingTimeout: sqlRequest.DeviceChoosingTimeout,
75 Accept: sqlRequest.Accept,
76 Origin: sqlRequest.Origin,
77 Body: queryCom.AQLRequest{
78 Queries: aqlQueries,
79 },
80 }
81 handler.handleAQLInternal(aqlRequest, w, r)
82}

Callers

nothing calls this directly

Calls 8

handleAQLInternalMethod · 0.95
GetLoggerFunction · 0.92
NowFunction · 0.92
ParseFunction · 0.92
GetRootReporterFunction · 0.92
GetTimerMethod · 0.80
ErrorMethod · 0.65
WithMethod · 0.65

Tested by

no test coverage detected