On Sat, Sep 23, 2023 at 12:54:01AM +0200, Vik Fearing wrote: > On 9/22/23 23:46, cary huang wrote: >> I think this feature can be a useful addition in dealing with time >> zones. I have applied and tried out the patch, The feature works as >> described and seems promising. The problem with compilation failure >> was probably reported on CirrusCI when compiled on different >> platforms. I have run the latest patch on my own Cirrus CI environment >> and everything checked out fine. > > Thank you for reviewing!
+ | a_expr AT LOCAL %prec AT + { + /* Use the value of the session's time zone */ + FuncCall *tz = makeFuncCall(SystemFuncName("current_setting"), + list_make1(makeStringConst("TimeZone", -1)), + COERCE_SQL_SYNTAX, + -1); + $$ = (Node *) makeFuncCall(SystemFuncName("timezone"), + list_make2(tz, $1), + COERCE_SQL_SYNTAX, + @2); As the deparsing code introduced by this patch is showing, this leads to a lot of extra complexity. And, actually, this can be quite expensive as well with these two layers of functions. Note also that in comparison to SQLValueFunctions, COERCE_SQL_SYNTAX does less inlining. So here comes my question: why doesn't this stuff just use one underlying function to do this job? -- Michael
signature.asc
Description: PGP signature