Pegex
view release on metacpan or search on metacpan
xt/grammars/Pg.pgx view on Meta::CPAN
| func_expr_18
| func_expr_19
| func_expr_20
| func_expr_21
| func_expr_22
| func_expr_23
| func_expr_24
| func_expr_25
| func_expr_26
| func_expr_27
| func_expr_28
| func_expr_29
| func_expr_30
| func_expr_31
| func_expr_32
| func_expr_33
| func_expr_34
| func_expr_35
| func_expr_36
| func_expr_37
| func_expr_38
| func_expr_39
| func_expr_40
| func_expr_41
| func_expr_42
| func_expr_43
| func_expr_44
| func_expr_45
| func_expr_46
| func_expr_47
| func_expr_48
| func_expr_49
| func_expr_50
func_expr_1 : func_name <LPAREN> <RPAREN> over_clause
func_expr_2 : func_name <LPAREN> func_arg_list <RPAREN> over_clause
func_expr_3 : func_name <LPAREN> VARIADIC func_arg_expr <RPAREN> over_clause
func_expr_4 : func_name <LPAREN> func_arg_list <COMMA> VARIADIC func_arg_expr <RPAREN> over_clause
func_expr_5 : func_name <LPAREN> func_arg_list sort_clause <RPAREN> over_clause
func_expr_6 : func_name <LPAREN> ALL func_arg_list opt_sort_clause <RPAREN> over_clause
func_expr_7 : func_name <LPAREN> DISTINCT func_arg_list opt_sort_clause <RPAREN> over_clause
func_expr_8 : func_name <LPAREN> <STAR> <RPAREN> over_clause
func_expr_9 : COLLATION FOR <LPAREN> a_expr <RPAREN>
func_expr_10: CURRENT_DATE
func_expr_11: CURRENT_TIME
func_expr_12: CURRENT_TIME <LPAREN> Iconst <RPAREN>
func_expr_13: CURRENT_TIMESTAMP
func_expr_14: CURRENT_TIMESTAMP <LPAREN> Iconst <RPAREN>
func_expr_15: LOCALTIME
func_expr_16: LOCALTIME <LPAREN> Iconst <RPAREN>
func_expr_17: LOCALTIMESTAMP
func_expr_18: LOCALTIMESTAMP <LPAREN> Iconst <RPAREN>
func_expr_19: CURRENT_ROLE
func_expr_20: CURRENT_USER
func_expr_21: SESSION_USER
func_expr_22: USER
func_expr_23: CURRENT_CATALOG
func_expr_24: CURRENT_SCHEMA
func_expr_25: CAST <LPAREN> a_expr AS Typename <RPAREN>
func_expr_26: EXTRACT <LPAREN> extract_list <RPAREN>
func_expr_27: OVERLAY <LPAREN> overlay_list <RPAREN>
func_expr_28: POSITION <LPAREN> position_list <RPAREN>
func_expr_29: SUBSTRING <LPAREN> substr_list <RPAREN>
func_expr_30: TREAT <LPAREN> a_expr AS Typename <RPAREN>
func_expr_31: TRIM <LPAREN> BOTH trim_list <RPAREN>
func_expr_32: TRIM <LPAREN> LEADING trim_list <RPAREN>
func_expr_33: TRIM <LPAREN> TRAILING trim_list <RPAREN>
func_expr_34: TRIM <LPAREN> trim_list <RPAREN>
func_expr_35: NULLIF <LPAREN> a_expr <COMMA> a_expr <RPAREN>
func_expr_36: COALESCE <LPAREN> expr_list <RPAREN>
func_expr_37: GREATEST <LPAREN> expr_list <RPAREN>
func_expr_38: LEAST <LPAREN> expr_list <RPAREN>
func_expr_39: XMLCONCAT <LPAREN> expr_list <RPAREN>
func_expr_40: XMLELEMENT <LPAREN> NAME ColLabel <RPAREN>
func_expr_41: XMLELEMENT <LPAREN> NAME ColLabel <COMMA> xml_attributes <RPAREN>
func_expr_42: XMLELEMENT <LPAREN> NAME ColLabel <COMMA> expr_list <RPAREN>
func_expr_43: XMLELEMENT <LPAREN> NAME ColLabel <COMMA> xml_attributes <COMMA> expr_list <RPAREN>
func_expr_44: XMLEXISTS <LPAREN> c_expr xmlexists_argument <RPAREN>
func_expr_45: XMLFOREST <LPAREN> xml_attribute_list <RPAREN>
func_expr_46: XMLPARSE <LPAREN> document_or_content a_expr xml_whitespace_option <RPAREN>
func_expr_47: XMLPI <LPAREN> NAME ColLabel <RPAREN>
func_expr_48: XMLPI <LPAREN> NAME ColLabel <COMMA> a_expr <RPAREN>
func_expr_49: XMLROOT <LPAREN> a_expr <COMMA> xml_root_version opt_xml_root_standalone <RPAREN>
func_expr_50: XMLSERIALIZE <LPAREN> document_or_content a_expr AS SimpleTypename <RPAREN>
# SQL/XML support
xml_root_version :
xml_root_version_1
| xml_root_version_2
xml_root_version_1: VERSION a_expr
xml_root_version_2: VERSION NO VALUE
opt_xml_root_standalone : (
opt_xml_root_standalone_1
| opt_xml_root_standalone_2
| opt_xml_root_standalone_3
)?
opt_xml_root_standalone_1: <COMMA> STANDALONE YES
opt_xml_root_standalone_2: <COMMA> STANDALONE NO
opt_xml_root_standalone_3: <COMMA> STANDALONE NO VALUE
xml_attributes: XMLATTRIBUTES <LPAREN> xml_attribute_list <RPAREN>
xml_attribute_list: xml_attribute_el+ % / ~ <COMMA> ~ /
xml_attribute_el :
xml_attribute_el_1
| xml_attribute_el_2
xml_attribute_el_1: a_expr AS ColLabel
xml_attribute_el_2: a_expr
document_or_content :
document_or_content_1
| document_or_content_2
document_or_content_1: DOCUMENT
document_or_content_2: CONTENT
xml_whitespace_option : (
xt/grammars/Pg.pgx view on Meta::CPAN
| subquery_Op_5
| subquery_Op_6
subquery_Op_1: all_Op
subquery_Op_2: OPERATOR <LPAREN> any_operator <RPAREN>
subquery_Op_3: LIKE
subquery_Op_4: NOT LIKE
subquery_Op_5: ILIKE
subquery_Op_6: NOT ILIKE
expr_list: a_expr+ % / ~ <COMMA> ~ /
# function arguments can have names
func_arg_list: func_arg_expr+ % / ~ <COMMA> ~ /
func_arg_expr :
func_arg_expr_1
| func_arg_expr_2
func_arg_expr_1: a_expr
func_arg_expr_2: param_name COLON_EQUALS a_expr
type_list: Typename+ % / ~ <COMMA> ~ /
array_expr :
array_expr_1
| array_expr_2
| array_expr_3
array_expr_1: <LSQUARE> expr_list <RSQUARE>
array_expr_2: <LSQUARE> array_expr_list <RSQUARE>
array_expr_3: <LSQUARE> <RSQUARE>
array_expr_list: array_expr+ % / ~ <COMMA> ~ /
extract_list: ( extract_arg FROM a_expr )?
# Allow delimited string Sconst in extract_arg as an SQL extension.
# - thomas 2001-04-12
extract_arg :
extract_arg_1
| extract_arg_2
| extract_arg_3
| extract_arg_4
| extract_arg_5
| extract_arg_6
| extract_arg_7
| extract_arg_8
extract_arg_1: IDENT
extract_arg_2: YEAR
extract_arg_3: MONTH
extract_arg_4: DAY
extract_arg_5: HOUR
extract_arg_6: MINUTE
extract_arg_7: SECOND
extract_arg_8: Sconst
# OVERLAY() arguments
# SQL99 defines the OVERLAY() function:
# o overlay(text placing text from int for int)
# o overlay(text placing text from int)
# and similarly for binary strings
overlay_list :
overlay_list_1
| overlay_list_2
overlay_list_1: a_expr overlay_placing substr_from substr_for
overlay_list_2: a_expr overlay_placing substr_from
overlay_placing: PLACING a_expr
# position_list uses b_expr not a_expr to avoid conflict with general IN
position_list: ( b_expr IN b_expr )?
# SUBSTRING() arguments
# SQL9x defines a specific syntax for arguments to SUBSTRING():
# o substring(text from int for int)
# o substring(text from int) get entire string from starting point "int"
# o substring(text for int) get first "int" characters of string
# o substring(text from pattern) get entire string matching pattern
# o substring(text from pattern for escape) same with specified escape char
# We also want to support generic substring functions which accept
# the usual generic list of arguments. So we will accept both styles
# here, and convert the SQL9x style to the generic list for further
# processing. - thomas 2000-11-28
substr_list : (
substr_list_1
| substr_list_2
| substr_list_3
| substr_list_4
| substr_list_5
)?
substr_list_1: a_expr substr_from substr_for
substr_list_2: a_expr substr_for substr_from
substr_list_3: a_expr substr_from
substr_list_4: a_expr substr_for
substr_list_5: expr_list
substr_from: FROM a_expr
substr_for: FOR a_expr
trim_list :
trim_list_1
| trim_list_2
| trim_list_3
trim_list_1: a_expr FROM expr_list
trim_list_2: FROM expr_list
trim_list_3: expr_list
in_expr :
in_expr_1
| in_expr_2
in_expr_1: select_with_parens
in_expr_2: <LPAREN> expr_list <RPAREN>
# Define SQL92-style case clause.
# - Full specification
# CASE WHEN a = b THEN c ... ELSE d END
# - Implicit argument
# CASE a WHEN b THEN c ... ELSE d END
case_expr: CASE case_arg when_clause_list case_default END
when_clause_list: when_clause+ % ~
when_clause: WHEN a_expr THEN a_expr
case_default: ( ELSE a_expr )?
( run in 0.623 second using v1.01-cache-2.11-cpan-6aa56a78535 )