Re: [VOTE] Apache AGE 1.3.0 Release for PostgreSQL 12

2023-04-23 Thread Nicholas Sorrell
+1 (binding)


Checked:

- Signature and Hash

- Tags and Links

- LICENSE and NOTICE

- No unexpected binary files


Performed smoke test which includes:

- Build Dockerfile (which builds project)

- Run Docker image

- Runs commands (create graph/node) via psql verifying basic functionality

- Create new system user to run test suite

- Verify tests pass (24 passed)



From: John Gemignani 
Sent: Friday, April 21, 2023 8:01 PM
To: dev@age.apache.org 
Subject: [VOTE] Apache AGE 1.3.0 Release for PostgreSQL 12

Dear Apache Community,

Please carefully read all instructions as they may have changed since the
last vote thread.

This is an official vote for Apache AGE release 1.3.0 for PostgreSQL 12.
This release corrects an issue with the RELEASE notes from the previous
vote.

To learn more about Apache AGE, please see http://age.apache.org/

Functionalities included and addressed in this release are:

*
Apache AGE 1.3.0 for PostgreSQL 12 Release Notes

NOTE: Due to modifications to core tables, there is no upgrade
path from previous versions.

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

!!! PLEASE VERIFY ALL of the below tags, hash, links, signatures, and keys
!!!

The git tag to be discussed and voted on:
https://github.com/apache/age/releases/tag/PG12/v1.3.0-rc1

The git commit hash:
commit 61e73f7327ceb35988cca3949f17687dd11bf690

The release files for 1.3.0, can be found at:
https://dist.apache.org/repos/dist/dev/age/PG12/1.3.0.rc1/

Signatures used for AGE RCs can be found in this file:
https://downloads.apache.org/age/KEYS

The fingerprint of key to sign release artifacts:
4293 0603 8E35 AC05 4DBB  4B58 26B6 CD9D CD5B 0045

For information about the contents of this release see:
https://github.com/apache/age/releases/tag/PG12/v1.3.0-rc1
*

!!! IMPORTANT PLEASE READ !!!

Please note that Apache REQUIRES the following information to be in your
response to the vote, in order for it to be valid -


- If you are a binding vote, a PMC, then you MUST state it in your
  response. Otherwise, leave it out. Do not mention it if you are
  not a PMC.

- You MUST state what you checked to support your vote. See
  the samples given below for guidance.

- You MUST, at a minimum, check the above tags, hash,
   links, and signatures for validity.

- You CANNOT just say, +1 or 0. You need to state what items
  you checked.

If your vote DOES NOT follow the above guidelines or samples below, it may
be thrown out.

!!! IMPORTANT PLEASE READ !!!

Please vote as follows -

+1, Release this package as Apache AGE 1.3.0 for PostgreSQL 12.
  0, I won't get in the way 

Re: [VOTE] Apache AGE 1.3.0 Release for PostgreSQL 12

2023-04-23 Thread Mohamed Mokhtar
+1

- Signature and Hash => checked
- Tags and links => checked
- No unexpected binary files => checked
- Validity of release notes => checked
- Regression tests => checked

** There is a file named META.json that needs to be updated some fields are
outdated like the version is set to 1.1 * *
https://github.com/apache/age/blob/release/PG12/1.3.0/META.json

Regards,
Mohamed Mokhtar,

On Sat, Apr 22, 2023 at 11:08 PM Muhammad Taha Naveed
 wrote:

> +1
>
> - Signature and Hash => checked
> - Tags and links => checked
> - No unexpected binary files => checked
> - Validity of release notes => checked
> - Regression tests => checked (24 passing)
> - Driver tests => checked
>
> Regards
> Muhammad Taha Naveed
>
> On Sat, Apr 22, 2023 at 5:02 AM John Gemignani  >
> wrote:
>
> > Dear Apache Community,
> >
> > Please carefully read all instructions as they may have changed since the
> > last vote thread.
> >
> > This is an official vote for Apache AGE release 1.3.0 for PostgreSQL 12.
> > This release corrects an issue with the RELEASE notes from the previous
> > vote.
> >
> > To learn more about Apache AGE, please see http://age.apache.org/
> >
> > Functionalities included and addressed in this release are:
> >
> > *
> > Apache AGE 1.3.0 for PostgreSQL 12 Release Notes
> >
> > NOTE: Due to modifications to core tables, there is no upgrade
> > path from previous versions.
> >
> > Implement CALL ...[YIELD] for cypher functions. (#630)
> > Graph names with the empty string '' are no longer allowed. (#251)
> > Fix typos at multiple locations. (#470)
> > Fix Bug with CALL... [YIELD], clause ignores WHERE.
> > Fix EXPLAIN to allow for nested cypher commands.
> > Fix delete_global_graphs and add regression tests. (#336)
> > Invalid labels now return NULL.
> > Update CONTRIBUTING.md (#348)
> > Fix null pointer on name compare. (#376)
> > Fix Travis CI warning messages.
> > Additional regression tests added for age_global_graph. (#341)
> > Readme Added for AGE-JDBC-Driver. (#383)
> > Updated volatility categories for many functions.
> > Fix issue 339 - entities in WHERE clause have wrong Expr. (#391)
> > Create complete graph function. (#342) (#662)
> > Fix issue 317: Graph naming convention. (#349)
> > Update SET clause to support assigning a map to a variable. (#468)
> > Patch to address PR 203 that appears to be inactive. (#671)
> > Add additional comments for create_graph function. (#582)
> > Optimize age_exists function. (#586)
> > Implement plus-equal operator in SET clause. (#638)
> > Implement CI test for python driver. (#587)
> > Move from travis CI to github actions for build. (#673)
> > Update all driver CIs to Github actions.
> > Fix build warnings.
> > Updated Readme for drivers folder. (#642)
> > Remove async from function definitions. (#680)
> > Barbell graph generation (#648) and Barbell regress tests. (#708)
> > Update Python Driver ANTLR 4.9.3 -> 4.11.1 (#706)
> > Fix WITH ignoring WHERE clause. (#646)
> > Implement isEmpty() predicate function. (#710)
> > Fix cypher function input argument checks. (#718)
> > Fix Issue 693 - server termination from return exists(path). (#721)
> > Update regression tests for cypher_with. (#725)
> > Fix issue 733 - create_complete_graph() terminates the server. (#734)
> > Prevent MATCH from following OPTIONAL MATCH. (#740)
> > Fix property constraints against resolved variables. (#724) (#751) (#701)
> > (#747)
> > Include invalid labels in reused variables. (#751) (#762)
> > Fix update_entity_tuple to use correct CommandId. (#769)
> > Remove check for scalar agtypes in unwind. (#736)
> > Update PG12 CI workflows. (#776)
> > Update readme and version for python driver. (#780)
> > Update README.md
> > *
> >
> > !!! PLEASE VERIFY ALL of the below tags, hash, links, signatures, and
> keys
> > !!!
> >
> > The git tag to be discussed and voted on:
> > https://github.com/apache/age/releases/tag/PG12/v1.3.0-rc1
> >
> > The git commit hash:
> > commit 61e73f7327ceb35988cca3949f17687dd11bf690
> >
> > The release files for 1.3.0, can be found at:
> > https://dist.apache.org/repos/dist/dev/age/PG12/1.3.0.rc1/
> >
> > Signatures used for AGE RCs can be found in this file:
> > https://downloads.apache.org/age/KEYS
> >
> > The fingerprint of key to sign release artifacts:
> > 4293 0603 8E35 AC05 4DBB  4B58 26B6 CD9D CD5B 0045
> >
> > For information about the contents of this release see:
> > https://github.com/apache/age/releases/tag/PG12/v1.3.0-rc1
> > *
> >
> > !!! IMPORTANT PLEASE READ !!!
> >
> > Please note that Apache REQUIRES the following information to be in your
> > response to the vote, in order for it to be valid -
> >
> >
> > - If you are a binding vote, a PMC, then you MUST state it in your
> >   response. Otherwise, leave it out. Do not mention it if you are
> >  

[GitHub] [age] CapnSpek commented on issue #772: Research potential designs to implement IDs for vertices, edges, and labels. Designs that would generally work with existing code and that would permit

2023-04-23 Thread via GitHub


CapnSpek commented on issue #772:
URL: https://github.com/apache/age/issues/772#issuecomment-1519159475

   Hey team,
   So I came up with some ideas and since the shared document is still not 
available yet, I thought of putting them on dev to because of good readability, 
formatting and share-ability.
   Would love to have your insights on it. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] M4rcxs commented on issue #831: Python Driver : Whats the difference between execCypher() and cypher() in age.py

2023-04-23 Thread via GitHub


M4rcxs commented on issue #831:
URL: https://github.com/apache/age/issues/831#issuecomment-1519147512

   ### Cypher()
   
   This module takes a **single** argument, which is the Cypher query string to 
be executed, and returns the results as a list of records. Each record is a 
dictionary object that maps the names of the columns in the result to their 
corresponding values.
   ### execCypher()
   
   This function  executes the Cypher query string using a **cursor**, and then 
closes the cursor and connection **before** returning the result. Using a 
cursor to execute the query allows for efficient retrieval of query results and 
can reduce memory consumption in cases where the result set is large.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] CapnSpek commented on issue #829: Reuse of variable with label constraint in concurrent MATCH clauses does not error out

2023-04-23 Thread via GitHub


CapnSpek commented on issue #829:
URL: https://github.com/apache/age/issues/829#issuecomment-1519144826

   > `MATCH (u),(u:Person) RETURN u`
   > 
   > But this same query errors out in AGE saying `ERROR: multiple labels for 
variable 'u' are not supported`
   
   I'm not sure why, but this query does not give an error for me. I'm using 
AGE 1.3.0 and it gives this output.
   
   ```
   test=# SELECT * from cypher('test', $$
 MATCH (u)  
  
 MATCH (u:Person)
 RETURN u
   $$) as (a agtype);
a   
   
   

{"id": 281474976710657, "label": "", "properties": {"name": 
"bobby"}}::vertex
{"id": 281474976710658, "label": "", "properties": {"age": 25, "name": 
"bobby"}}::vertex
{"id": 1125899906842625, "label": "Person", "properties": {"name": 
"bobby"}}::vertex
{"id": 1125899906842626, "label": "Person", "properties": {"name": 
"bobby"}}::vertex
{"id": 1407374883553281, "label": "Bobby", "properties": {"name": 
"bobby"}}::vertex
{"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   (6 rows)
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] MuhammadTahaNaveed commented on issue #829: Reuse of variable with label constraint in concurrent MATCH clauses does not error out

2023-04-23 Thread via GitHub


MuhammadTahaNaveed commented on issue #829:
URL: https://github.com/apache/age/issues/829#issuecomment-1519109605

   > Ideally, the second MATCH should work as an intersection over the results 
of the first MATCH. So the result should be only one vertex " {"id": 
844424930131969, "label": "Person", "properties": {"name": "bobby"}}::vertex". 
This is how it works in Neo4j as well, and the second MATCH does perform 
intersection in case of properties with AGE as well. As demonstrated here
   > 
   > ```
   > test=# SELECT * from cypher('test', $$
   >   CREATE ({name:'bobby', age:25}),
   >  (:Person {name:'bobby'}),
   >  (:Bobby {name:'bobby', age:25, cigar:2})
   > $$) as (a agtype);
   >  a 
   > ---
   > (0 rows)
   > 
   > test=# SELECT * from cypher('test', $$
   >   MATCH (u {name:'bobby'})
   >   MATCH (u {cigar:2})
   >   RETURN u
   > $$) as (a agtype);
   >  a 
 
   > 

   >  {"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   > (1 row)
   > ```
   > 
   > Another interesting result is this
   > 
   > ```
   > test=# SELECT * from cypher('test', $$
   >   MATCH (u:Bobby {name:'bobby'})
   >   MATCH (u:Person)
   >   RETURN u
   > $$) as (a agtype);
   >  a 
 
   > 

   >  {"id": 1407374883553281, "label": "Bobby", "properties": {"name": 
"bobby"}}::vertex
   >  {"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   > (2 rows)
   > ```
   > 
   > And this
   > 
   > ```
   > test=# SELECT * from cypher('test', $$
   >   MATCH (u:Bobby {name:'bobby'})
   >   MATCH (u:Person {age:25})
   >   RETURN u
   > $$) as (a agtype);
   >  a 
 
   > 

   >  {"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   > (1 row)
   > ```
   > 
   > It appears that AGE performs filtration based on the first MATCH clause, 
ignores the label (if any) of the second clause, only performs filtration based 
on the given properties and returns the result.
   > 
   > It should instead give an error regarding support of multiple labels (as 
of now).
   > 
   > Hence, yes, I would call it a bug.
   > 
   > Given that in case 2 labels are provided in 2 different MATCH clauses, it 
does not perform an intersection of the 2 MATCH clauses, instead completely 
ignores the label provided in the second MATCH clause.
   
   Thanks for your valuable response.
   
   In addition to your response, the below query also filters out results in 
neo4j
   
   `MATCH (u),(u:Person) RETURN u`
   
   But this same query errors out in AGE saying `ERROR:  multiple labels for 
variable 'u' are not supported`
   
   So the query
   `MATCH (u) MATCH (u:Person) RETURN` should also error out the same until it 
is supported.
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] panosfol commented on issue #829: Reuse of variable with label constraint in concurrent MATCH clauses does not error out

2023-04-23 Thread via GitHub


panosfol commented on issue #829:
URL: https://github.com/apache/age/issues/829#issuecomment-1519092397

   So it does perform filtering according to the properties but not on the 
labels. I stand corrected then, I agree with you that this is actually a bug, 
an interesting one i might add.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] CapnSpek commented on issue #829: Reuse of variable with label constraint in concurrent MATCH clauses does not error out

2023-04-23 Thread via GitHub


CapnSpek commented on issue #829:
URL: https://github.com/apache/age/issues/829#issuecomment-1519091388

   Ideally, the second MATCH should work as an intersection over the results of 
the first MATCH. So the result should be only one  vertex
   " {"id": 844424930131969, "label": "Person", "properties": {"name": 
"bobby"}}::vertex".
   This is how it works in Neo4j as well, and the second MATCH does perform 
intersection in case of properties with AGE as well. As demonstrated here
   
   ```
   test=# SELECT * from cypher('test', $$
 CREATE ({name:'bobby', age:25}),
(:Person {name:'bobby'}),
(:Bobby {name:'bobby', age:25, cigar:2})
   $$) as (a agtype);
a 
   ---
   (0 rows)
   
   test=# SELECT * from cypher('test', $$
 MATCH (u {name:'bobby'})
 MATCH (u {cigar:2})
 RETURN u
   $$) as (a agtype);
a   
   
   

{"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   (1 row)
   ```
   
   Another interesting result is this
   ```
   test=# SELECT * from cypher('test', $$
 MATCH (u:Bobby {name:'bobby'})
 MATCH (u:Person)
 RETURN u
   $$) as (a agtype);
a   
   
   

{"id": 1407374883553281, "label": "Bobby", "properties": {"name": 
"bobby"}}::vertex
{"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   (2 rows)
   ```
   And this
   ```
   test=# SELECT * from cypher('test', $$
 MATCH (u:Bobby {name:'bobby'})
 MATCH (u:Person {age:25})
 RETURN u
   $$) as (a agtype);
a   
   
   

{"id": 1407374883553282, "label": "Bobby", "properties": {"age": 25, 
"name": "bobby", "cigar": 2}}::vertex
   (1 row)
   ```
   
   It appears that AGE performs filtration based on the first MATCH clause, 
ignores the label (if any) of the second clause, only performs filtration based 
on the given properties and returns the result.
   
   It should instead give an error regarding support of multiple labels (as of 
now).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] panosfol commented on issue #829: Reuse of variable with label constraint in concurrent MATCH clauses does not error out

2023-04-23 Thread via GitHub


panosfol commented on issue #829:
URL: https://github.com/apache/age/issues/829#issuecomment-1519084515

   When you create the vertex with "properties" : {"name": "bobby"} and 
"Person" as a label, it creates a new label table for vertices and inserts that 
vertex in that table. Also it assigns an ID that is generated according to the 
label table ID. When you create another vertex and assign it a different label 
(in this case "Bobby") the same procedure happens but a different ID is 
assigned on the vertex because the table that the vertex will be inserted is 
the "Bobby" label table (that has a different ID).
   
   Since those 2 vertices have different ID's and exist in different tables the 
above query works as intented. Implementing multiple labels and actually 
fetching one vertex with multiple labels needs a complete refactor, but for now 
the way creating a vertex and assigning a label works, I wouldn't call it a 
bug. Tell me if I missed something


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age-website] Mghrabi opened a new pull request, #151: [doc] correct all labels` names

2023-04-23 Thread via GitHub


Mghrabi opened a new pull request, #151:
URL: https://github.com/apache/age-website/pull/151

   * I corrected all labels` names to match code examples, this should make 
examples clear to readers


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] ahmadtash7 commented on issue #354: AGE Onboarding - Learn Postgres Basics Group 2

2023-04-23 Thread via GitHub


ahmadtash7 commented on issue #354:
URL: https://github.com/apache/age/issues/354#issuecomment-1519053204

   ### Summary of Chapters 1 - 3 of The Internals of PostgreSQL
   
   _**Ch - 1: Database Cluster, Databases, and Table**_
   
   Logical structures of database clusters are explained by defining database 
clusters and how all database objects are managed by OIDs.
   
   Physical structure of database clusters are explained by illustrating the 
base directory that includes subdirectories and files, including the base. 
Furthermore, the layouts of database cluster, database, and files associated 
with tables and indexes and Tablespaces are explained.
   
   Then, the internal layout of a heap table file - divided into pages (or 
blocks) - is mentioned. The pages inside the heap table file may contain head 
tuple, line pointer, or header data.
   
   Finally, methods of writing and reading tuples (sequential and B-tree index 
scans) are talked about.
   
   **_Ch- 2: Process and Memory Architecture_**
   
   PostgreSQL is a client/server type relational database management system 
with multiprocess architecture. Its types _postgres server process_, _backend 
process_, _background processes_, _replication associated processes_, and 
_background worker process_ are all highlighted and explained.
   
   Then, the reader’s focus is diverted to memory architecture - _local_ and 
_shared memory areas_.
   
   _**Ch - 3: Query Processing**_
   
   A backend process handles all queries issued by the connected client. There 
are five subsystems in this background process, namely; parser, analyser, 
rewriter, planner, and executor. All their roles have been defined here and 
visualised with diagrams.
   
   Then, cost estimation in single-table query is done. Three types of costs 
start-up, run, and total are introduced. To retrieve data from the tables, 
scans are employed in postgreSQL. Each scan has their own costs. Scans include 
sequential and index scans. 
   
   We then have the Sort, used for sorting operations like merge etc. Then, we 
learn to create the plan tree of a single table query. We first preprocess try 
to figure out the cheapest access path and then, create a plan tree. 
   
   We see how the executor performs using the EXPLAIN command and reading the 
output.
   
   PostgreSQL has a number of Join operations that have further variations: 
nested loop join, materialised loop join, merge join, and hash join.- join 
access paths and join nodes. Each Join has a JoinPath structure.
   
   A plan tree for multiple-table query can also be made using the same steps 
as mentioned priorly to make a plan tree for a single-table query.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age-website] rrrokhtar opened a new pull request, #150: Fixed the issues on User defined functions

2023-04-23 Thread via GitHub


rrrokhtar opened a new pull request, #150:
URL: https://github.com/apache/age-website/pull/150

   
   Fixed the following issues:
   
  1. Missing ')' closing parentheses
  2. Missing typecasting
  3. Result is incorrect (sqrt(25) is 5 while the result is mentioned as 25)
   
   Resolved that issue #149 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age-website] rrrokhtar opened a new issue, #149: Issues on the user defined functions query

2023-04-23 Thread via GitHub


rrrokhtar opened a new issue, #149:
URL: https://github.com/apache/age-website/issues/149

   The following example is not working properly which is at 
https://age.apache.org/age-manual/master/functions/user_functions.html
   It has multiple issues:
   1. Missing ')' closing parentheses  
   2. Missing typecasting 
   3. Result is incorrect (sqrt(25) is 5 while the result is mentioned as 25)
   
   Test environment: 
   
   PG: 11
   AGE: 1.2.0
   OS: Ubuntu 18
   
   **The output after having getting the closing parentheses fixed:**
   
   ```SQL
   rrr=# SELECT *
   rrr-# FROM cypher('test', $$
   rrr$# RETURN pg_catalog.sqrt(25)
   rrr$# $$) as (result agtype);
   ERROR:  function pg_catalog.sqrt(agtype) does not exist
   LINE 3: RETURN pg_catalog.sqrt(25)
 ^
   HINT:  No function matches the given name and argument types. You might need 
to add explicit type casts.
   ```
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [age] moaz178 commented on issue #831: Python Driver : Whats the difference between execCypher() and cypher() in age.py

2023-04-23 Thread via GitHub


moaz178 commented on issue #831:
URL: https://github.com/apache/age/issues/831#issuecomment-1518995598

   The cypher() method sends a Cypher query to the Neo4j server and returns a 
cursor object that allows you to iterate over the results of the query. The 
cursor object is similar to a generator that generates rows of data as you 
iterate over it. The cypher() method is useful if you want to process the 
results of a query row-by-row,meaning, if you have a large dataset and want to 
avoid loading it all into memory at once.
   
   The execCypher() method sends a Cypher query to the Neo4j server and returns 
the result of the query as a Python object. The type of the Python object 
depends on the type of the result returned by the Cypher query. For example, if 
the query returns a single value, execCypher() returns that value as a Python 
scalar type. If the query returns a set of values, execCypher() returns a list 
of dictionaries, where each dictionary represents a row of the result set and 
maps column names to values.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@age.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org