Re: Outreachy 2020-2021 - Neo4j - Weekly reports.

2021-01-27 Thread John Mora
Hi Gaby

Thanks for your report.

Some comments:

Please use constants instead of literal values here:
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L204
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L224
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L251
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L341
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L284

Add javadocs here:
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L278
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L388
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L431
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L487
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L500
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L507

Regarding the EXISTS constraint: IMHO that is a good approach, but let's
make this attribute optional in the mapping and default: false.

Regards,
John

El lun, 25 ene 2021 a las 18:32, gabriela ortiz ()
escribió:

> Hi all.
>
> I wanted to inform the tasks I worked on this week: Jan 16 - Jan 22 .
>
> - Add EXISTS constraints for properties.
> - Develop put method.
> - Enable test of the put & get methods.
> - Switch to fixed version docker image 'neo4j:4.2.2-enterprise' instead of
> 'enterprise' tag.
>
> My code is here: https://github.com/mgov88/gora/tree/GORA-663
>
> I have a question, in Neo4j the null value represent the absence of the
> property/relation:
>
> "In Neo4j, since there is no table schema or equivalent to restrict
> possible properties, non-existence and null are equivalent for node and
> relationship properties. That is, there really is no such thing as a
> property with a null value; null indicates that the property doesn’t exist
> at all."
>
>
> https://neo4j.com/developer/kb/understanding-non-existent-properties-and-null-values/
>
> I added an attribute in the mapping file to specify if the EXISTS
> constraint should be applied, because in the tests sometimes the field
> values are null and there are conflicts with this constraint.
>
>
> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/resources/gora-neo4j-mapping.xml#L22
>
> Is it correct this way?
>
> Regardss
> Gaby
>
> El lun, 18 de ene. de 2021 a la(s) 22:58, gabriela ortiz (
> arqgabyor...@gmail.com) escribió:
>
>> Hi
>>
>> Thanks for your comments. I am working on them.
>>
>> Best regards,
>> Gaby
>>
>> El lun, 18 de ene. de 2021 a la(s) 17:11, John Mora (jhnmora...@gmail.com)
>> escribió:
>>
>>> Hi Gaby.
>>>
>>> Thanks for your update.
>>>
>>> Some comments.
>>>
>>>
>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L156
>>>
>>> Please create EXISTS constraints for the other properties of the Node as
>>> well.
>>>
>>>
>>> https://neo4j.com/docs/cypher-manual/current/administration/constraints/#administration-constraints-prop-exist-nodes
>>>
>>> You can use the mapping parsed from the XML.
>>>
>>>
>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMapping.java#L38
>>>
>>> Please use a specific docker image tag of Neo4j instead of the 'latest'
>>> or 'enterprise'
>>>
>>>
>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java#L60
>>>
>>> This might break the code when a new version of Neo4j is released.
>>>
>>> Regards,
>>> John
>>>
>>> El dom, 17 ene 2021 a las 14:39, gabriela ortiz ()
>>> escribió:
>>>
 Hi all.

 I wanted to inform the tasks I worked on this week: Jan 09 - Jan 15 .

 - Enhance the javadocs documentation.
 - Replace literal values with constants.
 - Develop the put() method of the datastore.
 - Test the put / exists methods.
 - Write a blog for this week.

 My code is here: https://github.com/mgov88/gora/tree/GORA-663

 Regardss
 Gaby

 El lun, 11 de ene. de 2021 a la(s) 09:46, gabriela ortiz (
 arqgabyor...@gmail.com) escribió:

> Hi
>
> Thanks for your comments. I will add the missing documentation and
> thanks for your reminder I will fill the form now.
>
> Best regards,
> Gaby
>
> El lun, 11 de ene. de 2021 a la(s) 00:16, John Mora (
> jhnmora...@gmail.com) escribió:
>
>> Hi.

Re: Add datastore for Elasticsearch. Outreachy Week 8 Report

2021-01-27 Thread John Mora
Hi María.

Thanks for your report.

Some comments.

When a Key is not found in the Datastore the get method should return
 null, but currently a NullPointerException is thrown here:

https://github.com/podorvanova/gora/blob/gora-664/gora-elasticsearch/src/main/java/org/apache/gora/elasticsearch/store/ElasticsearchStore.java#L256

According to the avro documentation: "This data type is used to declare a
fixed-sized field that can be used for storing binary data.", it is similar
to the BYTES data type, but it has a size attribute.

If Elasticsearch has a fixed-sized binary datatype you can use it. But, I
think that is not the case, so If other modules do not implement it, it is
fine to leave it that way.

Best,
John

El dom, 24 ene 2021 a las 8:16, Maria Podorvanova (<
podorvanova.ma...@gmail.com>) escribió:

> Hi,
>
> Report #8
> Period: January, 17 - January, 23
> Activities:
> - Fix createSchema method [1]
>
>1. Added the index mappings while creating the Elasticsearch index
>2. Added getter and setter to enum Datatype
>
> - Implement serialization/deserialization for some Avro data types [2]
>
>1. Implemented serializeFieldValue and deserializeFieldValue methods
>for ARRAY BOOLEAN, BYTES and FIXED Avro data types
>2. Fixed deserialization for STRING Avro data type
>3. Added javadoc descriptions
>
> - The following tests are passing now:
>
>1. testCreateSchema, testAutoCreateSchema for createSchema method
>2. testSchemaExists
>3. testPut
>4. testGet
>
> - Wrote a blog post #4
>
> Here are links to the commits:
> [1]
> https://github.com/podorvanova/gora/commit/6b9c21095fa4e9327328ec881b659c60c58c4941
> [2]
> https://github.com/podorvanova/gora/commit/e459309b3f750af65a181d4904470eaee9c29a2e
>
> Question:
> I didn't quite understand what kind of type is represented by FIXED Avro
> data type. I looked through other modules and found that FIXED case is not
> being processed neither in serialization nor in deserialization, so I did
> the same for now.
>
> Regards,
> Maria
>