
[patch] functions and variables in do_* collide
Reported by Martin Kihlgren | April 15th, 2008 @ 09:18 AM
Which means that if you load both do_mysql and do_postgres, the first to load will be the driver used in both cases (cConnection_initialize is defined in both files).
Its probably valid in do_sqlite3 as well, but my patch doesnt cover that.
What I did was just declare all functions static except the init functions, which have to be non-static to work.
This has uncovered another bug for me, though. If the bug is caused by this error or not is hard to tell, since it is impossible to trigger without fixing this issue.
To duplicate the new bug, just run:
ruby -I"/usr/lib/ruby/gems/1.8/gems/rspec-1.1.3/lib" -S rcov --exclude lib\/spec,bin\/spec,config\/boot.rb --exclude spec,environment.rb --text-summary --sort coverage --sort-reverse --only-uncovered -o "coverage" "/usr/lib/ruby/gems/1.8/gems/rspec-1.1.3/bin/spec" -- "/home/zond/gitroot/dm-core/spec/integration/postgres_adapter_spec.rb" "/home/zond/gitroot/dm-core/spec/integration/mysql_adapter_spec.rb" --format specdoc
Note, however, that:
ruby -I"/usr/lib/ruby/gems/1.8/gems/rspec-1.1.3/lib" -S rcov --exclude lib\/spec,bin\/spec,config\/boot.rb --exclude spec,environment.rb --text-summary --sort coverage --sort-reverse --only-uncovered -o "coverage" "/usr/lib/ruby/gems/1.8/gems/rspec-1.1.3/bin/spec" -- "/home/zond/gitroot/dm-core/spec/integration/mysql_adapter_spec.rb" "/home/zond/gitroot/dm-core/spec/integration/postgres_adapter_spec.rb" --format specdoc --colour
now works fine (and it caused errors before this patch).
Comments and changes to this ticket
-
Dan Kubb (dkubb) April 15th, 2008 @ 10:39 AM
- Milestone cleared.
-
Martin Kihlgren April 16th, 2008 @ 08:07 AM
- Title changed from [patch] functions in do_mysql and do_postgres collide to [patch] functions and variables in do_* collide
Ok, here is a patch that makes all global vars and all functions except the init functions in do_sqlite3, do_postgres and do_mysql static.
Now all tests in dm-core pass (for revision b5656eafd85e90f5ce352688e6530b39cac3cac1 with this patch applied, the next revision had other broken tests).
-
Guy van den Berg (guyvdb) April 16th, 2008 @ 10:43 AM
- Assigned user set to Guy van den Berg (guyvdb)
- State changed from new to resolved
All functions and variables made static - except init function. Patch applied.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »