<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jawad Ali Abbasi</title>
    <description>The latest articles on DEV Community by Jawad Ali Abbasi (@jawadaliabbasi6).</description>
    <link>https://dev.to/jawadaliabbasi6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1019100%2Fa21c0764-a19b-41bf-9d01-11045f7c8a7b.png</url>
      <title>DEV Community: Jawad Ali Abbasi</title>
      <link>https://dev.to/jawadaliabbasi6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jawadaliabbasi6"/>
    <language>en</language>
    <item>
      <title>Bitnine | A Tech Company</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Fri, 30 Jun 2023 10:35:43 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/bitnine-2m5i</link>
      <guid>https://dev.to/jawadaliabbasi6/bitnine-2m5i</guid>
      <description>&lt;p&gt;Sup Guys!&lt;/p&gt;

&lt;p&gt;Today I will be talking about my experience at Bitnine.&lt;/p&gt;

&lt;p&gt;Bitnine Global Inc. is a technology company that specializes in graph database solutions and services. Their flagship product, AgensGraph, is the world's first RDB+GDB (Relational Database + Graph Database) multi-model graph database. In addition to this, Bitnine provides various solutions and services based on graph technology.&lt;/p&gt;

&lt;p&gt;I have been an intern at Bitnine from January 2023 to June 2023 and in this period, I had the pleasure to work with many great people and grow under their supervision. Bitnine provided us with opportunities to work on different types of projects and tasks that made me learn many new skills. When you join the company, you become part of a growing community working for different products such as &lt;strong&gt;AGE&lt;/strong&gt; and &lt;strong&gt;AgensGraph&lt;/strong&gt; and making them better and better.&lt;/p&gt;

&lt;p&gt;From content-writing and tweeting to activities on stack overflow and coding in different languages and frameworks, Bitnine provided me opportunities to work on all these areas and enhance my capabilities. I have worked on different projects for Bitnine which contribute towards betterment of Apache AGE and add new functionalities for the tool. I had always wanted to work on something that developers like us would use to create new applications for customers and Bitnine provided me with the opportunity.&lt;/p&gt;

&lt;p&gt;I am very thankful for all my project leads and especially my operation managers who guided and helped me throughout my internship period. It is because of them that the work environment was always healthy and fun. I enjoyed all my weekly meetings and always felt open to share anything work related or not. Jayden Hwang, Yashvinger Rana and Gwanhyeon Shin are one of the best people I have ever worked with, and they are one of the main reasons my time at Bitnine was an exceptional experience. The friendly and supportive environment they created in all the meetings made me very comfortable and eager to actively contribute to our work.&lt;/p&gt;

&lt;p&gt;I am grateful for Bitnine to have given me this opportunity to work in a growing and learning environment and the chance to work with so many professional and supportive people. I am really thankful to all these guys.&lt;/p&gt;

&lt;p&gt;Following links are for some of the products of the company.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank You!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>APACHE AGE | How To Use AGE Viewer</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Tue, 27 Jun 2023 09:20:45 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-how-to-use-age-viewer-od4</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-how-to-use-age-viewer-od4</guid>
      <description>&lt;p&gt;Welcome Back!&lt;/p&gt;

&lt;p&gt;So we had successfully installed AGE Viewer in the last blog. Let's see how to use it.&lt;/p&gt;

&lt;p&gt;So when we open it, we get this screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vApPBGbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cokxnpflnraxl0an7rfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vApPBGbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cokxnpflnraxl0an7rfk.png" alt="Image description" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill in the fields according to your configurations and it shall send you to the main transactions page where we will write queries and get results.&lt;/p&gt;

&lt;p&gt;In the query tab, we can write any query we want, as shown in the snap below, and press the Arrow button to get results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--27pzdKgz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozy70kkeoqdwz5oup8vv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--27pzdKgz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozy70kkeoqdwz5oup8vv.png" alt="Image description" width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the results are ready, they are displayed below in graphs composed of nodes and edges if there are any relations between the nodes. An example snap is displayed below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DYp8_e2N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/77k5yn7l3c5b7fgh6r4f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DYp8_e2N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/77k5yn7l3c5b7fgh6r4f.png" alt="Image description" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this is all for the working of Apache AGE Viewer. A helpful tool to graphically view and understand your schemas and their intra-relationships.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoodBye!&lt;/p&gt;

</description>
      <category>apacheage</category>
    </item>
    <item>
      <title>Apache AGE | AGE Viewer (Setup)</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Tue, 27 Jun 2023 09:04:08 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-age-viewer-4fn1</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-age-viewer-4fn1</guid>
      <description>&lt;p&gt;Hi Guys!&lt;/p&gt;

&lt;p&gt;In this blog we will learn about a Graphical tool for Apache AGE. AGE Viewer is a GUI based tool to send cypher queries to databases and getting results in graphical form which are displayed in a combination of nodes and edges, the result a graph as a result of the query.&lt;/p&gt;

&lt;p&gt;In this blog, we shall see how to setup AGE Viewer on our systems.&lt;/p&gt;

&lt;p&gt;Let's get started!&lt;/p&gt;

&lt;p&gt;First open terminal from inside a database folder like we created in the previous blogs for PostgreSQL. We'll assume its name to be 'demo' here.&lt;/p&gt;

&lt;p&gt;So inside 'demo' directory on terminal, we have to clone AGE Viewer repository.&lt;/p&gt;

&lt;p&gt;Here's the link for that,&lt;br&gt;
                    &lt;strong&gt;&lt;a href="https://github.com/apache/age-viewer"&gt;https://github.com/apache/age-viewer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And the command will be,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;git clone &lt;a href="https://github.com/apache/age-viewer"&gt;https://github.com/apache/age-viewer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After cloning is done, move inside the cloned directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cd age-viewer/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, an essential requirement is that you have NodeJS installed on your system. If you don't have it, install it before proceeding.&lt;/p&gt;

&lt;p&gt;Now run,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm run setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and when it's done,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm run start&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's it. You've successfully installed AGE Viewer on your system. We'll see how to use it in the next blog. Till then...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay Tuned!&lt;/p&gt;

</description>
      <category>apacheage</category>
    </item>
    <item>
      <title>Apache AGE | RTE &amp; PNSI</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Thu, 15 Jun 2023 08:24:01 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-rte-pnsi-34h</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-rte-pnsi-34h</guid>
      <description>&lt;p&gt;Sup!&lt;/p&gt;

&lt;p&gt;Welcome back to another one in the series for Apache AGE. In this blog, we will discuss about two structs that are being used in PostgreSQL for the same purpose &lt;strong&gt;RTE&lt;/strong&gt; &amp;amp; &lt;strong&gt;PNSI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;RTE, &lt;strong&gt;R&lt;/strong&gt;ange &lt;strong&gt;T&lt;/strong&gt;able &lt;strong&gt;E&lt;/strong&gt;ntry, is a kind of temporary table that SQL queries or statements operate on. Not necessarily a table, RT also refers to other things like subqueries or any other record sets. It is a structure defined in PostgreSQL and is used in the parsing stage to hold data.&lt;/p&gt;

&lt;p&gt;PNSI,&lt;strong&gt;P&lt;/strong&gt;arse &lt;strong&gt;N&lt;/strong&gt;ame &lt;strong&gt;S&lt;/strong&gt;pace &lt;strong&gt;I&lt;/strong&gt;tem, is another struct defined in parse_node.h file. It has replaced RTE in PostgreSQL 13. Although it is a different structure, PNSI contains a field for RTE.&lt;/p&gt;

&lt;p&gt;Apache AGE supports older versions of PostgreSQL and is being developed and updated for newer versions. Older versions of PostgreSQL use RTE which has been replaced by PNSI, another approach to do the same task in newer versions. Now, AGE still uses RTE which may become redundant over time.&lt;/p&gt;

&lt;p&gt;But, after thorough research on the topic and source code of AGE, we were able to conclude that replacing RTE with PNSI would create problems that it would solve. Hence, we will continue on with RTE.&lt;/p&gt;

&lt;p&gt;So that's all for this one. A discussion about a possible change in Apache AGE which was discontinued.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay Tuned For More!&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>apacheage</category>
    </item>
    <item>
      <title>AGESQL | CLI Tool For AGE (Demo)</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Sun, 28 May 2023 10:37:37 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/agesql-cli-tool-for-age-demo-44mk</link>
      <guid>https://dev.to/jawadaliabbasi6/agesql-cli-tool-for-age-demo-44mk</guid>
      <description>&lt;p&gt;Welcome Back Guys!&lt;/p&gt;

&lt;p&gt;In the last blog we learned how to install and setup age cli on our systems. Now we will see how to run and query it to perform different operations.&lt;/p&gt;

&lt;p&gt;Let's get on with it.&lt;/p&gt;

&lt;p&gt;So first of all make sure postgresql server is running and create a database in it if one doesn't already exist.&lt;/p&gt;

&lt;p&gt;Now, open terminal from age directory inside AGE_CLI folder and run the following command:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;./agesql demo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This command will start the AGESQL. &lt;strong&gt;"demo"&lt;/strong&gt; here specifies the database name which will be used to send queries. You have to replace this demo db name with your own database name.&lt;/p&gt;

&lt;p&gt;After running the command, the next lines will change a bit, prompting you to enter queries to run.&lt;/p&gt;

&lt;p&gt;Now to run cypher queries, first we have to type the backslash character &lt;strong&gt;"\"&lt;/strong&gt; and hit the Return key so that CLI can enter the mode to understand cypher queries.&lt;/p&gt;

&lt;p&gt;Next, we have to write queries and get results.&lt;br&gt;
( Remember to end queries with a semicolon &lt;strong&gt;";"&lt;/strong&gt; )&lt;/p&gt;

&lt;p&gt;The following screenshot of terminal shows an example of a sample query.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vpnh2IvH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m53swcrqxwvodiv0pts2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vpnh2IvH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m53swcrqxwvodiv0pts2.png" alt="Image description" width="386" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So that's how you can use AGE CLI Tool to write cypher queries to the database. Will come back with more interesting stuff. Stay Tuned...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age/tree/AGE_CLI"&gt;https://github.com/apache/age/tree/AGE_CLI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bye!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>AGESQL | CLI Tool For AGE (Setup)</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Sat, 27 May 2023 10:58:27 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/agesql-cli-too-for-age-setup-4n32</link>
      <guid>https://dev.to/jawadaliabbasi6/agesql-cli-too-for-age-setup-4n32</guid>
      <description>&lt;p&gt;Hi Guyz!&lt;/p&gt;

&lt;p&gt;This blog will cover a new topic of Apache AGE. In this one, we will learn about a command-line tool under development for Apache AGE, namely AGESQL. &lt;/p&gt;

&lt;p&gt;Just psql is a command-line tool for postgresql to write queries for manipulating databases, agesql is a command-line tool that can be used to query the server with cypher queries without calling an additional function to parse the query to SQL syntax.&lt;/p&gt;

&lt;p&gt;So, let's see how you can setup agesql on your system.&lt;/p&gt;

&lt;p&gt;Note: To run agesql on your system, you must have postgresql 15 setup on your system and ready to go.&lt;/p&gt;

&lt;p&gt;Now, first clone the AGE_CLI branch from age repository on your system. Open the respective folder from terminal and run the following commands:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-&amp;gt; cd age&lt;br&gt;
-&amp;gt; export PATH="path to postgresql15/bin:$PATH"&lt;br&gt;
-&amp;gt; export PGDATA="path to postgresql15/bin"&lt;br&gt;
-&amp;gt; export USE_PGXS=TRUE&lt;br&gt;
-&amp;gt; flex -b -Cfe -p -p -o ‘cypher.c’ cypher.l&lt;br&gt;
-&amp;gt; bison -d cypher.y&lt;br&gt;
-&amp;gt;make&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If make command is successful that means agesql is installed and ready to run on your system.&lt;/p&gt;

&lt;p&gt;That's all for now. In the next blog, we will see how to run agesql and write cypher queries in it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age/tree/AGE_CLI"&gt;https://github.com/apache/age/tree/AGE_CLI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoodBye!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Apache AGE 1.3.0 For PostgreSQL 11 | Features &amp; Bug Fixes</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Fri, 26 May 2023 18:46:31 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-130-for-postgresql-11-features-bug-fixes-4keb</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-130-for-postgresql-11-features-bug-fixes-4keb</guid>
      <description>&lt;p&gt;Welcome Back Guys!&lt;/p&gt;

&lt;p&gt;In this blog, we will continue on with information about the new releases of Apache AGE.&lt;/p&gt;

&lt;p&gt;This one will show all the new features and bug fixes in AGE 1.3.0 for PostgreSQL 11. So let's get to them. Here's a list of all the features and fixes in this version:&lt;/p&gt;

&lt;p&gt;( The numbers you see in paranthesis with a hash sign are the issue numbers which you can check in detail in the github link for AGE repository given at the end. )&lt;/p&gt;

&lt;p&gt;Add additional comments for create_graph function. (#582)&lt;br&gt;
Optimize age_exists function. (#586)&lt;br&gt;
Implement plus-equal operator in SET clause. (#638)&lt;br&gt;
Implement CI test for python driver. (#587)&lt;br&gt;
Move from travis CI to github actions for build. (#673)&lt;br&gt;
Update all driver CIs to Github actions.&lt;br&gt;
Fix build warnings.&lt;br&gt;
Fix golang driver workflow (#563)&lt;br&gt;
Updated Readme for drivers folder. (#642)&lt;br&gt;
Removed async from function definitions. (#680)&lt;br&gt;
Barbell graph generation (#648) and Barbell regress tests. (#708)&lt;br&gt;
Updated Python Driver ANTLR 4.9.3 -&amp;gt; 4.11.1 (#706)&lt;br&gt;
Modify docker url for JDBC driver tests (#716)&lt;br&gt;
Fix WITH ignoring WHERE clause. (#646)&lt;br&gt;
Implement isEmpty() predicate function. (#710)&lt;br&gt;
Fix cypher function input argument checks. (#718)&lt;br&gt;
Fix Issue 693 - server termination from return exists(path). (#721)&lt;br&gt;
Update regression tests for cypher_with. (#725)&lt;br&gt;
Fix issue 733 - create_complete_graph() terminates the server. (#734)&lt;br&gt;
Prevent MATCH from following OPTIONAL MATCH. (#740)&lt;br&gt;
Fix property constraints against resolved variables. (#724) (#751) (#701)&lt;br&gt;
(#747)&lt;br&gt;
Include invalid labels in reused variables. (#751) (#762)&lt;br&gt;
Remove check for scalar agtypes in unwind. (#736)&lt;br&gt;
Update PG11 CI workflows.&lt;br&gt;
Update readme and version for python driver. (#780)&lt;/p&gt;

&lt;p&gt;So that's all for this release. Stay tuned for more...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See Ya!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Apache AGE 1.3.0 For PostgreSQL 12 | Complete Features &amp; Bug Fixes</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Wed, 26 Apr 2023 16:30:12 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-130-for-postgresql-12-complete-features-bug-fixes-2k50</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-130-for-postgresql-12-complete-features-bug-fixes-2k50</guid>
      <description>&lt;p&gt;Greetings!&lt;/p&gt;

&lt;p&gt;Just like the last blog described the details about the release Apache AGE 1.3.0 for PostgreSQL 13, this one's gonna list the features and fixes for AGE 1.3.0 for PostgreSQL 12.&lt;/p&gt;

&lt;p&gt;Following is a list of al the features and bug fixes for this release. (The number following hash &lt;strong&gt;'#'&lt;/strong&gt; is the key to the issue number on the github repository, the link for which is provided at the end.)&lt;/p&gt;

&lt;p&gt;Implement CALL ...[YIELD] for cypher functions. (#630)&lt;br&gt;
Graph names with the empty string '' are no longer allowed. (#251)&lt;br&gt;
Fix typos at multiple locations. (#470)&lt;br&gt;
Fix Bug with CALL... [YIELD], clause ignores WHERE.&lt;br&gt;
Fix EXPLAIN to allow for nested cypher commands.&lt;br&gt;
Fix delete_global_graphs and add regression tests. (#336)&lt;br&gt;
Invalid labels now return NULL.&lt;br&gt;
Update CONTRIBUTING.md (#348)&lt;br&gt;
Fix null pointer on name compare. (#376)&lt;br&gt;
Fix Travis CI warning messages.&lt;br&gt;
Additional regression tests added for age_global_graph. (#341)&lt;br&gt;
Readme Added for AGE-JDBC-Driver. (#383)&lt;br&gt;
Updated volatility categories for many functions.&lt;br&gt;
Fix issue 339 - entities in WHERE clause have wrong Expr. (#391)&lt;br&gt;
Create complete graph function. (#342) (#662)&lt;br&gt;
Fix issue 317: Graph naming convention. (#349)&lt;br&gt;
Update SET clause to support assigning a map to a variable. (#468)&lt;br&gt;
Patch to address PR 203 that appears to be inactive. (#671)&lt;br&gt;
Add additional comments for create_graph function. (#582)&lt;br&gt;
Optimize age_exists function. (#586)&lt;br&gt;
Implement plus-equal operator in SET clause. (#638)&lt;br&gt;
Implement CI test for python driver. (#587)&lt;br&gt;
Move from travis CI to github actions for build. (#673)&lt;br&gt;
Update all driver CIs to Github actions.&lt;br&gt;
Fix build warnings.&lt;br&gt;
Updated Readme for drivers folder. (#642)&lt;br&gt;
Remove async from function definitions. (#680)&lt;br&gt;
Barbell graph generation (#648) and Barbell regress tests. (#708)&lt;br&gt;
Update Python Driver ANTLR 4.9.3 -&amp;gt; 4.11.1 (#706)&lt;br&gt;
Fix WITH ignoring WHERE clause. (#646)&lt;br&gt;
Implement isEmpty() predicate function. (#710)&lt;br&gt;
Fix cypher function input argument checks. (#718)&lt;br&gt;
Fix Issue 693 - server termination from return exists(path). (#721)&lt;br&gt;
Update regression tests for cypher_with. (#725)&lt;br&gt;
Fix issue 733 - create_complete_graph() terminates the server. (#734)&lt;br&gt;
Prevent MATCH from following OPTIONAL MATCH. (#740)&lt;br&gt;
Fix property constraints against resolved variables. (#724) (#751) (#701)&lt;br&gt;
(#747)&lt;br&gt;
Include invalid labels in reused variables. (#751) (#762)&lt;br&gt;
Fix update_entity_tuple to use correct CommandId. (#769)&lt;br&gt;
Remove check for scalar agtypes in unwind. (#736)&lt;br&gt;
Update PG12 CI workflows. (#776)&lt;br&gt;
Update readme and version for python driver. (#780)&lt;br&gt;
Update README.md&lt;/p&gt;

&lt;p&gt;So that's all the features for this release and that's all for now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoodBye!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Apache AGE 1.3.0 | Complete Features &amp; Bug Fixes</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Wed, 26 Apr 2023 15:38:10 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-130-complete-features-bug-fixes-1gdo</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-130-complete-features-bug-fixes-1gdo</guid>
      <description>&lt;p&gt;Hi Guyz!&lt;/p&gt;

&lt;p&gt;Welcome back to the Apache AGE 1.3.0 series. This blog contains a comprehensive list of all the features and bug fixes incorporated in the latest release of AGE.&lt;/p&gt;

&lt;p&gt;So let's get on with it. Here's the list: (The numbers following the hash &lt;strong&gt;'#'&lt;/strong&gt; sign are the issue numbers that were solved from the github repository. Link given at the end.)&lt;/p&gt;

&lt;p&gt;Implement CALL ...[YIELD] for cypher functions. (#630)&lt;br&gt;
    Graph names with the empty string '' are disallowed. (#251)&lt;br&gt;
    Fix typos at multiple locations. (#470)&lt;br&gt;
    Fix Bug with CALL... [YIELD], clause ignores WHERE.&lt;br&gt;
    Fix EXPLAIN to allow for nested cypher commands.&lt;br&gt;
    Fix delete_global_graphs and add regression tests. (#336)&lt;br&gt;
    Invalid labels now return NULL.&lt;br&gt;
    Update CONTRIBUTING.md (#348)&lt;br&gt;
    Fix null pointer on name compare. (#376)&lt;br&gt;
    Fix Travis CI warning messages.&lt;br&gt;
    Additional regression tests added for age_global_graph. (#341)&lt;br&gt;
    Readme Added for AGE-JDBC-Driver. (#383)&lt;br&gt;
    Updated volatility categories for many functions.&lt;br&gt;
    Fix issue 339 - entities in WHERE clause have wrong Expr. (#391)&lt;br&gt;
    Create complete graph function. (#342) (#662)&lt;br&gt;
    Fix issue 317: Graph naming convention. (#349)&lt;br&gt;
    Update SET clause to support assigning a map to a variable. (#468)&lt;br&gt;
    Patch to address PR 203 that appears to be inactive. (#671)&lt;br&gt;
    Add additional comments for create_graph function. (#582)&lt;br&gt;
    Optimize age_exists function. (#586)&lt;br&gt;
    Implement plus-equal operator in SET clause. (#638)&lt;br&gt;
    Implement CI test for python driver. (#587)&lt;br&gt;
    Move from travis CI to github actions for build. (#673)&lt;br&gt;
    Update all driver CIs to Github actions.&lt;br&gt;
    Fix build warnings. (#709)&lt;br&gt;
    Updated Readme for drivers folder. (#642)&lt;br&gt;
    Removed async from function definitions. (#680)&lt;br&gt;
    Barbell graph generation (#648) and Barbell regress tests. (#708)&lt;br&gt;
    Updated Python Driver ANTLR 4.9.3 -&amp;gt; 4.11.1 (#706)&lt;br&gt;
    Fix WITH ignoring WHERE clause. (#646)&lt;br&gt;
    Implement isEmpty() predicate function. (#710)&lt;br&gt;
    Fix cypher function input argument checks. (#718)&lt;br&gt;
    Fix Issue 693 - server termination from return exists(path). (#721)&lt;br&gt;
    Update regression tests for cypher_with. (#725)&lt;br&gt;
    Fix issue 733 - create_complete_graph() terminates the server. (#734)&lt;br&gt;
    Prevent MATCH from following OPTIONAL MATCH. (#740)&lt;br&gt;
    Fix property constraints against resolved variables. (#724) (#751)&lt;br&gt;
(#701) (#747)&lt;br&gt;
    Include invalid labels in reused variables. (#751) (#762)&lt;br&gt;
    Fix update_entity_tuple to use correct CommandId. (#769)&lt;br&gt;
    Remove check for scalar agtypes in unwind. (#736)&lt;br&gt;
    Update PG13 CI workflows. (#775)&lt;br&gt;
    Update readme and version for python driver. (#780)&lt;br&gt;
    Update README.md&lt;/p&gt;

&lt;p&gt;So that's all for this release. In the next blog, we are going to discuss AGE 1.3.0 release for PostgreSQL 12.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay Tuned!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>APACHE AGE 1.3.0 Release For PostgreSQL 13 | Features</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Tue, 11 Apr 2023 10:56:23 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-130-release-for-postgresql-13-6o</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-130-release-for-postgresql-13-6o</guid>
      <description>&lt;p&gt;Hello!&lt;/p&gt;

&lt;p&gt;So let's get on with the exciting new features in the newest release of Apache AGE which is AGE 1.3.0 for PostgreSQL 13.&lt;/p&gt;

&lt;p&gt;This release adds additional functionality to the previous versions along with many bug fixes. Some of them are: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph names with the empty string '' are no more allowed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix typos at multiple locations.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix Bug with CALL... [YIELD], clause ignores WHERE.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invalid labels now return NULL.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are just a few of the many new features in this release. A complete list of new features and bug fixes will be provided in the next blog. Be on the Lookout for that!&lt;/p&gt;

&lt;p&gt;Okay so after spending some time with the new release, I checked some features and the results are as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All tests Pass 24/24.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CALL ...[YIELD] works fine for cypher functions as described.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph names with empty strings are no more allowed. NEAT!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Many typos have been fixed as described.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviewed many other changes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signature and Hash |  Checked!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tags and Links |  Checked!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LICENCE and NOTICE |  Checked!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No unexpected binary files |  Checked!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Overall, the release 1.3.0 looks good and is ready to take on the world.&lt;/p&gt;

&lt;p&gt;Learn more here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank You!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>APACHE AGE 1.3.0 Release For PostgreSQL 13</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Tue, 11 Apr 2023 10:36:36 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/apache-age-130-release-for-postgresql-13-c43</link>
      <guid>https://dev.to/jawadaliabbasi6/apache-age-130-release-for-postgresql-13-c43</guid>
      <description>&lt;p&gt;Welcome back Guys!&lt;/p&gt;

&lt;p&gt;Today we will discuss the newest update of Apache AGE. Apache AGE 1.3.0 is about to be released for PostgreSQL 13.&lt;/p&gt;

&lt;p&gt;Let's start from the setup.&lt;/p&gt;

&lt;p&gt;Since this is the first release for PostgreSQL 13, there is no upgrade path from other versions.&lt;/p&gt;

&lt;p&gt;For setting up, we will follow the similar steps as stated in the previous blogs for setting up postgres and AGE. I have attached the link for the respective blog below.&lt;/p&gt;

&lt;p&gt;Installation Process:&lt;br&gt;
&lt;a href="https://dev.to/jawadaliabbasi6/apache-age-installation-process-part-1-k6l"&gt;https://dev.to/jawadaliabbasi6/apache-age-installation-process-part-1-k6l&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just a couple of different steps that should be noted are that, previously we used postgreql version 12 for installation of AGE branch ALPHA that works with postgres 12.&lt;/p&gt;

&lt;p&gt;But for this new version, instead of setting up postgres 12, we will use postgresql 13 and the new branch for AGE 1.3.0. Links for both are attached.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PostgreSQL 13.10 : &lt;br&gt;
&lt;a href="https://www.postgresql.org/ftp/source/v13.10/"&gt;https://www.postgresql.org/ftp/source/v13.10/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apache AGE 1.3.0 : &lt;br&gt;
&lt;a href="https://github.com/apache/age/tree/release/PG13/1.3.0"&gt;https://github.com/apache/age/tree/release/PG13/1.3.0&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The further installation process is similar to the previous versions and can be used as a guide to install AGE 1.3.0.&lt;/p&gt;

&lt;p&gt;Thats all for now. We will discuss the features in the next one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay Tuned!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Using Cypher Queries For Manipulating Graphs | Apache AGE</title>
      <dc:creator>Jawad Ali Abbasi</dc:creator>
      <pubDate>Thu, 30 Mar 2023 13:16:38 +0000</pubDate>
      <link>https://dev.to/jawadaliabbasi6/using-cypher-queries-for-manipulating-graphs-apache-age-1ilb</link>
      <guid>https://dev.to/jawadaliabbasi6/using-cypher-queries-for-manipulating-graphs-apache-age-1ilb</guid>
      <description>&lt;p&gt;Greetings!&lt;/p&gt;

&lt;p&gt;As you all know, cypher queries are on the stage. So let's see how we can use them to create and fetch data.&lt;/p&gt;

&lt;p&gt;Now cypher queries follow a particular syntax, so make you do not make any mistakes. Or even you do, no problem, that's the way to learn!&lt;/p&gt;

&lt;p&gt;First, suppose we have to create a connection between two nodes using of course an edge, we would have to write the following query:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SELECT * FROM cypher('demo', $$ CREATE (:node)-[:edge] -&amp;gt;(:node) $$) AS (a agtype);&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The above command will create two nodes and an edge between them and return the result an an 'agtype'.&lt;/p&gt;

&lt;p&gt;Now, let's see how to retrieve these connections based on some criteria to match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SELECT * FROM cypher('demo', $$ MATCH (n) RETURN n $$) AS (a agtype);&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This command will return all the relations that match our criteria as an agtype.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://age.apache.org/"&gt;https://age.apache.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/apache/age"&gt;https://github.com/apache/age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for now guys!&lt;/p&gt;

&lt;p&gt;Good Bye!&lt;/p&gt;

</description>
      <category>apacheage</category>
      <category>cypher</category>
    </item>
  </channel>
</rss>
