mirror of
https://github.com/php/pecl-database-pdo_user.git
synced 2026-03-23 22:42:10 +01:00
make use of array_init()
fixes segfault on ORDER BY
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user