sql_yacc.cc
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:460k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1.     break;}
  2. case 459:
  3. #line 1484 "sql_yacc.yy"
  4. { yyval.item= new Item_func_format(yyvsp[-3].item,atoi(yyvsp[-1].lex_str.str)); ;
  5.     break;}
  6. case 460:
  7. #line 1486 "sql_yacc.yy"
  8. { yyval.item= new Item_func_from_unixtime(yyvsp[-1].item); ;
  9.     break;}
  10. case 461:
  11. #line 1488 "sql_yacc.yy"
  12. {
  13.     yyval.item= new Item_func_date_format(new Item_func_from_unixtime(yyvsp[-3].item),yyvsp[-1].item,0);
  14.   ;
  15.     break;}
  16. case 462:
  17. #line 1492 "sql_yacc.yy"
  18. { yyval.item= new Item_func_field(yyvsp[-3].item, *yyvsp[-1].item_list); ;
  19.     break;}
  20. case 463:
  21. #line 1494 "sql_yacc.yy"
  22. { yyval.item= new Item_func_hour(yyvsp[-1].item); ;
  23.     break;}
  24. case 464:
  25. #line 1496 "sql_yacc.yy"
  26. { yyval.item= new Item_func_if(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  27.     break;}
  28. case 465:
  29. #line 1498 "sql_yacc.yy"
  30. { yyval.item= new Item_func_insert(yyvsp[-7].item,yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  31.     break;}
  32. case 466:
  33. #line 1501 "sql_yacc.yy"
  34. { yyval.item= new Item_date_add_interval(yyvsp[0].item,yyvsp[-3].item,yyvsp[-2].interval,0); ;
  35.     break;}
  36. case 467:
  37. #line 1503 "sql_yacc.yy"
  38. { yyval.item= new Item_func_interval(yyvsp[-3].item,* yyvsp[-1].item_list); ;
  39.     break;}
  40. case 468:
  41. #line 1505 "sql_yacc.yy"
  42. {
  43.     yyval.item= new Item_int((char*) "last_insert_id()",
  44.      current_thd->insert_id(),21);
  45.   ;
  46.     break;}
  47. case 469:
  48. #line 1510 "sql_yacc.yy"
  49. {
  50.     yyval.item= new Item_func_set_last_insert_id(yyvsp[-1].item);
  51.   ;
  52.     break;}
  53. case 470:
  54. #line 1514 "sql_yacc.yy"
  55. { yyval.item= new Item_func_left(yyvsp[-3].item,yyvsp[-1].item); ;
  56.     break;}
  57. case 471:
  58. #line 1516 "sql_yacc.yy"
  59. { yyval.item= new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); ;
  60.     break;}
  61. case 472:
  62. #line 1518 "sql_yacc.yy"
  63. { yyval.item= new Item_func_locate(yyvsp[-3].item,yyvsp[-5].item,yyvsp[-1].item); ;
  64.     break;}
  65. case 473:
  66. #line 1520 "sql_yacc.yy"
  67. { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_max(*yyvsp[-1].item_list); ;
  68.     break;}
  69. case 474:
  70. #line 1522 "sql_yacc.yy"
  71. { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_min(*yyvsp[-1].item_list); ;
  72.     break;}
  73. case 475:
  74. #line 1524 "sql_yacc.yy"
  75. { yyval.item= new Item_func_minute(yyvsp[-1].item); ;
  76.     break;}
  77. case 476:
  78. #line 1526 "sql_yacc.yy"
  79. { yyval.item= new Item_func_month(yyvsp[-1].item); ;
  80.     break;}
  81. case 477:
  82. #line 1528 "sql_yacc.yy"
  83. { yyval.item= new Item_func_now(); ;
  84.     break;}
  85. case 478:
  86. #line 1530 "sql_yacc.yy"
  87. { yyval.item= new Item_func_now(yyvsp[-1].item); ;
  88.     break;}
  89. case 479:
  90. #line 1531 "sql_yacc.yy"
  91. { yyval.item= new Item_func_password(yyvsp[-1].item); ;
  92.     break;}
  93. case 480:
  94. #line 1533 "sql_yacc.yy"
  95. { yyval.item = new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); ;
  96.     break;}
  97. case 481:
  98. #line 1534 "sql_yacc.yy"
  99. { yyval.item= new Item_func_rand(yyvsp[-1].item); ;
  100.     break;}
  101. case 482:
  102. #line 1535 "sql_yacc.yy"
  103. { yyval.item= new Item_func_rand(); ;
  104.     break;}
  105. case 483:
  106. #line 1537 "sql_yacc.yy"
  107. { yyval.item= new Item_func_replace(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  108.     break;}
  109. case 484:
  110. #line 1539 "sql_yacc.yy"
  111. { yyval.item= new Item_func_right(yyvsp[-3].item,yyvsp[-1].item); ;
  112.     break;}
  113. case 485:
  114. #line 1541 "sql_yacc.yy"
  115. { yyval.item= new Item_func_round(yyvsp[-1].item, new Item_int((char*)"0",0,1),0); ;
  116.     break;}
  117. case 486:
  118. #line 1542 "sql_yacc.yy"
  119. { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,0); ;
  120.     break;}
  121. case 487:
  122. #line 1544 "sql_yacc.yy"
  123. { yyval.item= new Item_func_second(yyvsp[-1].item); ;
  124.     break;}
  125. case 488:
  126. #line 1546 "sql_yacc.yy"
  127. { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  128.     break;}
  129. case 489:
  130. #line 1548 "sql_yacc.yy"
  131. { yyval.item= new Item_func_substr(yyvsp[-3].item,yyvsp[-1].item); ;
  132.     break;}
  133. case 490:
  134. #line 1550 "sql_yacc.yy"
  135. { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  136.     break;}
  137. case 491:
  138. #line 1552 "sql_yacc.yy"
  139. { yyval.item= new Item_func_substr(yyvsp[-3].item,yyvsp[-1].item); ;
  140.     break;}
  141. case 492:
  142. #line 1554 "sql_yacc.yy"
  143. { yyval.item= new Item_func_substr_index(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ;
  144.     break;}
  145. case 493:
  146. #line 1556 "sql_yacc.yy"
  147. { yyval.item= new Item_func_trim(yyvsp[-1].item,new Item_string(" ",1)); ;
  148.     break;}
  149. case 494:
  150. #line 1558 "sql_yacc.yy"
  151. { yyval.item= new Item_func_ltrim(yyvsp[-1].item,yyvsp[-3].item); ;
  152.     break;}
  153. case 495:
  154. #line 1560 "sql_yacc.yy"
  155. { yyval.item= new Item_func_rtrim(yyvsp[-1].item,yyvsp[-3].item); ;
  156.     break;}
  157. case 496:
  158. #line 1562 "sql_yacc.yy"
  159. { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); ;
  160.     break;}
  161. case 497:
  162. #line 1564 "sql_yacc.yy"
  163. { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); ;
  164.     break;}
  165. case 498:
  166. #line 1566 "sql_yacc.yy"
  167. { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,1); ;
  168.     break;}
  169. case 499:
  170. #line 1568 "sql_yacc.yy"
  171. {
  172.     if (yyvsp[-1].item_list != NULL)
  173.       yyval.item = new Item_sum_udf_str(yyvsp[-3].udf, *yyvsp[-1].item_list);
  174.     else
  175.       yyval.item = new Item_sum_udf_str(yyvsp[-3].udf);
  176.   ;
  177.     break;}
  178. case 500:
  179. #line 1575 "sql_yacc.yy"
  180. {
  181.     if (yyvsp[-1].item_list != NULL)
  182.       yyval.item = new Item_sum_udf_float(yyvsp[-3].udf, *yyvsp[-1].item_list);
  183.     else
  184.       yyval.item = new Item_sum_udf_float(yyvsp[-3].udf);
  185.   ;
  186.     break;}
  187. case 501:
  188. #line 1582 "sql_yacc.yy"
  189. {
  190.     if (yyvsp[-1].item_list != NULL)
  191.       yyval.item = new Item_sum_udf_int(yyvsp[-3].udf, *yyvsp[-1].item_list);
  192.     else
  193.       yyval.item = new Item_sum_udf_int(yyvsp[-3].udf);
  194.   ;
  195.     break;}
  196. case 502:
  197. #line 1589 "sql_yacc.yy"
  198. {
  199.     if (yyvsp[-1].item_list != NULL)
  200.       yyval.item = new Item_func_udf_str(yyvsp[-3].udf, *yyvsp[-1].item_list);
  201.     else
  202.       yyval.item = new Item_func_udf_str(yyvsp[-3].udf);
  203.   ;
  204.     break;}
  205. case 503:
  206. #line 1596 "sql_yacc.yy"
  207. {
  208.     if (yyvsp[-1].item_list != NULL)
  209.       yyval.item = new Item_func_udf_float(yyvsp[-3].udf, *yyvsp[-1].item_list);
  210.     else
  211.       yyval.item = new Item_func_udf_float(yyvsp[-3].udf);
  212.   ;
  213.     break;}
  214. case 504:
  215. #line 1603 "sql_yacc.yy"
  216. {
  217.     if (yyvsp[-1].item_list != NULL)
  218.       yyval.item = new Item_func_udf_int(yyvsp[-3].udf, *yyvsp[-1].item_list);
  219.     else
  220.       yyval.item = new Item_func_udf_int(yyvsp[-3].udf);
  221.   ;
  222.     break;}
  223. case 505:
  224. #line 1610 "sql_yacc.yy"
  225. { yyval.item= new Item_func_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str), * yyvsp[-1].item_list); ;
  226.     break;}
  227. case 506:
  228. #line 1612 "sql_yacc.yy"
  229. { yyval.item= new Item_func_unix_timestamp(); ;
  230.     break;}
  231. case 507:
  232. #line 1614 "sql_yacc.yy"
  233. { yyval.item= new Item_func_unix_timestamp(yyvsp[-1].item); ;
  234.     break;}
  235. case 508:
  236. #line 1616 "sql_yacc.yy"
  237. { yyval.item= new Item_func_user(); ;
  238.     break;}
  239. case 509:
  240. #line 1618 "sql_yacc.yy"
  241. { yyval.item= new Item_func_week(yyvsp[-1].item,new Item_int((char*) "0",0,1)); ;
  242.     break;}
  243. case 510:
  244. #line 1620 "sql_yacc.yy"
  245. { yyval.item= new Item_func_week(yyvsp[-3].item,yyvsp[-1].item); ;
  246.     break;}
  247. case 511:
  248. #line 1622 "sql_yacc.yy"
  249. { yyval.item= new Item_func_year(yyvsp[-1].item); ;
  250.     break;}
  251. case 512:
  252. #line 1624 "sql_yacc.yy"
  253. { yyval.item= new Item_func_yearweek(yyvsp[-1].item,new Item_int((char*) "0",0,1)); ;
  254.     break;}
  255. case 513:
  256. #line 1626 "sql_yacc.yy"
  257. { yyval.item= new Item_func_yearweek(yyvsp[-3].item, yyvsp[-1].item); ;
  258.     break;}
  259. case 514:
  260. #line 1628 "sql_yacc.yy"
  261. { yyval.item=new Item_func_benchmark(yyvsp[-3].ulong_num,yyvsp[-1].item); ;
  262.     break;}
  263. case 515:
  264. #line 1630 "sql_yacc.yy"
  265. { yyval.item=new Item_extract( yyvsp[-3].interval, yyvsp[-1].item); ;
  266.     break;}
  267. case 516:
  268. #line 1633 "sql_yacc.yy"
  269. { yyval.item_list= NULL; ;
  270.     break;}
  271. case 517:
  272. #line 1634 "sql_yacc.yy"
  273. { yyval.item_list= yyvsp[0].item_list;;
  274.     break;}
  275. case 518:
  276. #line 1638 "sql_yacc.yy"
  277. { yyval.item=new Item_sum_avg(yyvsp[-1].item); ;
  278.     break;}
  279. case 519:
  280. #line 1640 "sql_yacc.yy"
  281. { yyval.item=new Item_sum_and(yyvsp[-1].item); ;
  282.     break;}
  283. case 520:
  284. #line 1642 "sql_yacc.yy"
  285. { yyval.item=new Item_sum_or(yyvsp[-1].item); ;
  286.     break;}
  287. case 521:
  288. #line 1644 "sql_yacc.yy"
  289. { yyval.item=new Item_sum_count(new Item_int((int32) 0L,1)); ;
  290.     break;}
  291. case 522:
  292. #line 1646 "sql_yacc.yy"
  293. { yyval.item=new Item_sum_count(yyvsp[-1].item); ;
  294.     break;}
  295. case 523:
  296. #line 1648 "sql_yacc.yy"
  297. { yyval.item=new Item_sum_count_distinct(* yyvsp[-1].item_list); ;
  298.     break;}
  299. case 524:
  300. #line 1650 "sql_yacc.yy"
  301. { yyval.item= new Item_sum_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str),yyvsp[-1].item); ;
  302.     break;}
  303. case 525:
  304. #line 1652 "sql_yacc.yy"
  305. { yyval.item=new Item_sum_min(yyvsp[-1].item); ;
  306.     break;}
  307. case 526:
  308. #line 1654 "sql_yacc.yy"
  309. { yyval.item=new Item_sum_max(yyvsp[-1].item); ;
  310.     break;}
  311. case 527:
  312. #line 1656 "sql_yacc.yy"
  313. { yyval.item=new Item_sum_std(yyvsp[-1].item); ;
  314.     break;}
  315. case 528:
  316. #line 1658 "sql_yacc.yy"
  317. { yyval.item=new Item_sum_sum(yyvsp[-1].item); ;
  318.     break;}
  319. case 529:
  320. #line 1661 "sql_yacc.yy"
  321. { Lex->in_sum_expr++ ;
  322.     break;}
  323. case 530:
  324. #line 1663 "sql_yacc.yy"
  325. {
  326.   Lex->in_sum_expr--;
  327.   yyval.item=yyvsp[0].item;
  328. ;
  329.     break;}
  330. case 531:
  331. #line 1669 "sql_yacc.yy"
  332. { Lex->expr_list.push_front(new List<Item>); ;
  333.     break;}
  334. case 532:
  335. #line 1671 "sql_yacc.yy"
  336. { yyval.item_list= Lex->expr_list.pop(); ;
  337.     break;}
  338. case 533:
  339. #line 1674 "sql_yacc.yy"
  340. { Lex->expr_list.head()->push_back(yyvsp[0].item); ;
  341.     break;}
  342. case 534:
  343. #line 1675 "sql_yacc.yy"
  344. { Lex->expr_list.head()->push_back(yyvsp[0].item); ;
  345.     break;}
  346. case 535:
  347. #line 1678 "sql_yacc.yy"
  348. { Lex->expr_list.push_front(new List<Item>); ;
  349.     break;}
  350. case 536:
  351. #line 1680 "sql_yacc.yy"
  352. { yyval.item_list= Lex->expr_list.pop(); ;
  353.     break;}
  354. case 537:
  355. #line 1683 "sql_yacc.yy"
  356. { Lex->expr_list.head()->push_back(yyvsp[0].item); ;
  357.     break;}
  358. case 538:
  359. #line 1684 "sql_yacc.yy"
  360. { Lex->expr_list.head()->push_back(yyvsp[0].item); ;
  361.     break;}
  362. case 539:
  363. #line 1687 "sql_yacc.yy"
  364. { yyval.item= NULL; ;
  365.     break;}
  366. case 540:
  367. #line 1688 "sql_yacc.yy"
  368. { yyval.item= yyvsp[0].item; ;
  369.     break;}
  370. case 541:
  371. #line 1691 "sql_yacc.yy"
  372. { yyval.item= NULL; ;
  373.     break;}
  374. case 542:
  375. #line 1692 "sql_yacc.yy"
  376. { yyval.item= yyvsp[0].item; ;
  377.     break;}
  378. case 543:
  379. #line 1695 "sql_yacc.yy"
  380. { Lex->when_list.push_front(new List<Item>) ;
  381.     break;}
  382. case 544:
  383. #line 1697 "sql_yacc.yy"
  384. { yyval.item_list= Lex->when_list.pop(); ;
  385.     break;}
  386. case 545:
  387. #line 1701 "sql_yacc.yy"
  388. {
  389.     Lex->when_list.head()->push_back(yyvsp[-2].item);
  390.     Lex->when_list.head()->push_back(yyvsp[0].item);
  391. ;
  392.     break;}
  393. case 546:
  394. #line 1706 "sql_yacc.yy"
  395. {
  396.     Lex->when_list.head()->push_back(yyvsp[-2].item);
  397.     Lex->when_list.head()->push_back(yyvsp[0].item);
  398.   ;
  399.     break;}
  400. case 547:
  401. #line 1712 "sql_yacc.yy"
  402. { yyval.item=new Item_string(" ",1); ;
  403.     break;}
  404. case 548:
  405. #line 1713 "sql_yacc.yy"
  406. { yyval.item=yyvsp[0].item; ;
  407.     break;}
  408. case 549:
  409. #line 1716 "sql_yacc.yy"
  410. { yyval.table_list=yyvsp[-1].table_list; ;
  411.     break;}
  412. case 550:
  413. #line 1717 "sql_yacc.yy"
  414. { yyval.table_list=yyvsp[0].table_list; ;
  415.     break;}
  416. case 551:
  417. #line 1718 "sql_yacc.yy"
  418. { yyval.table_list=yyvsp[0].table_list ;
  419.     break;}
  420. case 552:
  421. #line 1719 "sql_yacc.yy"
  422. { yyval.table_list=yyvsp[0].table_list ; yyval.table_list->straight=1; ;
  423.     break;}
  424. case 553:
  425. #line 1721 "sql_yacc.yy"
  426. { add_join_on(yyvsp[-2].table_list,yyvsp[0].item); yyval.table_list=yyvsp[-2].table_list; ;
  427.     break;}
  428. case 554:
  429. #line 1723 "sql_yacc.yy"
  430. { Lex->db1=yyvsp[-3].table_list->db; Lex->table1=yyvsp[-3].table_list->name;
  431.     Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->name; ;
  432.     break;}
  433. case 555:
  434. #line 1726 "sql_yacc.yy"
  435. { add_join_on(yyvsp[-5].table_list,yyvsp[-1].item); yyval.table_list=yyvsp[-5].table_list; ;
  436.     break;}
  437. case 556:
  438. #line 1728 "sql_yacc.yy"
  439. { add_join_on(yyvsp[-2].table_list,yyvsp[0].item); yyvsp[-2].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-2].table_list; ;
  440.     break;}
  441. case 557:
  442. #line 1730 "sql_yacc.yy"
  443. { Lex->db1=yyvsp[-4].table_list->db; Lex->table1=yyvsp[-4].table_list->name;
  444.     Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->name; ;
  445.     break;}
  446. case 558:
  447. #line 1733 "sql_yacc.yy"
  448. { add_join_on(yyvsp[-5].table_list,yyvsp[-1].item); yyvsp[-5].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-5].table_list; ;
  449.     break;}
  450. case 559:
  451. #line 1735 "sql_yacc.yy"
  452. { add_join_natural(yyvsp[-5].table_list,yyvsp[0].table_list); yyvsp[0].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[0].table_list; ;
  453.     break;}
  454. case 560:
  455. #line 1737 "sql_yacc.yy"
  456. { add_join_on(yyvsp[-6].table_list,yyvsp[0].item); yyvsp[-6].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-6].table_list; ;
  457.     break;}
  458. case 561:
  459. #line 1739 "sql_yacc.yy"
  460. { Lex->db1=yyvsp[-4].table_list->db; Lex->table1=yyvsp[-4].table_list->name;
  461.     Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->name; ;
  462.     break;}
  463. case 562:
  464. #line 1742 "sql_yacc.yy"
  465. { add_join_on(yyvsp[-9].table_list,yyvsp[-1].item); yyvsp[-9].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-9].table_list; ;
  466.     break;}
  467. case 563:
  468. #line 1744 "sql_yacc.yy"
  469. { add_join_natural(yyvsp[0].table_list,yyvsp[-5].table_list); yyvsp[-5].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-5].table_list; ;
  470.     break;}
  471. case 564:
  472. #line 1746 "sql_yacc.yy"
  473. { add_join_natural(yyvsp[-3].table_list,yyvsp[0].table_list); yyval.table_list=yyvsp[0].table_list; ;
  474.     break;}
  475. case 565:
  476. #line 1749 "sql_yacc.yy"
  477. {;
  478.     break;}
  479. case 566:
  480. #line 1750 "sql_yacc.yy"
  481. {;
  482.     break;}
  483. case 567:
  484. #line 1751 "sql_yacc.yy"
  485. {;
  486.     break;}
  487. case 568:
  488. #line 1754 "sql_yacc.yy"
  489. { Lex->use_index_ptr=Lex->ignore_index_ptr=0; ;
  490.     break;}
  491. case 569:
  492. #line 1756 "sql_yacc.yy"
  493. { if (!(yyval.table_list=add_table_to_list(yyvsp[-2].table,yyvsp[-1].lex_str_ptr,0,TL_UNLOCK, Lex->use_index_ptr,
  494.                              Lex->ignore_index_ptr))) YYABORT; ;
  495.     break;}
  496. case 570:
  497. #line 1759 "sql_yacc.yy"
  498. { add_join_on(yyvsp[-3].table_list,yyvsp[-1].item); yyvsp[-3].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-3].table_list; ;
  499.     break;}
  500. case 571:
  501. #line 1762 "sql_yacc.yy"
  502. {;
  503.     break;}
  504. case 572:
  505. #line 1763 "sql_yacc.yy"
  506. {;
  507.     break;}
  508. case 573:
  509. #line 1766 "sql_yacc.yy"
  510. {;
  511.     break;}
  512. case 574:
  513. #line 1768 "sql_yacc.yy"
  514. { Lex->use_index= *yyvsp[0].string_list; Lex->use_index_ptr= &Lex->use_index; ;
  515.     break;}
  516. case 575:
  517. #line 1770 "sql_yacc.yy"
  518. { Lex->ignore_index= *yyvsp[0].string_list; Lex->ignore_index_ptr= &Lex->ignore_index;;
  519.     break;}
  520. case 576:
  521. #line 1773 "sql_yacc.yy"
  522. { Lex->interval_list.empty() ;
  523.     break;}
  524. case 577:
  525. #line 1774 "sql_yacc.yy"
  526. { yyval.string_list= &Lex->interval_list; ;
  527.     break;}
  528. case 578:
  529. #line 1778 "sql_yacc.yy"
  530. { Lex->interval_list.push_back(new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length)); ;
  531.     break;}
  532. case 579:
  533. #line 1780 "sql_yacc.yy"
  534. { Lex->interval_list.push_back(new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length)); ;
  535.     break;}
  536. case 580:
  537. #line 1782 "sql_yacc.yy"
  538. { Lex->interval_list.push_back(new String("PRIMARY",7)); ;
  539.     break;}
  540. case 581:
  541. #line 1786 "sql_yacc.yy"
  542. { if (!(yyval.item= new Item_func_eq(new Item_field(Lex->db1,Lex->table1, yyvsp[0].lex_str.str), new Item_field(Lex->db2,Lex->table2,yyvsp[0].lex_str.str))))
  543.       YYABORT;
  544.   ;
  545.     break;}
  546. case 582:
  547. #line 1790 "sql_yacc.yy"
  548. {
  549.     if (!(yyval.item= new Item_cond_and(new Item_func_eq(new Item_field(Lex->db1,Lex->table1,yyvsp[0].lex_str.str), new Item_field(Lex->db2,Lex->table2,yyvsp[0].lex_str.str)), yyvsp[-2].item)))
  550.       YYABORT;
  551.   ;
  552.     break;}
  553. case 583:
  554. #line 1796 "sql_yacc.yy"
  555. { yyval.interval=INTERVAL_DAY_HOUR; ;
  556.     break;}
  557. case 584:
  558. #line 1797 "sql_yacc.yy"
  559. { yyval.interval=INTERVAL_DAY_MINUTE; ;
  560.     break;}
  561. case 585:
  562. #line 1798 "sql_yacc.yy"
  563. { yyval.interval=INTERVAL_DAY_SECOND; ;
  564.     break;}
  565. case 586:
  566. #line 1799 "sql_yacc.yy"
  567. { yyval.interval=INTERVAL_DAY; ;
  568.     break;}
  569. case 587:
  570. #line 1800 "sql_yacc.yy"
  571. { yyval.interval=INTERVAL_HOUR_MINUTE; ;
  572.     break;}
  573. case 588:
  574. #line 1801 "sql_yacc.yy"
  575. { yyval.interval=INTERVAL_HOUR_SECOND; ;
  576.     break;}
  577. case 589:
  578. #line 1802 "sql_yacc.yy"
  579. { yyval.interval=INTERVAL_HOUR; ;
  580.     break;}
  581. case 590:
  582. #line 1803 "sql_yacc.yy"
  583. { yyval.interval=INTERVAL_MINUTE_SECOND; ;
  584.     break;}
  585. case 591:
  586. #line 1804 "sql_yacc.yy"
  587. { yyval.interval=INTERVAL_MINUTE; ;
  588.     break;}
  589. case 592:
  590. #line 1805 "sql_yacc.yy"
  591. { yyval.interval=INTERVAL_MONTH; ;
  592.     break;}
  593. case 593:
  594. #line 1806 "sql_yacc.yy"
  595. { yyval.interval=INTERVAL_SECOND; ;
  596.     break;}
  597. case 594:
  598. #line 1807 "sql_yacc.yy"
  599. { yyval.interval=INTERVAL_YEAR_MONTH; ;
  600.     break;}
  601. case 595:
  602. #line 1808 "sql_yacc.yy"
  603. { yyval.interval=INTERVAL_YEAR; ;
  604.     break;}
  605. case 599:
  606. #line 1816 "sql_yacc.yy"
  607. { yyval.lex_str_ptr=0; ;
  608.     break;}
  609. case 600:
  610. #line 1818 "sql_yacc.yy"
  611. { yyval.lex_str_ptr= (LEX_STRING*) sql_memdup(&yyvsp[0].lex_str,sizeof(LEX_STRING)); ;
  612.     break;}
  613. case 601:
  614. #line 1822 "sql_yacc.yy"
  615. { Lex->where= 0; ;
  616.     break;}
  617. case 602:
  618. #line 1823 "sql_yacc.yy"
  619. { Lex->where= yyvsp[0].item; ;
  620.     break;}
  621. case 604:
  622. #line 1827 "sql_yacc.yy"
  623. { Lex->create_refs=1; ;
  624.     break;}
  625. case 605:
  626. #line 1828 "sql_yacc.yy"
  627. { Lex->having= yyvsp[0].item; Lex->create_refs=0; ;
  628.     break;}
  629. case 606:
  630. #line 1831 "sql_yacc.yy"
  631. { yyval.simple_string= yyvsp[0].lex_str.str; ;
  632.     break;}
  633. case 607:
  634. #line 1832 "sql_yacc.yy"
  635. { yyval.simple_string= (char*) "\"; ;
  636.     break;}
  637. case 610:
  638. #line 1845 "sql_yacc.yy"
  639. { if (add_group_to_list(yyvsp[0].item,(bool) 1)) YYABORT; ;
  640.     break;}
  641. case 611:
  642. #line 1847 "sql_yacc.yy"
  643. { if (add_group_to_list(yyvsp[0].item,(bool) 1)) YYABORT; ;
  644.     break;}
  645. case 614:
  646. #line 1858 "sql_yacc.yy"
  647. { Lex->sort_default=1; ;
  648.     break;}
  649. case 616:
  650. #line 1862 "sql_yacc.yy"
  651. { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ;
  652.     break;}
  653. case 617:
  654. #line 1864 "sql_yacc.yy"
  655. { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ;
  656.     break;}
  657. case 618:
  658. #line 1867 "sql_yacc.yy"
  659. { yyval.num =  1; ;
  660.     break;}
  661. case 619:
  662. #line 1868 "sql_yacc.yy"
  663. { yyval.num = Lex->sort_default=1; ;
  664.     break;}
  665. case 620:
  666. #line 1869 "sql_yacc.yy"
  667. { yyval.num = Lex->sort_default=0; ;
  668.     break;}
  669. case 621:
  670. #line 1874 "sql_yacc.yy"
  671. {
  672.   Lex->select_limit= current_thd->default_select_limit;
  673.   Lex->offset_limit= 0L;
  674. ;
  675.     break;}
  676. case 622:
  677. #line 1879 "sql_yacc.yy"
  678. { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=0L; ;
  679.     break;}
  680. case 623:
  681. #line 1881 "sql_yacc.yy"
  682. { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=yyvsp[-2].ulong_num; ;
  683.     break;}
  684. case 624:
  685. #line 1885 "sql_yacc.yy"
  686. {
  687.   Lex->select_limit= HA_POS_ERROR;
  688. ;
  689.     break;}
  690. case 625:
  691. #line 1889 "sql_yacc.yy"
  692. { Lex->select_limit= (ha_rows) yyvsp[0].ulonglong_num; ;
  693.     break;}
  694. case 626:
  695. #line 1892 "sql_yacc.yy"
  696. { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); ;
  697.     break;}
  698. case 627:
  699. #line 1893 "sql_yacc.yy"
  700. { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); ;
  701.     break;}
  702. case 628:
  703. #line 1894 "sql_yacc.yy"
  704. { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); ;
  705.     break;}
  706. case 629:
  707. #line 1897 "sql_yacc.yy"
  708. { yyval.ulonglong_num= (ulonglong) strtoul(yyvsp[0].lex_str.str,NULL,10); ;
  709.     break;}
  710. case 630:
  711. #line 1898 "sql_yacc.yy"
  712. { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); ;
  713.     break;}
  714. case 631:
  715. #line 1899 "sql_yacc.yy"
  716. { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); ;
  717.     break;}
  718. case 632:
  719. #line 1900 "sql_yacc.yy"
  720. { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); ;
  721.     break;}
  722. case 634:
  723. #line 1905 "sql_yacc.yy"
  724. {
  725.     LEX *lex=Lex;
  726.     lex->proc_list.elements=0;
  727.     lex->proc_list.first=0;
  728.     lex->proc_list.next= (byte**) &lex->proc_list.first;
  729.     if (add_proc_to_list(new Item_field(NULL,NULL,yyvsp[0].lex_str.str)))
  730.       YYABORT;
  731.   ;
  732.     break;}
  733. case 636:
  734. #line 1917 "sql_yacc.yy"
  735. {;
  736.     break;}
  737. case 637:
  738. #line 1918 "sql_yacc.yy"
  739. {;
  740.     break;}
  741. case 640:
  742. #line 1926 "sql_yacc.yy"
  743. {
  744.     if (add_proc_to_list(yyvsp[0].item))
  745.       YYABORT;
  746.     if (!yyvsp[0].item->name)
  747.       yyvsp[0].item->set_name(yyvsp[-1].simple_string,(uint) ((char*) Lex->tok_end - yyvsp[-1].simple_string));
  748.   ;
  749.     break;}
  750. case 641:
  751. #line 1935 "sql_yacc.yy"
  752. {
  753.   if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,0)))
  754.     YYABORT;
  755. ;
  756.     break;}
  757. case 643:
  758. #line 1941 "sql_yacc.yy"
  759. {
  760.   if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,1)))
  761.     YYABORT;
  762. ;
  763.     break;}
  764. case 644:
  765. #line 1953 "sql_yacc.yy"
  766. {
  767.   Lex->sql_command = SQLCOM_DROP_TABLE;
  768.   Lex->drop_if_exists = yyvsp[-2].num;
  769. ;
  770.     break;}
  771. case 645:
  772. #line 1957 "sql_yacc.yy"
  773. {;
  774.     break;}
  775. case 646:
  776. #line 1958 "sql_yacc.yy"
  777. {
  778.      Lex->sql_command= SQLCOM_DROP_INDEX;
  779.      Lex->drop_list.empty();
  780.      Lex->drop_list.push_back(new Alter_drop(Alter_drop::KEY,
  781.      yyvsp[-3].lex_str.str));
  782.      if (!add_table_to_list(yyvsp[-1].table,NULL, 1))
  783.       YYABORT;
  784.   ;
  785.     break;}
  786. case 647:
  787. #line 1967 "sql_yacc.yy"
  788. {
  789.     Lex->sql_command= SQLCOM_DROP_DB;
  790.     Lex->drop_if_exists=yyvsp[-1].num;
  791.     Lex->name=yyvsp[0].lex_str.str;
  792.  ;
  793.     break;}
  794. case 648:
  795. #line 1973 "sql_yacc.yy"
  796. {
  797.     Lex->sql_command = SQLCOM_DROP_FUNCTION;
  798.     Lex->udf.name=yyvsp[0].lex_str.str;
  799.   ;
  800.     break;}
  801. case 651:
  802. #line 1985 "sql_yacc.yy"
  803. { if (!add_table_to_list(yyvsp[0].table,NULL,1)) YYABORT; ;
  804.     break;}
  805. case 652:
  806. #line 1988 "sql_yacc.yy"
  807. { yyval.num=0; ;
  808.     break;}
  809. case 653:
  810. #line 1989 "sql_yacc.yy"
  811. { yyval.num= 1; ;
  812.     break;}
  813. case 654:
  814. #line 1996 "sql_yacc.yy"
  815. { Lex->sql_command = SQLCOM_INSERT; ;
  816.     break;}
  817. case 656:
  818. #line 1999 "sql_yacc.yy"
  819. { Lex->sql_command = SQLCOM_REPLACE; ;
  820.     break;}
  821. case 658:
  822. #line 2002 "sql_yacc.yy"
  823. { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT; ;
  824.     break;}
  825. case 659:
  826. #line 2003 "sql_yacc.yy"
  827. { Lex->lock_option= TL_WRITE_LOW_PRIORITY; ;
  828.     break;}
  829. case 660:
  830. #line 2004 "sql_yacc.yy"
  831. { Lex->lock_option= TL_WRITE_DELAYED; ;
  832.     break;}
  833. case 661:
  834. #line 2005 "sql_yacc.yy"
  835. { Lex->lock_option= TL_WRITE; ;
  836.     break;}
  837. case 662:
  838. #line 2008 "sql_yacc.yy"
  839. {;
  840.     break;}
  841. case 663:
  842. #line 2009 "sql_yacc.yy"
  843. { Lex->lock_option= TL_WRITE_DELAYED; ;
  844.     break;}
  845. case 664:
  846. #line 2012 "sql_yacc.yy"
  847. {;
  848.     break;}
  849. case 665:
  850. #line 2013 "sql_yacc.yy"
  851. {;
  852.     break;}
  853. case 666:
  854. #line 2017 "sql_yacc.yy"
  855. {
  856.   Lex->field_list.empty();
  857.   Lex->many_values.empty();
  858.   Lex->insert_list=0;
  859. ;
  860.     break;}
  861. case 667:
  862. #line 2024 "sql_yacc.yy"
  863. {;
  864.     break;}
  865. case 668:
  866. #line 2026 "sql_yacc.yy"
  867. {
  868.     if (!(Lex->insert_list = new List_item) ||
  869. Lex->many_values.push_back(Lex->insert_list))
  870.       YYABORT;
  871.    ;
  872.     break;}
  873. case 670:
  874. #line 2034 "sql_yacc.yy"
  875. { ;
  876.     break;}
  877. case 671:
  878. #line 2035 "sql_yacc.yy"
  879. { ;
  880.     break;}
  881. case 672:
  882. #line 2036 "sql_yacc.yy"
  883. { ;
  884.     break;}
  885. case 673:
  886. #line 2039 "sql_yacc.yy"
  887. { Lex->field_list.push_back(yyvsp[0].item); ;
  888.     break;}
  889. case 674:
  890. #line 2040 "sql_yacc.yy"
  891. { Lex->field_list.push_back(yyvsp[0].item); ;
  892.     break;}
  893. case 675:
  894. #line 2043 "sql_yacc.yy"
  895. {;
  896.     break;}
  897. case 676:
  898. #line 2045 "sql_yacc.yy"
  899. {
  900.     LEX *lex=Lex;
  901.     lex->sql_command = (lex->sql_command == SQLCOM_INSERT ?
  902. SQLCOM_INSERT_SELECT : SQLCOM_REPLACE_SELECT);
  903.     mysql_init_select(lex);
  904.   ;
  905.     break;}
  906. case 677:
  907. #line 2051 "sql_yacc.yy"
  908. {;
  909.     break;}
  910. case 682:
  911. #line 2064 "sql_yacc.yy"
  912. {
  913.   if (Lex->field_list.push_back(yyvsp[-2].item) ||
  914.       Lex->insert_list->push_back(yyvsp[0].item))
  915.     YYABORT;
  916.  ;
  917.     break;}
  918. case 683:
  919. #line 2070 "sql_yacc.yy"
  920. {;
  921.     break;}
  922. case 684:
  923. #line 2071 "sql_yacc.yy"
  924. {;
  925.     break;}
  926. case 685:
  927. #line 2075 "sql_yacc.yy"
  928. {
  929.     if (!(Lex->insert_list = new List_item))
  930.       YYABORT;
  931.  ;
  932.     break;}
  933. case 686:
  934. #line 2080 "sql_yacc.yy"
  935. {
  936.   if (Lex->many_values.push_back(Lex->insert_list))
  937.     YYABORT;
  938.  ;
  939.     break;}
  940. case 687:
  941. #line 2086 "sql_yacc.yy"
  942. {;
  943.     break;}
  944. case 689:
  945. #line 2091 "sql_yacc.yy"
  946. {
  947.   if (Lex->insert_list->push_back(yyvsp[0].item))
  948.     YYABORT;
  949. ;
  950.     break;}
  951. case 690:
  952. #line 2096 "sql_yacc.yy"
  953. {
  954.   if (Lex->insert_list->push_back(yyvsp[0].item))
  955.     YYABORT;
  956. ;
  957.     break;}
  958. case 691:
  959. #line 2105 "sql_yacc.yy"
  960. { Lex->sql_command = SQLCOM_UPDATE; ;
  961.     break;}
  962. case 692:
  963. #line 2109 "sql_yacc.yy"
  964. {
  965.   if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item))
  966.     YYABORT;
  967. ;
  968.     break;}
  969. case 693:
  970. #line 2114 "sql_yacc.yy"
  971. {
  972.     if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item))
  973.       YYABORT;
  974.   ;
  975.     break;}
  976. case 694:
  977. #line 2120 "sql_yacc.yy"
  978. { Lex->lock_option= current_thd->update_lock_default; ;
  979.     break;}
  980. case 695:
  981. #line 2121 "sql_yacc.yy"
  982. { Lex->lock_option= TL_WRITE_LOW_PRIORITY; ;
  983.     break;}
  984. case 696:
  985. #line 2127 "sql_yacc.yy"
  986. { Lex->sql_command= SQLCOM_DELETE; Lex->options=0;
  987.   Lex->lock_option= current_thd->update_lock_default; ;
  988.     break;}
  989. case 698:
  990. #line 2134 "sql_yacc.yy"
  991. {;
  992.     break;}
  993. case 699:
  994. #line 2135 "sql_yacc.yy"
  995. {;
  996.     break;}
  997. case 700:
  998. #line 2138 "sql_yacc.yy"
  999. { Lex->options|= OPTION_QUICK; ;
  1000.     break;}
  1001. case 701:
  1002. #line 2139 "sql_yacc.yy"
  1003. { Lex->lock_option= TL_WRITE_LOW_PRIORITY; ;
  1004.     break;}
  1005. case 702:
  1006. #line 2143 "sql_yacc.yy"
  1007. { Lex->sql_command= SQLCOM_TRUNCATE; Lex->options=0;
  1008.   Lex->lock_option= current_thd->update_lock_default; ;
  1009.     break;}
  1010. case 705:
  1011. #line 2152 "sql_yacc.yy"
  1012. { Lex->wild=0;;
  1013.     break;}
  1014. case 707:
  1015. #line 2156 "sql_yacc.yy"
  1016. { Lex->sql_command= SQLCOM_SHOW_DATABASES; ;
  1017.     break;}
  1018. case 708:
  1019. #line 2158 "sql_yacc.yy"
  1020. { Lex->sql_command= SQLCOM_SHOW_TABLES; Lex->db= yyvsp[-1].simple_string; Lex->options=0;;
  1021.     break;}
  1022. case 709:
  1023. #line 2160 "sql_yacc.yy"
  1024. { Lex->sql_command= SQLCOM_SHOW_TABLES;
  1025.     Lex->options|= SELECT_DESCRIBE;
  1026.     Lex->db= yyvsp[-1].simple_string;
  1027.   ;
  1028.     break;}
  1029. case 710:
  1030. #line 2165 "sql_yacc.yy"
  1031. { Lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
  1032.     Lex->db= yyvsp[-1].simple_string;
  1033.     Lex->options=0;
  1034.   ;
  1035.     break;}
  1036. case 711:
  1037. #line 2170 "sql_yacc.yy"
  1038. {
  1039.     Lex->sql_command= SQLCOM_SHOW_FIELDS;
  1040.     if (yyvsp[-1].simple_string)
  1041.       yyvsp[-2].table->change_db(yyvsp[-1].simple_string);
  1042.     if (!add_table_to_list(yyvsp[-2].table,NULL,0))
  1043.       YYABORT;
  1044.   ;
  1045.     break;}
  1046. case 712:
  1047. #line 2178 "sql_yacc.yy"
  1048. {
  1049.     Lex->sql_command = SQLCOM_SHOW_BINLOGS;
  1050.           ;
  1051.     break;}
  1052. case 713:
  1053. #line 2182 "sql_yacc.yy"
  1054. {
  1055.     Lex->sql_command= SQLCOM_SHOW_KEYS;
  1056.     if (yyvsp[0].simple_string)
  1057.       yyvsp[-1].table->change_db(yyvsp[0].simple_string);
  1058.     if (!add_table_to_list(yyvsp[-1].table,NULL,0))
  1059.       YYABORT;
  1060.   ;
  1061.     break;}
  1062. case 714:
  1063. #line 2190 "sql_yacc.yy"
  1064. { Lex->sql_command= SQLCOM_SHOW_STATUS; ;
  1065.     break;}
  1066. case 715:
  1067. #line 2192 "sql_yacc.yy"
  1068. { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;;
  1069.     break;}
  1070. case 716:
  1071. #line 2194 "sql_yacc.yy"
  1072. { Lex->sql_command= SQLCOM_SHOW_VARIABLES; ;
  1073.     break;}
  1074. case 717:
  1075. #line 2196 "sql_yacc.yy"
  1076. { Lex->sql_command= SQLCOM_SHOW_LOGS; ;
  1077.     break;}
  1078. case 718:
  1079. #line 2198 "sql_yacc.yy"
  1080. { Lex->sql_command= SQLCOM_SHOW_GRANTS;
  1081.     Lex->grant_user=yyvsp[0].lex_user; Lex->grant_user->password.str=NullS; ;
  1082.     break;}
  1083. case 719:
  1084. #line 2201 "sql_yacc.yy"
  1085. {
  1086.     Lex->sql_command = SQLCOM_SHOW_CREATE;
  1087.     if(!add_table_to_list(yyvsp[0].table, NULL,0))
  1088.       YYABORT;
  1089.   ;
  1090.     break;}
  1091. case 720:
  1092. #line 2207 "sql_yacc.yy"
  1093. {
  1094.     Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
  1095.           ;
  1096.     break;}
  1097. case 721:
  1098. #line 2211 "sql_yacc.yy"
  1099. {
  1100.     Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
  1101.           ;
  1102.     break;}
  1103. case 722:
  1104. #line 2216 "sql_yacc.yy"
  1105. { yyval.simple_string= 0; ;
  1106.     break;}
  1107. case 723:
  1108. #line 2217 "sql_yacc.yy"
  1109. { yyval.simple_string= yyvsp[0].lex_str.str; ;
  1110.     break;}
  1111. case 725:
  1112. #line 2221 "sql_yacc.yy"
  1113. { Lex->wild= yyvsp[0].string; ;
  1114.     break;}
  1115. case 726:
  1116. #line 2224 "sql_yacc.yy"
  1117. { Lex->verbose=0; ;
  1118.     break;}
  1119. case 727:
  1120. #line 2225 "sql_yacc.yy"
  1121. { Lex->verbose=1; ;
  1122.     break;}
  1123. case 728:
  1124. #line 2230 "sql_yacc.yy"
  1125. {
  1126.   Lex->wild=0;
  1127.   Lex->verbose=0;
  1128.   Lex->sql_command=SQLCOM_SHOW_FIELDS;
  1129.   if (!add_table_to_list(yyvsp[0].table, NULL,0))
  1130.     YYABORT;
  1131. ;
  1132.     break;}
  1133. case 730:
  1134. #line 2238 "sql_yacc.yy"
  1135. { Lex->options|= SELECT_DESCRIBE ;
  1136.     break;}
  1137. case 733:
  1138. #line 2246 "sql_yacc.yy"
  1139. {;
  1140.     break;}
  1141. case 734:
  1142. #line 2247 "sql_yacc.yy"
  1143. { Lex->wild= yyvsp[0].string; ;
  1144.     break;}
  1145. case 735:
  1146. #line 2248 "sql_yacc.yy"
  1147. { Lex->wild= new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ;
  1148.     break;}
  1149. case 736:
  1150. #line 2254 "sql_yacc.yy"
  1151. {Lex->sql_command= SQLCOM_FLUSH; Lex->type=0; ;
  1152.     break;}
  1153. case 740:
  1154. #line 2261 "sql_yacc.yy"
  1155. { Lex->type|= REFRESH_TABLES; ;
  1156.     break;}
  1157. case 742:
  1158. #line 2262 "sql_yacc.yy"
  1159. { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; ;
  1160.     break;}
  1161. case 743:
  1162. #line 2263 "sql_yacc.yy"
  1163. { Lex->type|= REFRESH_HOSTS; ;
  1164.     break;}
  1165. case 744:
  1166. #line 2264 "sql_yacc.yy"
  1167. { Lex->type|= REFRESH_GRANT; ;
  1168.     break;}
  1169. case 745:
  1170. #line 2265 "sql_yacc.yy"
  1171. { Lex->type|= REFRESH_LOG; ;
  1172.     break;}
  1173. case 746:
  1174. #line 2266 "sql_yacc.yy"
  1175. { Lex->type|= REFRESH_STATUS; ;
  1176.     break;}
  1177. case 747:
  1178. #line 2267 "sql_yacc.yy"
  1179. { Lex->type|= REFRESH_SLAVE; ;
  1180.     break;}
  1181. case 748:
  1182. #line 2268 "sql_yacc.yy"
  1183. { Lex->type|= REFRESH_MASTER; ;
  1184.     break;}
  1185. case 749:
  1186. #line 2271 "sql_yacc.yy"
  1187. {;
  1188.     break;}
  1189. case 750:
  1190. #line 2272 "sql_yacc.yy"
  1191. {;
  1192.     break;}
  1193. case 751:
  1194. #line 2275 "sql_yacc.yy"
  1195. {Lex->sql_command= SQLCOM_RESET; Lex->type=0; ;
  1196.     break;}
  1197. case 755:
  1198. #line 2282 "sql_yacc.yy"
  1199. { Lex->type|= REFRESH_SLAVE; ;
  1200.     break;}
  1201. case 756:
  1202. #line 2283 "sql_yacc.yy"
  1203. { Lex->type|= REFRESH_MASTER; ;
  1204.     break;}
  1205. case 757:
  1206. #line 2286 "sql_yacc.yy"
  1207. { Lex->sql_command = SQLCOM_PURGE; Lex->type=0;;
  1208.     break;}
  1209. case 758:
  1210. #line 2288 "sql_yacc.yy"
  1211. {
  1212.    Lex->to_log = yyvsp[0].lex_str.str;
  1213.          ;
  1214.     break;}
  1215. case 759:
  1216. #line 2296 "sql_yacc.yy"
  1217. {
  1218.   if (yyvsp[0].item->fix_fields(current_thd,0))
  1219.      { 
  1220. send_error(&current_thd->net, ER_SET_CONSTANTS_ONLY);
  1221.         YYABORT;
  1222.      }
  1223.           Lex->sql_command=SQLCOM_KILL;
  1224.   Lex->thread_id= (ulong) yyvsp[0].item->val_int();
  1225. ;
  1226.     break;}
  1227. case 760:
  1228. #line 2309 "sql_yacc.yy"
  1229. { Lex->sql_command=SQLCOM_CHANGE_DB; Lex->db= yyvsp[0].lex_str.str; ;
  1230.     break;}
  1231. case 761:
  1232. #line 2314 "sql_yacc.yy"
  1233. {
  1234.   Lex->sql_command= SQLCOM_LOAD;
  1235.   Lex->local_file= yyvsp[-2].num;
  1236.   if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,0)))
  1237.     YYABORT;
  1238.   Lex->field_list.empty();
  1239. ;
  1240.     break;}
  1241. case 762:
  1242. #line 2323 "sql_yacc.yy"
  1243. {
  1244.   if (!add_table_to_list(yyvsp[-4].table,NULL,1))
  1245.     YYABORT;
  1246. ;
  1247.     break;}
  1248. case 763:
  1249. #line 2329 "sql_yacc.yy"
  1250. {
  1251.   Lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
  1252.   if (!add_table_to_list(yyvsp[-2].table,NULL,1))
  1253.     YYABORT;
  1254.         ;
  1255.     break;}
  1256. case 764:
  1257. #line 2337 "sql_yacc.yy"
  1258. { yyval.num=0;;
  1259.     break;}
  1260. case 765:
  1261. #line 2338 "sql_yacc.yy"
  1262. { yyval.num=1;;
  1263.     break;}
  1264. case 766:
  1265. #line 2341 "sql_yacc.yy"
  1266. { Lex->duplicates=DUP_ERROR; ;
  1267.     break;}
  1268. case 767:
  1269. #line 2342 "sql_yacc.yy"
  1270. { Lex->duplicates=DUP_REPLACE; ;
  1271.     break;}
  1272. case 768:
  1273. #line 2343 "sql_yacc.yy"
  1274. { Lex->duplicates=DUP_IGNORE; ;
  1275.     break;}
  1276. case 773:
  1277. #line 2354 "sql_yacc.yy"
  1278. { Lex->exchange->field_term= yyvsp[0].string;;
  1279.     break;}
  1280. case 774:
  1281. #line 2356 "sql_yacc.yy"
  1282. { Lex->exchange->enclosed= yyvsp[0].string; Lex->exchange->opt_enclosed=1;;
  1283.     break;}
  1284. case 775:
  1285. #line 2357 "sql_yacc.yy"
  1286. { Lex->exchange->enclosed= yyvsp[0].string;;
  1287.     break;}
  1288. case 776:
  1289. #line 2358 "sql_yacc.yy"
  1290. { Lex->exchange->escaped= yyvsp[0].string;;
  1291.     break;}
  1292. case 781:
  1293. #line 2369 "sql_yacc.yy"
  1294. { Lex->exchange->line_term= yyvsp[0].string;;
  1295.     break;}
  1296. case 782:
  1297. #line 2370 "sql_yacc.yy"
  1298. { Lex->exchange->line_start= yyvsp[0].string;;
  1299.     break;}
  1300. case 784:
  1301. #line 2375 "sql_yacc.yy"
  1302. { Lex->exchange->skip_lines=atol(yyvsp[-1].lex_str.str); ;
  1303.     break;}
  1304. case 785:
  1305. #line 2380 "sql_yacc.yy"
  1306. { yyval.item = new Item_string(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ;
  1307.     break;}
  1308. case 786:
  1309. #line 2382 "sql_yacc.yy"
  1310. { ((Item_string*) yyvsp[-1].item)->append(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ;
  1311.     break;}
  1312. case 787:
  1313. #line 2385 "sql_yacc.yy"
  1314. { yyval.string=  new String(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ;
  1315.     break;}
  1316. case 788:
  1317. #line 2387 "sql_yacc.yy"
  1318. {
  1319.     Item *tmp = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length);
  1320.     yyval.string= tmp ? tmp->val_str((String*) 0) : (String*) 0;
  1321.   ;
  1322.     break;}
  1323. case 789:
  1324. #line 2393 "sql_yacc.yy"
  1325. { yyval.item = yyvsp[0].item; ;
  1326.     break;}
  1327. case 790:
  1328. #line 2394 "sql_yacc.yy"
  1329. { yyval.item = new Item_int(yyvsp[0].lex_str.str, (longlong) atol(yyvsp[0].lex_str.str),yyvsp[0].lex_str.length); ;
  1330.     break;}
  1331. case 791:
  1332. #line 2395 "sql_yacc.yy"
  1333. { yyval.item = new Item_int(yyvsp[0].lex_str.str); ;
  1334.     break;}
  1335. case 792:
  1336. #line 2396 "sql_yacc.yy"
  1337. { yyval.item = new Item_real(yyvsp[0].lex_str.str, yyvsp[0].lex_str.length); ;
  1338.     break;}
  1339. case 793:
  1340. #line 2397 "sql_yacc.yy"
  1341. { yyval.item = new Item_float(yyvsp[0].lex_str.str, yyvsp[0].lex_str.length); ;
  1342.     break;}
  1343. case 794:
  1344. #line 2398 "sql_yacc.yy"
  1345. { yyval.item = new Item_null();
  1346.   Lex->next_state=STATE_OPERATOR_OR_IDENT;;
  1347.     break;}
  1348. case 795:
  1349. #line 2400 "sql_yacc.yy"
  1350. { yyval.item = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length);
  1351.     break;}
  1352. case 796:
  1353. #line 2401 "sql_yacc.yy"
  1354. { yyval.item = yyvsp[0].item; ;
  1355.     break;}
  1356. case 797:
  1357. #line 2402 "sql_yacc.yy"
  1358. { yyval.item = yyvsp[0].item; ;
  1359.     break;}
  1360. case 798:
  1361. #line 2403 "sql_yacc.yy"
  1362. { yyval.item = yyvsp[0].item; ;
  1363.     break;}
  1364. case 799:
  1365. #line 2410 "sql_yacc.yy"
  1366. { yyval.item=yyvsp[0].item; ;
  1367.     break;}
  1368. case 800:
  1369. #line 2411 "sql_yacc.yy"
  1370. { yyval.item=yyvsp[0].item; ;
  1371.     break;}
  1372. case 801:
  1373. #line 2414 "sql_yacc.yy"
  1374. { yyval.item = new Item_field(NullS,yyvsp[-2].lex_str.str,"*"); ;
  1375.     break;}
  1376. case 802:
  1377. #line 2416 "sql_yacc.yy"
  1378. { yyval.item = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,"*"); ;
  1379.     break;}
  1380. case 804:
  1381. #line 2422 "sql_yacc.yy"
  1382. { yyval.item=yyvsp[0].item; ;
  1383.     break;}
  1384. case 805:
  1385. #line 2426 "sql_yacc.yy"
  1386. { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,NullS,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,NullS,yyvsp[0].lex_str.str); ;
  1387.     break;}
  1388. case 806:
  1389. #line 2428 "sql_yacc.yy"
  1390. { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ;
  1391.     break;}
  1392. case 807:
  1393. #line 2430 "sql_yacc.yy"
  1394. { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ;
  1395.     break;}
  1396. case 808:
  1397. #line 2432 "sql_yacc.yy"
  1398. { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ;
  1399.     break;}
  1400. case 809:
  1401. #line 2436 "sql_yacc.yy"
  1402. { yyval.lex_str=yyvsp[0].lex_str;;
  1403.     break;}
  1404. case 810:
  1405. #line 2437 "sql_yacc.yy"
  1406. { yyval.lex_str=yyvsp[0].lex_str;;
  1407.     break;}
  1408. case 811:
  1409. #line 2438 "sql_yacc.yy"
  1410. { yyval.lex_str=yyvsp[0].lex_str;;
  1411.     break;}
  1412. case 812:
  1413. #line 2441 "sql_yacc.yy"
  1414. { yyval.table=new Table_ident(yyvsp[0].lex_str); ;
  1415.     break;}
  1416. case 813:
  1417. #line 2442 "sql_yacc.yy"
  1418. { yyval.table=new Table_ident(yyvsp[-2].lex_str,yyvsp[0].lex_str,0);;
  1419.     break;}
  1420. case 814:
  1421. #line 2443 "sql_yacc.yy"
  1422. { yyval.table=new Table_ident(yyvsp[0].lex_str);;
  1423.     break;}
  1424. case 815:
  1425. #line 2446 "sql_yacc.yy"
  1426. { yyval.lex_str=yyvsp[0].lex_str; ;
  1427.     break;}
  1428. case 816:
  1429. #line 2448 "sql_yacc.yy"
  1430. {
  1431.   yyval.lex_str.str=sql_strmake(yyvsp[0].symbol.str,yyvsp[0].symbol.length);
  1432.   yyval.lex_str.length=yyvsp[0].symbol.length;
  1433.   if (Lex->next_state != STATE_END)
  1434.     Lex->next_state=STATE_OPERATOR_OR_IDENT;
  1435. ;
  1436.     break;}
  1437. case 817:
  1438. #line 2456 "sql_yacc.yy"
  1439. { yyval.lex_str=yyvsp[0].lex_str;;
  1440.     break;}
  1441. case 818:
  1442. #line 2457 "sql_yacc.yy"
  1443. { yyval.lex_str=yyvsp[0].lex_str;;
  1444.     break;}
  1445. case 819:
  1446. #line 2458 "sql_yacc.yy"
  1447. { yyval.lex_str=yyvsp[0].lex_str;;
  1448.     break;}
  1449. case 820:
  1450. #line 2462 "sql_yacc.yy"
  1451. {
  1452.   if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user))))
  1453.     YYABORT;
  1454.   yyval.lex_user->user = yyvsp[0].lex_str; yyval.lex_user->host.str=NullS;
  1455.   ;
  1456.     break;}
  1457. case 821:
  1458. #line 2468 "sql_yacc.yy"
  1459. {
  1460.   if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user))))
  1461.       YYABORT;
  1462.     yyval.lex_user->user = yyvsp[-2].lex_str; yyval.lex_user->host=yyvsp[0].lex_str;
  1463.   ;
  1464.     break;}
  1465. case 822:
  1466. #line 2477 "sql_yacc.yy"
  1467. {;
  1468.     break;}
  1469. case 823:
  1470. #line 2478 "sql_yacc.yy"
  1471. {;
  1472.     break;}
  1473. case 824:
  1474. #line 2479 "sql_yacc.yy"
  1475. {;
  1476.     break;}
  1477. case 825:
  1478. #line 2480 "sql_yacc.yy"
  1479. {;
  1480.     break;}
  1481. case 826:
  1482. #line 2481 "sql_yacc.yy"
  1483. {;
  1484.     break;}
  1485. case 827:
  1486. #line 2482 "sql_yacc.yy"
  1487. {;
  1488.     break;}
  1489. case 828:
  1490. #line 2483 "sql_yacc.yy"
  1491. {;
  1492.     break;}
  1493. case 829:
  1494. #line 2484 "sql_yacc.yy"
  1495. {;
  1496.     break;}
  1497. case 830:
  1498. #line 2485 "sql_yacc.yy"
  1499. {;
  1500.     break;}
  1501. case 831:
  1502. #line 2486 "sql_yacc.yy"
  1503. {;
  1504.     break;}
  1505. case 832:
  1506. #line 2487 "sql_yacc.yy"
  1507. {;
  1508.     break;}
  1509. case 833:
  1510. #line 2488 "sql_yacc.yy"
  1511. {;
  1512.     break;}
  1513. case 834:
  1514. #line 2489 "sql_yacc.yy"
  1515. {;
  1516.     break;}
  1517. case 835:
  1518. #line 2490 "sql_yacc.yy"
  1519. {;
  1520.     break;}
  1521. case 836:
  1522. #line 2491 "sql_yacc.yy"
  1523. {;
  1524.     break;}
  1525. case 837:
  1526. #line 2492 "sql_yacc.yy"
  1527. {;
  1528.     break;}
  1529. case 838:
  1530. #line 2493 "sql_yacc.yy"
  1531. {;
  1532.     break;}
  1533. case 839:
  1534. #line 2494 "sql_yacc.yy"
  1535. {;
  1536.     break;}
  1537. case 840:
  1538. #line 2495 "sql_yacc.yy"
  1539. {;
  1540.     break;}
  1541. case 841:
  1542. #line 2496 "sql_yacc.yy"
  1543. {;
  1544.     break;}
  1545. case 842:
  1546. #line 2497 "sql_yacc.yy"
  1547. {;
  1548.     break;}
  1549. case 843:
  1550. #line 2498 "sql_yacc.yy"
  1551. {;
  1552.     break;}
  1553. case 844:
  1554. #line 2499 "sql_yacc.yy"
  1555. {;
  1556.     break;}
  1557. case 845:
  1558. #line 2500 "sql_yacc.yy"
  1559. {;
  1560.     break;}
  1561. case 846:
  1562. #line 2501 "sql_yacc.yy"
  1563. {;
  1564.     break;}
  1565. case 847:
  1566. #line 2502 "sql_yacc.yy"
  1567. {;
  1568.     break;}
  1569. case 848:
  1570. #line 2503 "sql_yacc.yy"
  1571. {;
  1572.     break;}
  1573. case 849:
  1574. #line 2504 "sql_yacc.yy"
  1575. {;
  1576.     break;}
  1577. case 850:
  1578. #line 2505 "sql_yacc.yy"
  1579. {;
  1580.     break;}
  1581. case 851:
  1582. #line 2506 "sql_yacc.yy"
  1583. {;
  1584.     break;}
  1585. case 852:
  1586. #line 2507 "sql_yacc.yy"
  1587. {;
  1588.     break;}
  1589. case 853:
  1590. #line 2508 "sql_yacc.yy"
  1591. {;
  1592.     break;}
  1593. case 854:
  1594. #line 2509 "sql_yacc.yy"
  1595. {;
  1596.     break;}
  1597. case 855:
  1598. #line 2510 "sql_yacc.yy"
  1599. {;
  1600.     break;}
  1601. case 856:
  1602. #line 2511 "sql_yacc.yy"
  1603. {;
  1604.     break;}
  1605. case 857:
  1606. #line 2512 "sql_yacc.yy"
  1607. {;
  1608.     break;}
  1609. case 858:
  1610. #line 2513 "sql_yacc.yy"
  1611. {;
  1612.     break;}
  1613. case 859:
  1614. #line 2514 "sql_yacc.yy"
  1615. {;
  1616.     break;}
  1617. case 860:
  1618. #line 2515 "sql_yacc.yy"
  1619. {;
  1620.     break;}
  1621. case 861:
  1622. #line 2516 "sql_yacc.yy"
  1623. {;
  1624.     break;}
  1625. case 862:
  1626. #line 2517 "sql_yacc.yy"
  1627. {;
  1628.     break;}
  1629. case 863:
  1630. #line 2518 "sql_yacc.yy"
  1631. {;
  1632.     break;}
  1633. case 864:
  1634. #line 2519 "sql_yacc.yy"
  1635. {;
  1636.     break;}
  1637. case 865:
  1638. #line 2520 "sql_yacc.yy"
  1639. {;
  1640.     break;}
  1641. case 866:
  1642. #line 2521 "sql_yacc.yy"
  1643. {;
  1644.     break;}
  1645. case 867:
  1646. #line 2522 "sql_yacc.yy"
  1647. {;
  1648.     break;}
  1649. case 868:
  1650. #line 2523 "sql_yacc.yy"
  1651. {;
  1652.     break;}
  1653. case 869:
  1654. #line 2524 "sql_yacc.yy"
  1655. {;
  1656.     break;}
  1657. case 870:
  1658. #line 2525 "sql_yacc.yy"
  1659. {;
  1660.     break;}
  1661. case 871:
  1662. #line 2526 "sql_yacc.yy"
  1663. {;
  1664.     break;}
  1665. case 872:
  1666. #line 2527 "sql_yacc.yy"
  1667. {;
  1668.     break;}
  1669. case 873:
  1670. #line 2528 "sql_yacc.yy"
  1671. {;
  1672.     break;}
  1673. case 874:
  1674. #line 2529 "sql_yacc.yy"
  1675. {;
  1676.     break;}
  1677. case 875:
  1678. #line 2530 "sql_yacc.yy"
  1679. {;
  1680.     break;}
  1681. case 876:
  1682. #line 2531 "sql_yacc.yy"
  1683. {;
  1684.     break;}
  1685. case 877:
  1686. #line 2532 "sql_yacc.yy"
  1687. {;
  1688.     break;}
  1689. case 878:
  1690. #line 2533 "sql_yacc.yy"
  1691. {;
  1692.     break;}
  1693. case 879:
  1694. #line 2534 "sql_yacc.yy"
  1695. {;
  1696.     break;}
  1697. case 880:
  1698. #line 2535 "sql_yacc.yy"
  1699. {;
  1700.     break;}
  1701. case 881:
  1702. #line 2536 "sql_yacc.yy"
  1703. {;
  1704.     break;}
  1705. case 882:
  1706. #line 2537 "sql_yacc.yy"
  1707. {;
  1708.     break;}
  1709. case 883:
  1710. #line 2538 "sql_yacc.yy"
  1711. {;
  1712.     break;}
  1713. case 884:
  1714. #line 2539 "sql_yacc.yy"
  1715. {;
  1716.     break;}
  1717. case 885:
  1718. #line 2540 "sql_yacc.yy"
  1719. {;
  1720.     break;}
  1721. case 886:
  1722. #line 2541 "sql_yacc.yy"
  1723. {;
  1724.     break;}
  1725. case 887:
  1726. #line 2542 "sql_yacc.yy"
  1727. {;
  1728.     break;}
  1729. case 888:
  1730. #line 2543 "sql_yacc.yy"
  1731. {;
  1732.     break;}
  1733. case 889:
  1734. #line 2544 "sql_yacc.yy"
  1735. {;
  1736.     break;}
  1737. case 890:
  1738. #line 2545 "sql_yacc.yy"
  1739. {;
  1740.     break;}
  1741. case 891:
  1742. #line 2546 "sql_yacc.yy"
  1743. {;
  1744.     break;}
  1745. case 892:
  1746. #line 2547 "sql_yacc.yy"
  1747. {;
  1748.     break;}
  1749. case 893:
  1750. #line 2548 "sql_yacc.yy"
  1751. {;
  1752.     break;}
  1753. case 894:
  1754. #line 2549 "sql_yacc.yy"
  1755. {;
  1756.     break;}
  1757. case 895:
  1758. #line 2550 "sql_yacc.yy"
  1759. {;
  1760.     break;}
  1761. case 896:
  1762. #line 2551 "sql_yacc.yy"
  1763. {;
  1764.     break;}
  1765. case 897:
  1766. #line 2552 "sql_yacc.yy"
  1767. {;
  1768.     break;}
  1769. case 898:
  1770. #line 2553 "sql_yacc.yy"
  1771. {;
  1772.     break;}
  1773. case 899:
  1774. #line 2554 "sql_yacc.yy"
  1775. {;
  1776.     break;}
  1777. case 900:
  1778. #line 2555 "sql_yacc.yy"
  1779. {;
  1780.     break;}
  1781. case 901:
  1782. #line 2556 "sql_yacc.yy"
  1783. {;
  1784.     break;}
  1785. case 902:
  1786. #line 2557 "sql_yacc.yy"
  1787. {;
  1788.     break;}
  1789. case 903:
  1790. #line 2558 "sql_yacc.yy"
  1791. {;
  1792.     break;}
  1793. case 904:
  1794. #line 2559 "sql_yacc.yy"
  1795. {;
  1796.     break;}
  1797. case 905:
  1798. #line 2560 "sql_yacc.yy"
  1799. {;
  1800.     break;}
  1801. case 906:
  1802. #line 2561 "sql_yacc.yy"
  1803. {;
  1804.     break;}
  1805. case 907:
  1806. #line 2562 "sql_yacc.yy"
  1807. {;
  1808.     break;}
  1809. case 908:
  1810. #line 2563 "sql_yacc.yy"
  1811. {;
  1812.     break;}
  1813. case 909:
  1814. #line 2564 "sql_yacc.yy"
  1815. {;
  1816.     break;}
  1817. case 910:
  1818. #line 2565 "sql_yacc.yy"
  1819. {;
  1820.     break;}
  1821. case 911:
  1822. #line 2566 "sql_yacc.yy"
  1823. {;
  1824.     break;}
  1825. case 912:
  1826. #line 2567 "sql_yacc.yy"
  1827. {;
  1828.     break;}
  1829. case 913:
  1830. #line 2568 "sql_yacc.yy"
  1831. {;
  1832.     break;}
  1833. case 914:
  1834. #line 2569 "sql_yacc.yy"
  1835. {;
  1836.     break;}
  1837. case 915:
  1838. #line 2570 "sql_yacc.yy"
  1839. {;
  1840.     break;}
  1841. case 916:
  1842. #line 2571 "sql_yacc.yy"
  1843. {;
  1844.     break;}
  1845. case 917:
  1846. #line 2572 "sql_yacc.yy"
  1847. {;
  1848.     break;}
  1849. case 918:
  1850. #line 2573 "sql_yacc.yy"
  1851. {;
  1852.     break;}
  1853. case 919:
  1854. #line 2574 "sql_yacc.yy"
  1855. {;
  1856.     break;}
  1857. case 920:
  1858. #line 2575 "sql_yacc.yy"
  1859. {;
  1860.     break;}
  1861. case 921:
  1862. #line 2581 "sql_yacc.yy"
  1863. {
  1864.   Lex->sql_command= SQLCOM_SET_OPTION;
  1865.   Lex->options=current_thd->options;
  1866.   Lex->select_limit=current_thd->default_select_limit;
  1867. ;
  1868.     break;}
  1869. case 923:
  1870. #line 2589 "sql_yacc.yy"
  1871. {;
  1872.     break;}
  1873. case 924:
  1874. #line 2590 "sql_yacc.yy"
  1875. {;
  1876.     break;}
  1877. case 927:
  1878. #line 2598 "sql_yacc.yy"
  1879. {
  1880.   if (atoi(yyvsp[0].lex_str.str) == 0)
  1881.     Lex->options&= ~yyvsp[-2].num;
  1882.   else
  1883.     Lex->options|= yyvsp[-2].num;
  1884. ;
  1885.     break;}
  1886. case 928:
  1887. #line 2605 "sql_yacc.yy"
  1888. {
  1889.   if (atoi(yyvsp[0].lex_str.str) != 0) /* Test NOT AUTOCOMMIT */
  1890.     Lex->options&= ~(OPTION_NOT_AUTO_COMMIT);
  1891.   else
  1892.     Lex->options|= OPTION_NOT_AUTO_COMMIT;
  1893. ;
  1894.     break;}
  1895. case 929:
  1896. #line 2612 "sql_yacc.yy"
  1897. {
  1898.   Lex->select_limit= yyvsp[0].ulong_num;
  1899. ;
  1900.     break;}
  1901. case 930:
  1902. #line 2616 "sql_yacc.yy"
  1903. {
  1904.   Lex->select_limit= HA_POS_ERROR;
  1905. ;
  1906.     break;}
  1907. case 931:
  1908. #line 2620 "sql_yacc.yy"
  1909. {
  1910.   current_thd->max_join_size= yyvsp[0].ulong_num;
  1911.   Lex->options&= ~OPTION_BIG_SELECTS;
  1912. ;
  1913.     break;}
  1914. case 932:
  1915. #line 2625 "sql_yacc.yy"
  1916. {
  1917.   current_thd->max_join_size= HA_POS_ERROR;
  1918. ;
  1919.     break;}
  1920. case 933:
  1921. #line 2629 "sql_yacc.yy"
  1922. {
  1923.   current_thd->set_time((time_t) yyvsp[0].ulong_num);
  1924. ;
  1925.     break;}
  1926. case 934:
  1927. #line 2633 "sql_yacc.yy"
  1928. {
  1929.   current_thd->user_time=0;
  1930. ;
  1931.     break;}
  1932. case 935:
  1933. #line 2637 "sql_yacc.yy"
  1934. {
  1935.   current_thd->insert_id(yyvsp[0].ulonglong_num);
  1936. ;
  1937.     break;}
  1938. case 936:
  1939. #line 2641 "sql_yacc.yy"
  1940. {
  1941.   current_thd->next_insert_id=yyvsp[0].ulonglong_num;
  1942. ;
  1943.     break;}
  1944. case 937:
  1945. #line 2645 "sql_yacc.yy"
  1946. {
  1947.   CONVERT *tmp;
  1948.   if (!(tmp=get_convert_set(yyvsp[0].lex_str.str)))
  1949.   {
  1950.     net_printf(&current_thd->net,ER_UNKNOWN_CHARACTER_SET,yyvsp[0].lex_str);
  1951.     YYABORT;
  1952.   }
  1953.   current_thd->convert_set=tmp;
  1954. ;
  1955.     break;}
  1956. case 938:
  1957. #line 2655 "sql_yacc.yy"
  1958. {
  1959.   current_thd->convert_set=0;
  1960. ;
  1961.     break;}
  1962. case 939:
  1963. #line 2659 "sql_yacc.yy"
  1964. {
  1965.    if (change_password(current_thd,current_thd->host,
  1966.        current_thd->priv_user,yyvsp[0].simple_string))
  1967.      YYABORT;
  1968.  ;
  1969.     break;}
  1970. case 940:
  1971. #line 2665 "sql_yacc.yy"
  1972. {
  1973.    if (change_password(current_thd,
  1974.        yyvsp[-2].lex_user->host.str ? yyvsp[-2].lex_user->host.str : current_thd->host,
  1975.        yyvsp[-2].lex_user->user.str,yyvsp[0].simple_string))
  1976.      YYABORT;
  1977.  ;
  1978.     break;}
  1979. case 941:
  1980. #line 2672 "sql_yacc.yy"
  1981. {
  1982.      Item_func_set_user_var *item = new Item_func_set_user_var(yyvsp[-2].lex_str,yyvsp[0].item);
  1983.      if (item->fix_fields(current_thd,0) || item->update())
  1984.      { 
  1985. send_error(&current_thd->net, ER_SET_CONSTANTS_ONLY);
  1986.         YYABORT;
  1987.      }
  1988.    ;
  1989.     break;}
  1990. case 942:
  1991. #line 2681 "sql_yacc.yy"
  1992. {
  1993.     pthread_mutex_lock(&LOCK_slave);
  1994.     if(slave_running)
  1995.       send_error(&current_thd->net, ER_SLAVE_MUST_STOP);
  1996.     else
  1997.       slave_skip_counter = yyvsp[0].ulong_num;
  1998.     pthread_mutex_unlock(&LOCK_slave);
  1999.           ;
  2000.     break;}
  2001. case 943:
  2002. #line 2691 "sql_yacc.yy"
  2003. { yyval.simple_string=yyvsp[0].lex_str.str;;
  2004.     break;}
  2005. case 944:
  2006. #line 2693 "sql_yacc.yy"
  2007. {
  2008.     if (!yyvsp[-1].lex_str.length)
  2009.       yyval.simple_string=yyvsp[-1].lex_str.str;
  2010.     else
  2011.     {
  2012.       char *buff=(char*) sql_alloc(HASH_PASSWORD_LENGTH+1);
  2013.       make_scrambled_password(buff,yyvsp[-1].lex_str.str);
  2014.       yyval.simple_string=buff;
  2015.     }
  2016.   ;
  2017.     break;}
  2018. case 945:
  2019. #line 2705 "sql_yacc.yy"
  2020. { yyval.num= OPTION_BIG_TABLES; ;
  2021.     break;}
  2022. case 946:
  2023. #line 2706 "sql_yacc.yy"
  2024. { yyval.num= OPTION_BIG_SELECTS; ;
  2025.     break;}
  2026. case 947:
  2027. #line 2707 "sql_yacc.yy"
  2028. { yyval.num= OPTION_LOG_OFF; ;
  2029.     break;}
  2030. case 948:
  2031. #line 2709 "sql_yacc.yy"
  2032. {
  2033.      yyval.num= (opt_sql_bin_update)? 
  2034.                         OPTION_UPDATE_LOG|OPTION_BIN_LOG: 
  2035.                         OPTION_UPDATE_LOG ;
  2036.    ;
  2037.     break;}
  2038. case 949:
  2039. #line 2715 "sql_yacc.yy"
  2040. {
  2041.      yyval.num= (opt_sql_bin_update)? 
  2042.                         OPTION_UPDATE_LOG|OPTION_BIN_LOG: 
  2043.                         OPTION_BIN_LOG ;
  2044.    ;
  2045.     break;}
  2046. case 950:
  2047. #line 2720 "sql_yacc.yy"
  2048. { yyval.num= OPTION_WARNINGS; ;
  2049.     break;}
  2050. case 951:
  2051. #line 2721 "sql_yacc.yy"
  2052. { yyval.num= OPTION_LOW_PRIORITY_UPDATES; ;
  2053.     break;}
  2054. case 952:
  2055. #line 2722 "sql_yacc.yy"
  2056. { yyval.num= OPTION_AUTO_IS_NULL; ;
  2057.     break;}
  2058. case 953:
  2059. #line 2723 "sql_yacc.yy"
  2060. { yyval.num= OPTION_SAFE_UPDATES; ;
  2061.     break;}
  2062. case 954:
  2063. #line 2724 "sql_yacc.yy"
  2064. { yyval.num= OPTION_BUFFER_RESULT; ;
  2065.     break;}
  2066. case 955:
  2067. #line 2725 "sql_yacc.yy"
  2068. { yyval.num= OPTION_QUOTE_SHOW_CREATE; ;
  2069.     break;}
  2070. case 956:
  2071. #line 2731 "sql_yacc.yy"
  2072. {
  2073.   Lex->sql_command=SQLCOM_LOCK_TABLES;
  2074. ;
  2075.     break;}
  2076. case 962:
  2077. #line 2746 "sql_yacc.yy"
  2078. { if (!add_table_to_list(yyvsp[-2].table,yyvsp[-1].lex_str_ptr,0,(thr_lock_type) yyvsp[0].num)) YYABORT; ;
  2079.     break;}
  2080. case 963:
  2081. #line 2749 "sql_yacc.yy"
  2082. { yyval.num=TL_READ_NO_INSERT; ;
  2083.     break;}
  2084. case 964:
  2085. #line 2750 "sql_yacc.yy"
  2086. { yyval.num=current_thd->update_lock_default; ;
  2087.     break;}
  2088. case 965:
  2089. #line 2751 "sql_yacc.yy"
  2090. { yyval.num=TL_WRITE_LOW_PRIORITY; ;
  2091.     break;}
  2092. case 966:
  2093. #line 2752 "sql_yacc.yy"
  2094. { yyval.num= TL_READ; ;
  2095.     break;}
  2096. case 967:
  2097. #line 2755 "sql_yacc.yy"
  2098. { Lex->sql_command=SQLCOM_UNLOCK_TABLES; ;
  2099.     break;}
  2100. case 968:
  2101. #line 2762 "sql_yacc.yy"
  2102. {
  2103.   Lex->sql_command = SQLCOM_REVOKE;
  2104.   Lex->users_list.empty();
  2105.   Lex->columns.empty();
  2106.   Lex->grant= Lex->grant_tot_col=0;
  2107.   Lex->db=0;
  2108. ;
  2109.     break;}
  2110. case 970:
  2111. #line 2773 "sql_yacc.yy"
  2112. {
  2113.   Lex->sql_command = SQLCOM_GRANT;
  2114.   Lex->users_list.empty();
  2115.   Lex->columns.empty();
  2116.   Lex->grant= Lex->grant_tot_col=0;
  2117.   Lex->db=0;
  2118. ;
  2119.     break;}
  2120. case 972:
  2121. #line 2784 "sql_yacc.yy"
  2122. {;
  2123.     break;}
  2124. case 973:
  2125. #line 2785 "sql_yacc.yy"
  2126. { Lex->grant = UINT_MAX;;
  2127.     break;}
  2128. case 974:
  2129. #line 2786 "sql_yacc.yy"
  2130. { Lex->grant = UINT_MAX;;
  2131.     break;}
  2132. case 977:
  2133. #line 2794 "sql_yacc.yy"
  2134. { Lex->which_columns = SELECT_ACL;;
  2135.     break;}
  2136. case 979:
  2137. #line 2797 "sql_yacc.yy"
  2138. { Lex->which_columns = INSERT_ACL; ;
  2139.     break;}
  2140. case 981:
  2141. #line 2800 "sql_yacc.yy"
  2142. { Lex->which_columns = UPDATE_ACL; ;
  2143.     break;}
  2144. case 983:
  2145. #line 2802 "sql_yacc.yy"
  2146. { Lex->grant |= DELETE_ACL;;
  2147.     break;}
  2148. case 984:
  2149. #line 2803 "sql_yacc.yy"
  2150. { Lex->which_columns = REFERENCES_ACL;;
  2151.     break;}
  2152. case 986:
  2153. #line 2804 "sql_yacc.yy"
  2154. {;
  2155.     break;}
  2156. case 987:
  2157. #line 2805 "sql_yacc.yy"
  2158. { Lex->grant |= INDEX_ACL;;
  2159.     break;}
  2160. case 988:
  2161. #line 2806 "sql_yacc.yy"
  2162. { Lex->grant |= ALTER_ACL;;
  2163.     break;}
  2164. case 989:
  2165. #line 2807 "sql_yacc.yy"
  2166. { Lex->grant |= CREATE_ACL;;
  2167.     break;}
  2168. case 990:
  2169. #line 2808 "sql_yacc.yy"
  2170. { Lex->grant |= DROP_ACL;;
  2171.     break;}
  2172. case 991:
  2173. #line 2809 "sql_yacc.yy"
  2174. { Lex->grant |= RELOAD_ACL;;
  2175.     break;}
  2176. case 992:
  2177. #line 2810 "sql_yacc.yy"
  2178. { Lex->grant |= SHUTDOWN_ACL;;
  2179.     break;}
  2180. case 993:
  2181. #line 2811 "sql_yacc.yy"
  2182. { Lex->grant |= PROCESS_ACL;;
  2183.     break;}
  2184. case 994:
  2185. #line 2812 "sql_yacc.yy"
  2186. { Lex->grant |= FILE_ACL;;
  2187.     break;}
  2188. case 995:
  2189. #line 2813 "sql_yacc.yy"
  2190. { Lex->grant |= GRANT_ACL;;
  2191.     break;}
  2192. case 996:
  2193. #line 2817 "sql_yacc.yy"
  2194. {
  2195.     Lex->db=current_thd->db;
  2196.     if (Lex->grant == UINT_MAX)
  2197.       Lex->grant = DB_ACLS & ~GRANT_ACL;
  2198.     else if (Lex->columns.elements)
  2199.     {
  2200.        net_printf(&current_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE);
  2201.        YYABORT;
  2202.      }
  2203.   ;
  2204.     break;}
  2205. case 997:
  2206. #line 2828 "sql_yacc.yy"
  2207. {
  2208.     Lex->db = yyvsp[-2].lex_str.str;
  2209.     if (Lex->grant == UINT_MAX)
  2210.       Lex->grant = DB_ACLS & ~GRANT_ACL;
  2211.     else if (Lex->columns.elements)
  2212.     {
  2213.       net_printf(&current_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE);
  2214.       YYABORT;
  2215.     }
  2216.   ;
  2217.     break;}
  2218. case 998:
  2219. #line 2839 "sql_yacc.yy"
  2220. {
  2221.     Lex->db = NULL;
  2222.     if (Lex->grant == UINT_MAX)
  2223.       Lex->grant = GLOBAL_ACLS & ~GRANT_ACL;
  2224.     else if (Lex->columns.elements)
  2225.     {
  2226.       net_printf(&current_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE);
  2227.       YYABORT;
  2228.     }
  2229.   ;
  2230.     break;}
  2231. case 999:
  2232. #line 2850 "sql_yacc.yy"
  2233. {
  2234.     if (!add_table_to_list(yyvsp[0].table,NULL,0))
  2235.       YYABORT;
  2236.     if (Lex->grant == UINT_MAX)
  2237.       Lex->grant =  TABLE_ACLS & ~GRANT_ACL;
  2238.   ;
  2239.     break;}
  2240. case 1000:
  2241. #line 2859 "sql_yacc.yy"
  2242. { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;;
  2243.     break;}
  2244. case 1001:
  2245. #line 2860 "sql_yacc.yy"
  2246. { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;;
  2247.     break;}
  2248. case 1002:
  2249. #line 2865 "sql_yacc.yy"
  2250. {
  2251.    yyval.lex_user=yyvsp[-3].lex_user; yyvsp[-3].lex_user->password=yyvsp[0].lex_str;
  2252.    if (yyvsp[0].lex_str.length)
  2253.    {
  2254.      char *buff=(char*) sql_alloc(HASH_PASSWORD_LENGTH+1);
  2255.      if (buff)
  2256.      {
  2257.        make_scrambled_password(buff,yyvsp[0].lex_str.str);
  2258.        yyvsp[-3].lex_user->password.str=buff;
  2259.        yyvsp[-3].lex_user->password.length=HASH_PASSWORD_LENGTH;
  2260.      }
  2261.   }
  2262. ;
  2263.     break;}
  2264. case 1003:
  2265. #line 2879 "sql_yacc.yy"
  2266. { yyval.lex_user=yyvsp[-4].lex_user; yyvsp[-4].lex_user->password=yyvsp[0].lex_str ; ;
  2267.     break;}
  2268. case 1004:
  2269. #line 2881 "sql_yacc.yy"
  2270. { yyval.lex_user=yyvsp[0].lex_user; yyvsp[0].lex_user->password.str=NullS; ;
  2271.     break;}
  2272. case 1005:
  2273. #line 2885 "sql_yacc.yy"
  2274. { Lex->grant |= Lex->which_columns; ;
  2275.     break;}
  2276. case 1009:
  2277. #line 2894 "sql_yacc.yy"
  2278. {
  2279.   String *new_str = new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length);
  2280.   List_iterator <LEX_COLUMN> iter(Lex->columns);
  2281.   class LEX_COLUMN *point;
  2282.   while ((point=iter++))
  2283.   {
  2284.     if (!my_strcasecmp(point->column.ptr(),new_str->ptr()))
  2285. break;
  2286.   }
  2287.   Lex->grant_tot_col|= Lex->which_columns;
  2288.   if (point)
  2289.     point->rights |= Lex->which_columns;
  2290.   else
  2291.     Lex->columns.push_back(new LEX_COLUMN (*new_str,Lex->which_columns));
  2292. ;
  2293.     break;}
  2294. case 1010:
  2295. #line 2911 "sql_yacc.yy"
  2296. {;
  2297.     break;}
  2298. case 1011:
  2299. #line 2912 "sql_yacc.yy"
  2300. { Lex->grant |= GRANT_ACL;;
  2301.     break;}
  2302. case 1012:
  2303. #line 2915 "sql_yacc.yy"
  2304. { Lex->sql_command = SQLCOM_BEGIN;;
  2305.     break;}
  2306. case 1014:
  2307. #line 2918 "sql_yacc.yy"
  2308. {;
  2309.     break;}
  2310. case 1015:
  2311. #line 2919 "sql_yacc.yy"
  2312. {;
  2313.     break;}
  2314. case 1016:
  2315. #line 2922 "sql_yacc.yy"
  2316. { Lex->sql_command = SQLCOM_COMMIT;;
  2317.     break;}
  2318. case 1017:
  2319. #line 2925 "sql_yacc.yy"
  2320. { Lex->sql_command = SQLCOM_ROLLBACK;;
  2321.     break;}
  2322. }
  2323.    /* the action file gets copied in in place of this dollarsign */
  2324. #line 543 "/usr/lib/bison.simple"
  2325.   yyvsp -= yylen;
  2326.   yyssp -= yylen;
  2327. #ifdef YYLSP_NEEDED
  2328.   yylsp -= yylen;
  2329. #endif
  2330. #if YYDEBUG != 0
  2331.   if (yydebug)
  2332.     {
  2333.       short *ssp1 = yyss - 1;
  2334.       fprintf (stderr, "state stack now");
  2335.       while (ssp1 != yyssp)
  2336. fprintf (stderr, " %d", *++ssp1);
  2337.       fprintf (stderr, "n");
  2338.     }
  2339. #endif
  2340.   *++yyvsp = yyval;
  2341. #ifdef YYLSP_NEEDED
  2342.   yylsp++;
  2343.   if (yylen == 0)
  2344.     {
  2345.       yylsp->first_line = yylloc.first_line;
  2346.       yylsp->first_column = yylloc.first_column;
  2347.       yylsp->last_line = (yylsp-1)->last_line;
  2348.       yylsp->last_column = (yylsp-1)->last_column;
  2349.       yylsp->text = 0;
  2350.     }
  2351.   else
  2352.     {
  2353.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  2354.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  2355.     }
  2356. #endif
  2357.   /* Now "shift" the result of the reduction.
  2358.      Determine what state that goes to,
  2359.      based on the state we popped back to
  2360.      and the rule number reduced by.  */
  2361.   yyn = yyr1[yyn];
  2362.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  2363.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  2364.     yystate = yytable[yystate];
  2365.   else
  2366.     yystate = yydefgoto[yyn - YYNTBASE];
  2367.   goto yynewstate;
  2368. yyerrlab:   /* here on detecting error */
  2369.   if (! yyerrstatus)
  2370.     /* If not already recovering from an error, report this error.  */
  2371.     {
  2372.       ++yynerrs;
  2373. #ifdef YYERROR_VERBOSE
  2374.       yyn = yypact[yystate];
  2375.       if (yyn > YYFLAG && yyn < YYLAST)
  2376. {
  2377.   int size = 0;
  2378.   char *msg;
  2379.   int x, count;
  2380.   count = 0;
  2381.   /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  2382.   for (x = (yyn < 0 ? -yyn : 0);
  2383.        x < (sizeof(yytname) / sizeof(char *)); x++)
  2384.     if (yycheck[x + yyn] == x)
  2385.       size += strlen(yytname[x]) + 15, count++;
  2386.   msg = (char *) malloc(size + 15);
  2387.   if (msg != 0)
  2388.     {
  2389.       strcpy(msg, "parse error");
  2390.       if (count < 5)
  2391. {
  2392.   count = 0;
  2393.   for (x = (yyn < 0 ? -yyn : 0);
  2394.        x < (sizeof(yytname) / sizeof(char *)); x++)
  2395.     if (yycheck[x + yyn] == x)
  2396.       {
  2397. strcat(msg, count == 0 ? ", expecting `" : " or `");
  2398. strcat(msg, yytname[x]);
  2399. strcat(msg, "'");
  2400. count++;
  2401.       }
  2402. }
  2403.       yyerror(msg);
  2404.       free(msg);
  2405.     }
  2406.   else
  2407.     yyerror ("parse error; also virtual memory exceeded");
  2408. }
  2409.       else
  2410. #endif /* YYERROR_VERBOSE */
  2411. yyerror("parse error");
  2412.     }
  2413.   goto yyerrlab1;
  2414. yyerrlab1:   /* here on error raised explicitly by an action */
  2415.   if (yyerrstatus == 3)
  2416.     {
  2417.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  2418.       /* return failure if at end of input */
  2419.       if (yychar == YYEOF)
  2420. YYABORT;
  2421. #if YYDEBUG != 0
  2422.       if (yydebug)
  2423. fprintf(stderr, "Discarding token %d (%s).n", yychar, yytname[yychar1]);
  2424. #endif
  2425.       yychar = YYEMPTY;
  2426.     }
  2427.   /* Else will try to reuse lookahead token
  2428.      after shifting the error token.  */
  2429.   yyerrstatus = 3; /* Each real token shifted decrements this */
  2430.   goto yyerrhandle;
  2431. yyerrdefault:  /* current state does not do anything special for the error token. */
  2432. #if 0
  2433.   /* This is wrong; only states that explicitly want error tokens
  2434.      should shift them.  */
  2435.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  2436.   if (yyn) goto yydefault;
  2437. #endif
  2438. yyerrpop:   /* pop the current state because it cannot handle the error token */
  2439.   if (yyssp == yyss) YYABORT;
  2440.   yyvsp--;
  2441.   yystate = *--yyssp;
  2442. #ifdef YYLSP_NEEDED
  2443.   yylsp--;
  2444. #endif
  2445. #if YYDEBUG != 0
  2446.   if (yydebug)
  2447.     {
  2448.       short *ssp1 = yyss - 1;
  2449.       fprintf (stderr, "Error: state stack now");
  2450.       while (ssp1 != yyssp)
  2451. fprintf (stderr, " %d", *++ssp1);
  2452.       fprintf (stderr, "n");
  2453.     }
  2454. #endif
  2455. yyerrhandle:
  2456.   yyn = yypact[yystate];
  2457.   if (yyn == YYFLAG)
  2458.     goto yyerrdefault;
  2459.   yyn += YYTERROR;
  2460.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  2461.     goto yyerrdefault;
  2462.   yyn = yytable[yyn];
  2463.   if (yyn < 0)
  2464.     {
  2465.       if (yyn == YYFLAG)
  2466. goto yyerrpop;
  2467.       yyn = -yyn;
  2468.       goto yyreduce;
  2469.     }
  2470.   else if (yyn == 0)
  2471.     goto yyerrpop;
  2472.   if (yyn == YYFINAL)
  2473.     YYACCEPT;
  2474. #if YYDEBUG != 0
  2475.   if (yydebug)
  2476.     fprintf(stderr, "Shifting error token, ");
  2477. #endif
  2478.   *++yyvsp = yylval;
  2479. #ifdef YYLSP_NEEDED
  2480.   *++yylsp = yylloc;
  2481. #endif
  2482.   yystate = yyn;
  2483.   goto yynewstate;
  2484.  yyacceptlab:
  2485.   /* YYACCEPT comes here.  */
  2486.   if (yyfree_stacks)
  2487.     {
  2488.       free (yyss);
  2489.       free (yyvs);
  2490. #ifdef YYLSP_NEEDED
  2491.       free (yyls);
  2492. #endif
  2493.     }
  2494.   return 0;
  2495.  yyabortlab:
  2496.   /* YYABORT comes here.  */
  2497.   if (yyfree_stacks)
  2498.     {
  2499.       free (yyss);
  2500.       free (yyvs);
  2501. #ifdef YYLSP_NEEDED
  2502.       free (yyls);
  2503. #endif
  2504.     }
  2505.   return 1;
  2506. }
  2507. #line 2926 "sql_yacc.yy"