dpq2 icon indicating copy to clipboard operation
dpq2 copied to clipboard

added support for all native user data types PostgreSQL 15

Open llucenic opened this issue 1 year ago • 7 comments

Hello, I have added support for all native PostgreSQL user data types (ranges, multiranges, network, bitstrings, geometry, xml and text search vector/query), for now except for multi-dimensional arrays and user-defined types. In order to add support for OidType.PointArray I had to explicitely distinguish between Point[] and Polygon by defining a solid struct Point in dpq2.conv.geometry. Please review and incorporate the changes in the code base on your sole discretion.

llucenic avatar Mar 19 '23 19:03 llucenic

@llucenic Thank you!

In order to add support for OidType.PointArray I had to explicitely distinguish between Point[] and Polygon by defining a solid struct Point in dpq2.conv.geometry

Such case is need to cover by integration test

denizzzka avatar Mar 19 '23 22:03 denizzzka

Denis, I do not understand fully your point regarding integration test. Is it possible you kind of fix the tests yourself?

llucenic avatar Mar 20 '23 06:03 llucenic

It is common practice to immediately implement a test with a PR, yep? Is there some problem with this? Tests can be added into native_tests.d file.

denizzzka avatar Mar 20 '23 09:03 denizzzka

I have corrected the code, so that it passes at least some of the check jobs. However, the rest of the failures are beyond the scope of my PR.

At the moment, I cannot do much more. Maybe later, and I am not sure though the code I added follows your design of the library. Therefore I have asked you to add the tests yourself while integrating the changes into your code base.

llucenic avatar Mar 21 '23 10:03 llucenic

Maybe implementation of ranges as a separate PR would be the best solution. Otherwise this PR is too big.

denizzzka avatar Mar 21 '23 12:03 denizzzka

However, the rest of the failures are beyond the scope of my PR.

Yes, looks like this issues itroduced by new compilers and will be solved not in this repository.

But I am worry about lack of integration tests for ranges. This is fundamentally new structures, I would like to cover with tests at least one of each base type.

If it is too difficult feel free to copy and paste here your actual code what works with it and I'll try to implement test by myself

denizzzka avatar Mar 21 '23 14:03 denizzzka

If integration tests for ranges are what makes you integrate this PR in your library, then I think I can provide them. Assuming that we avoid splitting this PR, which does not make much sense to me (as implementation of ranges is only code in conv/ranges.d).

llucenic avatar Mar 21 '23 14:03 llucenic