Permalink
Browse files

Initial commit. A bit after the last release, not ready for the next …

…one.
  • Loading branch information...
0 parents commit 951f548ad1a23b193c374e0940b266c1d8fb776b @muir committed Feb 29, 2012
Showing with 55,261 additions and 0 deletions.
  1. +226 −0 CHANGELOG
  2. +339 −0 COPYING
  3. +90 −0 MANIFEST
  4. +14 −0 META.yml
  5. +41 −0 Makefile.PL
  6. +1,082 −0 README
  7. +3,962 −0 lib/OOPS.pm
  8. +1,306 −0 lib/OOPS.pod
  9. +278 −0 lib/OOPS/DBO.pm
  10. +352 −0 lib/OOPS/DBOdebug.pm
  11. +213 −0 lib/OOPS/Fsck.pm
  12. +612 −0 lib/OOPS/GC.pm
  13. +3,628 −0 lib/OOPS/OOPS1001.pm
  14. +142 −0 lib/OOPS/OOPS1001/mysql.pm
  15. +207 −0 lib/OOPS/OOPS1001/pg.pm
  16. +192 −0 lib/OOPS/OOPS1001/sqlite.pm
  17. +3,553 −0 lib/OOPS/OOPS1003.pm
  18. +100 −0 lib/OOPS/OOPS1003/Setup.pm
  19. +142 −0 lib/OOPS/OOPS1003/mysql.pm
  20. +222 −0 lib/OOPS/OOPS1003/pg.pm
  21. +152 −0 lib/OOPS/OOPS1003/sqlite.pm
  22. +3,771 −0 lib/OOPS/OOPS1004.pm
  23. +138 −0 lib/OOPS/OOPS1004/Setup.pm
  24. +172 −0 lib/OOPS/OOPS1004/mysql.pm
  25. +244 −0 lib/OOPS/OOPS1004/pg.pm
  26. +26 −0 lib/OOPS/OOPS1004/sqlite.pm
  27. +175 −0 lib/OOPS/OOPS1004/sqlite2.pm
  28. +183 −0 lib/OOPS/OOPS1004/sqlite_v3.pm
  29. +158 −0 lib/OOPS/Setup.pm
  30. +167 −0 lib/OOPS/TxHash.pm
  31. +41 −0 lib/OOPS/Upgrade/To1003.pm
  32. +82 −0 lib/OOPS/Upgrade/To1004.pm
  33. +47 −0 lib/OOPS/Upgrade/To1005.pm
  34. +244 −0 lib/OOPS/mysql.pm
  35. +323 −0 lib/OOPS/pg.pm
  36. +26 −0 lib/OOPS/sqlite.pm
  37. +200 −0 lib/OOPS/sqlite2.pm
  38. +235 −0 lib/OOPS/sqlite_v3.pm
  39. +14,412 −0 postprocess_log
  40. +338 −0 t/1-gc.t
  41. +953 −0 t/OOPS/OOPS1001/TestCommon.pm
  42. +973 −0 t/OOPS/OOPS1003/TestCommon.pm
  43. +1,239 −0 t/OOPS/OOPS1004/TestCommon.pm
  44. +1,323 −0 t/OOPS/TestCommon.pm
  45. +31 −0 t/OOPS/TestSetup.pm
  46. +54 −0 t/auto_init.t
  47. +153 −0 t/big.t
  48. +98 −0 t/blobsize.t
  49. +141 −0 t/bug-array.t
  50. +122 −0 t/bug-refs.t
  51. +17 −0 t/db-slowtest.t
  52. +324 −0 t/delete.t
  53. +88 −0 t/failures.t
  54. +245 −0 t/front_end.t
  55. +158 −0 t/hash.t
  56. +946 −0 t/integrety.t
  57. +967 −0 t/integrety1001.t
  58. +967 −0 t/integrety1003.t
  59. +964 −0 t/integrety1004.t
  60. +271 −0 t/misc.t
  61. +228 −0 t/misc2.t
  62. +11 −0 t/ndb-front_end.t
  63. +13 −0 t/ndb-integrety.t
  64. +350 −0 t/nulls-sqlite.t
  65. +391 −0 t/nulls.t
  66. +1,107 −0 t/perlworks.t
  67. +781 −0 t/perlworks2.t
  68. +7 −0 t/pod.t
  69. +589 −0 t/ref.t
  70. +702 −0 t/ref2.t
  71. +199 −0 t/scalarhash.t
  72. +413 −0 t/slowtest.t
  73. +174 −0 t/tran1.t
  74. +158 −0 t/tran1a.t
  75. +100 −0 t/tran2.t
  76. +109 −0 t/tran3.t
  77. +107 −0 t/tran4.t
  78. +125 −0 t/tran5.t
  79. +135 −0 t/tran5a.t
  80. +133 −0 t/tran6a.t
  81. +123 −0 t/tran6b.t
  82. +134 −0 t/tran6c.t
  83. +133 −0 t/tran6d.t
  84. +127 −0 t/tran7.t
  85. +208 −0 t/upgrade1001.t
  86. +224 −0 t/upgrade1003.t
  87. +227 −0 t/upgrade1004.t
  88. +111 −0 t/walk_hash.t
  89. +261 −0 t/z-array.t
  90. +12 −0 t/zzz-drop.t
226 CHANGELOG
@@ -0,0 +1,226 @@
+2008/03/05 - 0.2004 - mysql improvement
+
+ Mysql:
+ Mysql version 5.0.45 does not have the SERIALIZABLE
+ locking problem. 5.0.22 does. "FOR UPDATE" is no
+ longer added to queries when mysql version 5.0.45 or
+ above is detected.
+
+ The mysql slow deadlock detection problem turned out to be
+ a bug in the test suite.
+
+2007/05/11 - 0.2003 - major release: garbage collection, bugfixes, mysql
+
+ New features:
+
+ * Garbage collection. It's a separate module and
+ must be explicitly invoked. It allows you to clean up
+ persistent data that leaks. OOPS::GC
+
+ * Reference integrety checker. OOPS::Fsck.
+
+ * new iterator function: walk_hash()
+
+ * new helper class: OOPS::TxHash
+
+ Mysql:
+
+ It turns out that mysql SERIALIZABLE locking does
+ not currently work. To get OOPS to function properly,
+ it is necessary to add "FOR UPDATE" to every SELECT.
+ This essentially single-threads access to the database
+ becauase every OOPS instance reads a common row.
+
+ See: http://bugs.mysql.com/?id=28029
+
+ Bugfixes:
+
+ Calling virtual_object on something and then
+ deleting the something and the calling commit()
+ bombed.
+
+ lock() didn't make it to the public interface -- oops!
+
+ Multiple changes to the reference counts of unloaded
+ objects would corrupt the unloaded objects.
+
+ virtual_object() requests were not always saved.
+
+ readonly mode didn't work on mysql.
+
+ $ENV{OOPS_SYNC} was ignored.
+
+ There is now a workaround for SQLite 1.x's file descriptor
+ leak.
+
+ Cleanup:
+
+ TestCommon.pm is no longer installed.
+
+ New tests:
+
+ Garbage collection.
+
+ Reference counting
+
+ Old versions still work
+
+ New iterator.
+
+2006/09/27 - 0.1008 - new feature: lock()
+
+ New methods:
+
+ lock() places a write-lock on a object or scalar.
+
+ Other changes:
+
+ Added new test suites (tran6a.t, tran6b.t, tran6c.t, tran6d.t)
+
+2006/09/22 - 0.1007 - minor features, fixes, repass the full regression suite
+
+ New methods
+
+ clear_cache() removes the read-cache for virtual hashes.
+
+ New constructor arguments:
+
+ readonly Disable commit() and use a less stringent
+ transaction isolation level.
+
+ less_caching Don't do read caching for virtual hashes.
+
+ Re-supported:
+
+ DBD::SQLite It turns out that the problem with
+ DBD::SQLite 1.x is that it leaks file
+ descriptors. As long as you don't create
+ too many OOPS instances, it's safe to use.
+ (Though because of the filedescriptor leak
+ issue it can't pass the whole regression
+ test suite)
+
+ Changes:
+
+ SCALAR now returns the exact count of items for tied
+ hashes.
+
+ Bugfixes:
+
+ Calling virtual_object() on a not-yet-persistent object
+ saved the object in it's state as of the call to
+ virtual_object() rather than when commit() was called.
+
+ Removed some warnings generated by the debugging code.
+
+2006/09/19 0.1006 - minor tweaks
+
+ Added the readonly option.
+
+ Updated the address for the GPL reference.
+
+2006/09/06 0.1005 - minor tweaks
+
+ Removed some extraneous debugging printouts
+
+ Allow 'username' and 'pass' as aliases for 'user' and 'password' when
+ connecting to databases.
+
+2006/07/04 0.1004 - focus on: bugfixes, PostgreSQL schema change, SQLite2 vs SQLite 3
+
+ Change the license to GPL.
+
+ This release tested on:
+
+ perl 5.8.7, PostgreSQL 8.1.4, Ubuntu 6.06LTS (Dapper Drake)
+
+ perl 5.8.7, DBD::SQLite2 0.33 (sqlite 2.8.15), Ubuntu 6.06LTS (Dapper Drake)
+
+ perl 5.8.7, mysql 4.1.15, Ubuntu 6.06LTS (Dapper Drake)
+
+ Not supported (did not pass tests):
+
+ perl 5.8.7, DBD::SQLite 1.12 (sqlite 3.2.7), Ubuntu 6.06LTS (Dapper Drake)
+
+ New features:
+
+ none
+
+ Bugfixes:
+
+ References to hash keys where the key is a large string now work
+ (except when using mysql).
+
+ Change one column definition in the PostgreSQL schema. This
+ fixes a PostgreSQL compatability bug and this change is required
+ whem moving from PostgreSQL 7.* to PostgreSQL 8.*. Reported
+ by Jon Schindler. http://rt.cpan.org/Ticket/Display.html?id=19723
+
+ Bugfix: schema upgrades from 1001 to 1003 weren't always recorded
+ correctly.
+
+ Don't fail tests if Test::MultiFork isn't installed.
+
+ SQLite 3 wouldn't auto-initialize.
+
+ SQLite 3 gives different error messages and that caused errors
+ rather than raising a deadlock exception.
+
+ Old versions of Data::Compare will recursse infinately. Don't
+ even try! Unfortunantly Debian (and Ubuntu) include very old
+ versions of Data::Compare.
+
+ Other changes:
+
+ Ran ispell on OOPS.pod and made other edits.
+
+ Added new tests (misc2.t, big.t, upgrade1003.t, failures.t)
+
+ Added a new test harness: supercross7()
+
+ Added support for DBD::SQLite2, auto-detect SQLite version.
+
+ Dropped ab-loopspeed.t in favor of Time::HiRes.
+
+2004/05/19 0.1003 - focus on: new features
+
+ Added hooks to upgrade the schema when the schema is changed and
+ to use an older version of OOPS if auto_upgrade isn't set and the
+ schema can't be upgraded.
+
+ Added auto_initialize.
+
+ Removed some of the redundent regression tests.
+
+ Fixed a bug in the tran1.t and tran1a.t test scripts.
+
+2004/05/16 0.1002 - focus on: Pg bugfix and SQLite addtion
+
+ Added support for SQLite.
+
+ Discovered that DBD::Pg doesn't handle ascii null without
+ using bind_param(). Now bind_param() is used.
+
+ Added more regression tests: null.t, bigblob.t
+
+ Modified slowtest.t so we can skip to a specific test.
+
+ Removed the requirement that a username be specified for DBI.
+
+ The problem I had with SET TRANSACTION ISOLATION LEVEL in mysql
+ turns out to be my mistake: it sets the level for the _next_
+ transaction, not the current one. The LOCK IN SHARE MODE hack
+ has been removed.
+
+ Added load_object() to the OOPS::FrontEnd to match the documentation
+ on hand-written queries. Also added dbh() to OOPS::FrontEnd to support
+ hand-written queries.
+
+ Added a quick check for schema version compatability.
+
+ Minor changes to the license.
+
+2004/05/10 0.1001 - focus on: reliability
+
+ Initial revision
+
Oops, something went wrong.

0 comments on commit 951f548

Please sign in to comment.