Documentation Source Text
Check-in [dc4eae98aa]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
SHA1 Hash:dc4eae98aa016c4758a0c745ed4dc27d56c9d019
Date: 2013-09-13 22:03:41
User: drh
Comment:Add documentation for unlikely(), likelihood() and the soft_heap_limit pragma.
Tags And Properties
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in

15
16
17
18
19
20
21





22
23
24
25
26
27
28
29
30
31
proc chng {date desc {options {}}} {
  global nChng aChng
  set aChng($nChng) [list $date $desc $options]
  incr nChng
}

chng {2013-10-?? (3.8.1)} {





<li>Add support for SQLITE_ENABLE_STAT4
<li>Add the [SQLITE_MINIMUM_FILE_DESCRIPTOR] compile-time option
<li>Add the win32-longpath VFS on windows.
}

chng {2013-08-29 (3.8.0.1)} {
<li>Fix an off-by-one error that caused quoted empty string at the end of a 
CRNL-terminated line of CSV input to be misread by the command-line shell.
<li>Fix a query planner bug involving a LEFT JOIN with a BETWEEN or LIKE/GLOB
constraint and then another INNER JOIN to the right that involves an OR constraint.







>
>
>
>
>
|
|
|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
proc chng {date desc {options {}}} {
  global nChng aChng
  set aChng($nChng) [list $date $desc $options]
  incr nChng
}

chng {2013-10-?? (3.8.1)} {
<li>Added the [unlikely()] and [likelihood()] SQL functions to be used
    as hints to the query planner.
<li>Added the [soft_heap_limit pragma].
<li>Tweaked the query planner to take into account WHERE clause terms
    that cannot be used with indices.
<li>Added support for SQLITE_ENABLE_STAT4
<li>Added the [SQLITE_MINIMUM_FILE_DESCRIPTOR] compile-time option
<li>Added the win32-longpath VFS on windows.
}

chng {2013-08-29 (3.8.0.1)} {
<li>Fix an off-by-one error that caused quoted empty string at the end of a 
CRNL-terminated line of CSV input to be misread by the command-line shell.
<li>Fix a query planner bug involving a LEFT JOIN with a BETWEEN or LIKE/GLOB
constraint and then another INNER JOIN to the right that involves an OR constraint.

Changes to pages/lang.in

2141
2142
2143
2144
2145
2146
2147













2148
2149
2150
2151
2152
2153
2154
....
2331
2332
2333
2334
2335
2336
2337










2338
2339
2340
2341
2342
2343
2344
  [LIKE] operator.  When overriding the like() function, it may be important
  to override both the two and three argument versions of the like() 
  function. Otherwise, different code may be called to implement the
  [LIKE] operator depending on whether or not an ESCAPE clause was 
  specified.
}














funcdef {load_extension(X) load_extension(X,Y)} {} {
  ^The load_extension(X,Y) function loads [SQLite extensions] out of the shared
  library file named X using the entry point Y.  ^The result of load_extension()
  is always a NULL.  ^If Y is omitted then the default entry point name is used.
  ^The load_extension() function raises an exception if the extension fails to
  load or initialize correctly.

................................................................................
  ^If the Y argument is omitted, trim(X) removes spaces from both ends of X.
}

funcdef {typeof(X)} {} {
  ^The typeof(X) function returns a string that indicates the [datatype] of
  the expression X: "null", "integer", "real", "text", or "blob".
}











funcdef {unicode(X)} {} {
  ^The unicode(X) function returns the numeric unicode code point corresponding to
  the first character of the string X.  ^If the argument to unicode(X) is not a string
  then the result is undefined.
}








>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>







2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
....
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
  [LIKE] operator.  When overriding the like() function, it may be important
  to override both the two and three argument versions of the like() 
  function. Otherwise, different code may be called to implement the
  [LIKE] operator depending on whether or not an ESCAPE clause was 
  specified.
}


funcdef {likelihood(X,Y)} {} {
  ^The likelihood(X,Y) function returns argument X unchanged.
  ^The value Y in likelihood(X,Y) must be a floating point constant
  between 0.0 and 1.0, inclusive.
  ^The likelihood(X) function is a no-op that the code generator
  optimizes away so that it consumes no CPU cycles at run-time.
  ^The purpose of the likelihood(X,Y) function is to provide a hint
  to the query planner that the argument X is a boolean that is
  true with a probability of approximately Y.
  ^The likelihood(X, 0.0625) function is equivalent to [unlikely](X).
}

funcdef {load_extension(X) load_extension(X,Y)} {} {
  ^The load_extension(X,Y) function loads [SQLite extensions] out of the shared
  library file named X using the entry point Y.  ^The result of load_extension()
  is always a NULL.  ^If Y is omitted then the default entry point name is used.
  ^The load_extension() function raises an exception if the extension fails to
  load or initialize correctly.

................................................................................
  ^If the Y argument is omitted, trim(X) removes spaces from both ends of X.
}

funcdef {typeof(X)} {} {
  ^The typeof(X) function returns a string that indicates the [datatype] of
  the expression X: "null", "integer", "real", "text", or "blob".
}

funcdef {unlikely(X)} {} {
  ^The unlikely(X) function returns the argument X unchanged.
  ^The unlikely(X) function is a no-op that the code generator
  optimizes away so that it consumes no CPU cycles at run-time.
  ^The purpose of the unlikely(X) function is to provide a hint
  to the query planner that the argument X is a boolean value
  that is usually not true. ^The unlikely(X) function is equivalent
  to [likelihood](X, 0.0625).
}

funcdef {unicode(X)} {} {
  ^The unicode(X) function returns the numeric unicode code point corresponding to
  the first character of the string X.  ^If the argument to unicode(X) is not a string
  then the result is undefined.
}

Changes to pages/pragma.in

874
875
876
877
878
879
880












881
882
883
884
885
886
887
    <p><b>PRAGMA shrink_memory</b></p>

    <p>^This pragma causes the database connection on which it is invoked
    to free up as much memory as it can, by calling
    [sqlite3_db_release_memory()].
    </p>
}













Pragma synchronous {
    <p>^(<b>PRAGMA synchronous;
       <br>PRAGMA synchronous = </b>
          <i>0 | OFF | 1 | NORMAL | 2 | FULL</i><b>;</b></p>

    <p>Query or change the setting of the "synchronous" flag.)^







>
>
>
>
>
>
>
>
>
>
>
>







874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
    <p><b>PRAGMA shrink_memory</b></p>

    <p>^This pragma causes the database connection on which it is invoked
    to free up as much memory as it can, by calling
    [sqlite3_db_release_memory()].
    </p>
}

Pragma soft_heap_limit {
    <p><b>PRAGMA soft_heap_limit<br>
          PRAGMA soft_heap_limit=</b><i>N</i></p>

    <p>^This pragma invokes the [sqlite3_soft_heap_limit64()] interface with
    the argument N, if N is specified and is a non-negative integer.
    ^The soft_heap_limit pragma always returns the same integer
    that would be returned by the [sqlite3_soft_heap_limit64](-1) C-language
    function.
    </p>
}

Pragma synchronous {
    <p>^(<b>PRAGMA synchronous;
       <br>PRAGMA synchronous = </b>
          <i>0 | OFF | 1 | NORMAL | 2 | FULL</i><b>;</b></p>

    <p>Query or change the setting of the "synchronous" flag.)^