For more information than you could ever want about how Windows does time and 
timers, see http://www.windowstimestamp.com/description 


---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.


>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>boun...@mailinglists.sqlite.org] On Behalf Of David Raymond
>Sent: Wednesday, 12 September, 2018 12:12
>To: SQLite mailing list
>Subject: Re: [sqlite] SQLITE touches unchanged expression indexes on
>update
>
>Whoa, all sorts of undocumented stuff. Where did you find all these
>and what they do?
>
>Not seen on https://www.sqlite.org/compile.html (But are seen in 3.24
>amalgamation):
>SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
>SQLITE_DEFAULT_RECURSIVE_TRIGGERS
>SQLITE_ENABLE_COSTMULT
>SQLITE_ENABLE_CURSOR_HINTS
>SQLITE_COUNTOFVIEW_OPTIMIZATION
>SQLITE_EXPLAIN_ESTIMATED_ROWS
>SQLITE_ENABLE_LOAD_EXTENSION
>SQLITE_ENABLE_MODULE_COMMENTS
>SQLITE_STAT4_SAMPLES
>SQLITE_OS_WIN
>SQLITE_OS_WINNT
>SQLITE_USE_MALLOC_H
>SQLITE_USE_MSIZE
>
>Search also not finding it in the 3.24 amalgamation either:
>SQLITE_DEFAULT_TEMP_CACHE_SIZE
>SQLITE_ENABLE_STAT_VTAB
>SQLITE_ENABLE_UNIONVTAB
>SQLITE_NOW_STABILITY_STMT
>SQLITE_USE_PRECISE_TIME
>SQLITE_DATETIME_NEW
>SQLITE_WIN32_FILE_RANDOM
>
>
>For my own I'm on Windows 7, apparently using MinGW-W64 with GCC
>7.3.0
>Compiling from the 3.24.0 amalgamation, with only a couple tweaks to
>shell.c to change the default settings. (.timer on, .eqp on, extra
>newline to start the prompt, etc.)
>
>Apparently enable_explain_comments isn't included in the bit that
>keeps track of things to report in pragma compile_options.
>Also, apparently .version isn't listed in the .help output of the
>CLI, but works. Wonder what else is missing.
>
>
>Microsoft Windows [Version 6.1.7601]
>Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
>
>D:\>sqlite3
>SQLite version 3.24.0 2018-06-04 19:24:41
>Enter ".help" for usage hints.
>Connected to a transient in-memory database.
>Use ".open FILENAME" to reopen on a persistent database.
>
>sqlite> .version
>SQLite 3.24.0 2018-06-04 19:24:41
>c7ee0833225bfd8c5ec2f9bf62b97c4e04d03bd9566366d5221ac8fb199a87ca
>gcc-7.3.0
>
>sqlite> pragma compile_options;
>compile_options
>ALLOW_COVERING_INDEX_SCAN
>COMPILER=gcc-7.3.0
>DEFAULT_AUTOMATIC_INDEX
>DEFAULT_CACHE_SIZE=-65536
>DEFAULT_FILE_FORMAT=4
>DEFAULT_FOREIGN_KEYS
>DEFAULT_JOURNAL_SIZE_LIMIT=0
>DEFAULT_LOCKING_MODE=0
>DEFAULT_MEMSTATUS
>DEFAULT_MMAP_SIZE=0
>DEFAULT_PAGE_SIZE=4096
>DEFAULT_SYNCHRONOUS=0
>DEFAULT_WAL_AUTOCHECKPOINT=1
>DEFAULT_WAL_SYNCHRONOUS=0
>DEFAULT_WORKER_THREADS=4
>ENABLE_COLUMN_METADATA
>ENABLE_DBSTAT_VTAB
>ENABLE_MEMORY_MANAGEMENT
>ENABLE_RTREE
>ENABLE_STMT_SCANSTATUS
>ENABLE_UNKNOWN_SQL_FUNCTION
>LIKE_DOESNT_MATCH_BLOBS
>MAX_ATTACHED=125
>MAX_EXPR_DEPTH=0
>MAX_MMAP_SIZE=0
>MAX_WORKER_THREADS=4
>OMIT_SHARED_CACHE
>STMTJRNL_SPILL=4194304
>THREADSAFE=0
>USE_ALLOCA
>Run Time: real 0.000 user 0.000000 sys 0.000000
>
>sqlite> CREATE TABLE Foo(x, y, z);
>QUERY PLAN
>`--SEARCH TABLE sqlite_master USING INTEGER PRIMARY KEY (rowid=?)
>Run Time: real 0.000 user 0.000000 sys 0.000000
>
>sqlite> CREATE INDEX FooX on Foo(x);
>Run Time: real 0.000 user 0.000000 sys 0.000000
>
>sqlite> CREATE INDEX FooZ on Foo(z);
>Run Time: real 0.000 user 0.000000 sys 0.000000
>
>sqlite> CREATE INDEX FooLenZ on Foo(length(z));
>Run Time: real 0.000 user 0.000000 sys 0.000000
>
>sqlite> explain UPDATE foo SET x=1 WHERE rowid=1;
>addr  opcode         p1    p2    p3    p4             p5  comment
>----  -------------  ----  ----  ----  -------------  --  -----------
>--
>0     Init           0     33    0                    00  Start at 33
>1     Null           0     7     8                    00
>r[7..8]=NULL
>2     OpenWrite      0     2     0     3              00  root=2
>iDb=0; Foo
>3     Explain        3     0     0     SEARCH TABLE foo USING INTEGER
>PRIMARY KEY (rowid=?)  00
>4     Integer        1     12    0                    00  r[12]=1
>5     SeekRowid      0     7     12                   00
>intkey=r[12]; pk
>6     Rowid          0     8     0                    00  r[8]=rowid
>7     OpenWrite      1     5     0     k(2,,)         00  root=5
>iDb=0; FooLenZ
>8     OpenWrite      3     3     0     k(2,,)         00  root=3
>iDb=0; FooX
>9     IsNull         8     32    0                    00  if
>r[8]==NULL goto 32
>10    Integer        1     9     0                    00  r[9]=1
>11    Column         0     1     10                   00  r[10]=Foo.y
>12    Column         0     2     11                   00  r[11]=Foo.z
>13    Noop           0     0     0                    00  uniqueness
>check for FooLenZ
>14    Copy           11    13    0                    00  r[13]=r[11]
>15    PureFunc0      0     13    2     length(1)      01  FooLenZ
>column 0
>16    IntCopy        8     3     0                    00  r[3]=r[8];
>rowid
>17    MakeRecord     2     2     1                    00
>r[1]=mkrec(r[2..3]); for FooLenZ
>18    Noop           0     0     0                    00  uniqueness
>check for FooX
>19    SCopy          9     5     0                    00  r[5]=r[9];
>x
>20    IntCopy        8     6     0                    00  r[6]=r[8];
>rowid
>21    MakeRecord     5     2     4                    00
>r[4]=mkrec(r[5..6]); for FooX
>22    Copy           11    13    0                    00  r[13]=r[11]
>23    PureFunc0      0     13    14    length(1)      01
>24    Rowid          0     15    0                    00  r[15]=rowid
>25    IdxDelete      1     14    2                    00
>key=r[14..15]
>26    Column         0     0     14                   00  r[14]=Foo.x
>27    IdxDelete      3     14    2                    00
>key=r[14..15]
>28    IdxInsert      1     1     2     2              00  key=r[1]
>29    IdxInsert      3     4     5     2              00  key=r[4]
>30    MakeRecord     9     3     13                   00
>r[13]=mkrec(r[9..11])
>31    Insert         0     13    8     Foo            05  intkey=r[8]
>data=r[13]
>32    Halt           0     0     0                    00
>33    Transaction    0     1     4     0              01
>usesStmtJournal=0
>34    Goto           0     1     0                    00
>Run Time: real 0.062 user 0.000000 sys 0.015600
>
>sqlite>
>
>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>boun...@mailinglists.sqlite.org] On Behalf Of Keith Medcalf
>Sent: Wednesday, September 12, 2018 1:04 PM
>To: SQLite mailing list
>Subject: Re: [sqlite] SQLITE touches unchanged expression indexes on
>update
>
>
>The version is the current tip of trunk, compiler is MinGW GCC 8.1.0
>(on Windows 10) ... with the following options defined:
>
>#define _WIN32_WINNT 0x0600
>#define WINVER _WIN32_WINNT
>#define SQLITE_DEFAULT_CACHE_SIZE          262144           // 1 GB
>#define SQLITE_DEFAULT_TEMP_CACHE_SIZE     262144           // 1 GB
>default: 500 pages
>#define SQLITE_DEFAULT_FOREIGN_KEYS         1               //
>default: 0
>#define SQLITE_DEFAULT_PAGE_SIZE            4096            //
>default: 4096 max: 65536
>#define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT   256             //
>default: 1000 pages
>#define SQLITE_DEFAULT_PROXYDIR_PERMISSIONS 0755            //
>default: 0755
>#define SQLITE_DEFAULT_RECURSIVE_TRIGGERS   1               //
>default: 0
>#define SQLITE_DEFAULT_SHARED_CACHE         0               //
>default: 0
>#define SQLITE_DEFAULT_MMAP_SIZE            0               //
>default: 0
>#define SQLITE_ALLOW_COVERING_INDEX_SCAN 1
>#define SQLITE_INTROSPECTION_PRAGMAS 1                      // Add
>Instropsection Pragmas
>#define SQLITE_ENABLE_8_3_NAMES 1
>#define SQLITE_ENABLE_API_ARMOR 1                           // Enable
>API Armour
>#define SQLITE_ENABLE_COLUMN_METADATA 1
>#define SQLITE_ENABLE_COSTMULT 1
>#define SQLITE_ENABLE_CURSOR_HINTS 1
>#define SQLITE_COUNTOFVIEW_OPTIMIZATION 1
>#define SQLITE_ENABLE_DBPAGE_VTAB 1
>#define SQLITE_ENABLE_DBSTAT_VTAB 1
>#define SQLITE_ENABLE_DESERIALIZE 1
>#define SQLITE_ENABLE_EXPLAIN_COMMENTS 1
>#define SQLITE_EXPLAIN_ESTIMATED_ROWS 1
>#define SQLITE_ENABLE_FTS3 1
>#define SQLITE_ENABLE_FTS3_PARENTHESIS 1
>#define SQLITE_ENABLE_FTS4 1
>#define SQLITE_ENABLE_FTS5 1
>#define SQLITE_ENABLE_JSON1 1                               // Enable
>JSON1 -- when standard extension
>#define SQLITE_ENABLE_LOAD_EXTENSION 1
>#define SQLITE_ENABLE_LOCKING_STYLE 1
>#define SQLITE_ENABLE_MEMORY_MANAGEMENT 1                   // Enable
>Memory Management (sqlite3_release_memory)
>#define SQLITE_ENABLE_MODULE_COMMENTS 1
>#define SQLITE_ENABLE_PREUPDATE_HOOK 1
>#define SQLITE_ENABLE_RTREE 1
>#define SQLITE_ENABLE_SORTER_REFERENCES 1                   // Enable
>Sorter References
>#define SQLITE_ENABLE_STAT_VTAB 1                           // Enable
>dbstat_register called from shell
>#define SQLITE_ENABLE_STAT1 1
>#define SQLITE_ENABLE_STAT2 1
>#define SQLITE_ENABLE_STAT3 1
>#define SQLITE_ENABLE_STAT4 1
>#define SQLITE_ENABLE_STMTVTAB 1                            // Enable
>Stmt VTAB
>#define SQLITE_ENABLE_UNIONVTAB 1                           // Enable
>unionvtab
>#define SQLITE_STAT4_SAMPLES 64                             //
>default: 24 samples
>#define SQLITE_SOUNDEX 1
>#define SQLITE_THREADSAFE 1                                 // 0 =
>Single Threaded, 1 = Serialized, 2 = Multithreaded
>#define SQLITE_TEMP_STORE 2                                 // 0 =
>Files Always, 1 = Files, 2 = Memory, 3 Memory Always
>#define SQLITE_USE_URI 1                                    // Enable
>URI Filenames
>#define SQLITE_ALLOW_URI_AUTHORITY 1                        // Allow
>Authority (Host) in URI
>#define SQLITE_MAX_ATTACHED                 15              //
>default: 10          max: 62
>#define SQLITE_OS_WIN 1
>#define SQLITE_OS_WINNT 1
>#define SQLITE_NOW_STABILITY_STMT 1                         // Make
>'now' stable within a statement, not only for a step
>#define WHERE_PATH_SIMPLE 50                                // Paths
>to remember for  2-way joins
>#define WHERE_PATH_COMPLEX 100                              // Paths
>to remember for >2-way joins
>#define SQLITE_USE_PRECISE_TIME 1                           // Use
>GetSystemTimePreciseAsFileTime
>#define SQLITE_DATETIME_NEW 1                               // Use
>New Datetime Functions
>#define SQLITE_WIN32_FILE_RANDOM 1                          // Force
>Windows RANDOM access cache behaviour
>#define SQLITE_DEFAULT_WAL_SYNCHRONOUS      1                   //
>Reduce Synchronous to NORMAL in WAL mode
>#define SQLITE_DIRECT_OVERFLOW_READ         1                   // Do
>not cache overflow pages in SQLite pagecache
>#define SQLITE_LIKE_DOESNT_MATCH_BLOBS      1                   //
>Disable LIKE matching for BLOBS
>#define HAVE_FDATASYNC 1
>#define HAVE_GMTIME_R 1
>#define HAVE_LOCALTIME_S 1
>#define HAVE_USLEEP 1
>#define HAVE_UTIME 1
>#define UNICODE_STRING_MAX_BYTES ((WORD)65534)
>#define UNICODE_STRING_MAX_CHARS (32766)
>#define HAVE_ISNAN 1
>#define SQLITE_USE_MALLOC_H 1
>#define SQLITE_USE_MSIZE 1
>#define LONGDOUBLE_TYPE __float128
>
>---
>The fact that there's a Highway to Hell but only a Stairway to Heaven
>says a lot about anticipated traffic volume.
>
>>-----Original Message-----
>>From: sqlite-users [mailto:sqlite-users-
>>boun...@mailinglists.sqlite.org] On Behalf Of David Raymond
>>Sent: Wednesday, 12 September, 2018 10:21
>>To: SQLite mailing list
>>Subject: Re: [sqlite] SQLITE touches unchanged expression indexes on
>>update
>>
>>A little weird and definitely differet, what version are you using
>>and how are you compiling it? I checked with the precompiled Windows
>>binary to make sure it wasn't something weird from my compilation,
>>and it looks pretty close to my original, but different. So now I'm
>>wondering where the noop's, explain's, and comments are coming from
>>and what affects them.
>>
>>
>>-----Original Message-----
>>From: sqlite-users [mailto:sqlite-users-
>>boun...@mailinglists.sqlite.org] On Behalf Of Keith Medcalf
>>Sent: Wednesday, September 12, 2018 11:40 AM
>>To: SQLite mailing list
>>Subject: Re: [sqlite] SQLITE touches unchanged expression indexes on
>>update
>>
>>
>>Interesting ... I get different output with explain comments
>enabled:
>>
>>addr  opcode         p1    p2    p3    p4             p5  comment
>>----  -------------  ----  ----  ----  -------------  --  ----------
>-
>>--
>>0     Init           0     41    0                    00  Start at
>41
>>1     Null           0     7     8                    00
>>r[7..8]=NULL
>>2     OpenWrite      0     2     0     3              00  root=2
>>iDb=0; Foo
>>3     Noop           0     0     0                    00  Begin
>>WHERE-loop0: Foo
>>4     Integer        1     12    0                    00  r[12]=1
>>5     SeekRowid      0     9     12                   00
>>intkey=r[12]
>>6     Noop           0     0     0                    00  Begin
>>WHERE-core
>>7     Rowid          0     8     0                    00  r[8]=rowid
>>8     Noop           0     0     0                    00  End WHERE-
>>core
>>9     Noop           0     0     0                    00  End WHERE-
>>loop0: Foo
>>10    OpenWrite      1     5     0     k(2,,)         00  root=5
>>iDb=0; FooLenZ
>>11    OpenWrite      3     3     0     k(2,,)         00  root=3
>>iDb=0; FooX
>>12    IsNull         8     40    0                    00  if
>>r[8]==NULL goto 40
>>13    Integer        1     9     0                    00  r[9]=1
>>14    Column         0     1     10                   00
>r[10]=Foo.y
>>15    Column         0     2     11                   00
>r[11]=Foo.z
>>16    Noop           0     0     0                    00  BEGIN:
>>GenCnstCks(0,1,8,8,0)
>>17    Noop           0     0     0                    00  uniqueness
>>check for FooLenZ
>>18    Copy           11    13    0                    00
>r[13]=r[11]
>>19    PureFunc0      0     13    2     length(1)      01  FooLenZ
>>column 0
>>20    IntCopy        8     3     0                    00  r[3]=r[8];
>>rowid
>>21    MakeRecord     2     2     1                    00
>>r[1]=mkrec(r[2..3]); for FooLenZ
>>22    Noop           0     0     0                    00  uniqueness
>>check for FooX
>>23    SCopy          9     5     0                    00  r[5]=r[9];
>>x
>>24    IntCopy        8     6     0                    00  r[6]=r[8];
>>rowid
>>25    MakeRecord     5     2     4                    00
>>r[4]=mkrec(r[5..6]); for FooX
>>26    Noop           0     0     0                    00  END:
>>GenCnstCks(0)
>>27    Noop           0     0     0                    00
>>GenRowIdxDel for FooLenZ
>>28    Column         0     2     13                   40
>r[13]=Foo.z
>>29    PureFunc0      0     13    14    length(1)      01
>>30    Rowid          0     15    0                    00
>r[15]=rowid
>>31    IdxDelete      1     14    2                    00
>>key=r[14..15]
>>32    Noop           0     0     0                    00
>>GenRowIdxDel for FooX
>>33    Column         0     0     14                   00
>r[14]=Foo.x
>>34    IdxDelete      3     14    2                    00
>>key=r[14..15]
>>35    Delete         0     68    8     Foo            00
>>36    IdxInsert      1     1     2     2              00  key=r[1]
>>37    IdxInsert      3     4     5     2              00  key=r[4]
>>38    MakeRecord     9     3     13                   00
>>r[13]=mkrec(r[9..11])
>>39    Insert         0     13    8     Foo            05
>intkey=r[8]
>>data=r[13]
>>40    Halt           0     0     0                    00
>>41    Transaction    0     1     4     0              01
>>usesStmtJournal=0
>>42    Goto           0     1     0                    00
>>
>>
>>
>>---
>>The fact that there's a Highway to Hell but only a Stairway to
>Heaven
>>says a lot about anticipated traffic volume.
>>
>>
>>>-----Original Message-----
>>>From: sqlite-users [mailto:sqlite-users-
>>>boun...@mailinglists.sqlite.org] On Behalf Of David Raymond
>>>Sent: Wednesday, 12 September, 2018 07:54
>>>To: SQLite mailing list
>>>Subject: Re: [sqlite] SQLITE touches unchanged expression indexes
>on
>>>update
>>>
>>>Just showing with "explain comments" enabled.
>>>
>>>
>>>sqlite> explain update foo set x = 1 where rowid = 1;
>>>addr  opcode         p1    p2    p3    p4             p5  comment
>>>----  -------------  ----  ----  ----  -------------  --  ---------
>-
>>-
>>>--
>>>0     Init           0     33    0                    00  Start at
>>33
>>>1     Null           0     7     8                    00
>>>r[7..8]=NULL
>>>2     OpenWrite      0     2     0     3              00  root=2
>>>iDb=0; Foo
>>>3     Explain        3     0     0     SEARCH TABLE foo USING
>>INTEGER
>>>PRIMARY KEY (rowid=?)  00
>>>4     Integer        1     12    0                    00  r[12]=1
>>>5     SeekRowid      0     7     12                   00
>>>intkey=r[12]; pk
>>>6     Rowid          0     8     0                    00
>r[8]=rowid
>>>7     OpenWrite      1     5     0     k(2,,)         00  root=5
>>>iDb=0; FooLenZ
>>>8     OpenWrite      3     3     0     k(2,,)         00  root=3
>>>iDb=0; FooX
>>>9     IsNull         8     32    0                    00  if
>>>r[8]==NULL goto 32
>>>10    Integer        1     9     0                    00  r[9]=1
>>>11    Column         0     1     10                   00
>>r[10]=Foo.y
>>>12    Column         0     2     11                   00
>>r[11]=Foo.z
>>>13    Noop           0     0     0                    00
>uniqueness
>>>check for FooLenZ
>>>14    Copy           11    13    0                    00
>>r[13]=r[11]
>>>15    PureFunc0      0     13    2     length(1)      01  FooLenZ
>>>column 0
>>>16    IntCopy        8     3     0                    00
>r[3]=r[8];
>>>rowid
>>>17    MakeRecord     2     2     1                    00
>>>r[1]=mkrec(r[2..3]); for FooLenZ
>>>18    Noop           0     0     0                    00
>uniqueness
>>>check for FooX
>>>19    SCopy          9     5     0                    00
>r[5]=r[9];
>>>x
>>>20    IntCopy        8     6     0                    00
>r[6]=r[8];
>>>rowid
>>>21    MakeRecord     5     2     4                    00
>>>r[4]=mkrec(r[5..6]); for FooX
>>>22    Copy           11    13    0                    00
>>r[13]=r[11]
>>>23    PureFunc0      0     13    14    length(1)      01
>>>24    Rowid          0     15    0                    00
>>r[15]=rowid
>>>25    IdxDelete      1     14    2                    00
>>>key=r[14..15]
>>>26    Column         0     0     14                   00
>>r[14]=Foo.x
>>>27    IdxDelete      3     14    2                    00
>>>key=r[14..15]
>>>28    IdxInsert      1     1     2     2              00  key=r[1]
>>>29    IdxInsert      3     4     5     2              00  key=r[4]
>>>30    MakeRecord     9     3     13                   00
>>>r[13]=mkrec(r[9..11])
>>>31    Insert         0     13    8     Foo            05
>>intkey=r[8]
>>>data=r[13]
>>>32    Halt           0     0     0                    00
>>>33    Transaction    0     1     4     0              01
>>>usesStmtJournal=0
>>>34    Goto           0     1     0                    00
>>>
>>>
>>>-----Original Message-----
>>>From: sqlite-users [mailto:sqlite-users-
>>>boun...@mailinglists.sqlite.org] On Behalf Of Deon Brewis
>>>Sent: Tuesday, September 11, 2018 8:20 PM
>>>To: SQLite mailing list
>>>Subject: [sqlite] SQLITE touches unchanged expression indexes on
>>>update
>>>
>>>It seems like there is an opportunity for improvement on updates if
>>>an index contains expressions.
>>>
>>>In the following example:
>>>
>>>CREATE TABLE Foo(x, y, z);
>>>CREATE INDEX FooX on Foo(x);
>>>CREATE INDEX FooZ on Foo(z);
>>>CREATE INDEX FooLenZ on Foo(length(z));
>>>
>>>explain UPDATE foo SET x=1 WHERE rowid=1;
>>>
>>>I see the plan below. Notice it's updating FooLenZ even though the
>>>'UPDATE foo SET x=1' statement doesn't touch the Z column at all.
>It
>>>doesn't try to update FooZ, just FooLenZ, but both should be
>>>untouched.
>>>
>>>RecNo addr opcode      p1 p2 p3 p4        p5 comment
>>>----- ---- ----------- -- -- -- --------- -- -------
>>>    1 0    Init        0  30 0            00 (null)
>>>    2 1    Null        0  7  8            00 (null)
>>>    3 2    OpenWrite   0  2  0  3         00 (null)  // opening
>>'Foo'
>>>(expected)
>>>    4 3    Integer     1  12 0            00 (null)
>>>    5 4    SeekRowid   0  6  12           00 (null)
>>>    6 5    Rowid       0  8  0            00 (null)
>>>    7 6    OpenWrite   1  5  0  k(2,,)    00 (null)  // opening
>>>'FooLenZ' (NOT expected)
>>>    8 7    OpenWrite   3  3  0  k(2,,)    00 (null)  // opening
>>>'FooX'   (expected)
>>>    9 8    IsNull      8  29 0            00 (null)
>>>   10 9    Integer     1  9  0            00 (null)
>>>   11 10   Column      0  1  10           00 (null)
>>>   12 11   Column      0  2  11           00 (null)
>>>   13 12   Copy        11 13 0            00 (null)
>>>   14 13   Function0   0  13 2  length(1) 01 (null)
>>>   15 14   IntCopy     8  3  0            00 (null)
>>>   16 15   MakeRecord  2  2  1            00 (null)
>>>   17 16   SCopy       9  5  0            00 (null)
>>>   18 17   IntCopy     8  6  0            00 (null)
>>>   19 18   MakeRecord  5  2  4            00 (null)
>>>   20 19   Copy        11 13 0            00 (null)
>>>   21 20   Function0   0  13 14 length(1) 01 (null)
>>>   22 21   Rowid       0  15 0            00 (null)
>>>   23 22   IdxDelete   1  14 2            00 (null)
>>>   24 23   Column      0  0  14           00 (null)
>>>   25 24   IdxDelete   3  14 2            00 (null)
>>>   26 25   IdxInsert   1  1  2  2         00 (null)  // updating
>>>'FooLenZ' (NOT expected)
>>>   27 26   IdxInsert   3  4  5  2         00 (null)  // updating
>>>'FooX' (expected)
>>>   28 27   MakeRecord  9  3  13           00 (null)
>>>   29 28   Insert      0  13 8  Foo       05 (null)
>>>   30 29   Halt        0  0  0            00 (null)
>>>   31 30   Transaction 0  1  42 0         01 (null)
>>>   32 31   Goto        0  1  0            00 (null)
>>>
>>>sqlite_master:
>>>RecNo type  name    tbl_name rootpage sql
>>>----- ----- ------- -------- -------- -----------------------------
>-
>>-
>>>-------
>>>    1 table Foo     Foo             2 CREATE TABLE Foo(x, y, z)
>>>    2 index FooX    Foo             3 CREATE INDEX FooX on Foo(x)
>>>    3 index FooZ    Foo             4 CREATE INDEX FooZ on Foo(z)
>>>    4 index FooLenZ Foo             5 CREATE INDEX FooLenZ on
>>>Foo(length(z))
>>>
>>>
>>>
>>>_______________________________________________
>>>sqlite-users mailing list
>>>sqlite-users@mailinglists.sqlite.org
>>>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-
>users
>>>_______________________________________________
>>>sqlite-users mailing list
>>>sqlite-users@mailinglists.sqlite.org
>>>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-
>users
>>
>>
>>
>>_______________________________________________
>>sqlite-users mailing list
>>sqlite-users@mailinglists.sqlite.org
>>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>>_______________________________________________
>>sqlite-users mailing list
>>sqlite-users@mailinglists.sqlite.org
>>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
>
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to