tree df3ff8856a6d0a8303bc70c83cbbc335296fd45c
parent ec4a2002ea51f3bc5bb40f65fec39d21f9c42c81
author Matheus Farias de Oliveira Matsumoto <83461020+MatheusFarias03@users.noreply.github.com> 1680563798 -0300
committer GitHub <noreply@github.com> 1680563798 +0900
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJkK15WCRBK7hj4Ov3rIwAAuM4IAAk+wrYPoi0Lh51bwUh4XE8V
 Z6SLiCgCIcKRiGYYhP2iaEIddPN0KFYkXVENRsj+8HaAy1X8cH+BV4x7kzHMYZVM
 JxgRWEib3355djzBSes+0rNxM87EgqDID7utj3vhXZMDdP7OtfSoeLUSYeJgrgQO
 W0ae2NV7X0DcKsldfYHo4o85P3W5oNO/O/QM+GuzBhchbThV2JOYJxhM/xcabAFy
 yW+Wo9yMQo0YISoOB0dm0/dd+5bGheyxYqu2HehtKY3ajgR16q7SmJEhuvaq+dX7
 RcP0TZXl9BH8Fe5DkTESiLgwmibpY0qlMUexI8Z3YKwzlsOWYCkSN3enbPNo2To=
 =iyRV
 -----END PGP SIGNATURE-----
 

[Age label inheritance] - VLE edge inheritance: regression tests (#789)

* Added inheritance to create_vlabel function

* Only two parameters to create_vlabel function, inheritance works as -> child_name:parent_name

* create_vlabel receives 3 arguments, the third is a list of parent labels

* Elements in the array are fetched properly

* Error when merging multiple inherited definitions fixed, but still needs to fix the testing

* Changed how create_vlabel handles if there is a parent name in the array

* Added some checking with the is_inheriting variable to see if the label is inheriting

* Added inheritance to create_elabel

* Changed create_label function calls

* changes to match new needed arguments (boolean is_inheriting).

* Tests for edge and vertex label inheritance added for the cypher_create.sql file

* Regression test for VLE edge inheritance

* VLE finds child of child edge

* cypher_vle test passed.

---------

Co-authored-by: Marco A S <aureliojuniorcmrj@hotmail.com>