Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2e0d80c

Browse files
committed
Improve coverage of ruleutils.c for SQLValueFunctions
While looking at how these are handled in the parser and the executor, Ihave noticed that there is no test coverage for most of these whenreverse-engineering an expression for a SQLValueFunction node inruleutils.c, including how these are reparsed when included in a FROMclause. Some hacking in this area has showed me that these could breakeasily, so add some coverage to track the existing compatibility.Extracted from a much larger patch by me.Discussion:https://postgr.es/m/YzaG3MoryCguUOym@paquier.xyz
1 parent3cf2f7a commit2e0d80c

File tree

2 files changed

+112
-3
lines changed

2 files changed

+112
-3
lines changed

‎src/test/regress/expected/create_view.out

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1941,7 +1941,38 @@ select
19411941
trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea) as btb,
19421942
trim(leading E'\\000'::bytea from E'\\000Tom\\000'::bytea) as ltb,
19431943
trim(trailing E'\\000'::bytea from E'\\000Tom\\000'::bytea) as rtb,
1944-
SYSTEM_USER as su;
1944+
CURRENT_DATE as cd,
1945+
(select * from CURRENT_DATE) as cd2,
1946+
CURRENT_TIME as ct,
1947+
(select * from CURRENT_TIME) as ct2,
1948+
CURRENT_TIME (1) as ct3,
1949+
(select * from CURRENT_TIME (1)) as ct4,
1950+
CURRENT_TIMESTAMP as ct5,
1951+
(select * from CURRENT_TIMESTAMP) as ct6,
1952+
CURRENT_TIMESTAMP (1) as ct7,
1953+
(select * from CURRENT_TIMESTAMP (1)) as ct8,
1954+
LOCALTIME as lt1,
1955+
(select * from LOCALTIME) as lt2,
1956+
LOCALTIME (1) as lt3,
1957+
(select * from LOCALTIME (1)) as lt4,
1958+
LOCALTIMESTAMP as lt5,
1959+
(select * from LOCALTIMESTAMP) as lt6,
1960+
LOCALTIMESTAMP (1) as lt7,
1961+
(select * from LOCALTIMESTAMP (1)) as lt8,
1962+
CURRENT_CATALOG as ca,
1963+
(select * from CURRENT_CATALOG) as ca2,
1964+
CURRENT_ROLE as cr,
1965+
(select * from CURRENT_ROLE) as cr2,
1966+
CURRENT_SCHEMA as cs,
1967+
(select * from CURRENT_SCHEMA) as cs2,
1968+
CURRENT_USER as cu,
1969+
(select * from CURRENT_USER) as cu2,
1970+
USER as us,
1971+
(select * from USER) as us2,
1972+
SESSION_USER seu,
1973+
(select * from SESSION_USER) as seu2,
1974+
SYSTEM_USER as su,
1975+
(select * from SYSTEM_USER) as su2;
19451976
select pg_get_viewdef('tt201v', true);
19461977
pg_get_viewdef
19471978
-----------------------------------------------------------------------------------------------
@@ -1963,7 +1994,54 @@ select pg_get_viewdef('tt201v', true);
19631994
TRIM(BOTH '\x00'::bytea FROM '\x00546f6d00'::bytea) AS btb, +
19641995
TRIM(LEADING '\x00'::bytea FROM '\x00546f6d00'::bytea) AS ltb, +
19651996
TRIM(TRAILING '\x00'::bytea FROM '\x00546f6d00'::bytea) AS rtb, +
1966-
SYSTEM_USER AS su;
1997+
CURRENT_DATE AS cd, +
1998+
( SELECT "current_date"."current_date" +
1999+
FROM CURRENT_DATE "current_date"("current_date")) AS cd2, +
2000+
CURRENT_TIME AS ct, +
2001+
( SELECT "current_time"."current_time" +
2002+
FROM CURRENT_TIME "current_time"("current_time")) AS ct2, +
2003+
CURRENT_TIME(1) AS ct3, +
2004+
( SELECT "current_time"."current_time" +
2005+
FROM CURRENT_TIME(1) "current_time"("current_time")) AS ct4, +
2006+
CURRENT_TIMESTAMP AS ct5, +
2007+
( SELECT "current_timestamp"."current_timestamp" +
2008+
FROM CURRENT_TIMESTAMP "current_timestamp"("current_timestamp")) AS ct6, +
2009+
CURRENT_TIMESTAMP(1) AS ct7, +
2010+
( SELECT "current_timestamp"."current_timestamp" +
2011+
FROM CURRENT_TIMESTAMP(1) "current_timestamp"("current_timestamp")) AS ct8, +
2012+
LOCALTIME AS lt1, +
2013+
( SELECT "localtime"."localtime" +
2014+
FROM LOCALTIME "localtime"("localtime")) AS lt2, +
2015+
LOCALTIME(1) AS lt3, +
2016+
( SELECT "localtime"."localtime" +
2017+
FROM LOCALTIME(1) "localtime"("localtime")) AS lt4, +
2018+
LOCALTIMESTAMP AS lt5, +
2019+
( SELECT "localtimestamp"."localtimestamp" +
2020+
FROM LOCALTIMESTAMP "localtimestamp"("localtimestamp")) AS lt6, +
2021+
LOCALTIMESTAMP(1) AS lt7, +
2022+
( SELECT "localtimestamp"."localtimestamp" +
2023+
FROM LOCALTIMESTAMP(1) "localtimestamp"("localtimestamp")) AS lt8, +
2024+
CURRENT_CATALOG AS ca, +
2025+
( SELECT "current_catalog"."current_catalog" +
2026+
FROM CURRENT_CATALOG "current_catalog"("current_catalog")) AS ca2, +
2027+
CURRENT_ROLE AS cr, +
2028+
( SELECT "current_role"."current_role" +
2029+
FROM CURRENT_ROLE "current_role"("current_role")) AS cr2, +
2030+
CURRENT_SCHEMA AS cs, +
2031+
( SELECT "current_schema"."current_schema" +
2032+
FROM CURRENT_SCHEMA "current_schema"("current_schema")) AS cs2, +
2033+
CURRENT_USER AS cu, +
2034+
( SELECT "current_user"."current_user" +
2035+
FROM CURRENT_USER "current_user"("current_user")) AS cu2, +
2036+
USER AS us, +
2037+
( SELECT "user"."user" +
2038+
FROM USER "user"("user")) AS us2, +
2039+
SESSION_USER AS seu, +
2040+
( SELECT "session_user"."session_user" +
2041+
FROM SESSION_USER "session_user"("session_user")) AS seu2, +
2042+
SYSTEM_USER AS su, +
2043+
( SELECT "system_user"."system_user" +
2044+
FROM SYSTEM_USER "system_user"("system_user")) AS su2;
19672045
(1 row)
19682046

19692047
-- corner cases with empty join conditions

‎src/test/regress/sql/create_view.sql

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,38 @@ select
722722
trim(E'\\000'::byteafrom E'\\000Tom\\000'::bytea)as btb,
723723
trim(leading E'\\000'::byteafrom E'\\000Tom\\000'::bytea)as ltb,
724724
trim(trailing E'\\000'::byteafrom E'\\000Tom\\000'::bytea)as rtb,
725-
SYSTEM_USERas su;
725+
CURRENT_DATEas cd,
726+
(select*fromCURRENT_DATE)as cd2,
727+
CURRENT_TIMEas ct,
728+
(select*fromCURRENT_TIME)as ct2,
729+
CURRENT_TIME (1)as ct3,
730+
(select*fromCURRENT_TIME (1))as ct4,
731+
CURRENT_TIMESTAMPas ct5,
732+
(select*fromCURRENT_TIMESTAMP)as ct6,
733+
CURRENT_TIMESTAMP (1)as ct7,
734+
(select*fromCURRENT_TIMESTAMP (1))as ct8,
735+
LOCALTIMEas lt1,
736+
(select*from LOCALTIME)as lt2,
737+
LOCALTIME (1)as lt3,
738+
(select*from LOCALTIME (1))as lt4,
739+
LOCALTIMESTAMPas lt5,
740+
(select*from LOCALTIMESTAMP)as lt6,
741+
LOCALTIMESTAMP (1)as lt7,
742+
(select*from LOCALTIMESTAMP (1))as lt8,
743+
CURRENT_CATALOGas ca,
744+
(select*from CURRENT_CATALOG)as ca2,
745+
CURRENT_ROLEas cr,
746+
(select*from CURRENT_ROLE)as cr2,
747+
CURRENT_SCHEMAas cs,
748+
(select*from CURRENT_SCHEMA)as cs2,
749+
CURRENT_USERas cu,
750+
(select*fromCURRENT_USER)as cu2,
751+
USERas us,
752+
(select*from USER)as us2,
753+
SESSION_USER seu,
754+
(select*fromSESSION_USER)as seu2,
755+
SYSTEM_USERas su,
756+
(select*fromSYSTEM_USER)as su2;
726757
select pg_get_viewdef('tt201v', true);
727758

728759
-- corner cases with empty join conditions

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp