Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Quoted wildcards in associations #12

Closed
pewterfish opened this Issue · 5 comments

3 participants

@pewterfish

Good afternoon,

I'm building a couple of projects that back on to idiorm/paris at the moment, and I seem to have hit a bug in the code that manages associations between Models. Essentially, when I attempt a "has_many_through()" call that should succeed, PDO throws an exception that indicates that somewhere along the line, something is quoting the SQL query incorrectly.

At some point, the system attempts a "SELECT table.* FROM table JOIN...", which is quoted as "table"."*", which fails because * is not a recognised column in that table. I can reproduce the bug in both MySQL and PostgreSQL (where both libraries otherwise perform very well, incidentally).

Example code can be found at my friend Aquarion's server, here: http://cenote.gkhs.net/~aquarion/idiormtest/ - that's running on MySQL.

We suspect, as the URL indicates, that the bug itself is likely in idiorm, but we're only really seeing its effects through paris. Feel free to move this issue to the idiorm issue-list if you prefer, of course.

@j4mie
Owner

Hi,

Thanks for this report. The test cases are brilliant, and allowed me to track down the bug straight away.

It was a problem with Idiorm, but I'll leave the ticket here as it will require an update to Paris' tests to fix completely.

The problem was that Idiorm wasn't correctly checking for the wildcard ("*") when quoting column names. I've added in a simple check for this, and pushed it to the develop branch.

https://github.com/j4mie/idiorm/tree/develop

Would you might trying this out and ensuring that it fixes your issue before I merge it into the master branch?

Thanks again!

@pewterfish

Hello,

That looks like a fix, yes. The code in the develop branch does the Right Thing under PHP/PostgreSQL. I'm waiting for aquarion to test the develop branch under MySQL, but if it works for you I suspect we can call it fixed.

Thanks for the prompt reply

@j4mie
Owner

Thanks. For the record, I've tested this on SQLite too.

@aquarion

I've now tested that on MySQL and it's fine too. Thanks

@j4mie
Owner

Just tagged version 1.1.1 of Idiorm (fixing the bug) and Paris (updating incorrect tests).

Thanks again for the report.

Jamie

@j4mie j4mie referenced this issue from a commit
@j4mie Merge branch 'develop'
* develop:
  Update changelog
  Fix incorrect tests, see issue #12
d8f5967
@schmod schmod referenced this issue from a commit in schmod/dakota
@j4mie Fix incorrect tests, see issue #12 28c8bad
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.