Hi, Hackers ` While reviewing commit cf6723 (Make transformAExprIn() return a flattened bool expression directly), I found several near-duplicate function implementations in makefuncs.c that can be refactored to simplify and clean up the codebase. ` This patch performs a set of minor, low-impact clean-up refactors to unify internal expression construction logic: - make_andclause() / make_orclause() / make_notclause(): Rework these functions to directly call makeBoolExpr(), aligning their implementation style with the existing makeAndExpr() / makeOrExpr() / makeNotExpr() logic in gram.y. This eliminates redundant duplicate code for boolean clause construction. - makeSimpleA_Expr() --> makeA_Expr(): Remove the trivial wrapper function and use the core makeA_Expr() directly to simplify expression building logic. - makeDefElemExtended() --> makeDefElem(): Remove the extended wrapper and adopt standard makeDefElem() uniformly for definition element construction. ` All changes are pure code cleanup with zero functional change. The patch has minimal code intrusion, only optimizing internal function call chains without altering runtime behavior. ` Test cases are added for every refactored function to guarantee correctness and prevent regression: - make_andclause() --> makeBoolExpr(): SELECT * FROM t1 WHERE id = 1 AND id = 3; - make_orclause() --> makeBoolExpr(): SELECT * FROM t1 WHERE id = 1 OR id = 3; - make_notclause() --> makeBoolExpr(): SELECT * FROM t1 WHERE id NOT IN (1); - makeSimpleA_Expr() --> makeA_Expr(): SELECT oid::integer+1 FROM pg_class WHERE oid::integer+1 < 100; - makeDefElemExtended() --> makeDefElem(): CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432'); ALTER SERVER myserver OPTIONS (DROP port); ` All newly added tests pass successfully, verifying that the refactoring is safe, consistent and introduces no behavioral changes.
Thanks, -- ZizhuanLiu (X-MAN) [email protected]
v1-0001-Little-refactoring-of-makefuncs.c.patch
Description: Binary data
