Jira issue originally created by user benja-m-1:
I tried to use the findBy method with limit and offset parameters against an Oracle database using oci8 driver.
The query seems to executed successfully but the hydrator fails when hydrating data as there is a DOCTRINE_ROWNUM column appending the "limit" clause.
Here is the exception thrown : "Notice: Undefined index: DOCTRINE_ROWNUM in [...]/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php line 183"
I was thinking about something like this to fix this issue (?):
Maybe there is a better approach, what are your thoughts?
Comment created by benja-m-1:
I implemented it in my forks :
It works for me, but I didn't write unit tests.
Did you have time to have a look at this issue?
Comment created by stof:
Please send a pull request when you submit a fix. It is the proper way to submit them for review. When we want to see things waiting for review, we look at the list of pending PRs, not at all comments of the issue tracker to find links in them.
And I can tell you that this change has a big issue: it introduces a state in the database platform whereas it is currently stateless. This is likely to cause some issues when using more than 1 query (which is a common use case).
Hi Christophe thank you for your feedback.
I didn't send a PR because I wanted someone sharing his thoughts about what I suggested in this current issue. However I don't really understand the stateless argument, can you explain a bit more?
Otherwise how would do you proceed to tell Doctrine not to hydrate platform-specific columns?
If you run several queries, they will be affected by the extra columns of previous requests, which is wrong
Comment created by @beberlei:
I think the ObjectHydrator catches this by skipping undefined columns, i think we might just have overoptimized the SimpleObjectHydrator a little bit.