Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Oct 30, 2009
  1. Storage: handle another case where refaddrs are re-used

    When objects fall out of scope, the weakref fires and removes the ref
    from the 'objects' hash (mapping from OIDs to objects) but not the 'ids'
    hash (mapping from refaddrs to OIDs).  If the refaddr is re-used by a
    different object, but the first object has since been re-loaded at a
    *different* address, then the check does not work.  The workaround will
    likely affect programs that customized the 'set_id' schema property,
    unfortunately.  It works by also storing a reference to the weakref
    slot in the 'ids' hash, and checking that one instead.
    Tracked down by Tomas Doran
Commits on Jan 29, 2007
  1. Various documentation fixes.

    Sam Vilain authored
  2. Update Changes.pod for dev. maintenance release

    Sam Vilain authored
  3. Changelog last change

    Sam Vilain authored
  4. RT#24581 - add object propagation to make_id

    Assen Tchorbadjiev authored Sam Vilain committed
    Here's the case:
    The current make_id() call, when inserting objects into the storage,
    does not propagate the $o[bject] to be inserted.
    Some applications (as mine does) might find it useful to have this
    instance when they define/generate custom ids for the backend.
  5. RT#24580 - Tangram::Storage: remove bogus sub ref in BEGIN

    Assen Tchorbadjiev authored Sam Vilain committed
    There seems to be a stale alias in the BEGIN block inside
    Tangram::Storage, to the Tangram::Core::pretty sub, which got moved
    inside the Tangram::Util package.
    There is a problem only when the TRACE is being enabled.
Commits on Jan 11, 2007
  1. RT#24324 - document ->count() flexibility

    Sam Vilain authored
    ->count() can now take either a filter or an expr, so document that.
  2. [ADMIN] ignore t/CONFIG*

    Sam Vilain authored
  3. RT#24324: fix ->count() test case in musicstore suite to match docume…

    Sam Vilain authored
    …nted API
    The API says that the remote is required, but if a filter is passed
    then we should be able to deal with it.  Test both methods.
  4. RT#22696: fix (probably harmless) warning

    Sam Vilain authored
    Regression from 36e28bf.  The cursors
    generated internally by the collection loaders don't go through the
    front door, so we don't know that they are selecting extra columns and
    hence have to go through ->read_object().
  5. remove unnecessary dependency in this test

    Sam Vilain authored
Commits on Nov 2, 2006
  1. [ADMIN] setup .gitignore

    Sam Vilain authored
  2. RT#22696: avoid calling importer when we know we don't need to

    Sam Vilain authored
    The code used to call $storage->read_object on rows, even when we had
    the original object in memory already, just so we can get the
    "residue" columns right.  However, those are only required with
    -retrieve, so if we're not doing a -retrieve, we can just drop the
  3. RT#22696: use 'dummy' objects to collect items from @row

    Sam Vilain authored
    When we were creating temporary objects to call the importer methods,
    these temporary object's destructors might have side effects, for
    instance causing further demand paging.
    So, we will now make a dummy object which gets passed to the
    _row_to_object function, and make sure it gets blessed back to being a
    dummy before we return.
    This is an ugly work-around for the real problem, which is that the
    importer protocol is too primitive.
  4. Integrate new test into the test suite properly

    authored Sam Vilain committed
    Add a new convenience function for setting up schemata, so that SQLite
    is not a requirement for the test script.  Add a new test, and add to
    the test suite manifest.
  5. @mlawren

    RT#22696: add (failing) test for inflation of 'back' references

    mlawren authored Sam Vilain committed
    The current git tree fails to fully inflate objects that are reached via
    the 'back' field defined in an 'iset'. Take the following schema:
            Hat => {
                 fields => {
                     string   => [ qw( colour ) ],
            NaturalPerson => {
                 fields => {
                     string   => [ qw( firstName name ) ],
                     int      => [ qw( age ) ],
                     ref      => { partner => { null => 1 } },
                     iset    => {
                         hats => {
                             class => 'Hat',
                             back => 'owner',
    If you $storage->select a 'Hat' you can reach the 'owner'. However the
    owner's 'hats' array/Set::Object list is empty. The other fields are good.
    This applies not just to hats but any other mapping that existed for the
    I know that this behaviour doesn't exist in 2.08 but don't know where
    between 2.08 and git it broke.
Commits on Oct 26, 2006
  1. quote SQL "IN" items

    Sam Vilain authored
    Reported by Mark Lawrence, original report at
      Using the &in method as part of a criteria:
      my @objs = $st->select($remote, ($criteria) &
      (($remote->{lang}->in(@langs)) | ($remote->{src} == 1))
      Produces the following SQL fragment:
      (t2.node = 6 AND (t2.lang IN (en, de, fr) OR t2.src = 1))
      Which fails (on MySQL at least) with the following error:
      DBD::mysql::st execute failed: Unknown column 'en' in 'where clause'
      at /usr/share/perl5/Tangram/ line 185.
      because the items to match against are not quoted. I think Tangram
      (Expr?) needs to check the type of the column and quote the element if
      it is a string type.
  2. update should handle false values like insert does

    Sam Vilain authored
    Looks like we missed this with
Commits on Oct 25, 2006
  1. Complete this documentation page

    Sam Vilain authored
    There was even an unfinished sentence ... :)
Commits on Oct 4, 2006
  1. s/LeRoy/Leroy/

    Sam Vilain authored
    (cherry picked from 4c7205c commit)
Commits on Aug 2, 2006
  1. Close branch releng-2.10

    Sam Vilain authored
Commits on Aug 1, 2006
  1. close releng-2.09 branch

    Sam Vilain authored
Commits on May 31, 2006
  1. r9807@wilber: samv | 2006-05-31 14:54:17 +1200

    samv authored
     Fix NULL being printed when we're really sending 0 or ''
  2. r9805@wilber: samv | 2006-05-31 14:53:22 +1200

    samv authored
     Fix NULL being printed when we're really sending 0 or ''
Commits on May 19, 2006
  1. r9794@wilber: samv | 2006-05-19 12:25:06 +1200

    samv authored
     add beginnings of 'orange' and 'moose' test suites
Commits on Mar 29, 2006
  1. r6420@wilber: samv | 2006-03-29 18:02:50 +1200

    samv authored
     Sync trunk with 2.10 release.
  2. r6418@wilber: samv | 2006-03-29 17:43:22 +1200

    samv authored
     svk merged this wrongly
  3. r6414@wilber: samv | 2006-03-29 17:15:20 +1200

    samv authored
     Sync with 2.09 release.
  4. r6415@wilber: samv | 2006-03-29 17:15:44 +1200

    samv authored
     Bump README version number
  5. r6412@wilber: samv | 2006-03-29 16:56:56 +1200

    samv authored
     Update Changes
  6. r6410@wilber: samv | 2006-03-29 16:50:31 +1200

    samv authored
     Re-apply some commits svk fucked up;
     r6416:  samv | 2006-03-29 16:32:37 +1200
     fix warning properly :)
     r6415:  samv | 2006-03-29 16:32:07 +1200
     Add warning to outer join documentation
     r6414:  samv | 2006-03-29 16:31:19 +1200
     Bump version number to 2.09
     r6413:  samv | 2006-03-29 16:28:01 +1200
     Skip test on mysql: doesn't handle nested joins correctly
     r6411:  samv | 2006-03-29 14:53:23 +1200
  7. r6408@wilber: samv | 2006-03-29 14:40:34 +1200

    samv authored
     suppress warning
Commits on Dec 2, 2005
  1. No commit message

    duncand authored
  2. Merge ->match()

    samv authored
  3. Merge ->match()

    samv authored
Something went wrong with that request. Please try again.