mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	update of old PL/SQL PLpgSQL and SQLPL patch based on current version
see [linguist] add support for oracle PLSQL (#1003)
This commit is contained in:
		
							
								
								
									
										166
									
								
								samples/PLpgSQL/plpgsql_lint-9.3.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								samples/PLpgSQL/plpgsql_lint-9.3.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,166 @@ | ||||
| load 'plpgsql'; | ||||
| load 'plpgsql_lint'; | ||||
|  | ||||
| create table t1(a int, b int); | ||||
|  | ||||
| create function f1() | ||||
| returns void as $$ | ||||
| begin | ||||
|   if false then | ||||
|     update t1 set c = 30; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
| create function g1(out a int, out b int) | ||||
| as $$ | ||||
|   select 10,20; | ||||
| $$ language sql; | ||||
|  | ||||
| create function f1() | ||||
| returns void as $$ | ||||
| declare r record; | ||||
| begin | ||||
|   r := g1(); | ||||
|   if false then  | ||||
|     raise notice '%', r.c; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
| drop function g1(); | ||||
|  | ||||
| create function g1(out a int, out b int) | ||||
| returns setof record as $$ | ||||
| select * from t1; | ||||
| $$ language sql; | ||||
|  | ||||
| create function f1() | ||||
| returns void as $$ | ||||
| declare r record; | ||||
| begin | ||||
|   for r in select * from g1() | ||||
|   loop | ||||
|     raise notice '%', r.c; | ||||
|   end loop; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| declare r record; | ||||
| begin | ||||
|   for r in select * from g1() | ||||
|   loop | ||||
|     r.c := 20; | ||||
|   end loop; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
| drop function g1(); | ||||
|  | ||||
| create function f1() | ||||
| returns int as $$ | ||||
| declare r int; | ||||
| begin | ||||
|   if false then | ||||
|     r := a + b; | ||||
|   end if; | ||||
|   return r; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| begin | ||||
|   if false then | ||||
|     raise notice '%', 1, 2; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| begin | ||||
|   if false then | ||||
|     raise notice '% %'; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| declare r int[]; | ||||
| begin | ||||
|   if false then | ||||
|     r[c+10] := 20; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| declare r int; | ||||
| begin | ||||
|   if false then | ||||
|     r[10] := 20; | ||||
|   end if; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
|  | ||||
| create type _exception_type as ( | ||||
|   state text, | ||||
|   message text, | ||||
|   detail text); | ||||
|  | ||||
| create or replace function f1() | ||||
| returns void as $$ | ||||
| declare | ||||
|   _exception record; | ||||
| begin | ||||
|   _exception := NULL::_exception_type; | ||||
| exception when others then | ||||
|   get stacked diagnostics | ||||
|         _exception.state = RETURNED_SQLSTATE, | ||||
|         _exception.message = MESSAGE_TEXT, | ||||
|         _exception.detail = PG_EXCEPTION_DETAIL, | ||||
|         _exception.hint = PG_EXCEPTION_HINT; | ||||
| end; | ||||
| $$ language plpgsql; | ||||
|  | ||||
| select f1(); | ||||
|  | ||||
| drop function f1(); | ||||
		Reference in New Issue
	
	Block a user