# File lib/og/connection.rb, line 179
        def delete(obj_or_oid, klass = nil, cascade = true)
                oid = obj_or_oid.to_i
                klass = obj_or_oid.class unless klass

                # this is a class callback!
                
                if klass.respond_to?(:og_pre_delete)
                        klass.og_pre_delete(self, oid)
                end
                
                # TODO: implement this as stored procedure? naaah.

                transaction do |tx|
                        tx.exec "DELETE FROM #{klass::DBTABLE} WHERE oid=#{oid}"
                        if cascade and klass.__meta.include?(:has)
                                klass.__meta[:has].each do |dclass, linkback|
                                        tx.exec "DELETE FROM #{dclass::DBTABLE} WHERE #{linkback}=#{oid}"
                                end
                        end
                end
        end