Changes between Version 13 and Version 14 of NoSqlSupport


Ignore:
Timestamp:
Apr 27, 2011, 2:57:37 AM (13 years ago)
Author:
Waldemar Kornewald
Comment:

re-ordered

Legend:

Unmodified
Added
Removed
Modified
  • NoSqlSupport

    v13 v14  
    6262This is already implemented in Django-nonrel, but it's missing the deprecation warning and backwards-compatible mode when only using SQL backends.
    6363
     64= INSERT vs UPDATE =
     65
     66Currently, `Model.save_base()` runs a check whether the pk already exists in the database. This check is necessary for SQL, but it's unnecessary and inefficient on many NoSQL DBs and it also conflicts with App Engine's optimistic transactions. Thus, Django should not distinguish between insert and update operations on DBs that don't require it.
     67
     68This comes with a minor problem: Without that check model instances have to track whether they were instantiated from the DB and thus exist in the DB or not. Otherwise the `Field.pre_save()` `add` parameter won't work correctly and the `post_save` signal won't report correctly whether this is a new entity or not.
     69
     70This is already implemented in Django-nonrel.
     71
     72= count() =
     73
     74`Query.count()` is problematic since a scalable `count()` method doesn't exist at least on App Engine. It would be nice to be able to pass an upper limit like `count(100)`, so if there are more than 100 results it will still return just 100.
     75
     76This also affects the results count in the admin interface.
     77
     78Django-nonrel's App Engine backend currently just limits the maximum count to 1000. Other backends don't have a `count()` limit.
     79
    6480= !ListField =
    6581
     
    123139This is not implemented in Django-nonrel.
    124140
    125 = INSERT vs UPDATE =
    126 
    127 Currently, `Model.save_base()` runs a check whether the pk already exists in the database. This check is necessary for SQL, but it's unnecessary and inefficient on many NoSQL DBs and it also conflicts with App Engine's optimistic transactions. Thus, Django should not distinguish between insert and update operations on DBs that don't require it.
    128 
    129 This comes with a minor problem: Without that check model instances have to track whether they were instantiated from the DB and thus exist in the DB or not. Otherwise the `Field.pre_save()` `add` parameter won't work correctly and the `post_save` signal won't report correctly whether this is a new entity or not.
    130 
    131 This is already implemented in Django-nonrel.
    132 
    133141= Transactions =
    134142
     
    144152
    145153Django-nonrel doesn't yet support bookmarks, but the App Engine backend provides a private API for them.
    146 
    147 = count() =
    148 
    149 `Query.count()` is problematic since a scalable `count()` method doesn't exist at least on App Engine. It would be nice to be able to pass an upper limit like `count(100)`, so if there are more than 100 results it will still return just 100.
    150 
    151 This also affects the results count in the admin interface.
    152 
    153 Django-nonrel's App Engine backend currently just limits the maximum count to 1000. Other backends don't have a `count()` limit.
Back to Top