tree 5c8043cfcb33e25f52c067e730cb80d3cd243a26
parent c3f8caffd017e17055eda7cce1676ed1e94e8439
author Muhammad Taha Naveed <m.taha.naveed27@gmail.com> 1707254578 +0500
committer GitHub <noreply@github.com> 1707254578 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJlwqMyCRC1aQ7uu5UhlAAAAfYQADCvWuwxxY7jTKacvhLfZxjN
 O+Ca1OvTMfO1shjZxJTohVVvnky9qBIhLd6NCfodR9oFhsgWoYMqIkSq9TqQEpbK
 vkEQS9oSBn2nO4cJ8d3hqtTXaeynAl8roir5c21k+p9hckXwrEcXahza1YnCuzgj
 ZRgP2G2FefBtnBpBbURVKYQCg/w/U867izxB07j2vIogiH0wusOAiyX2I1MndK/J
 qucZecbolElBLVqihCuZlNhCu1EfgurcUWxlAr3mlJ7G+aeEY/6LL9FgVZV70Alj
 2EvREY3vAYHAYqTzW0M6EJxsP2Mg6TJhUWdPVJCviIE1weJ+idIZfQOTgdKj/Fuy
 hntbaV0M8ojIzeYliEWDsfxG8ep2bJQKuRZ2l+Vm8V3xuGMzl4GfTZOPVB0t3nKI
 OAuIhKBCXYFz3Czlg86RgvWkWth/i9VCrDXz1RhI9r4S9qAi2TqK1+mLNjumN9w0
 ViwzRPalGvNL3YoVI6+/n2PjjNlIbcBsi2oPTZjd/dIV6j8mzBzw8+/h2jwXQ9G9
 oUJ8Y7zXr/+uwNVUpG6WRn4+WqPzD4tqryC5pfRjjKhU1KUbsOMMzD6M8msv4/7f
 GmDOcA5ETmcVjJmUjJN9ytJDw+CR45Ge1OA6Z1eYI162DXVlQk+k12VlWb9ieb1h
 23XduQLhpYY8BIiqWrJP
 =3TA0
 -----END PGP SIGNATURE-----
 

Add optional parameter '=' in property constraints (#1516)

- The '=' operator checks if the original property value(as a whole) is
  equal to the given value.

  e.g MATCH (n {school:{addr:{city:'Toronto'}}}) tranforms into

      either(in case age.enable_containment is off)
      `properties.school.addr.city = 'Toronto'`

      or(in case age.enable_containment is on)
      `properties @> {school:{addr:{city:'Toronto'}}}`

      But MATCH (n ={school:{addr:{city:'Toronto'}}}) will tranform into

      either(in case age.enable_containment is off)
      `properties.school = {addr:{city:'Toronto'}}`

      or(in case age.enable_containment is on)
      `properties @>> {school:{addr:{city:'Toronto'}}}`

- Added @>> and <<@ operators. Unlike @> and <@, these operators does
  not recurse into sub-objects.

- Added regression tests.

- Added changes in sql files to version update template file.