{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "async def opt_comm_exec(reader, writer, query, db_name, flag):\n", " \n", " if reader is None or writer is None:\n", " print(\"Connection Error!\")\n", " return None\n", " else:\n", " \n", " #execute query\n", " if flag:\n", " writer.write(b'\\n')\n", " \n", " #optimize query\n", " else: \n", " writer.write(b'\\n')\n", " \n", " writer.write(b'\\n')\n", " db_name += \"\\n\"\n", " writer.write(db_name.encode())\n", " \n", " writer.write(b'\\n')\n", " \n", " writer.write(b'\\n')\n", " query += \"\\n\"\n", " writer.write(query.encode())\n", " \n", " writer.write(b'\\n')\n", " \n", " if flag:\n", " writer.write(b'\\n')\n", " \n", " else: \n", " writer.write(b'\\n')\n", " \n", " await writer.drain()\n", " \n", " res = await reader.readline()\n", " res = res.decode()\n", " print(\"first response from OptServer: \")\n", " print(res)\n", " if not res:\n", " print(\"Connection to Optimizer is broken!\")\n", " return None\n", " if res != \"\\n\":\n", " print(\"Protocol Error!\")\n", " return None\n", " #res = await optrdr.readuntil(b'')\n", " res = await reader.readline()\n", " print(\"second response from OptServer: \")\n", " print(res)\n", " res = res.decode()\n", " if not res:\n", " print(\"Connection to Optimizer is broken!\")\n", " return None\n", " opt_res = \"\"\n", " count = 3\n", " while res != \"\\n\":\n", " if flag:\n", " opt_res += res\n", " else:\n", " opt_res += res.replace(\" \\n\", \"\")\n", " res = await reader.readline()\n", " print(str(count) + \"th response from OptServer: \")\n", " print(res)\n", " res = res.decode()\n", " count += 1\n", " if not res:\n", " print(\"Connection to Optimizer is broken!\")\n", " return None\n", " \n", " if opt_res == \"\":\n", " print(\"Optimization failed!\")\n", " return None\n", " print(opt_res)\n", " return opt_res" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }