(executor)
| 150 | |
| 151 | @dbtest |
| 152 | def test_functions_query(executor): |
| 153 | run( |
| 154 | executor, |
| 155 | """create function func1() returns int |
| 156 | language sql as $$select 1$$""", |
| 157 | ) |
| 158 | run(executor, "create schema schema1") |
| 159 | run( |
| 160 | executor, |
| 161 | """create function schema1.func2() returns int |
| 162 | language sql as $$select 2$$""", |
| 163 | ) |
| 164 | |
| 165 | run( |
| 166 | executor, |
| 167 | """create function func3() |
| 168 | returns table(x int, y int) language sql |
| 169 | as $$select 1, 2 from generate_series(1,5)$$;""", |
| 170 | ) |
| 171 | |
| 172 | run( |
| 173 | executor, |
| 174 | """create function func4(x int) returns setof int language sql |
| 175 | as $$select generate_series(1,5)$$;""", |
| 176 | ) |
| 177 | |
| 178 | funcs = set(executor.functions()) |
| 179 | assert funcs >= { |
| 180 | function_meta_data(func_name="func1", return_type="integer"), |
| 181 | function_meta_data( |
| 182 | func_name="func3", |
| 183 | arg_names=["x", "y"], |
| 184 | arg_types=["integer", "integer"], |
| 185 | arg_modes=["t", "t"], |
| 186 | return_type="record", |
| 187 | is_set_returning=True, |
| 188 | ), |
| 189 | function_meta_data( |
| 190 | schema_name="public", |
| 191 | func_name="func4", |
| 192 | arg_names=("x",), |
| 193 | arg_types=("integer",), |
| 194 | return_type="integer", |
| 195 | is_set_returning=True, |
| 196 | ), |
| 197 | function_meta_data(schema_name="schema1", func_name="func2", return_type="integer"), |
| 198 | } |
| 199 | |
| 200 | |
| 201 | @dbtest |
nothing calls this directly
no test coverage detected