-C Add\ssupport\sfor\sthe\s"excluded.*"\snames\sin\sthe\sUPDATE\sclause\sof\san\supsert.
-D 2018-04-16T13:00:50.958
+C Remove\sthe\sMySQL\supsert\ssyntax.\s\s\sAs\san\soptional\salias\sto\sthe\sinsert\stable\nname\sin\sorder\sto\sfinish\sout\sPostgreSQL\supsert\ssyntax\semulation.
+D 2018-04-16T13:26:53.730
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
F src/pager.c 1bb6a57fa0465296a4d6109a1a64610a0e7adde1f3acf3ef539a9d972908ce8f
F src/pager.h c571b064df842ec8f2e90855dead9acf4cbe0d1b2c05afe0ef0d0145f7fd0388
-F src/parse.y 22da8d033498cb10f1a74e7a9e48359fd1f0fb5d34298f8232d972df68dbe797
+F src/parse.y 06555966b12b7c71b5c3e0ced8c36f4cab6ba11c2af0ec29307597310129eda6
F src/pcache.c 135ef0bc6fb2e3b7178d49ab5c9176254c8a691832c1bceb1156b2fbdd0869bd
F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
F src/prepare.c b086fea6a1952db88beca31fdd621201ee5e4ce3f02905248cc3035a8174aa89
F src/printf.c d3b7844ddeb11fbbdd38dd84d09c9c1ac171d21fb038473c3aa97981201cc660
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
-F src/resolve.c 16715d4fe35694a6992335fc2896a90c3bc2f8328cefc25592cdfec824218678
+F src/resolve.c f0efb32b5d6a45ded839cc1bae7e57d6c27b7c7259c2ebeaa7ee361b66ab6164
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F src/select.c 3e84cb869930aa8fcacd3acbb1a0ec2d82736c8479d6a4367a5f1a926fb8a763
F src/shell.c.in cc960721e56ebc1a78773bb5d2f5608b54275f945cbe49e4afe919d6888062a7
F tool/mkautoconfamal.sh 422fc365358a2e92876ffc62971a0ff28ed472fc8bcf9de0df921c736fdeca5e
F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
F tool/mkctimec.tcl dd183b73ae1c28249669741c250525f0407e579a70482371668fd5f130d9feb3
-F tool/mkkeywordhash.c 9daf08059d76b27b7d7b5729763ad01c5479d04ffe9d5ead87a864a01607e619
+F tool/mkkeywordhash.c 98d7ce6f8ed32f23d6b30fbde6d9ed466d4ae38a9f8add20a36bebd3df56171c
F tool/mkmsvcmin.tcl cad0c7b54d7dd92bc87d59f36d4cc4f070eb2e625f14159dc2f5c4204e6a13ea
F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
F tool/mkopcodeh.tcl 4ee2a30ccbd900dc4d5cdb61bdab87cd2166cd2affcc78c9cc0b8d22a65b2eee
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 54d96772e78b7f57d5b590aebe34a139ade73629aebe16677372650b33513b1d
-R bdaf4436c6e5d9601bf3da500ee61f0e
+P 0203f34faae07fbea0bff2d23b81fb37df8854cded4cdadac5a034132a096b6d
+R 16a23a99570059dda96879cb45289d18
U drh
-Z 75b8643425669c47908a06e24f421b91
+Z 35bd09850d2fa1954c923b0a7bd25a8f
-0203f34faae07fbea0bff2d23b81fb37df8854cded4cdadac5a034132a096b6d
\ No newline at end of file
+810d9f63be46c1452718b05e51c519fb64e9fabf2f1813b5e07b1041dbb71880
\ No newline at end of file
//
%fallback ID
ABORT ACTION AFTER ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST COLUMNKW
- CONFLICT DATABASE DEFERRED DESC DETACH DO DUPLICATE
+ CONFLICT DATABASE DEFERRED DESC DETACH DO
EACH END EXCLUSIVE EXPLAIN FAIL FOR
IGNORE IMMEDIATE INITIALLY INSTEAD LIKE_KW MATCH NO PLAN
QUERY KEY OF OFFSET PRAGMA RAISE RECURSIVE RELEASE REPLACE RESTRICT ROW
upsert(U). {
sqlite3Insert(pParse, X, S, F, R, U);
}
+cmd ::= with insert_cmd(R) INTO fullname(X) idlist_opt(F) AS nm(A) select(S)
+ upsert(U). {
+ if( X ) X->a[0].zAlias = sqlite3NameFromToken(pParse->db, &A);
+ sqlite3Insert(pParse, X, S, F, R, U);
+}
cmd ::= with insert_cmd(R) INTO fullname(X) idlist_opt(F) DEFAULT VALUES.
{
sqlite3Insert(pParse, X, 0, F, R, 0);
upsert(A) ::= ON CONFLICT LP sortlist(T) RP where_opt(TW)
DO UPDATE SET setlist(Z) where_opt(W).
{ A = sqlite3UpsertNew(pParse->db,T,TW,Z,W);}
-upsert(A) ::= ON DUPLICATE KEY UPDATE setlist(Z) where_opt(W).
- { A = sqlite3UpsertNew(pParse->db,0,0,Z,W); }
upsert(A) ::= ON CONFLICT LP sortlist(T) RP where_opt(TW) DO NOTHING.
{ A = sqlite3UpsertNew(pParse->db,T,TW,0,0); }
upsert(A) ::= ON CONFLICT DO NOTHING.
pExpr->iTable = pNC->uNC.pUpsert->regData + iCol;
eNewExprOp = TK_REGISTER;
}else
-#endif
+#endif /* SQLITE_OMIT_UPSERT */
{
#ifndef SQLITE_OMIT_TRIGGER
if( iCol<0 ){
pExpr->pTab = pTab;
pExpr->iColumn = (i16)iCol;
eNewExprOp = TK_TRIGGER;
-#endif /* SQLITE_OMIT_TRIGGER
+#endif /* SQLITE_OMIT_TRIGGER */
}
}
}
{ "DISTINCT", "TK_DISTINCT", ALWAYS },
{ "DO", "TK_DO", UPSERT },
{ "DROP", "TK_DROP", ALWAYS },
- { "DUPLICATE", "TK_DUPLICATE", UPSERT },
{ "END", "TK_END", ALWAYS },
{ "EACH", "TK_EACH", TRIGGER },
{ "ELSE", "TK_ELSE", ALWAYS },