Some ruleutils.c code added by this patch is not covered by tests:
5246 : /* Add the LIMIT clause if given */
5247 1115 : if (query->limitOffset != NULL)
5248 : {
5249 0 : appendContextKeyword(context, " OFFSET ",
5250 : -PRETTYINDENT_STD, PRETTYINDENT_STD, 0);
5251 0 : get_rule_expr(query->limitOffset, context, false);
5252 : }
5253 1115 : if (query->limitOption == LIMIT_OPTION_WITH_TIES)
5254 : {
5255 0 : appendContextKeyword(context, " FETCH FIRST ",
5256 : -PRETTYINDENT_STD, PRETTYINDENT_STD, 0);
5257 0 : get_rule_expr(query->limitCount, context, false);
5258 0 : appendContextKeyword(context, " ROWS WITH TIES ",
5259 : -PRETTYINDENT_STD, PRETTYINDENT_STD, 0);
5260 : }
5261 1115 : if (query->limitCount != NULL && query->limitOption != LIMIT_OPTION_WITH_TIES)
5262 : {
5263 2 : appendContextKeyword(context, " LIMIT ",
5264 : -PRETTYINDENT_STD, PRETTYINDENT_STD, 0);
5265 2 : if (IsA(query->limitCount, Const) &&
5266 0 : ((Const *) query->limitCount)->constisnull)
5267 0 : appendStringInfoString(buf, "ALL");
5268 : else
5269 2 : get_rule_expr(query->limitCount, context, false);
5270 : }
Other than that, the patch seems good to go to me, so unless there are
objections, I intend to get this pushed tomorrow.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services