]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge changes on trunk into the generated-columns branch.
authordrh <drh@noemail.net>
Tue, 22 Oct 2019 12:02:09 +0000 (12:02 +0000)
committerdrh <drh@noemail.net>
Tue, 22 Oct 2019 12:02:09 +0000 (12:02 +0000)
FossilOrigin-Name: ba123b8c201053d8f9387de38f3513b06f7721b28d79fab8489f96d336105117

1  2 
manifest
manifest.uuid
src/build.c
src/expr.c
src/insert.c
src/sqliteInt.h
src/where.c

diff --cc manifest
index b164bf9dd0aa50f972884e7eaeadb3ae1aaa28b4,8c107179f6abc0f86e50c651b5dca3f8dadecff2..ca085798dd286d9862733a5f0979ed5d260f528e
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Changes\sto\sthe\sINSERT\slogic\sto\smake\sit\ssimpler\sand\sfaster\sand\sso\sthat\nit\sworks\swith\sgenerated\scolumns\sand\sBEFORE\striggers.
- D 2019-10-21T01:04:11.302
 -C Previous\scheck-in\sto\sfix\s[b47e3627ecaadbde]\swas\sincomplete.\s\sThis\scheck-in\ncompletes\sthe\sfix\sand\sadds\sa\stest\scases.
 -D 2019-10-22T11:29:22.330
++C Merge\schanges\son\strunk\sinto\sthe\sgenerated-columns\sbranch.
++D 2019-10-22T12:02:09.134
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -469,15 -469,15 +469,15 @@@ F src/btmutex.c 8acc2f464ee76324bf13310
  F src/btree.c a8a9c2ce62bdf54c8cf9795143d7cb10b7473a1230a0572f702d061ffcceefe5
  F src/btree.h f27a33c49280209a93385e218306c4ee5f46ba8d7649d2f81a7166b282232484
  F src/btreeInt.h 91806f01fd1145a9a86ba3042f25c38d8faf6002701bf5e780742cf88bcff437
- F src/build.c b5eefc5b29788ff43062aa15f08e17df843fcc3dedbf6ad2e8a5ecfdd71c83a8
- F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73
 -F src/build.c 0e558ef847ccc4b6aa38dee44cde9d9df46e953b0a66e4fa4376265824955fe3
++F src/build.c c8d76afe573ad68678206f85c122544d65932f95ad067e17570de930de4b0276
+ F src/callback.c 88615dfc0a82167b65b452b4b305dbf86be77200b3343c6ffc6d03e92a01d181
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 1b0724e66f95f33b160b1af85caaf9cceb325d22abf39bd24df4f54a73982251
  F src/date.c e1d8ac7102f3f283e63e13867acb0efa33861cf34f0faf4cdbaf9fa7a1eb7041
  F src/dbpage.c 135eb3b5e74f9ef74bde5cec2571192c90c86984fa534c88bf4a055076fa19b7
  F src/dbstat.c c12833de69cb655751487d2c5a59607e36be1c58ba1f4bd536609909ad47b319
  F src/delete.c d08c9e01a2664afd12edcfa3a9c6578517e8ff8735f35509582693adbe0edeaf
- F src/expr.c e00d483f68fcaa2bfb334ba21550f949ca92b239f86ca22824577988efc53010
 -F src/expr.c da4b31b0dfba1bf7891d996e91eff371b4eb5672341beb0c54299f56bc745cbc
++F src/expr.c 7f2492f1a8190ae51e5cd2b8d64dd97d672de6270789daa70031c9243b101431
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c 6271fda51794b569d736eba4097d28f13080cd0c9eb66d5fcecb4b77336fae50
  F src/func.c ed33e38cd642058182a31a3f518f2e34f4bbe53aa483335705c153c4d3e50b12
@@@ -486,7 -486,7 +486,7 @@@ F src/hash.c 8d7dda241d0ebdafb6ffdeda31
  F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
  F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c db411a28a6c5bf159c0ea9f9b7dde1b41b4be6f393a77b574e8086dd4bea0153
 -F src/insert.c 69e47d76598d26f87cc9b32b9e9fc84e49e3b9371b5d9ae8465f38486ad9665e
++F src/insert.c f657ee9898f147d3dd96986dae2611afb75bcef8dd3644f182232f5ca2268a0e
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c 4ddc65ae13c0d93db0ceedc8b14a28c8c260513448b0eb8c5a2ac375e3b6a85d
  F src/main.c 3e01f6a1c96643381b5f9d79e4ff7f2520bc5712197746fb0852283e78cccf66
@@@ -523,14 -523,14 +523,14 @@@ F src/pragma.h 40962d65b645bb3f08c1f4c4
  F src/prepare.c 6049beb71385f017af6fc320d2c75a4e50b75e280c54232442b785fbb83df057
  F src/printf.c 9be6945837c839ba57837b4bc3af349eba630920fa5532aa518816defe42a7d4
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 -F src/resolve.c e021be0c1c4a2125fa38aabcd8dbb764bf5b2c889a948c30d3708430ec6ccd00
 +F src/resolve.c 2160146697e6e0ba251b5a954e16f542b6e684fb4778cec2994094ab401ef996
  F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
- F src/select.c 7ef05eeb7f686f84dd1428cbdca280c898915bbf56e1ea97bd42ecc070af78d3
+ F src/select.c 9c81d168b5a7ddc2277a6f6d3daec9ddd0ff5cebf12628d7e342f3c337231e7e
  F src/shell.c.in 3093bdf5eedd91da08f0268f1442aa510a60798c9441868149ddbecdf8bcaa79
  F src/sqlite.h.in 5725a6b20190a1e8d662077a1c1c8ea889ad7be90dd803f914c2de226f5fe6ab
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h cef696ce3293242c67b2339763608427bf72ee66f1f3a05389ac2a7b46001c31
- F src/sqliteInt.h 49ade8ae4322263c4bfb46ededd566f6351a82380294bb11efb91d2ae100ca24
 -F src/sqliteInt.h 5e98328254a8932a912cd12960cc7a4f22078a56bc9c617ffe042ad554c0db68
++F src/sqliteInt.h 3a498ce50d079e0b2c4d780fc48d93024afaac4511021bc121d4277cb1a3df56
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -611,10 -611,10 +611,10 @@@ F src/vxworks.h d2988f4e5a61a4dfe82c652
  F src/wal.c bbd6838bd79c0a32144d482fb0b6a9d2d1a252fb3b16d5005ec30f2f80413b0d
  F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a
  F src/walker.c d5a94907dcac990e31976be9dc769d17f6a806782593d6aec9d760ee01ec22cd
- F src/where.c 9ab206102932b7fe0e05f8e9133b5c0a351c0fd6f01e5d65ae4d1cd116aa89e6
- F src/whereInt.h 2c6bae136a7c0be6ff75dc36950d1968c67d005c8e51d7a9d77cb996bb4843d9
 -F src/where.c 148fa1ce9d6421a2c325291cae7681b3492cf1f219ff58f9ef38695a7f3c61ff
++F src/where.c 6ff3ef076485dd71efbbabcc7ddc0473c04a9bdcb524128939757b002466f2d1
+ F src/whereInt.h 4a296fd4fa79fdcbc2b5e8c1b898901617655811223e1082b899c23ecb092217
 -F src/wherecode.c 57d034a0dbca9f86e1a691f74e469ed09ff49d04712b838fb68596b76a9af7d2
 +F src/wherecode.c d96190c0b536339375846048ad3c41758b4bd6baaf8f8f350da5911d42bc4a61
- F src/whereexpr.c 05c283d26aa9c3f5d1bf13a5f6a573b43295b9db280eff18e26f97d7d7f119b4
+ F src/whereexpr.c 0705f608f6dbbd4e95d440528d6c760b91b6f402ba4eb8b8d964c110e2010780
  F src/window.c 064f251451c8e2a1c76b6269229d911a651e119c6a5f522b6eaebf8dc8714041
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
@@@ -1847,7 -1847,7 +1847,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 932a37275d7e932f8237d32c8fc6087ed8cd342fe01ef2f7a43c7237ab84c9ac
- R 47a4a5169a9bdb2c3c1d9653909f73fd
 -P 9ff80a9bf8fee776e2f282d0597215b77d48093ebc71d047ad1457da0582ddbc
 -R afcf07bfa3aa997eb10b76d021564d31
++P bc368cb090376d33d3844e3689c4f6bd19eed758e39b878ee67fef93b1c839ea c7da1c01f1f239e68c2173ac5748b8c5798271e43bdcee68f51f97cd0ca92bd5
++R 3ed2fbe0c143869ff55bbbadcc27c112
  U drh
- Z f477eaf49473bce8390a1ef42b7a8a95
 -Z 3c9d55fa5bc6fe09c146135efce06e8a
++Z c16a467e1be0aad7834a9c102a3d7298
diff --cc manifest.uuid
index 1071898fde7bb6afce4a85a766bb058119edc792,60f43863b367114cc2ecf78f0a1631fe4a06739d..7095e594e64ee48d1aadd274ff608ac46a4d14a5
@@@ -1,1 -1,1 +1,1 @@@
- bc368cb090376d33d3844e3689c4f6bd19eed758e39b878ee67fef93b1c839ea
 -c7da1c01f1f239e68c2173ac5748b8c5798271e43bdcee68f51f97cd0ca92bd5
++ba123b8c201053d8f9387de38f3513b06f7721b28d79fab8489f96d336105117
diff --cc src/build.c
index 4501d41d4632c89955113352fd8cba2cec16a81e,22a57a240b9168d026b640e27898722153372ced..ad65c25ef7ae2a6e797c78748fbeaa9dc3a593c8
@@@ -1599,87 -1520,6 +1599,52 @@@ void sqlite3AddCollateType(Parse *pPars
    }
  }
  
- /*
- ** This function returns the collation sequence for database native text
- ** encoding identified by the string zName, length nName.
- **
- ** If the requested collation sequence is not available, or not available
- ** in the database native encoding, the collation factory is invoked to
- ** request it. If the collation factory does not supply such a sequence,
- ** and the sequence is available in another text encoding, then that is
- ** returned instead.
- **
- ** If no versions of the requested collations sequence are available, or
- ** another error occurs, NULL is returned and an error message written into
- ** pParse.
- **
- ** This routine is a wrapper around sqlite3FindCollSeq().  This routine
- ** invokes the collation factory if the named collation cannot be found
- ** and generates an error message.
- **
- ** See also: sqlite3FindCollSeq(), sqlite3GetCollSeq()
- */
- CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char *zName){
-   sqlite3 *db = pParse->db;
-   u8 enc = ENC(db);
-   u8 initbusy = db->init.busy;
-   CollSeq *pColl;
-   pColl = sqlite3FindCollSeq(db, enc, zName, initbusy);
-   if( !initbusy && (!pColl || !pColl->xCmp) ){
-     pColl = sqlite3GetCollSeq(pParse, enc, pColl, zName);
-   }
-   return pColl;
- }
 +/* Change the most recently parsed column to be a GENERATED ALWAYS AS
 +** column.
 +*/
 +void sqlite3AddGenerated(Parse *pParse, Expr *pExpr, Token *pType){
 +#ifndef SQLITE_OMIT_GENERATED_COLUMNS
 +  u8 eType = COLFLAG_VIRTUAL;
 +  Table *pTab = pParse->pNewTable;
 +  Column *pCol;
 +  if( pTab==0 ) goto generated_done;
 +  pCol = &(pTab->aCol[pTab->nCol-1]);
 +  if( IN_DECLARE_VTAB ){
 +    sqlite3ErrorMsg(pParse, "virtual tables cannot use computed columns");
 +    goto generated_done;
 +  }
 +  if( pCol->pDflt ) goto generated_error;
 +  if( pType ){
 +    if( pType->n==7 && sqlite3StrNICmp("virtual",pType->z,7)==0 ){
 +      /* no-op */
 +    }else if( pType->n==6 && sqlite3StrNICmp("stored",pType->z,6)==0 ){
 +      eType = COLFLAG_STORED;
 +    }else{
 +      goto generated_error;
 +    }
 +  }
 +  if( eType==COLFLAG_VIRTUAL ) pTab->nNVCol--;
 +  pCol->colFlags |= eType;
 +  assert( TF_HasVirtual==COLFLAG_VIRTUAL );
 +  assert( TF_HasStored==COLFLAG_STORED );
 +  pTab->tabFlags |= eType;
 +  pCol->pDflt = pExpr;
 +  pExpr = 0;
 +  goto generated_done;
 +
 +generated_error:
 +  sqlite3ErrorMsg(pParse, "incorrect GENERATED ALWAYS AS on column \"%s\"",
 +                  pCol->zName);
 +generated_done:
 +  sqlite3ExprDelete(pParse->db, pExpr);
 +#else
 +  /* Throw and error for the GENERATED ALWAYS AS clause if the
 +  ** SQLITE_OMIT_GENERATED_COLUMNS compile-time option is used. */
 +  sqlite3ErrorMsg(pParse, "GENERATED ALWAYS AS not supported");
 +  sqlite3ExprDelete(pParse->db, pExpr);
 +#endif
 +}
 +
  /*
  ** Generate code that will increment the schema cookie.
  **
diff --cc src/expr.c
Simple merge
diff --cc src/insert.c
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/where.c
Simple merge