{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2e236ac7-6f78-4a59-bed7-45f593d060c2",
   "metadata": {},
   "source": [
    "# Basic Samples : Agtype mapper for Psycopg2 driver\n",
    "\n",
    "You can make transactions and queries for PostgreSQL with Psycopg2.\n",
    "\n",
    "This module enable to mapping agtype to python class(Path, Vertex, Edge)\n",
    "\n",
    "## Connect to PostgreSQL and agType setting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "98a5863c-1e79-438e-81d4-d1f5354a1bdb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import psycopg2 \n",
    "import age\n",
    "\n",
    "GRAPH_NAME = \"test_graph\"\n",
    "conn = psycopg2.connect(host=\"172.17.0.2\", port=\"5432\", dbname=\"postgres\", user=\"postgres\", password=\"agens\")\n",
    "\n",
    "age.setUpAge(conn, GRAPH_NAME)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebcf65a5-de7c-4224-aacc-2695c9e5f8d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "with conn.cursor() as cursor:\n",
    "    try :\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ CREATE (n:Person {name: 'Joe', title: 'Developer'}) $$) as (v agtype); \"\"\", (GRAPH_NAME,) )\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ CREATE (n:Person {name: 'Smith', title: 'Developer'}) $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            CREATE (n:Person {name: 'Tom', title: 'Manager'}) \n",
    "            RETURN n\n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        for row in cursor:\n",
    "            print(\"CREATED::\", row[0])\n",
    "        \n",
    "        \n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH (a:Person {name: 'Joe'}), (b:Person {name: 'Smith'}) CREATE (a)-[r:workWith {weight: 5}]->(b)\n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        \n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH (a:Person {name: 'Smith'}), (b:Person {name: 'Tom'}) CREATE (a)-[r:workWith {weight: 3}]->(b)\n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        \n",
    "        # When data inserted or updated, You must commit.\n",
    "        conn.commit()\n",
    "    except Exception as ex:\n",
    "        print(type(ex), ex)\n",
    "        # if exception occurs, you must rollback all transaction. \n",
    "        conn.rollback()\n",
    "\n",
    "with conn.cursor() as cursor:\n",
    "    try:\n",
    "        print(\"------- [Select Vertices] --------\")\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ MATCH (n) RETURN n $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        for row in cursor:\n",
    "            vertex = row[0]\n",
    "            print(vertex.id, vertex.label, vertex[\"name\"], vertex[\"title\"])\n",
    "            print(\"-->\", vertex)\n",
    "            \n",
    "        print(type(cursor))\n",
    "        print(\"------- [Select Paths] --------\")\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ MATCH p=()-[]->() RETURN p LIMIT 10 $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        for row in cursor:\n",
    "            path = row[0]\n",
    "            v1 = path[0]\n",
    "            e1 = path[1]\n",
    "            v2 = path[2]\n",
    "            print(v1.gtype , v1[\"name\"], e1.gtype , e1.label, e1[\"weight\"], v2.gtype , v2[\"name\"])\n",
    "            print(\"-->\", path)\n",
    "    except Exception as ex:\n",
    "        print(type(ex), ex)\n",
    "        # if exception occurs, you must rollback even though just retrieving.\n",
    "        conn.rollback()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f45f7c7d-2256-4aea-92f6-e0ad71017feb",
   "metadata": {},
   "outputs": [],
   "source": [
    "with conn.cursor() as cursor:\n",
    "    try:\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH p=(a)-[b]->(c) RETURN a.name, label(b), c.name \n",
    "            $$) as (a agtype, b agtype, c agtype); \"\"\", (GRAPH_NAME,))\n",
    "        for row in cursor:\n",
    "            print(row[0], row[1], row[2])\n",
    "            print(\"-->\", row)\n",
    "    except Exception as ex:\n",
    "        print(ex)\n",
    "        conn.rollback()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c40b9076-d45e-43e6-85ae-296ba68a3031",
   "metadata": {},
   "outputs": [],
   "source": [
    "with conn.cursor() as cursor:\n",
    "    try :\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            CREATE (n:Person {name: 'Jack', title: 'Developer', score:-6.45161290322581e+46}) \n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,) )\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            CREATE (n:Person {name: 'John', title: 'Developer'}) \n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH (a:Person {name: 'Jack'}), (b:Person {name: 'John'}) \n",
    "            CREATE (a)-[r:workWith {weight: 2}]->(b)\n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        \n",
    "        # When data inserted or updated, You must commit \n",
    "        conn.commit()\n",
    "    except Exception as ex:\n",
    "        print(ex)\n",
    "        conn.rollback()\n",
    "\n",
    "with conn.cursor() as cursor:\n",
    "    try :\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH p=(a )-[b]->(c) RETURN a , b, c \n",
    "            $$) as (ta agtype, tb agtype, tc agtype); \"\"\", (GRAPH_NAME,))\n",
    "        \n",
    "        for row in cursor:\n",
    "            print(row[0][\"name\"], row[1].properties, row[2][\"name\"])\n",
    "            \n",
    "    except Exception as ex:\n",
    "        print(ex)\n",
    "        conn.rollback()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "29ffe1b7-86df-446a-9df0-635be25a9eea",
   "metadata": {},
   "outputs": [],
   "source": [
    "with conn.cursor() as cursor:\n",
    "    try:\n",
    "        cursor.execute(\"\"\"SELECT * from cypher(%s, $$ \n",
    "            MATCH p=(a)-[b]->(c) RETURN p  \n",
    "            $$) as (v agtype); \"\"\", (GRAPH_NAME,))\n",
    "        for row in cursor:\n",
    "            path = row[0]\n",
    "            print(path[0][\"name\"], path[1].id, path[1].properties, path[2][\"name\"])\n",
    "    except Exception as ex:\n",
    "        print(ex)\n",
    "        conn.rollback()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "428e6ddf-3958-49ff-af73-809b9a1ce42b",
   "metadata": {},
   "outputs": [],
   "source": [
    "age.deleteGraph(conn, GRAPH_NAME)\n",
    "conn.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a4819e39-9f37-4dd5-bdbd-337b6d289158",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "02041ef2-9761-4eb3-b270-ded23e1caa6d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.9.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
