perf: index `return_against` on delivery note (#38827)
There's a multi-column index but that's useful IFF all parts of column
are part of query.
return against on it's own is VERY unique because it's a primary key, we
don't need a multi-column index here.
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 9b070bd..56f6347 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -354,3 +354,4 @@
execute:frappe.db.set_default("date_format", frappe.db.get_single_value("System Settings", "date_format"))
# below migration patch should always run last
erpnext.patches.v14_0.migrate_gl_to_payment_ledger
+erpnext.stock.doctype.delivery_note.patches.drop_unused_return_against_index
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json
index b85f296..7873d3e 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.json
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.json
@@ -301,7 +301,8 @@
"no_copy": 1,
"options": "Delivery Note",
"print_hide": 1,
- "read_only": 1
+ "read_only": 1,
+ "search_index": 1
},
{
"collapsible": 1,
@@ -1401,7 +1402,7 @@
"idx": 146,
"is_submittable": 1,
"links": [],
- "modified": "2023-09-04 14:15:28.363184",
+ "modified": "2023-12-18 17:19:39.368239",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note",
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index a101bdf..675f8e9 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -1294,7 +1294,3 @@
)
return doclist
-
-
-def on_doctype_update():
- frappe.db.add_index("Delivery Note", ["customer", "is_return", "return_against"])
diff --git a/erpnext/stock/doctype/delivery_note/patches/__init__.py b/erpnext/stock/doctype/delivery_note/patches/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/stock/doctype/delivery_note/patches/__init__.py
diff --git a/erpnext/stock/doctype/delivery_note/patches/drop_unused_return_against_index.py b/erpnext/stock/doctype/delivery_note/patches/drop_unused_return_against_index.py
new file mode 100644
index 0000000..8fe4ffb
--- /dev/null
+++ b/erpnext/stock/doctype/delivery_note/patches/drop_unused_return_against_index.py
@@ -0,0 +1,15 @@
+import frappe
+
+
+def execute():
+ """Drop unused return_against index"""
+
+ try:
+ frappe.db.sql_ddl(
+ "ALTER TABLE `tabDelivery Note` DROP INDEX `customer_is_return_return_against_index`"
+ )
+ frappe.db.sql_ddl(
+ "ALTER TABLE `tabPurchase Receipt` DROP INDEX `supplier_is_return_return_against_index`"
+ )
+ except Exception:
+ frappe.log_error("Failed to drop unused index")
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
index c7ad660..a181022 100755
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
@@ -289,7 +289,8 @@
"no_copy": 1,
"options": "Purchase Receipt",
"print_hide": 1,
- "read_only": 1
+ "read_only": 1,
+ "search_index": 1
},
{
"fieldname": "section_addresses",
@@ -1251,7 +1252,7 @@
"idx": 261,
"is_submittable": 1,
"links": [],
- "modified": "2023-11-28 13:14:15.243474",
+ "modified": "2023-12-18 17:26:41.279663",
"modified_by": "Administrator",
"module": "Stock",
"name": "Purchase Receipt",
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index aa479ee..10d9eaa 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -1360,10 +1360,6 @@
return item_account_wise_cost
-def on_doctype_update():
- frappe.db.add_index("Purchase Receipt", ["supplier", "is_return", "return_against"])
-
-
@erpnext.allow_regional
def update_regional_gl_entries(gl_list, doc):
return