extensions/sqlite/sqlite-source/parse.c
changeset 1645 27307df4d711
parent 1203 633c25ce6405
     1.1 --- a/extensions/sqlite/sqlite-source/parse.c	Sun Oct 28 05:06:12 2007 +0000
     1.2 +++ b/extensions/sqlite/sqlite-source/parse.c	Sun Oct 28 05:48:06 2007 +0000
     1.3 @@ -7,7 +7,6 @@
     1.4  #line 56 "parse.y"
     1.5  
     1.6  #include "sqliteInt.h"
     1.7 -#include "parse.h"
     1.8  
     1.9  /*
    1.10  ** An instance of this structure holds information about the
    1.11 @@ -43,7 +42,7 @@
    1.12  */
    1.13  struct AttachKey { int type;  Token key; };
    1.14  
    1.15 -#line 48 "parse.c"
    1.16 +#line 47 "parse.c"
    1.17  /* Next is all token values, in a form suitable for use by makeheaders.
    1.18  ** This section will be null unless lemon is run with the -m switch.
    1.19  */
    1.20 @@ -1267,9 +1266,9 @@
    1.21      case 155:
    1.22      case 189:
    1.23      case 206:
    1.24 -#line 374 "parse.y"
    1.25 +#line 373 "parse.y"
    1.26  {sqlite3SelectDelete((yypminor->yy219));}
    1.27 -#line 1274 "parse.c"
    1.28 +#line 1273 "parse.c"
    1.29        break;
    1.30      case 169:
    1.31      case 170:
    1.32 @@ -1281,9 +1280,9 @@
    1.33      case 221:
    1.34      case 223:
    1.35      case 235:
    1.36 -#line 627 "parse.y"
    1.37 +#line 633 "parse.y"
    1.38  {sqlite3ExprDelete((yypminor->yy172));}
    1.39 -#line 1288 "parse.c"
    1.40 +#line 1287 "parse.c"
    1.41        break;
    1.42      case 174:
    1.43      case 182:
    1.44 @@ -1297,40 +1296,40 @@
    1.45      case 215:
    1.46      case 216:
    1.47      case 222:
    1.48 -#line 876 "parse.y"
    1.49 +#line 887 "parse.y"
    1.50  {sqlite3ExprListDelete((yypminor->yy174));}
    1.51 -#line 1304 "parse.c"
    1.52 +#line 1303 "parse.c"
    1.53        break;
    1.54      case 188:
    1.55      case 193:
    1.56      case 201:
    1.57      case 202:
    1.58 -#line 489 "parse.y"
    1.59 +#line 490 "parse.y"
    1.60  {sqlite3SrcListDelete((yypminor->yy373));}
    1.61 -#line 1312 "parse.c"
    1.62 +#line 1311 "parse.c"
    1.63        break;
    1.64      case 205:
    1.65      case 208:
    1.66      case 214:
    1.67 -#line 506 "parse.y"
    1.68 +#line 507 "parse.y"
    1.69  {sqlite3IdListDelete((yypminor->yy432));}
    1.70 -#line 1319 "parse.c"
    1.71 +#line 1318 "parse.c"
    1.72        break;
    1.73      case 231:
    1.74      case 236:
    1.75 -#line 979 "parse.y"
    1.76 +#line 990 "parse.y"
    1.77  {sqlite3DeleteTriggerStep((yypminor->yy243));}
    1.78 -#line 1325 "parse.c"
    1.79 +#line 1324 "parse.c"
    1.80        break;
    1.81      case 233:
    1.82 -#line 965 "parse.y"
    1.83 +#line 976 "parse.y"
    1.84  {sqlite3IdListDelete((yypminor->yy370).b);}
    1.85 -#line 1330 "parse.c"
    1.86 +#line 1329 "parse.c"
    1.87        break;
    1.88      case 238:
    1.89 -#line 1052 "parse.y"
    1.90 +#line 1063 "parse.y"
    1.91  {sqlite3ExprDelete((yypminor->yy386));}
    1.92 -#line 1335 "parse.c"
    1.93 +#line 1334 "parse.c"
    1.94        break;
    1.95      default:  break;   /* If no destructor action specified: do nothing */
    1.96    }
    1.97 @@ -1493,7 +1492,7 @@
    1.98  
    1.99    sqlite3ErrorMsg(pParse, "parser stack overflow");
   1.100    pParse->parseError = 1;
   1.101 -#line 1499 "parse.c"
   1.102 +#line 1498 "parse.c"
   1.103     sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */
   1.104  }
   1.105  
   1.106 @@ -1944,67 +1943,67 @@
   1.107        case 303:
   1.108        case 305:
   1.109        case 309:
   1.110 -#line 97 "parse.y"
   1.111 +#line 96 "parse.y"
   1.112  {
   1.113  }
   1.114 -#line 1953 "parse.c"
   1.115 +#line 1952 "parse.c"
   1.116          break;
   1.117        case 3:
   1.118 -#line 100 "parse.y"
   1.119 +#line 99 "parse.y"
   1.120  { sqlite3FinishCoding(pParse); }
   1.121 -#line 1958 "parse.c"
   1.122 +#line 1957 "parse.c"
   1.123          break;
   1.124        case 6:
   1.125 -#line 103 "parse.y"
   1.126 +#line 102 "parse.y"
   1.127  { sqlite3BeginParse(pParse, 0); }
   1.128 -#line 1963 "parse.c"
   1.129 +#line 1962 "parse.c"
   1.130          break;
   1.131        case 7:
   1.132 -#line 105 "parse.y"
   1.133 +#line 104 "parse.y"
   1.134  { sqlite3BeginParse(pParse, 1); }
   1.135 -#line 1968 "parse.c"
   1.136 +#line 1967 "parse.c"
   1.137          break;
   1.138        case 8:
   1.139 -#line 106 "parse.y"
   1.140 +#line 105 "parse.y"
   1.141  { sqlite3BeginParse(pParse, 2); }
   1.142 -#line 1973 "parse.c"
   1.143 +#line 1972 "parse.c"
   1.144          break;
   1.145        case 9:
   1.146 -#line 112 "parse.y"
   1.147 +#line 111 "parse.y"
   1.148  {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy46);}
   1.149 -#line 1978 "parse.c"
   1.150 +#line 1977 "parse.c"
   1.151          break;
   1.152        case 13:
   1.153 -#line 117 "parse.y"
   1.154 +#line 116 "parse.y"
   1.155  {yygotominor.yy46 = TK_DEFERRED;}
   1.156 -#line 1983 "parse.c"
   1.157 +#line 1982 "parse.c"
   1.158          break;
   1.159        case 14:
   1.160        case 15:
   1.161        case 16:
   1.162        case 107:
   1.163        case 109:
   1.164 -#line 118 "parse.y"
   1.165 +#line 117 "parse.y"
   1.166  {yygotominor.yy46 = yymsp[0].major;}
   1.167 -#line 1992 "parse.c"
   1.168 +#line 1991 "parse.c"
   1.169          break;
   1.170        case 17:
   1.171        case 18:
   1.172 -#line 121 "parse.y"
   1.173 +#line 120 "parse.y"
   1.174  {sqlite3CommitTransaction(pParse);}
   1.175 -#line 1998 "parse.c"
   1.176 +#line 1997 "parse.c"
   1.177          break;
   1.178        case 19:
   1.179 -#line 123 "parse.y"
   1.180 +#line 122 "parse.y"
   1.181  {sqlite3RollbackTransaction(pParse);}
   1.182 -#line 2003 "parse.c"
   1.183 +#line 2002 "parse.c"
   1.184          break;
   1.185        case 21:
   1.186 -#line 128 "parse.y"
   1.187 +#line 127 "parse.y"
   1.188  {
   1.189     sqlite3StartTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,yymsp[-4].minor.yy46,0,0,yymsp[-2].minor.yy46);
   1.190  }
   1.191 -#line 2010 "parse.c"
   1.192 +#line 2009 "parse.c"
   1.193          break;
   1.194        case 22:
   1.195        case 25:
   1.196 @@ -2017,9 +2016,9 @@
   1.197        case 113:
   1.198        case 212:
   1.199        case 215:
   1.200 -#line 132 "parse.y"
   1.201 +#line 131 "parse.y"
   1.202  {yygotominor.yy46 = 0;}
   1.203 -#line 2025 "parse.c"
   1.204 +#line 2024 "parse.c"
   1.205          break;
   1.206        case 23:
   1.207        case 24:
   1.208 @@ -2029,40 +2028,40 @@
   1.209        case 111:
   1.210        case 213:
   1.211        case 216:
   1.212 -#line 133 "parse.y"
   1.213 +#line 132 "parse.y"
   1.214  {yygotominor.yy46 = 1;}
   1.215 -#line 2037 "parse.c"
   1.216 +#line 2036 "parse.c"
   1.217          break;
   1.218        case 26:
   1.219 -#line 139 "parse.y"
   1.220 +#line 138 "parse.y"
   1.221  {
   1.222    sqlite3EndTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy0,0);
   1.223  }
   1.224 -#line 2044 "parse.c"
   1.225 +#line 2043 "parse.c"
   1.226          break;
   1.227        case 27:
   1.228 -#line 142 "parse.y"
   1.229 +#line 141 "parse.y"
   1.230  {
   1.231    sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy219);
   1.232    sqlite3SelectDelete(yymsp[0].minor.yy219);
   1.233  }
   1.234 -#line 2052 "parse.c"
   1.235 +#line 2051 "parse.c"
   1.236          break;
   1.237        case 30:
   1.238 -#line 154 "parse.y"
   1.239 +#line 153 "parse.y"
   1.240  {
   1.241    yygotominor.yy410.z = yymsp[-2].minor.yy410.z;
   1.242    yygotominor.yy410.n = (pParse->sLastToken.z-yymsp[-2].minor.yy410.z) + pParse->sLastToken.n;
   1.243  }
   1.244 -#line 2060 "parse.c"
   1.245 +#line 2059 "parse.c"
   1.246          break;
   1.247        case 31:
   1.248 -#line 158 "parse.y"
   1.249 +#line 157 "parse.y"
   1.250  {
   1.251    sqlite3AddColumn(pParse,&yymsp[0].minor.yy410);
   1.252    yygotominor.yy410 = yymsp[0].minor.yy410;
   1.253  }
   1.254 -#line 2068 "parse.c"
   1.255 +#line 2067 "parse.c"
   1.256          break;
   1.257        case 32:
   1.258        case 33:
   1.259 @@ -2070,14 +2069,14 @@
   1.260        case 35:
   1.261        case 36:
   1.262        case 255:
   1.263 -#line 168 "parse.y"
   1.264 +#line 167 "parse.y"
   1.265  {yygotominor.yy410 = yymsp[0].minor.yy0;}
   1.266 -#line 2078 "parse.c"
   1.267 +#line 2077 "parse.c"
   1.268          break;
   1.269        case 38:
   1.270 -#line 229 "parse.y"
   1.271 +#line 228 "parse.y"
   1.272  {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy410);}
   1.273 -#line 2083 "parse.c"
   1.274 +#line 2082 "parse.c"
   1.275          break;
   1.276        case 39:
   1.277        case 42:
   1.278 @@ -2090,142 +2089,142 @@
   1.279        case 252:
   1.280        case 253:
   1.281        case 254:
   1.282 -#line 230 "parse.y"
   1.283 +#line 229 "parse.y"
   1.284  {yygotominor.yy410 = yymsp[0].minor.yy410;}
   1.285 -#line 2098 "parse.c"
   1.286 +#line 2097 "parse.c"
   1.287          break;
   1.288        case 40:
   1.289 -#line 231 "parse.y"
   1.290 +#line 230 "parse.y"
   1.291  {
   1.292    yygotominor.yy410.z = yymsp[-3].minor.yy410.z;
   1.293    yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy410.z;
   1.294  }
   1.295 -#line 2106 "parse.c"
   1.296 +#line 2105 "parse.c"
   1.297          break;
   1.298        case 41:
   1.299 -#line 235 "parse.y"
   1.300 +#line 234 "parse.y"
   1.301  {
   1.302    yygotominor.yy410.z = yymsp[-5].minor.yy410.z;
   1.303    yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy410.z;
   1.304  }
   1.305 -#line 2114 "parse.c"
   1.306 +#line 2113 "parse.c"
   1.307          break;
   1.308        case 43:
   1.309 -#line 241 "parse.y"
   1.310 +#line 240 "parse.y"
   1.311  {yygotominor.yy410.z=yymsp[-1].minor.yy410.z; yygotominor.yy410.n=yymsp[0].minor.yy410.n+(yymsp[0].minor.yy410.z-yymsp[-1].minor.yy410.z);}
   1.312 -#line 2119 "parse.c"
   1.313 +#line 2118 "parse.c"
   1.314          break;
   1.315        case 50:
   1.316        case 52:
   1.317 -#line 252 "parse.y"
   1.318 +#line 251 "parse.y"
   1.319  {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy172);}
   1.320 -#line 2125 "parse.c"
   1.321 +#line 2124 "parse.c"
   1.322          break;
   1.323        case 51:
   1.324 -#line 253 "parse.y"
   1.325 +#line 252 "parse.y"
   1.326  {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy172);}
   1.327 -#line 2130 "parse.c"
   1.328 +#line 2129 "parse.c"
   1.329          break;
   1.330        case 53:
   1.331 -#line 255 "parse.y"
   1.332 +#line 254 "parse.y"
   1.333  {
   1.334 -  Expr *p = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0);
   1.335 +  Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy172, 0, 0);
   1.336    sqlite3AddDefaultValue(pParse,p);
   1.337  }
   1.338 -#line 2138 "parse.c"
   1.339 +#line 2137 "parse.c"
   1.340          break;
   1.341        case 54:
   1.342 -#line 259 "parse.y"
   1.343 +#line 258 "parse.y"
   1.344  {
   1.345 -  Expr *p = sqlite3Expr(TK_STRING, 0, 0, &yymsp[0].minor.yy410);
   1.346 +  Expr *p = sqlite3PExpr(pParse, TK_STRING, 0, 0, &yymsp[0].minor.yy410);
   1.347    sqlite3AddDefaultValue(pParse,p);
   1.348  }
   1.349 -#line 2146 "parse.c"
   1.350 +#line 2145 "parse.c"
   1.351          break;
   1.352        case 56:
   1.353 -#line 268 "parse.y"
   1.354 +#line 267 "parse.y"
   1.355  {sqlite3AddNotNull(pParse, yymsp[0].minor.yy46);}
   1.356 -#line 2151 "parse.c"
   1.357 +#line 2150 "parse.c"
   1.358          break;
   1.359        case 57:
   1.360 -#line 270 "parse.y"
   1.361 +#line 269 "parse.y"
   1.362  {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy46,yymsp[0].minor.yy46,yymsp[-2].minor.yy46);}
   1.363 -#line 2156 "parse.c"
   1.364 +#line 2155 "parse.c"
   1.365          break;
   1.366        case 58:
   1.367 -#line 271 "parse.y"
   1.368 +#line 270 "parse.y"
   1.369  {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy46,0,0,0,0);}
   1.370 -#line 2161 "parse.c"
   1.371 +#line 2160 "parse.c"
   1.372          break;
   1.373        case 59:
   1.374 -#line 272 "parse.y"
   1.375 +#line 271 "parse.y"
   1.376  {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy172);}
   1.377 -#line 2166 "parse.c"
   1.378 +#line 2165 "parse.c"
   1.379          break;
   1.380        case 60:
   1.381 -#line 274 "parse.y"
   1.382 +#line 273 "parse.y"
   1.383  {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy410,yymsp[-1].minor.yy174,yymsp[0].minor.yy46);}
   1.384 -#line 2171 "parse.c"
   1.385 +#line 2170 "parse.c"
   1.386          break;
   1.387        case 61:
   1.388 -#line 275 "parse.y"
   1.389 +#line 274 "parse.y"
   1.390  {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy46);}
   1.391 -#line 2176 "parse.c"
   1.392 +#line 2175 "parse.c"
   1.393          break;
   1.394        case 62:
   1.395 -#line 276 "parse.y"
   1.396 +#line 275 "parse.y"
   1.397  {sqlite3AddCollateType(pParse, (char*)yymsp[0].minor.yy410.z, yymsp[0].minor.yy410.n);}
   1.398 -#line 2181 "parse.c"
   1.399 +#line 2180 "parse.c"
   1.400          break;
   1.401        case 65:
   1.402 -#line 289 "parse.y"
   1.403 +#line 288 "parse.y"
   1.404  { yygotominor.yy46 = OE_Restrict * 0x010101; }
   1.405 -#line 2186 "parse.c"
   1.406 +#line 2185 "parse.c"
   1.407          break;
   1.408        case 66:
   1.409 -#line 290 "parse.y"
   1.410 +#line 289 "parse.y"
   1.411  { yygotominor.yy46 = (yymsp[-1].minor.yy46 & yymsp[0].minor.yy405.mask) | yymsp[0].minor.yy405.value; }
   1.412 -#line 2191 "parse.c"
   1.413 +#line 2190 "parse.c"
   1.414          break;
   1.415        case 67:
   1.416 -#line 292 "parse.y"
   1.417 +#line 291 "parse.y"
   1.418  { yygotominor.yy405.value = 0;     yygotominor.yy405.mask = 0x000000; }
   1.419 -#line 2196 "parse.c"
   1.420 +#line 2195 "parse.c"
   1.421          break;
   1.422        case 68:
   1.423 -#line 293 "parse.y"
   1.424 +#line 292 "parse.y"
   1.425  { yygotominor.yy405.value = yymsp[0].minor.yy46;     yygotominor.yy405.mask = 0x0000ff; }
   1.426 -#line 2201 "parse.c"
   1.427 +#line 2200 "parse.c"
   1.428          break;
   1.429        case 69:
   1.430 -#line 294 "parse.y"
   1.431 +#line 293 "parse.y"
   1.432  { yygotominor.yy405.value = yymsp[0].minor.yy46<<8;  yygotominor.yy405.mask = 0x00ff00; }
   1.433 -#line 2206 "parse.c"
   1.434 +#line 2205 "parse.c"
   1.435          break;
   1.436        case 70:
   1.437 -#line 295 "parse.y"
   1.438 +#line 294 "parse.y"
   1.439  { yygotominor.yy405.value = yymsp[0].minor.yy46<<16; yygotominor.yy405.mask = 0xff0000; }
   1.440 -#line 2211 "parse.c"
   1.441 +#line 2210 "parse.c"
   1.442          break;
   1.443        case 71:
   1.444 -#line 297 "parse.y"
   1.445 +#line 296 "parse.y"
   1.446  { yygotominor.yy46 = OE_SetNull; }
   1.447 -#line 2216 "parse.c"
   1.448 +#line 2215 "parse.c"
   1.449          break;
   1.450        case 72:
   1.451 -#line 298 "parse.y"
   1.452 +#line 297 "parse.y"
   1.453  { yygotominor.yy46 = OE_SetDflt; }
   1.454 -#line 2221 "parse.c"
   1.455 +#line 2220 "parse.c"
   1.456          break;
   1.457        case 73:
   1.458 -#line 299 "parse.y"
   1.459 +#line 298 "parse.y"
   1.460  { yygotominor.yy46 = OE_Cascade; }
   1.461 -#line 2226 "parse.c"
   1.462 +#line 2225 "parse.c"
   1.463          break;
   1.464        case 74:
   1.465 -#line 300 "parse.y"
   1.466 +#line 299 "parse.y"
   1.467  { yygotominor.yy46 = OE_Restrict; }
   1.468 -#line 2231 "parse.c"
   1.469 +#line 2230 "parse.c"
   1.470          break;
   1.471        case 75:
   1.472        case 76:
   1.473 @@ -2234,97 +2233,97 @@
   1.474        case 95:
   1.475        case 96:
   1.476        case 166:
   1.477 -#line 302 "parse.y"
   1.478 +#line 301 "parse.y"
   1.479  {yygotominor.yy46 = yymsp[0].minor.yy46;}
   1.480 -#line 2242 "parse.c"
   1.481 +#line 2241 "parse.c"
   1.482          break;
   1.483        case 80:
   1.484 -#line 312 "parse.y"
   1.485 +#line 311 "parse.y"
   1.486  {yygotominor.yy410.n = 0; yygotominor.yy410.z = 0;}
   1.487 -#line 2247 "parse.c"
   1.488 +#line 2246 "parse.c"
   1.489          break;
   1.490        case 81:
   1.491 -#line 313 "parse.y"
   1.492 +#line 312 "parse.y"
   1.493  {yygotominor.yy410 = yymsp[-1].minor.yy0;}
   1.494 -#line 2252 "parse.c"
   1.495 +#line 2251 "parse.c"
   1.496          break;
   1.497        case 86:
   1.498 -#line 319 "parse.y"
   1.499 +#line 318 "parse.y"
   1.500  {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy174,yymsp[0].minor.yy46,yymsp[-2].minor.yy46,0);}
   1.501 -#line 2257 "parse.c"
   1.502 +#line 2256 "parse.c"
   1.503          break;
   1.504        case 87:
   1.505 -#line 321 "parse.y"
   1.506 +#line 320 "parse.y"
   1.507  {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy174,yymsp[0].minor.yy46,0,0,0,0);}
   1.508 -#line 2262 "parse.c"
   1.509 +#line 2261 "parse.c"
   1.510          break;
   1.511        case 88:
   1.512 -#line 322 "parse.y"
   1.513 +#line 321 "parse.y"
   1.514  {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy172);}
   1.515 -#line 2267 "parse.c"
   1.516 +#line 2266 "parse.c"
   1.517          break;
   1.518        case 89:
   1.519 -#line 324 "parse.y"
   1.520 +#line 323 "parse.y"
   1.521  {
   1.522      sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy174, &yymsp[-3].minor.yy410, yymsp[-2].minor.yy174, yymsp[-1].minor.yy46);
   1.523      sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy46);
   1.524  }
   1.525 -#line 2275 "parse.c"
   1.526 +#line 2274 "parse.c"
   1.527          break;
   1.528        case 92:
   1.529        case 94:
   1.530 -#line 338 "parse.y"
   1.531 +#line 337 "parse.y"
   1.532  {yygotominor.yy46 = OE_Default;}
   1.533 -#line 2281 "parse.c"
   1.534 +#line 2280 "parse.c"
   1.535          break;
   1.536        case 97:
   1.537 -#line 343 "parse.y"
   1.538 +#line 342 "parse.y"
   1.539  {yygotominor.yy46 = OE_Ignore;}
   1.540 -#line 2286 "parse.c"
   1.541 +#line 2285 "parse.c"
   1.542          break;
   1.543        case 98:
   1.544        case 167:
   1.545 -#line 344 "parse.y"
   1.546 +#line 343 "parse.y"
   1.547  {yygotominor.yy46 = OE_Replace;}
   1.548 -#line 2292 "parse.c"
   1.549 +#line 2291 "parse.c"
   1.550          break;
   1.551        case 99:
   1.552 -#line 348 "parse.y"
   1.553 +#line 347 "parse.y"
   1.554  {
   1.555    sqlite3DropTable(pParse, yymsp[0].minor.yy373, 0, yymsp[-1].minor.yy46);
   1.556  }
   1.557 -#line 2299 "parse.c"
   1.558 +#line 2298 "parse.c"
   1.559          break;
   1.560        case 102:
   1.561 -#line 358 "parse.y"
   1.562 +#line 357 "parse.y"
   1.563  {
   1.564    sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, yymsp[0].minor.yy219, yymsp[-6].minor.yy46, yymsp[-4].minor.yy46);
   1.565  }
   1.566 -#line 2306 "parse.c"
   1.567 +#line 2305 "parse.c"
   1.568          break;
   1.569        case 103:
   1.570 -#line 361 "parse.y"
   1.571 +#line 360 "parse.y"
   1.572  {
   1.573    sqlite3DropTable(pParse, yymsp[0].minor.yy373, 1, yymsp[-1].minor.yy46);
   1.574  }
   1.575 -#line 2313 "parse.c"
   1.576 +#line 2312 "parse.c"
   1.577          break;
   1.578        case 104:
   1.579 -#line 368 "parse.y"
   1.580 +#line 367 "parse.y"
   1.581  {
   1.582    sqlite3Select(pParse, yymsp[0].minor.yy219, SRT_Callback, 0, 0, 0, 0, 0);
   1.583    sqlite3SelectDelete(yymsp[0].minor.yy219);
   1.584  }
   1.585 -#line 2321 "parse.c"
   1.586 +#line 2320 "parse.c"
   1.587          break;
   1.588        case 105:
   1.589        case 128:
   1.590 -#line 378 "parse.y"
   1.591 +#line 377 "parse.y"
   1.592  {yygotominor.yy219 = yymsp[0].minor.yy219;}
   1.593 -#line 2327 "parse.c"
   1.594 +#line 2326 "parse.c"
   1.595          break;
   1.596        case 106:
   1.597 -#line 380 "parse.y"
   1.598 +#line 379 "parse.y"
   1.599  {
   1.600    if( yymsp[0].minor.yy219 ){
   1.601      yymsp[0].minor.yy219->op = yymsp[-1].minor.yy46;
   1.602 @@ -2334,140 +2333,142 @@
   1.603    }
   1.604    yygotominor.yy219 = yymsp[0].minor.yy219;
   1.605  }
   1.606 -#line 2340 "parse.c"
   1.607 +#line 2339 "parse.c"
   1.608          break;
   1.609        case 108:
   1.610 -#line 391 "parse.y"
   1.611 +#line 390 "parse.y"
   1.612  {yygotominor.yy46 = TK_ALL;}
   1.613 -#line 2345 "parse.c"
   1.614 +#line 2344 "parse.c"
   1.615          break;
   1.616        case 110:
   1.617 -#line 395 "parse.y"
   1.618 +#line 394 "parse.y"
   1.619  {
   1.620 -  yygotominor.yy219 = sqlite3SelectNew(yymsp[-6].minor.yy174,yymsp[-5].minor.yy373,yymsp[-4].minor.yy172,yymsp[-3].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy174,yymsp[-7].minor.yy46,yymsp[0].minor.yy234.pLimit,yymsp[0].minor.yy234.pOffset);
   1.621 +  yygotominor.yy219 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy174,yymsp[-5].minor.yy373,yymsp[-4].minor.yy172,yymsp[-3].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy174,yymsp[-7].minor.yy46,yymsp[0].minor.yy234.pLimit,yymsp[0].minor.yy234.pOffset);
   1.622  }
   1.623 -#line 2352 "parse.c"
   1.624 +#line 2351 "parse.c"
   1.625          break;
   1.626        case 114:
   1.627        case 237:
   1.628 -#line 416 "parse.y"
   1.629 +#line 415 "parse.y"
   1.630  {yygotominor.yy174 = yymsp[-1].minor.yy174;}
   1.631 -#line 2358 "parse.c"
   1.632 +#line 2357 "parse.c"
   1.633          break;
   1.634        case 115:
   1.635        case 141:
   1.636        case 149:
   1.637        case 230:
   1.638        case 236:
   1.639 -#line 417 "parse.y"
   1.640 +#line 416 "parse.y"
   1.641  {yygotominor.yy174 = 0;}
   1.642 -#line 2367 "parse.c"
   1.643 +#line 2366 "parse.c"
   1.644          break;
   1.645        case 116:
   1.646 -#line 418 "parse.y"
   1.647 +#line 417 "parse.y"
   1.648  {
   1.649 -   yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[-1].minor.yy172,yymsp[0].minor.yy410.n?&yymsp[0].minor.yy410:0);
   1.650 +   yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy174,yymsp[-1].minor.yy172,yymsp[0].minor.yy410.n?&yymsp[0].minor.yy410:0);
   1.651  }
   1.652 -#line 2374 "parse.c"
   1.653 +#line 2373 "parse.c"
   1.654          break;
   1.655        case 117:
   1.656 -#line 421 "parse.y"
   1.657 +#line 420 "parse.y"
   1.658  {
   1.659 -  yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-1].minor.yy174, sqlite3Expr(TK_ALL, 0, 0, 0), 0);
   1.660 +  Expr *p = sqlite3PExpr(pParse, TK_ALL, 0, 0, 0);
   1.661 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy174, p, 0);
   1.662  }
   1.663  #line 2381 "parse.c"
   1.664          break;
   1.665        case 118:
   1.666  #line 424 "parse.y"
   1.667  {
   1.668 -  Expr *pRight = sqlite3Expr(TK_ALL, 0, 0, 0);
   1.669 -  Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410);
   1.670 -  yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-3].minor.yy174, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0);
   1.671 +  Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, 0);
   1.672 +  Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy410);
   1.673 +  Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
   1.674 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy174, pDot, 0);
   1.675  }
   1.676 -#line 2390 "parse.c"
   1.677 +#line 2391 "parse.c"
   1.678          break;
   1.679        case 121:
   1.680 -#line 436 "parse.y"
   1.681 +#line 437 "parse.y"
   1.682  {yygotominor.yy410.n = 0;}
   1.683 -#line 2395 "parse.c"
   1.684 +#line 2396 "parse.c"
   1.685          break;
   1.686        case 122:
   1.687 -#line 448 "parse.y"
   1.688 -{yygotominor.yy373 = sqliteMalloc(sizeof(*yygotominor.yy373));}
   1.689 -#line 2400 "parse.c"
   1.690 +#line 449 "parse.y"
   1.691 +{yygotominor.yy373 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy373));}
   1.692 +#line 2401 "parse.c"
   1.693          break;
   1.694        case 123:
   1.695 -#line 449 "parse.y"
   1.696 +#line 450 "parse.y"
   1.697  {
   1.698    yygotominor.yy373 = yymsp[0].minor.yy373;
   1.699    sqlite3SrcListShiftJoinType(yygotominor.yy373);
   1.700  }
   1.701 -#line 2408 "parse.c"
   1.702 +#line 2409 "parse.c"
   1.703          break;
   1.704        case 124:
   1.705 -#line 457 "parse.y"
   1.706 +#line 458 "parse.y"
   1.707  {
   1.708     yygotominor.yy373 = yymsp[-1].minor.yy373;
   1.709     if( yygotominor.yy373 && yygotominor.yy373->nSrc>0 ) yygotominor.yy373->a[yygotominor.yy373->nSrc-1].jointype = yymsp[0].minor.yy46;
   1.710  }
   1.711 -#line 2416 "parse.c"
   1.712 +#line 2417 "parse.c"
   1.713          break;
   1.714        case 125:
   1.715 -#line 461 "parse.y"
   1.716 +#line 462 "parse.y"
   1.717  {yygotominor.yy373 = 0;}
   1.718 -#line 2421 "parse.c"
   1.719 +#line 2422 "parse.c"
   1.720          break;
   1.721        case 126:
   1.722 -#line 462 "parse.y"
   1.723 +#line 463 "parse.y"
   1.724  {
   1.725 -  yygotominor.yy373 = sqlite3SrcListAppendFromTerm(yymsp[-5].minor.yy373,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,0,yymsp[-1].minor.yy172,yymsp[0].minor.yy432);
   1.726 +  yygotominor.yy373 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy373,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,0,yymsp[-1].minor.yy172,yymsp[0].minor.yy432);
   1.727  }
   1.728 -#line 2428 "parse.c"
   1.729 +#line 2429 "parse.c"
   1.730          break;
   1.731        case 127:
   1.732 -#line 467 "parse.y"
   1.733 +#line 468 "parse.y"
   1.734  {
   1.735 -    yygotominor.yy373 = sqlite3SrcListAppendFromTerm(yymsp[-6].minor.yy373,0,0,&yymsp[-2].minor.yy410,yymsp[-4].minor.yy219,yymsp[-1].minor.yy172,yymsp[0].minor.yy432);
   1.736 +    yygotominor.yy373 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy373,0,0,&yymsp[-2].minor.yy410,yymsp[-4].minor.yy219,yymsp[-1].minor.yy172,yymsp[0].minor.yy432);
   1.737    }
   1.738 -#line 2435 "parse.c"
   1.739 +#line 2436 "parse.c"
   1.740          break;
   1.741        case 129:
   1.742 -#line 478 "parse.y"
   1.743 +#line 479 "parse.y"
   1.744  {
   1.745       sqlite3SrcListShiftJoinType(yymsp[0].minor.yy373);
   1.746 -     yygotominor.yy219 = sqlite3SelectNew(0,yymsp[0].minor.yy373,0,0,0,0,0,0,0);
   1.747 +     yygotominor.yy219 = sqlite3SelectNew(pParse,0,yymsp[0].minor.yy373,0,0,0,0,0,0,0);
   1.748    }
   1.749 -#line 2443 "parse.c"
   1.750 +#line 2444 "parse.c"
   1.751          break;
   1.752        case 130:
   1.753 -#line 485 "parse.y"
   1.754 +#line 486 "parse.y"
   1.755  {yygotominor.yy410.z=0; yygotominor.yy410.n=0;}
   1.756 -#line 2448 "parse.c"
   1.757 +#line 2449 "parse.c"
   1.758          break;
   1.759        case 132:
   1.760 -#line 490 "parse.y"
   1.761 -{yygotominor.yy373 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);}
   1.762 -#line 2453 "parse.c"
   1.763 +#line 491 "parse.y"
   1.764 +{yygotominor.yy373 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);}
   1.765 +#line 2454 "parse.c"
   1.766          break;
   1.767        case 133:
   1.768 -#line 494 "parse.y"
   1.769 +#line 495 "parse.y"
   1.770  { yygotominor.yy46 = JT_INNER; }
   1.771 -#line 2458 "parse.c"
   1.772 +#line 2459 "parse.c"
   1.773          break;
   1.774        case 134:
   1.775 -#line 495 "parse.y"
   1.776 +#line 496 "parse.y"
   1.777  { yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
   1.778 -#line 2463 "parse.c"
   1.779 +#line 2464 "parse.c"
   1.780          break;
   1.781        case 135:
   1.782 -#line 496 "parse.y"
   1.783 +#line 497 "parse.y"
   1.784  { yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy410,0); }
   1.785 -#line 2468 "parse.c"
   1.786 +#line 2469 "parse.c"
   1.787          break;
   1.788        case 136:
   1.789 -#line 498 "parse.y"
   1.790 +#line 499 "parse.y"
   1.791  { yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy410,&yymsp[-1].minor.yy410); }
   1.792 -#line 2473 "parse.c"
   1.793 +#line 2474 "parse.c"
   1.794          break;
   1.795        case 137:
   1.796        case 145:
   1.797 @@ -2477,9 +2478,9 @@
   1.798        case 202:
   1.799        case 225:
   1.800        case 227:
   1.801 -#line 502 "parse.y"
   1.802 +#line 503 "parse.y"
   1.803  {yygotominor.yy172 = yymsp[0].minor.yy172;}
   1.804 -#line 2485 "parse.c"
   1.805 +#line 2486 "parse.c"
   1.806          break;
   1.807        case 138:
   1.808        case 151:
   1.809 @@ -2487,237 +2488,237 @@
   1.810        case 203:
   1.811        case 226:
   1.812        case 228:
   1.813 -#line 503 "parse.y"
   1.814 +#line 504 "parse.y"
   1.815  {yygotominor.yy172 = 0;}
   1.816 -#line 2495 "parse.c"
   1.817 +#line 2496 "parse.c"
   1.818          break;
   1.819        case 139:
   1.820        case 171:
   1.821 -#line 507 "parse.y"
   1.822 +#line 508 "parse.y"
   1.823  {yygotominor.yy432 = yymsp[-1].minor.yy432;}
   1.824 -#line 2501 "parse.c"
   1.825 +#line 2502 "parse.c"
   1.826          break;
   1.827        case 140:
   1.828        case 170:
   1.829 -#line 508 "parse.y"
   1.830 +#line 509 "parse.y"
   1.831  {yygotominor.yy432 = 0;}
   1.832 -#line 2507 "parse.c"
   1.833 +#line 2508 "parse.c"
   1.834          break;
   1.835        case 142:
   1.836        case 150:
   1.837        case 229:
   1.838 -#line 519 "parse.y"
   1.839 +#line 520 "parse.y"
   1.840  {yygotominor.yy174 = yymsp[0].minor.yy174;}
   1.841 -#line 2514 "parse.c"
   1.842 +#line 2515 "parse.c"
   1.843          break;
   1.844        case 143:
   1.845 -#line 520 "parse.y"
   1.846 +#line 521 "parse.y"
   1.847  {
   1.848 -  yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-3].minor.yy174,yymsp[-1].minor.yy172,0);
   1.849 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy174,yymsp[-1].minor.yy172,0);
   1.850    if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46;
   1.851  }
   1.852 -#line 2522 "parse.c"
   1.853 +#line 2523 "parse.c"
   1.854          break;
   1.855        case 144:
   1.856 -#line 524 "parse.y"
   1.857 +#line 525 "parse.y"
   1.858  {
   1.859 -  yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[-1].minor.yy172,0);
   1.860 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy172,0);
   1.861    if( yygotominor.yy174 && yygotominor.yy174->a ) yygotominor.yy174->a[0].sortOrder = yymsp[0].minor.yy46;
   1.862  }
   1.863 -#line 2530 "parse.c"
   1.864 +#line 2531 "parse.c"
   1.865          break;
   1.866        case 146:
   1.867        case 148:
   1.868 -#line 532 "parse.y"
   1.869 +#line 533 "parse.y"
   1.870  {yygotominor.yy46 = SQLITE_SO_ASC;}
   1.871 -#line 2536 "parse.c"
   1.872 +#line 2537 "parse.c"
   1.873          break;
   1.874        case 147:
   1.875 -#line 533 "parse.y"
   1.876 +#line 534 "parse.y"
   1.877  {yygotominor.yy46 = SQLITE_SO_DESC;}
   1.878 -#line 2541 "parse.c"
   1.879 +#line 2542 "parse.c"
   1.880          break;
   1.881        case 153:
   1.882 -#line 559 "parse.y"
   1.883 +#line 560 "parse.y"
   1.884  {yygotominor.yy234.pLimit = 0; yygotominor.yy234.pOffset = 0;}
   1.885 -#line 2546 "parse.c"
   1.886 +#line 2547 "parse.c"
   1.887          break;
   1.888        case 154:
   1.889 -#line 560 "parse.y"
   1.890 +#line 561 "parse.y"
   1.891  {yygotominor.yy234.pLimit = yymsp[0].minor.yy172; yygotominor.yy234.pOffset = 0;}
   1.892 -#line 2551 "parse.c"
   1.893 +#line 2552 "parse.c"
   1.894          break;
   1.895        case 155:
   1.896 -#line 562 "parse.y"
   1.897 +#line 563 "parse.y"
   1.898  {yygotominor.yy234.pLimit = yymsp[-2].minor.yy172; yygotominor.yy234.pOffset = yymsp[0].minor.yy172;}
   1.899 -#line 2556 "parse.c"
   1.900 +#line 2557 "parse.c"
   1.901          break;
   1.902        case 156:
   1.903 -#line 564 "parse.y"
   1.904 +#line 565 "parse.y"
   1.905  {yygotominor.yy234.pOffset = yymsp[-2].minor.yy172; yygotominor.yy234.pLimit = yymsp[0].minor.yy172;}
   1.906 -#line 2561 "parse.c"
   1.907 +#line 2562 "parse.c"
   1.908          break;
   1.909        case 157:
   1.910 -#line 568 "parse.y"
   1.911 +#line 569 "parse.y"
   1.912  {sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy373,yymsp[0].minor.yy172);}
   1.913 -#line 2566 "parse.c"
   1.914 +#line 2567 "parse.c"
   1.915          break;
   1.916        case 160:
   1.917 -#line 578 "parse.y"
   1.918 +#line 579 "parse.y"
   1.919  {
   1.920    sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy174,SQLITE_MAX_COLUMN,"set list"); 
   1.921    sqlite3Update(pParse,yymsp[-3].minor.yy373,yymsp[-1].minor.yy174,yymsp[0].minor.yy172,yymsp[-4].minor.yy46);
   1.922  }
   1.923 -#line 2574 "parse.c"
   1.924 +#line 2575 "parse.c"
   1.925          break;
   1.926        case 161:
   1.927 -#line 587 "parse.y"
   1.928 -{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);}
   1.929 -#line 2579 "parse.c"
   1.930 +#line 588 "parse.y"
   1.931 +{yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy174,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);}
   1.932 +#line 2580 "parse.c"
   1.933          break;
   1.934        case 162:
   1.935 -#line 588 "parse.y"
   1.936 -{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);}
   1.937 -#line 2584 "parse.c"
   1.938 +#line 590 "parse.y"
   1.939 +{yygotominor.yy174 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);}
   1.940 +#line 2585 "parse.c"
   1.941          break;
   1.942        case 163:
   1.943 -#line 594 "parse.y"
   1.944 +#line 596 "parse.y"
   1.945  {sqlite3Insert(pParse, yymsp[-5].minor.yy373, yymsp[-1].minor.yy174, 0, yymsp[-4].minor.yy432, yymsp[-7].minor.yy46);}
   1.946 -#line 2589 "parse.c"
   1.947 +#line 2590 "parse.c"
   1.948          break;
   1.949        case 164:
   1.950 -#line 596 "parse.y"
   1.951 +#line 598 "parse.y"
   1.952  {sqlite3Insert(pParse, yymsp[-2].minor.yy373, 0, yymsp[0].minor.yy219, yymsp[-1].minor.yy432, yymsp[-4].minor.yy46);}
   1.953 -#line 2594 "parse.c"
   1.954 +#line 2595 "parse.c"
   1.955          break;
   1.956        case 165:
   1.957 -#line 598 "parse.y"
   1.958 +#line 600 "parse.y"
   1.959  {sqlite3Insert(pParse, yymsp[-3].minor.yy373, 0, 0, yymsp[-2].minor.yy432, yymsp[-5].minor.yy46);}
   1.960 -#line 2599 "parse.c"
   1.961 +#line 2600 "parse.c"
   1.962          break;
   1.963        case 168:
   1.964        case 231:
   1.965 -#line 608 "parse.y"
   1.966 -{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[0].minor.yy172,0);}
   1.967 -#line 2605 "parse.c"
   1.968 +#line 611 "parse.y"
   1.969 +{yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy174,yymsp[0].minor.yy172,0);}
   1.970 +#line 2606 "parse.c"
   1.971          break;
   1.972        case 169:
   1.973        case 232:
   1.974 -#line 609 "parse.y"
   1.975 -{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,0);}
   1.976 -#line 2611 "parse.c"
   1.977 +#line 613 "parse.y"
   1.978 +{yygotominor.yy174 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy172,0);}
   1.979 +#line 2612 "parse.c"
   1.980          break;
   1.981        case 172:
   1.982 -#line 618 "parse.y"
   1.983 -{yygotominor.yy432 = sqlite3IdListAppend(yymsp[-2].minor.yy432,&yymsp[0].minor.yy410);}
   1.984 -#line 2616 "parse.c"
   1.985 +#line 623 "parse.y"
   1.986 +{yygotominor.yy432 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy432,&yymsp[0].minor.yy410);}
   1.987 +#line 2617 "parse.c"
   1.988          break;
   1.989        case 173:
   1.990 -#line 619 "parse.y"
   1.991 -{yygotominor.yy432 = sqlite3IdListAppend(0,&yymsp[0].minor.yy410);}
   1.992 -#line 2621 "parse.c"
   1.993 +#line 625 "parse.y"
   1.994 +{yygotominor.yy432 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy410);}
   1.995 +#line 2622 "parse.c"
   1.996          break;
   1.997        case 175:
   1.998 -#line 630 "parse.y"
   1.999 +#line 636 "parse.y"
  1.1000  {yygotominor.yy172 = yymsp[-1].minor.yy172; sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
  1.1001 -#line 2626 "parse.c"
  1.1002 +#line 2627 "parse.c"
  1.1003          break;
  1.1004        case 176:
  1.1005        case 181:
  1.1006        case 182:
  1.1007 -#line 631 "parse.y"
  1.1008 -{yygotominor.yy172 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);}
  1.1009 -#line 2633 "parse.c"
  1.1010 +#line 637 "parse.y"
  1.1011 +{yygotominor.yy172 = sqlite3PExpr(pParse, yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);}
  1.1012 +#line 2634 "parse.c"
  1.1013          break;
  1.1014        case 177:
  1.1015        case 178:
  1.1016 -#line 632 "parse.y"
  1.1017 -{yygotominor.yy172 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
  1.1018 -#line 2639 "parse.c"
  1.1019 +#line 638 "parse.y"
  1.1020 +{yygotominor.yy172 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);}
  1.1021 +#line 2640 "parse.c"
  1.1022          break;
  1.1023        case 179:
  1.1024 -#line 634 "parse.y"
  1.1025 +#line 640 "parse.y"
  1.1026  {
  1.1027 -  Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410);
  1.1028 -  Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410);
  1.1029 -  yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp2, 0);
  1.1030 +  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy410);
  1.1031 +  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy410);
  1.1032 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
  1.1033  }
  1.1034 -#line 2648 "parse.c"
  1.1035 +#line 2649 "parse.c"
  1.1036          break;
  1.1037        case 180:
  1.1038 -#line 639 "parse.y"
  1.1039 +#line 645 "parse.y"
  1.1040  {
  1.1041 -  Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy410);
  1.1042 -  Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410);
  1.1043 -  Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410);
  1.1044 -  Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0);
  1.1045 -  yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp4, 0);
  1.1046 +  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy410);
  1.1047 +  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy410);
  1.1048 +  Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy410);
  1.1049 +  Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
  1.1050 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
  1.1051  }
  1.1052 -#line 2659 "parse.c"
  1.1053 +#line 2660 "parse.c"
  1.1054          break;
  1.1055        case 183:
  1.1056 -#line 648 "parse.y"
  1.1057 +#line 654 "parse.y"
  1.1058  {yygotominor.yy172 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);}
  1.1059 -#line 2664 "parse.c"
  1.1060 +#line 2665 "parse.c"
  1.1061          break;
  1.1062        case 184:
  1.1063 -#line 649 "parse.y"
  1.1064 +#line 655 "parse.y"
  1.1065  {
  1.1066    Token *pToken = &yymsp[0].minor.yy0;
  1.1067 -  Expr *pExpr = yygotominor.yy172 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken);
  1.1068 +  Expr *pExpr = yygotominor.yy172 = sqlite3PExpr(pParse, TK_VARIABLE, 0, 0, pToken);
  1.1069    sqlite3ExprAssignVarNumber(pParse, pExpr);
  1.1070  }
  1.1071 -#line 2673 "parse.c"
  1.1072 +#line 2674 "parse.c"
  1.1073          break;
  1.1074        case 185:
  1.1075 -#line 654 "parse.y"
  1.1076 +#line 660 "parse.y"
  1.1077  {
  1.1078    yygotominor.yy172 = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy172, &yymsp[0].minor.yy410);
  1.1079  }
  1.1080 -#line 2680 "parse.c"
  1.1081 +#line 2681 "parse.c"
  1.1082          break;
  1.1083        case 186:
  1.1084 -#line 658 "parse.y"
  1.1085 +#line 664 "parse.y"
  1.1086  {
  1.1087 -  yygotominor.yy172 = sqlite3Expr(TK_CAST, yymsp[-3].minor.yy172, 0, &yymsp[-1].minor.yy410);
  1.1088 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy172, 0, &yymsp[-1].minor.yy410);
  1.1089    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
  1.1090  }
  1.1091 -#line 2688 "parse.c"
  1.1092 +#line 2689 "parse.c"
  1.1093          break;
  1.1094        case 187:
  1.1095 -#line 663 "parse.y"
  1.1096 +#line 669 "parse.y"
  1.1097  {
  1.1098    if( yymsp[-1].minor.yy174 && yymsp[-1].minor.yy174->nExpr>SQLITE_MAX_FUNCTION_ARG ){
  1.1099      sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
  1.1100    }
  1.1101 -  yygotominor.yy172 = sqlite3ExprFunction(yymsp[-1].minor.yy174, &yymsp[-4].minor.yy0);
  1.1102 +  yygotominor.yy172 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy174, &yymsp[-4].minor.yy0);
  1.1103    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  1.1104    if( yymsp[-2].minor.yy46 && yygotominor.yy172 ){
  1.1105      yygotominor.yy172->flags |= EP_Distinct;
  1.1106    }
  1.1107  }
  1.1108 -#line 2702 "parse.c"
  1.1109 +#line 2703 "parse.c"
  1.1110          break;
  1.1111        case 188:
  1.1112 -#line 673 "parse.y"
  1.1113 +#line 679 "parse.y"
  1.1114  {
  1.1115 -  yygotominor.yy172 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0);
  1.1116 +  yygotominor.yy172 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
  1.1117    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
  1.1118  }
  1.1119 -#line 2710 "parse.c"
  1.1120 +#line 2711 "parse.c"
  1.1121          break;
  1.1122        case 189:
  1.1123 -#line 677 "parse.y"
  1.1124 +#line 683 "parse.y"
  1.1125  {
  1.1126    /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  1.1127    ** treated as functions that return constants */
  1.1128 -  yygotominor.yy172 = sqlite3ExprFunction(0,&yymsp[0].minor.yy0);
  1.1129 +  yygotominor.yy172 = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
  1.1130    if( yygotominor.yy172 ){
  1.1131      yygotominor.yy172->op = TK_CONST_FUNC;  
  1.1132      yygotominor.yy172->span = yymsp[0].minor.yy0;
  1.1133    }
  1.1134  }
  1.1135 -#line 2723 "parse.c"
  1.1136 +#line 2724 "parse.c"
  1.1137          break;
  1.1138        case 190:
  1.1139        case 191:
  1.1140 @@ -2727,129 +2728,129 @@
  1.1141        case 195:
  1.1142        case 196:
  1.1143        case 197:
  1.1144 -#line 686 "parse.y"
  1.1145 -{yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy172, yymsp[0].minor.yy172, 0);}
  1.1146 -#line 2735 "parse.c"
  1.1147 +#line 692 "parse.y"
  1.1148 +{yygotominor.yy172 = sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy172,yymsp[0].minor.yy172,0);}
  1.1149 +#line 2736 "parse.c"
  1.1150          break;
  1.1151        case 198:
  1.1152        case 200:
  1.1153 -#line 696 "parse.y"
  1.1154 +#line 704 "parse.y"
  1.1155  {yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 0;}
  1.1156 -#line 2741 "parse.c"
  1.1157 +#line 2742 "parse.c"
  1.1158          break;
  1.1159        case 199:
  1.1160        case 201:
  1.1161 -#line 697 "parse.y"
  1.1162 +#line 705 "parse.y"
  1.1163  {yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 1;}
  1.1164 -#line 2747 "parse.c"
  1.1165 +#line 2748 "parse.c"
  1.1166          break;
  1.1167        case 204:
  1.1168 -#line 704 "parse.y"
  1.1169 +#line 712 "parse.y"
  1.1170  {
  1.1171    ExprList *pList;
  1.1172 -  pList = sqlite3ExprListAppend(0, yymsp[-1].minor.yy172, 0);
  1.1173 -  pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy172, 0);
  1.1174 +  pList = sqlite3ExprListAppend(pParse,0, yymsp[-1].minor.yy172, 0);
  1.1175 +  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-3].minor.yy172, 0);
  1.1176    if( yymsp[0].minor.yy172 ){
  1.1177 -    pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0);
  1.1178 +    pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy172, 0);
  1.1179    }
  1.1180 -  yygotominor.yy172 = sqlite3ExprFunction(pList, &yymsp[-2].minor.yy72.eOperator);
  1.1181 -  if( yymsp[-2].minor.yy72.not ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0);
  1.1182 +  yygotominor.yy172 = sqlite3ExprFunction(pParse, pList, &yymsp[-2].minor.yy72.eOperator);
  1.1183 +  if( yymsp[-2].minor.yy72.not ) yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy172, 0, 0);
  1.1184    sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy172->span, &yymsp[-1].minor.yy172->span);
  1.1185    if( yygotominor.yy172 ) yygotominor.yy172->flags |= EP_InfixFunc;
  1.1186  }
  1.1187 -#line 2763 "parse.c"
  1.1188 +#line 2764 "parse.c"
  1.1189          break;
  1.1190        case 205:
  1.1191 -#line 717 "parse.y"
  1.1192 +#line 725 "parse.y"
  1.1193  {
  1.1194 -  yygotominor.yy172 = sqlite3Expr(yymsp[0].major, yymsp[-1].minor.yy172, 0, 0);
  1.1195 +  yygotominor.yy172 = sqlite3PExpr(pParse, yymsp[0].major, yymsp[-1].minor.yy172, 0, 0);
  1.1196    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1197  }
  1.1198 -#line 2771 "parse.c"
  1.1199 +#line 2772 "parse.c"
  1.1200          break;
  1.1201        case 206:
  1.1202 -#line 721 "parse.y"
  1.1203 +#line 729 "parse.y"
  1.1204  {
  1.1205 -  yygotominor.yy172 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy172, 0, 0);
  1.1206 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_ISNULL, yymsp[-2].minor.yy172, 0, 0);
  1.1207    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1208  }
  1.1209 -#line 2779 "parse.c"
  1.1210 +#line 2780 "parse.c"
  1.1211          break;
  1.1212        case 207:
  1.1213 -#line 725 "parse.y"
  1.1214 +#line 733 "parse.y"
  1.1215  {
  1.1216 -  yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy172, 0, 0);
  1.1217 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-2].minor.yy172, 0, 0);
  1.1218    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1219  }
  1.1220 -#line 2787 "parse.c"
  1.1221 +#line 2788 "parse.c"
  1.1222          break;
  1.1223        case 208:
  1.1224 -#line 729 "parse.y"
  1.1225 +#line 737 "parse.y"
  1.1226  {
  1.1227 -  yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy172, 0, 0);
  1.1228 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-3].minor.yy172, 0, 0);
  1.1229    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1230  }
  1.1231 -#line 2795 "parse.c"
  1.1232 +#line 2796 "parse.c"
  1.1233          break;
  1.1234        case 209:
  1.1235 -#line 733 "parse.y"
  1.1236 +#line 741 "parse.y"
  1.1237  {
  1.1238 -  yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy172, 0, 0);
  1.1239 +  yygotominor.yy172 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy172, 0, 0);
  1.1240    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span);
  1.1241  }
  1.1242 -#line 2803 "parse.c"
  1.1243 +#line 2804 "parse.c"
  1.1244          break;
  1.1245        case 210:
  1.1246 -#line 737 "parse.y"
  1.1247 +#line 745 "parse.y"
  1.1248  {
  1.1249 -  yygotominor.yy172 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0);
  1.1250 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy172, 0, 0);
  1.1251    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span);
  1.1252  }
  1.1253 -#line 2811 "parse.c"
  1.1254 +#line 2812 "parse.c"
  1.1255          break;
  1.1256        case 211:
  1.1257 -#line 741 "parse.y"
  1.1258 +#line 749 "parse.y"
  1.1259  {
  1.1260 -  yygotominor.yy172 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy172, 0, 0);
  1.1261 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy172, 0, 0);
  1.1262    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span);
  1.1263  }
  1.1264 -#line 2819 "parse.c"
  1.1265 +#line 2820 "parse.c"
  1.1266          break;
  1.1267        case 214:
  1.1268 -#line 748 "parse.y"
  1.1269 +#line 756 "parse.y"
  1.1270  {
  1.1271 -  ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0);
  1.1272 -  pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0);
  1.1273 -  yygotominor.yy172 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy172, 0, 0);
  1.1274 +  ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy172, 0);
  1.1275 +  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy172, 0);
  1.1276 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy172, 0, 0);
  1.1277    if( yygotominor.yy172 ){
  1.1278      yygotominor.yy172->pList = pList;
  1.1279    }else{
  1.1280      sqlite3ExprListDelete(pList);
  1.1281    } 
  1.1282 -  if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0);
  1.1283 +  if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy172, 0, 0);
  1.1284    sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy172->span);
  1.1285  }
  1.1286 -#line 2835 "parse.c"
  1.1287 +#line 2836 "parse.c"
  1.1288          break;
  1.1289        case 217:
  1.1290 -#line 764 "parse.y"
  1.1291 +#line 772 "parse.y"
  1.1292  {
  1.1293 -    yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0);
  1.1294 +    yygotominor.yy172 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy172, 0, 0);
  1.1295      if( yygotominor.yy172 ){
  1.1296        yygotominor.yy172->pList = yymsp[-1].minor.yy174;
  1.1297        sqlite3ExprSetHeight(yygotominor.yy172);
  1.1298      }else{
  1.1299        sqlite3ExprListDelete(yymsp[-1].minor.yy174);
  1.1300      }
  1.1301 -    if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0);
  1.1302 +    if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy172, 0, 0);
  1.1303      sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1304    }
  1.1305 -#line 2850 "parse.c"
  1.1306 +#line 2851 "parse.c"
  1.1307          break;
  1.1308        case 218:
  1.1309 -#line 775 "parse.y"
  1.1310 +#line 783 "parse.y"
  1.1311  {
  1.1312 -    yygotominor.yy172 = sqlite3Expr(TK_SELECT, 0, 0, 0);
  1.1313 +    yygotominor.yy172 = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
  1.1314      if( yygotominor.yy172 ){
  1.1315        yygotominor.yy172->pSelect = yymsp[-1].minor.yy219;
  1.1316        sqlite3ExprSetHeight(yygotominor.yy172);
  1.1317 @@ -2858,43 +2859,43 @@
  1.1318      }
  1.1319      sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
  1.1320    }
  1.1321 -#line 2864 "parse.c"
  1.1322 +#line 2865 "parse.c"
  1.1323          break;
  1.1324        case 219:
  1.1325 -#line 785 "parse.y"
  1.1326 +#line 793 "parse.y"
  1.1327  {
  1.1328 -    yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0);
  1.1329 +    yygotominor.yy172 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy172, 0, 0);
  1.1330      if( yygotominor.yy172 ){
  1.1331        yygotominor.yy172->pSelect = yymsp[-1].minor.yy219;
  1.1332        sqlite3ExprSetHeight(yygotominor.yy172);
  1.1333      }else{
  1.1334        sqlite3SelectDelete(yymsp[-1].minor.yy219);
  1.1335      }
  1.1336 -    if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0);
  1.1337 +    if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy172, 0, 0);
  1.1338      sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0);
  1.1339    }
  1.1340 -#line 2879 "parse.c"
  1.1341 +#line 2880 "parse.c"
  1.1342          break;
  1.1343        case 220:
  1.1344 -#line 796 "parse.y"
  1.1345 +#line 804 "parse.y"
  1.1346  {
  1.1347 -    SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);
  1.1348 -    yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy172, 0, 0);
  1.1349 +    SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);
  1.1350 +    yygotominor.yy172 = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy172, 0, 0);
  1.1351      if( yygotominor.yy172 ){
  1.1352 -      yygotominor.yy172->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0);
  1.1353 +      yygotominor.yy172->pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
  1.1354        sqlite3ExprSetHeight(yygotominor.yy172);
  1.1355      }else{
  1.1356        sqlite3SrcListDelete(pSrc);
  1.1357      }
  1.1358 -    if( yymsp[-2].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0);
  1.1359 +    if( yymsp[-2].minor.yy46 ) yygotominor.yy172 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy172, 0, 0);
  1.1360      sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,yymsp[0].minor.yy410.z?&yymsp[0].minor.yy410:&yymsp[-1].minor.yy410);
  1.1361    }
  1.1362 -#line 2895 "parse.c"
  1.1363 +#line 2896 "parse.c"
  1.1364          break;
  1.1365        case 221:
  1.1366 -#line 808 "parse.y"
  1.1367 +#line 816 "parse.y"
  1.1368  {
  1.1369 -    Expr *p = yygotominor.yy172 = sqlite3Expr(TK_EXISTS, 0, 0, 0);
  1.1370 +    Expr *p = yygotominor.yy172 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
  1.1371      if( p ){
  1.1372        p->pSelect = yymsp[-1].minor.yy219;
  1.1373        sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
  1.1374 @@ -2903,12 +2904,12 @@
  1.1375        sqlite3SelectDelete(yymsp[-1].minor.yy219);
  1.1376      }
  1.1377    }
  1.1378 -#line 2909 "parse.c"
  1.1379 +#line 2910 "parse.c"
  1.1380          break;
  1.1381        case 222:
  1.1382 -#line 821 "parse.y"
  1.1383 +#line 829 "parse.y"
  1.1384  {
  1.1385 -  yygotominor.yy172 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, 0);
  1.1386 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, 0);
  1.1387    if( yygotominor.yy172 ){
  1.1388      yygotominor.yy172->pList = yymsp[-2].minor.yy174;
  1.1389      sqlite3ExprSetHeight(yygotominor.yy172);
  1.1390 @@ -2917,171 +2918,172 @@
  1.1391    }
  1.1392    sqlite3ExprSpan(yygotominor.yy172, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
  1.1393  }
  1.1394 -#line 2923 "parse.c"
  1.1395 +#line 2924 "parse.c"
  1.1396          break;
  1.1397        case 223:
  1.1398 -#line 833 "parse.y"
  1.1399 +#line 841 "parse.y"
  1.1400  {
  1.1401 -  yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, yymsp[-2].minor.yy172, 0);
  1.1402 -  yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0);
  1.1403 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy174, yymsp[-2].minor.yy172, 0);
  1.1404 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yygotominor.yy174, yymsp[0].minor.yy172, 0);
  1.1405  }
  1.1406 -#line 2931 "parse.c"
  1.1407 +#line 2932 "parse.c"
  1.1408          break;
  1.1409        case 224:
  1.1410 -#line 837 "parse.y"
  1.1411 +#line 845 "parse.y"
  1.1412  {
  1.1413 -  yygotominor.yy174 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0);
  1.1414 -  yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0);
  1.1415 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy172, 0);
  1.1416 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yygotominor.yy174, yymsp[0].minor.yy172, 0);
  1.1417  }
  1.1418 -#line 2939 "parse.c"
  1.1419 +#line 2940 "parse.c"
  1.1420          break;
  1.1421        case 233:
  1.1422 -#line 864 "parse.y"
  1.1423 +#line 874 "parse.y"
  1.1424  {
  1.1425 -  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy410, &yymsp[-5].minor.yy410, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy410,0), yymsp[-1].minor.yy174, yymsp[-9].minor.yy46,
  1.1426 +  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy410, &yymsp[-5].minor.yy410, 
  1.1427 +                     sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy410,0), yymsp[-1].minor.yy174, yymsp[-9].minor.yy46,
  1.1428                        &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy46);
  1.1429  }
  1.1430 -#line 2947 "parse.c"
  1.1431 +#line 2949 "parse.c"
  1.1432          break;
  1.1433        case 234:
  1.1434        case 281:
  1.1435 -#line 870 "parse.y"
  1.1436 +#line 881 "parse.y"
  1.1437  {yygotominor.yy46 = OE_Abort;}
  1.1438 -#line 2953 "parse.c"
  1.1439 +#line 2955 "parse.c"
  1.1440          break;
  1.1441        case 235:
  1.1442 -#line 871 "parse.y"
  1.1443 +#line 882 "parse.y"
  1.1444  {yygotominor.yy46 = OE_None;}
  1.1445 -#line 2958 "parse.c"
  1.1446 +#line 2960 "parse.c"
  1.1447          break;
  1.1448        case 238:
  1.1449 -#line 881 "parse.y"
  1.1450 +#line 892 "parse.y"
  1.1451  {
  1.1452    Expr *p = 0;
  1.1453    if( yymsp[-1].minor.yy410.n>0 ){
  1.1454 -    p = sqlite3Expr(TK_COLUMN, 0, 0, 0);
  1.1455 +    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
  1.1456      if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n);
  1.1457    }
  1.1458 -  yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, p, &yymsp[-2].minor.yy410);
  1.1459 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy174, p, &yymsp[-2].minor.yy410);
  1.1460    sqlite3ExprListCheckLength(pParse, yygotominor.yy174, SQLITE_MAX_COLUMN, "index");
  1.1461    if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46;
  1.1462  }
  1.1463 -#line 2972 "parse.c"
  1.1464 +#line 2974 "parse.c"
  1.1465          break;
  1.1466        case 239:
  1.1467 -#line 891 "parse.y"
  1.1468 +#line 902 "parse.y"
  1.1469  {
  1.1470    Expr *p = 0;
  1.1471    if( yymsp[-1].minor.yy410.n>0 ){
  1.1472 -    p = sqlite3Expr(TK_COLUMN, 0, 0, 0);
  1.1473 +    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
  1.1474      if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n);
  1.1475    }
  1.1476 -  yygotominor.yy174 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy410);
  1.1477 +  yygotominor.yy174 = sqlite3ExprListAppend(pParse,0, p, &yymsp[-2].minor.yy410);
  1.1478    sqlite3ExprListCheckLength(pParse, yygotominor.yy174, SQLITE_MAX_COLUMN, "index");
  1.1479    if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46;
  1.1480  }
  1.1481 -#line 2986 "parse.c"
  1.1482 +#line 2988 "parse.c"
  1.1483          break;
  1.1484        case 241:
  1.1485 -#line 904 "parse.y"
  1.1486 +#line 915 "parse.y"
  1.1487  {yygotominor.yy410.z = 0; yygotominor.yy410.n = 0;}
  1.1488 -#line 2991 "parse.c"
  1.1489 +#line 2993 "parse.c"
  1.1490          break;
  1.1491        case 243:
  1.1492 -#line 910 "parse.y"
  1.1493 +#line 921 "parse.y"
  1.1494  {sqlite3DropIndex(pParse, yymsp[0].minor.yy373, yymsp[-1].minor.yy46);}
  1.1495 -#line 2996 "parse.c"
  1.1496 +#line 2998 "parse.c"
  1.1497          break;
  1.1498        case 244:
  1.1499        case 245:
  1.1500 -#line 916 "parse.y"
  1.1501 +#line 927 "parse.y"
  1.1502  {sqlite3Vacuum(pParse);}
  1.1503 -#line 3002 "parse.c"
  1.1504 +#line 3004 "parse.c"
  1.1505          break;
  1.1506        case 246:
  1.1507 -#line 924 "parse.y"
  1.1508 +#line 935 "parse.y"
  1.1509  {sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,0);}
  1.1510 -#line 3007 "parse.c"
  1.1511 +#line 3009 "parse.c"
  1.1512          break;
  1.1513        case 247:
  1.1514 -#line 925 "parse.y"
  1.1515 +#line 936 "parse.y"
  1.1516  {sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy0,0);}
  1.1517 -#line 3012 "parse.c"
  1.1518 +#line 3014 "parse.c"
  1.1519          break;
  1.1520        case 248:
  1.1521 -#line 926 "parse.y"
  1.1522 +#line 937 "parse.y"
  1.1523  {
  1.1524    sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,1);
  1.1525  }
  1.1526 -#line 3019 "parse.c"
  1.1527 +#line 3021 "parse.c"
  1.1528          break;
  1.1529        case 249:
  1.1530 -#line 929 "parse.y"
  1.1531 +#line 940 "parse.y"
  1.1532  {sqlite3Pragma(pParse,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-1].minor.yy410,0);}
  1.1533 -#line 3024 "parse.c"
  1.1534 +#line 3026 "parse.c"
  1.1535          break;
  1.1536        case 250:
  1.1537 -#line 930 "parse.y"
  1.1538 +#line 941 "parse.y"
  1.1539  {sqlite3Pragma(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,0,0);}
  1.1540 -#line 3029 "parse.c"
  1.1541 +#line 3031 "parse.c"
  1.1542          break;
  1.1543        case 258:
  1.1544 -#line 944 "parse.y"
  1.1545 +#line 955 "parse.y"
  1.1546  {
  1.1547    Token all;
  1.1548    all.z = yymsp[-3].minor.yy410.z;
  1.1549    all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy410.z) + yymsp[0].minor.yy0.n;
  1.1550    sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy243, &all);
  1.1551  }
  1.1552 -#line 3039 "parse.c"
  1.1553 +#line 3041 "parse.c"
  1.1554          break;
  1.1555        case 259:
  1.1556 -#line 953 "parse.y"
  1.1557 +#line 964 "parse.y"
  1.1558  {
  1.1559    sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy410, &yymsp[-6].minor.yy410, yymsp[-5].minor.yy46, yymsp[-4].minor.yy370.a, yymsp[-4].minor.yy370.b, yymsp[-2].minor.yy373, yymsp[0].minor.yy172, yymsp[-10].minor.yy46, yymsp[-8].minor.yy46);
  1.1560    yygotominor.yy410 = (yymsp[-6].minor.yy410.n==0?yymsp[-7].minor.yy410:yymsp[-6].minor.yy410);
  1.1561  }
  1.1562 -#line 3047 "parse.c"
  1.1563 +#line 3049 "parse.c"
  1.1564          break;
  1.1565        case 260:
  1.1566        case 263:
  1.1567 -#line 959 "parse.y"
  1.1568 +#line 970 "parse.y"
  1.1569  { yygotominor.yy46 = TK_BEFORE; }
  1.1570 -#line 3053 "parse.c"
  1.1571 +#line 3055 "parse.c"
  1.1572          break;
  1.1573        case 261:
  1.1574 -#line 960 "parse.y"
  1.1575 +#line 971 "parse.y"
  1.1576  { yygotominor.yy46 = TK_AFTER;  }
  1.1577 -#line 3058 "parse.c"
  1.1578 +#line 3060 "parse.c"
  1.1579          break;
  1.1580        case 262:
  1.1581 -#line 961 "parse.y"
  1.1582 +#line 972 "parse.y"
  1.1583  { yygotominor.yy46 = TK_INSTEAD;}
  1.1584 -#line 3063 "parse.c"
  1.1585 +#line 3065 "parse.c"
  1.1586          break;
  1.1587        case 264:
  1.1588        case 265:
  1.1589 -#line 966 "parse.y"
  1.1590 +#line 977 "parse.y"
  1.1591  {yygotominor.yy370.a = yymsp[0].major; yygotominor.yy370.b = 0;}
  1.1592 -#line 3069 "parse.c"
  1.1593 +#line 3071 "parse.c"
  1.1594          break;
  1.1595        case 266:
  1.1596 -#line 968 "parse.y"
  1.1597 +#line 979 "parse.y"
  1.1598  {yygotominor.yy370.a = TK_UPDATE; yygotominor.yy370.b = yymsp[0].minor.yy432;}
  1.1599 -#line 3074 "parse.c"
  1.1600 +#line 3076 "parse.c"
  1.1601          break;
  1.1602        case 269:
  1.1603 -#line 975 "parse.y"
  1.1604 +#line 986 "parse.y"
  1.1605  { yygotominor.yy172 = 0; }
  1.1606 -#line 3079 "parse.c"
  1.1607 +#line 3081 "parse.c"
  1.1608          break;
  1.1609        case 270:
  1.1610 -#line 976 "parse.y"
  1.1611 +#line 987 "parse.y"
  1.1612  { yygotominor.yy172 = yymsp[0].minor.yy172; }
  1.1613 -#line 3084 "parse.c"
  1.1614 +#line 3086 "parse.c"
  1.1615          break;
  1.1616        case 271:
  1.1617 -#line 980 "parse.y"
  1.1618 +#line 991 "parse.y"
  1.1619  {
  1.1620    if( yymsp[-2].minor.yy243 ){
  1.1621      yymsp[-2].minor.yy243->pLast->pNext = yymsp[-1].minor.yy243;
  1.1622 @@ -3091,171 +3093,171 @@
  1.1623    yymsp[-2].minor.yy243->pLast = yymsp[-1].minor.yy243;
  1.1624    yygotominor.yy243 = yymsp[-2].minor.yy243;
  1.1625  }
  1.1626 -#line 3097 "parse.c"
  1.1627 +#line 3099 "parse.c"
  1.1628          break;
  1.1629        case 272:
  1.1630 -#line 989 "parse.y"
  1.1631 +#line 1000 "parse.y"
  1.1632  { yygotominor.yy243 = 0; }
  1.1633 -#line 3102 "parse.c"
  1.1634 +#line 3104 "parse.c"
  1.1635          break;
  1.1636        case 273:
  1.1637 -#line 995 "parse.y"
  1.1638 -{ yygotominor.yy243 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy410, yymsp[-1].minor.yy174, yymsp[0].minor.yy172, yymsp[-4].minor.yy46); }
  1.1639 -#line 3107 "parse.c"
  1.1640 +#line 1006 "parse.y"
  1.1641 +{ yygotominor.yy243 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-3].minor.yy410, yymsp[-1].minor.yy174, yymsp[0].minor.yy172, yymsp[-4].minor.yy46); }
  1.1642 +#line 3109 "parse.c"
  1.1643          break;
  1.1644        case 274:
  1.1645 -#line 1000 "parse.y"
  1.1646 -{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy410, yymsp[-4].minor.yy432, yymsp[-1].minor.yy174, 0, yymsp[-7].minor.yy46);}
  1.1647 -#line 3112 "parse.c"
  1.1648 +#line 1011 "parse.y"
  1.1649 +{yygotominor.yy243 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy410, yymsp[-4].minor.yy432, yymsp[-1].minor.yy174, 0, yymsp[-7].minor.yy46);}
  1.1650 +#line 3114 "parse.c"
  1.1651          break;
  1.1652        case 275:
  1.1653 -#line 1003 "parse.y"
  1.1654 -{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy410, yymsp[-1].minor.yy432, 0, yymsp[0].minor.yy219, yymsp[-4].minor.yy46);}
  1.1655 -#line 3117 "parse.c"
  1.1656 +#line 1014 "parse.y"
  1.1657 +{yygotominor.yy243 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy410, yymsp[-1].minor.yy432, 0, yymsp[0].minor.yy219, yymsp[-4].minor.yy46);}
  1.1658 +#line 3119 "parse.c"
  1.1659          break;
  1.1660        case 276:
  1.1661 -#line 1007 "parse.y"
  1.1662 -{yygotominor.yy243 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy410, yymsp[0].minor.yy172);}
  1.1663 -#line 3122 "parse.c"
  1.1664 +#line 1018 "parse.y"
  1.1665 +{yygotominor.yy243 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-1].minor.yy410, yymsp[0].minor.yy172);}
  1.1666 +#line 3124 "parse.c"
  1.1667          break;
  1.1668        case 277:
  1.1669 -#line 1010 "parse.y"
  1.1670 -{yygotominor.yy243 = sqlite3TriggerSelectStep(yymsp[0].minor.yy219); }
  1.1671 -#line 3127 "parse.c"
  1.1672 +#line 1021 "parse.y"
  1.1673 +{yygotominor.yy243 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy219); }
  1.1674 +#line 3129 "parse.c"
  1.1675          break;
  1.1676        case 278:
  1.1677 -#line 1013 "parse.y"
  1.1678 +#line 1024 "parse.y"
  1.1679  {
  1.1680 -  yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, 0); 
  1.1681 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 
  1.1682    if( yygotominor.yy172 ){
  1.1683      yygotominor.yy172->iColumn = OE_Ignore;
  1.1684      sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
  1.1685    }
  1.1686  }
  1.1687 -#line 3138 "parse.c"
  1.1688 +#line 3140 "parse.c"
  1.1689          break;
  1.1690        case 279:
  1.1691 -#line 1020 "parse.y"
  1.1692 +#line 1031 "parse.y"
  1.1693  {
  1.1694 -  yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy410); 
  1.1695 +  yygotominor.yy172 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy410); 
  1.1696    if( yygotominor.yy172 ) {
  1.1697      yygotominor.yy172->iColumn = yymsp[-3].minor.yy46;
  1.1698      sqlite3ExprSpan(yygotominor.yy172, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
  1.1699    }
  1.1700  }
  1.1701 -#line 3149 "parse.c"
  1.1702 +#line 3151 "parse.c"
  1.1703          break;
  1.1704        case 280:
  1.1705 -#line 1030 "parse.y"
  1.1706 +#line 1041 "parse.y"
  1.1707  {yygotominor.yy46 = OE_Rollback;}
  1.1708 -#line 3154 "parse.c"
  1.1709 +#line 3156 "parse.c"
  1.1710          break;
  1.1711        case 282:
  1.1712 -#line 1032 "parse.y"
  1.1713 +#line 1043 "parse.y"
  1.1714  {yygotominor.yy46 = OE_Fail;}
  1.1715 -#line 3159 "parse.c"
  1.1716 +#line 3161 "parse.c"
  1.1717          break;
  1.1718        case 283:
  1.1719 -#line 1037 "parse.y"
  1.1720 +#line 1048 "parse.y"
  1.1721  {
  1.1722    sqlite3DropTrigger(pParse,yymsp[0].minor.yy373,yymsp[-1].minor.yy46);
  1.1723  }
  1.1724 -#line 3166 "parse.c"
  1.1725 +#line 3168 "parse.c"
  1.1726          break;
  1.1727        case 284:
  1.1728 -#line 1044 "parse.y"
  1.1729 +#line 1055 "parse.y"
  1.1730  {
  1.1731    sqlite3Attach(pParse, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, yymsp[0].minor.yy386);
  1.1732  }
  1.1733 -#line 3173 "parse.c"
  1.1734 +#line 3175 "parse.c"
  1.1735          break;
  1.1736        case 285:
  1.1737 -#line 1047 "parse.y"
  1.1738 +#line 1058 "parse.y"
  1.1739  {
  1.1740    sqlite3Detach(pParse, yymsp[0].minor.yy172);
  1.1741  }
  1.1742 -#line 3180 "parse.c"
  1.1743 +#line 3182 "parse.c"
  1.1744          break;
  1.1745        case 286:
  1.1746 -#line 1053 "parse.y"
  1.1747 +#line 1064 "parse.y"
  1.1748  { yygotominor.yy386 = 0; }
  1.1749 -#line 3185 "parse.c"
  1.1750 +#line 3187 "parse.c"
  1.1751          break;
  1.1752        case 287:
  1.1753 -#line 1054 "parse.y"
  1.1754 +#line 1065 "parse.y"
  1.1755  { yygotominor.yy386 = yymsp[0].minor.yy172; }
  1.1756 -#line 3190 "parse.c"
  1.1757 +#line 3192 "parse.c"
  1.1758          break;
  1.1759        case 290:
  1.1760 -#line 1062 "parse.y"
  1.1761 +#line 1073 "parse.y"
  1.1762  {sqlite3Reindex(pParse, 0, 0);}
  1.1763 -#line 3195 "parse.c"
  1.1764 +#line 3197 "parse.c"
  1.1765          break;
  1.1766        case 291:
  1.1767 -#line 1063 "parse.y"
  1.1768 +#line 1074 "parse.y"
  1.1769  {sqlite3Reindex(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);}
  1.1770 -#line 3200 "parse.c"
  1.1771 +#line 3202 "parse.c"
  1.1772          break;
  1.1773        case 292:
  1.1774 -#line 1068 "parse.y"
  1.1775 +#line 1079 "parse.y"
  1.1776  {sqlite3Analyze(pParse, 0, 0);}
  1.1777 -#line 3205 "parse.c"
  1.1778 +#line 3207 "parse.c"
  1.1779          break;
  1.1780        case 293:
  1.1781 -#line 1069 "parse.y"
  1.1782 +#line 1080 "parse.y"
  1.1783  {sqlite3Analyze(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);}
  1.1784 -#line 3210 "parse.c"
  1.1785 +#line 3212 "parse.c"
  1.1786          break;
  1.1787        case 294:
  1.1788 -#line 1074 "parse.y"
  1.1789 +#line 1085 "parse.y"
  1.1790  {
  1.1791    sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy373,&yymsp[0].minor.yy410);
  1.1792  }
  1.1793 -#line 3217 "parse.c"
  1.1794 +#line 3219 "parse.c"
  1.1795          break;
  1.1796        case 295:
  1.1797 -#line 1077 "parse.y"
  1.1798 +#line 1088 "parse.y"
  1.1799  {
  1.1800    sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy410);
  1.1801  }
  1.1802 -#line 3224 "parse.c"
  1.1803 +#line 3226 "parse.c"
  1.1804          break;
  1.1805        case 296:
  1.1806 -#line 1080 "parse.y"
  1.1807 +#line 1091 "parse.y"
  1.1808  {
  1.1809    sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy373);
  1.1810  }
  1.1811 -#line 3231 "parse.c"
  1.1812 +#line 3233 "parse.c"
  1.1813          break;
  1.1814        case 299:
  1.1815 -#line 1089 "parse.y"
  1.1816 +#line 1100 "parse.y"
  1.1817  {sqlite3VtabFinishParse(pParse,0);}
  1.1818 -#line 3236 "parse.c"
  1.1819 +#line 3238 "parse.c"
  1.1820          break;
  1.1821        case 300:
  1.1822 -#line 1090 "parse.y"
  1.1823 +#line 1101 "parse.y"
  1.1824  {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
  1.1825 -#line 3241 "parse.c"
  1.1826 +#line 3243 "parse.c"
  1.1827          break;
  1.1828        case 301:
  1.1829 -#line 1091 "parse.y"
  1.1830 +#line 1102 "parse.y"
  1.1831  {
  1.1832      sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, &yymsp[0].minor.yy410);
  1.1833  }
  1.1834 -#line 3248 "parse.c"
  1.1835 +#line 3250 "parse.c"
  1.1836          break;
  1.1837        case 304:
  1.1838 -#line 1096 "parse.y"
  1.1839 +#line 1107 "parse.y"
  1.1840  {sqlite3VtabArgInit(pParse);}
  1.1841 -#line 3253 "parse.c"
  1.1842 +#line 3255 "parse.c"
  1.1843          break;
  1.1844        case 306:
  1.1845        case 307:
  1.1846        case 308:
  1.1847        case 310:
  1.1848 -#line 1098 "parse.y"
  1.1849 +#line 1109 "parse.y"
  1.1850  {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
  1.1851 -#line 3261 "parse.c"
  1.1852 +#line 3263 "parse.c"
  1.1853          break;
  1.1854    };
  1.1855    yygoto = yyRuleInfo[yyruleno].lhs;
  1.1856 @@ -3322,7 +3324,7 @@
  1.1857      }
  1.1858      pParse->parseError = 1;
  1.1859    }
  1.1860 -#line 3329 "parse.c"
  1.1861 +#line 3331 "parse.c"
  1.1862    sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
  1.1863  }
  1.1864