ソースを参照

commit after every 100 in rebuild_tree

version-14
Nabin Hait 14年前
コミット
712b1785c0
1個のファイルの変更7行の追加3行の削除
  1. +7
    -3
      cgi-bin/webnotes/utils/nestedset.py

+ 7
- 3
cgi-bin/webnotes/utils/nestedset.py ファイルの表示

@@ -159,10 +159,13 @@ def rebuild_tree(doctype, parent_field):
webnotes.conn.sql("commit") webnotes.conn.sql("commit")
webnotes.conn.sql("start transaction") webnotes.conn.sql("start transaction")
def rebuild_node(doctype, parent, left, parent_field, cnt = 0):
cnt = 0

def rebuild_node(doctype, parent, left, parent_field):
""" """
reset lft, rgt and recursive call for all children reset lft, rgt and recursive call for all children
""" """
global cnt
from webnotes.utils import now from webnotes.utils import now
n = now() n = now()
@@ -172,7 +175,8 @@ def rebuild_node(doctype, parent, left, parent_field, cnt = 0):
# get all children of this node # get all children of this node
result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='%s'" % (doctype, parent_field, parent)) result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='%s'" % (doctype, parent_field, parent))
for r in result: for r in result:
right = rebuild_node(doctype, r[0], right, parent_field, cnt)

right = rebuild_node(doctype, r[0], right, parent_field)


# we've got the left value, and now that we've processed # we've got the left value, and now that we've processed
# the children of this node we also know the right value # the children of this node we also know the right value
@@ -180,7 +184,7 @@ def rebuild_node(doctype, parent, left, parent_field, cnt = 0):


# commit after every 100 # commit after every 100
cnt += 1 cnt += 1
if cnt % 100 == 0:
if cnt % 500 == 0:
cnt = 0 cnt = 0
webnotes.conn.sql("commit") webnotes.conn.sql("commit")
webnotes.conn.sql("start transaction") webnotes.conn.sql("start transaction")


読み込み中…
キャンセル
保存