cho2hhun commented on issue #1225:
URL: https://github.com/apache/age/issues/1225#issuecomment-1724693861

   @KamleshKumar427 Thank you for your advice!
   
   I'de read many times the document that you linked, But in that Document, I 
Think There are problems also :(
   
   First
   The Cypher 'List' only printed 'agtype' and with that result, there are 
nothing to do in select query, in a nutshell the 'List' that extracted from 
Cypher doesn't need and play a role as a **list or array**
   For example, to use list that extracted from Cypher,  fi**rst we may cast it 
into 'varchar'**, **second we need to cast it into 'array'**
   **With the example query of that document, the query describe extracting 
list**
   ```
   SELECT *
   FROM cypher('graph_name', $$
       WITH [null] as lst
       RETURN lst
   $$) AS (lst agtype);
   ```
   if u run this query, then list column 'lst' will be extracted. but to 
utilize in SQL query, it is nothing....... it is not array or list even not any 
string!!!! So to use this, maybe need to two-times casting like below
   `SELECT string_to_array(lst::varchar, ',')
   FROM cypher('graph_name', $$
       WITH [null] as lst
       RETURN lst
   $$) AS (lst agtype);'
   actually to use list that extracted cypher need two-times casting for using 
in SQL, SO I dont think it is efficient.....
   **Hence, automatical 'agtype' casting to JSON, ARRAY, any string is really 
needed** 
   
   
   Second the query that descirbed in document you sent is like that
   ```
   SELECT *
   FROM cypher('graph_name', $$
       WITH {listKey: [{inner: 'Map1'}, {inner: 'Map2'}], mapKey: {i: 0}} as m
       RETURN m
   $$) AS (m agtype);
   ```
   but as I mentioned, It has same problem ; **two-times casting**
   after extracting the JSON data from Cypher, then we might cast it into 
'varchar' and 'json'(actually casting to proper json from agtype is 
complex.,....you guys need use regular expression also to properly parse to 
json...., ), and It's cost is too high to cast two-times...
   
   
   
   P.S. in the case of agtype that formed Json, I normally use the below method
   `replace(regexp_replace(**col**::varchar, '::[a-zA-Z0-9\[\]]+', '', 'g'), 
E'\"', '"')::jsonb;`
   I've researched for casting agtype into other datatype, but until now, It is 
at least fine to cast json....
   
   
   **So I think agtype need many improvements in casting problem.**
   
   


-- 
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

Reply via email to