tree-sitter-plpgsql/test/corpus/plpgsql/if_statement.txt

225 lines
6.0 KiB
Plaintext

================================================================================
basic
================================================================================
do $$ begin
if true then select 1; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(true)
(select_statement
(select_item
(number)))))
(dollar_quote))))
================================================================================
many statements
================================================================================
do $$ begin
if true then select 1; select 2; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(true)
(select_statement
(select_item
(number)))
(select_statement
(select_item
(number)))))
(dollar_quote))))
================================================================================
if then else
================================================================================
do $$ begin
if var <> 5 then return 1; else return 2; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))
(return_statement
(number))))
(dollar_quote))))
================================================================================
if then else if
================================================================================
do $$ begin
if var > 5 then return 1; elsif var = 4 then return 2; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))))
(dollar_quote))))
================================================================================
elseif/elsif
================================================================================
do $$ begin
if var > 5 then return 1; elsif var = 4 then return 2; elseif var = 3 then return 3; else return 4; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number))
(return_statement
(number))))
(dollar_quote))))
================================================================================
nested
================================================================================
do $$ begin
if true then return 1; else if var = 4 then return 2; end if; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(true)
(return_statement
(number))
(if_statement
(op_expression
(identifier)
(comparison_op)
(number))
(return_statement
(number)))))
(dollar_quote))))
================================================================================
if is not null
================================================================================
do $$ begin
if foo is not null then select 1; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_null))
(select_statement
(select_item
(number)))))
(dollar_quote))))
================================================================================
if is not distinct from
================================================================================
do $$ begin
if foo is not distinct from bar then select 1; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_kw)
(identifier))
(select_statement
(select_item
(number)))))
(dollar_quote))))
================================================================================
if is distinct from
================================================================================
do $$ begin
if foo is distinct from bar then select 1; end if;
end $$;
--------------------------------------------------------------------------------
(source_file
(do_block
(block
(dollar_quote)
(body
(if_statement
(op_expression
(identifier)
(comparison_kw)
(identifier))
(select_statement
(select_item
(number)))))
(dollar_quote))))