def get(self): self.response.headers.add_header("Access-Control-Allow-Origin", "*") query = self.request.get("query") language = self.request.get("language") profile = self.get_boolean_request_param("profile") multiway_join = self.get_boolean_request_param("multiway_join") push_sql = self.get_boolean_request_param("push_sql") cached_logicalplan = str(get_logical_plan( query, language, self.app.connection, push_sql=push_sql)) # Generate physical plan physicalplan = get_physical_plan( query, language, self.app.connection, multiway_join=multiway_join, push_sql=push_sql) try: compiled = compile_to_json( query, cached_logicalplan, physicalplan, language) if profile: compiled['profilingMode'] = ["QUERY", "RESOURCE"] else: compiled['profilingMode'] = [] except requests.ConnectionError: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 503 self.response.write( 'Error 503 (Unavailable): Unable to connect to REST server') return self.response.headers['Content-Type'] = 'application/json' self.response.write(json.dumps(compiled))
def post(self): self.response.headers.add_header("Access-Control-Allow-Origin", "*") conn = self.app.connection query = self.request.get("query") language = self.request.get("language") profile = self.get_boolean_request_param("profile") multiway_join = self.get_boolean_request_param("multiway_join") push_sql = self.get_boolean_request_param("push_sql") cached_logicalplan = str( get_logical_plan(query, language, self.app.connection, push_sql=push_sql)) try: # Generate physical plan physicalplan = get_physical_plan(query, language, self.app.connection, multiway_join=multiway_join, push_sql=push_sql) # .. and compile compiled = compile_to_json(query, cached_logicalplan, physicalplan, language) if profile: compiled['profilingMode'] = ["QUERY", "RESOURCE"] else: compiled['profilingMode'] = [] # Issue the query query_status = conn.submit_query(compiled) query_url = 'http://%s:%d/execute?query_id=%d' %\ (self.app.hostname, self.app.port, query_status['queryId']) self.response.status = 201 self.response.headers['Content-Type'] = 'application/json' self.response.headers['Content-Location'] = query_url self.response.write(json.dumps(query_status)) return except myria.MyriaError as e: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 400 self.response.write("Error 400 (Bad Request): %s" % str(e)) return except requests.ConnectionError as e: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 503 self.response.write('Error 503 (Unavailable): \ Unable to connect to REST server to issue query') return
def post(self): self.response.headers.add_header("Access-Control-Allow-Origin", "*") conn = self.app.connection query = self.request.get("query") language = self.request.get("language") profile = self.get_boolean_request_param("profile") multiway_join = self.get_boolean_request_param("multiway_join") push_sql = self.get_boolean_request_param("push_sql") cached_logicalplan = str( get_logical_plan(query, language, self.app.connection, push_sql=push_sql)) try: # Generate physical plan physicalplan = get_physical_plan( query, language, self.app.connection, multiway_join=multiway_join, push_sql=push_sql) # .. and compile compiled = compile_to_json( query, cached_logicalplan, physicalplan, language) if profile: compiled['profilingMode'] = ["QUERY", "RESOURCE"] else: compiled['profilingMode'] = [] # Issue the query query_status = conn.submit_query(compiled) query_url = 'http://%s:%d/execute?query_id=%d' %\ (self.app.hostname, self.app.port, query_status['queryId']) self.response.status = 201 self.response.headers['Content-Type'] = 'application/json' self.response.headers['Content-Location'] = query_url self.response.write(json.dumps(query_status)) return except myria.MyriaError as e: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 400 self.response.write("Error 400 (Bad Request): %s" % str(e)) return except requests.ConnectionError as e: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 503 self.response.write( 'Error 503 (Unavailable): \ Unable to connect to REST server to issue query') return
def get(self): self.response.headers.add_header("Access-Control-Allow-Origin", "*") query = self.request.get("query") language = self.request.get("language") profile = self.get_boolean_request_param("profile") multiway_join = self.get_boolean_request_param("multiway_join") push_sql = self.get_boolean_request_param("push_sql") cached_logicalplan = str( get_logical_plan(query, language, self.app.connection, push_sql=push_sql)) # Generate physical plan physicalplan = get_physical_plan(query, language, self.app.connection, multiway_join=multiway_join, push_sql=push_sql) try: compiled = compile_to_json(query, cached_logicalplan, physicalplan, language) if profile: compiled['profilingMode'] = ["QUERY", "RESOURCE"] else: compiled['profilingMode'] = [] except requests.ConnectionError: self.response.headers['Content-Type'] = 'text/plain' self.response.status = 503 self.response.write( 'Error 503 (Unavailable): Unable to connect to REST server') return self.response.headers['Content-Type'] = 'application/json' self.response.write(json.dumps(compiled))