aries-framework-go-ext
aries-framework-go-ext copied to clipboard
Full PostgreSQL storage provider/store implementation
The current PostgreSQL storage implementation is incomplete.
In no particular order:
- Some methods are just not implemented at all
- The SetStoreConfig method does not allow tag names to be removed from the store config. Additionally, tag names cannot be added properly - if some existing tag names plus some new ones are used in one call, then the whole operation will fail. There are many difficulties here that require consideration. With the PostgreSQL implementation, tag names are columns. If removing a tag names, do we remove the whole column? If so, the tag information gets destroyed. This isn't true in other implementations (like NoSQL ones), so there's an inconsistency here among implementations.
- Tag names are case-insensitive. For other storage provider implementations, they are case-sensitive. Either this implementation should allow them to be case-sensitive or the interface should specify that they should be case-insensitive in order to ensure consistency among implementations.
- SetStoreConfig is mandatory, but should be optional. This is tricky since we need the columns to exist before doing a Put or Query using those tags (in NoSQL implementations like MongoDB, there are no columns so this isn't a problem).
- Overwriting an existing key-value pair will not update the tags - they should be updated.
- The query method needs to support tag name + tag value queries (currently only tag name queries are supported)
@bobozaur I would like to work on this issue could you assign it to me plz.
@bobozaur can you help me locate Attribute struct inside the file structure, i'am struggling to find it
@SumantxD My bad, the struct rename was already done but I was looking at an older branch when drafting this issue. I updated the issue description to match the main branch.
@bobozaur I have tried solving the issue here is the PR https://github.com/hyperledger/aries-vcx/pull/831