aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sqliteInt.h8
-rw-r--r--src/vdbe.c6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index bcf6a591a..c97499b30 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -367,6 +367,14 @@
#endif
/*
+** If all temporary storage is in-memory, then omit the external merge-sort
+** logic since it is superfluous.
+*/
+#if SQLITE_TEMP_STORE==3 && !defined(SQLITE_OMIT_MERGE_SORT)
+# define SQLITE_OMIT_MERGE_SORT
+#endif
+
+/*
** GCC does not define the offsetof() macro so we'll have to do it
** ourselves.
*/
diff --git a/src/vdbe.c b/src/vdbe.c
index 3cab3b3fd..be07f6087 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -3156,6 +3156,12 @@ case OP_OpenWrite: {
** by this opcode will be used for automatically created transient
** indices in joins.
*/
+/* Opcode: OpenSorter P1 P2 * P4 *
+**
+** This opcode works like OP_OpenEphemeral except that it opens
+** a transient index that is specifically designed to sort large
+** tables using an external merge-sort algorithm.
+*/
case OP_OpenSorter:
case OP_OpenAutoindex:
case OP_OpenEphemeral: {