make use of array_init()

fixes segfault on ORDER BY
This commit is contained in:
Antony Dovgal
2008-08-29 10:31:58 +00:00
parent 16ddd2863a
commit facec964a5
2 changed files with 7 additions and 7 deletions

View File

@@ -2372,19 +2372,19 @@ static void yy_reduce(
break;
case 152:
#line 619 "pdo_user_sql_parser.lemon"
{ MAKE_STD_ZVAL(yygotominor.yy252); add_assoc_stringl(yygotominor.yy252, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(yygotominor.yy252, "by", yymsp[-1].minor.yy252); yy_destructor(97,&yymsp[0].minor);
{ MAKE_STD_ZVAL(yygotominor.yy252); array_init(yygotominor.yy252); add_assoc_stringl(yygotominor.yy252, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(yygotominor.yy252, "by", yymsp[-1].minor.yy252); yy_destructor(97,&yymsp[0].minor);
}
#line 2379 "pdo_user_sql_parser.c"
break;
case 153:
#line 620 "pdo_user_sql_parser.lemon"
{ MAKE_STD_ZVAL(yygotominor.yy252); add_assoc_stringl(yygotominor.yy252, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(yygotominor.yy252, "by", yymsp[-1].minor.yy252); yy_destructor(98,&yymsp[0].minor);
{ MAKE_STD_ZVAL(yygotominor.yy252); array_init(yygotominor.yy252); add_assoc_stringl(yygotominor.yy252, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(yygotominor.yy252, "by", yymsp[-1].minor.yy252); yy_destructor(98,&yymsp[0].minor);
}
#line 2385 "pdo_user_sql_parser.c"
break;
case 154:
#line 621 "pdo_user_sql_parser.lemon"
{ MAKE_STD_ZVAL(yygotominor.yy252); add_assoc_null(yygotominor.yy252, "direction"); add_assoc_zval(yygotominor.yy252, "by", yymsp[0].minor.yy252); }
{ MAKE_STD_ZVAL(yygotominor.yy252); array_init(yygotominor.yy252); add_assoc_null(yygotominor.yy252, "direction"); add_assoc_zval(yygotominor.yy252, "by", yymsp[0].minor.yy252); }
#line 2390 "pdo_user_sql_parser.c"
break;
};

View File

@@ -513,7 +513,7 @@ TODO: Make this work, there's a ornery reduce conflict going on somewhere...
tableexpr(R) ::= tableexprlist(L) COMMA tableexpr(T). { add_next_index_zval(L, T); R = L; }
tableexprlist(R) ::= tableexprlist(L) COMMA tableexpr(T). { add_next_index_zval(L, T); R = L; }
tableexprlist(R) ::= tableexpr(T). { MAKE_STD_ZVAL(R); add_assoc_stringl(R, "type", "table-list", sizeof("table-list") - 1, 1); add_next_index_zval(R, T); }
tableexprlist(R) ::= tableexpr(T). { MAKE_STD_ZVAL(R); array_init(R); add_assoc_stringl(R, "type", "table-list", sizeof("table-list") - 1, 1); add_next_index_zval(R, T); }
*/
%destructor joinclause { zval_ptr_dtor(&$$); }
@@ -616,7 +616,7 @@ orderlist(R) ::= orderlist(L) COMMA orderelement(E). { add_next_index_zval(L, E)
orderlist(R) ::= orderelement(E). { MAKE_STD_ZVAL(R); array_init(R); add_next_index_zval(R, E); }
%destructor orderelement { zval_ptr_dtor(&$$); }
orderelement(R) ::= expr(E) ASC. { MAKE_STD_ZVAL(R); add_assoc_stringl(R, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(R, "by", E); }
orderelement(R) ::= expr(E) DESC. { MAKE_STD_ZVAL(R); add_assoc_stringl(R, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(R, "by", E); }
orderelement(R) ::= expr(E). { MAKE_STD_ZVAL(R); add_assoc_null(R, "direction"); add_assoc_zval(R, "by", E); }
orderelement(R) ::= expr(E) ASC. { MAKE_STD_ZVAL(R); array_init(R); add_assoc_stringl(R, "direction", "asc", sizeof("asc") - 1, 1); add_assoc_zval(R, "by", E); }
orderelement(R) ::= expr(E) DESC. { MAKE_STD_ZVAL(R); array_init(R); add_assoc_stringl(R, "direction", "desc", sizeof("desc") - 1, 1); add_assoc_zval(R, "by", E); }
orderelement(R) ::= expr(E). { MAKE_STD_ZVAL(R); array_init(R); add_assoc_null(R, "direction"); add_assoc_zval(R, "by", E); }