\set ECHO none 1..90 ok 1 - Verify type and prokind enums have same size ok 2 - Simple sanity check of routine__type() ok 3 - Simple sanity check of routine__type() with enum ok 4 - SELECT cat_tools.routine__type('f'::cat_tools.routine_prokind) ok 5 - SELECT cat_tools.routine__type('p'::cat_tools.routine_prokind) ok 6 - SELECT cat_tools.routine__type('a'::cat_tools.routine_prokind) ok 7 - SELECT cat_tools.routine__type('w'::cat_tools.routine_prokind) ok 8 - SELECT cat_tools.routine__type('f'::"char") ok 9 - SELECT cat_tools.routine__type('p'::"char") ok 10 - SELECT cat_tools.routine__type('a'::"char") ok 11 - SELECT cat_tools.routine__type('w'::"char") ok 12 - SELECT cat_tools.routine__type('f') ok 13 - SELECT cat_tools.routine__type('p') ok 14 - SELECT cat_tools.routine__type('a') ok 15 - SELECT cat_tools.routine__type('w') ok 16 - Verify argument_mode and proargmode enums have same size ok 17 - Simple sanity check of routine__argument_mode() ok 18 - Simple sanity check of routine__argument_mode() with enum ok 19 - SELECT cat_tools.routine__argument_mode('i'::cat_tools.routine_proargmode) ok 20 - SELECT cat_tools.routine__argument_mode('o'::cat_tools.routine_proargmode) ok 21 - SELECT cat_tools.routine__argument_mode('b'::cat_tools.routine_proargmode) ok 22 - SELECT cat_tools.routine__argument_mode('v'::cat_tools.routine_proargmode) ok 23 - SELECT cat_tools.routine__argument_mode('t'::cat_tools.routine_proargmode) ok 24 - SELECT cat_tools.routine__argument_mode('i'::"char") ok 25 - SELECT cat_tools.routine__argument_mode('o'::"char") ok 26 - SELECT cat_tools.routine__argument_mode('b'::"char") ok 27 - SELECT cat_tools.routine__argument_mode('v'::"char") ok 28 - SELECT cat_tools.routine__argument_mode('t'::"char") ok 29 - SELECT cat_tools.routine__argument_mode('i') ok 30 - SELECT cat_tools.routine__argument_mode('o') ok 31 - SELECT cat_tools.routine__argument_mode('b') ok 32 - SELECT cat_tools.routine__argument_mode('v') ok 33 - SELECT cat_tools.routine__argument_mode('t') ok 34 - Verify volatility and provolatile enums have same size ok 35 - Simple sanity check of routine__volatility() ok 36 - Simple sanity check of routine__volatility() with enum ok 37 - SELECT cat_tools.routine__volatility('i'::cat_tools.routine_provolatile) ok 38 - SELECT cat_tools.routine__volatility('s'::cat_tools.routine_provolatile) ok 39 - SELECT cat_tools.routine__volatility('v'::cat_tools.routine_provolatile) ok 40 - SELECT cat_tools.routine__volatility('i'::"char") ok 41 - SELECT cat_tools.routine__volatility('s'::"char") ok 42 - SELECT cat_tools.routine__volatility('v'::"char") ok 43 - SELECT cat_tools.routine__volatility('i') ok 44 - SELECT cat_tools.routine__volatility('s') ok 45 - SELECT cat_tools.routine__volatility('v') ok 46 - Verify parallel_safety and proparallel enums have same size ok 47 - Simple sanity check of routine__parallel_safety() ok 48 - Simple sanity check of routine__parallel_safety() with enum ok 49 - SELECT cat_tools.routine__parallel_safety('s'::cat_tools.routine_proparallel) ok 50 - SELECT cat_tools.routine__parallel_safety('r'::cat_tools.routine_proparallel) ok 51 - SELECT cat_tools.routine__parallel_safety('u'::cat_tools.routine_proparallel) ok 52 - SELECT cat_tools.routine__parallel_safety('s'::"char") ok 53 - SELECT cat_tools.routine__parallel_safety('r'::"char") ok 54 - SELECT cat_tools.routine__parallel_safety('u'::"char") ok 55 - SELECT cat_tools.routine__parallel_safety('s') ok 56 - SELECT cat_tools.routine__parallel_safety('r') ok 57 - SELECT cat_tools.routine__parallel_safety('u') ok 58 - Verify public has no perms ok 59 - Verify public has no perms ok 60 - Security check should prevent execution when current_user != session_user ok 61 - Verify routine__parse_arg_types() with INOUT and OUT ok 62 - Verify routine__parse_arg_types() with just INOUT ok 63 - Verify routine__parse_arg_types() with just OUT ok 64 - Verify routine__parse_arg_types() with only inputs ok 65 - Function cat_tools.routine__parse_arg_types(text) should not be security definer ok 66 - Function cat_tools.routine__parse_arg_types_text(text) should not be security definer ok 67 - Create pg_temp.test_function(anyarray, OUT text, OUT "char", pg_class, int, VARIADIC boolean[]) ok 68 - Verify routine__arg_types() returns all argument types ok 69 - Verify routine__arg_types() with IN arguments only ok 70 - Verify routine__arg_types() with no arguments ok 71 - Verify routine__arg_types() with VARIADIC argument ok 72 - Verify routine__arg_types_text() formatting ok 73 - Verify routine__arg_types_text() with simple types ok 74 - Verify routine__arg_types_text() with no arguments ok 75 - Verify routine__arg_types_text() with VARIADIC ok 76 - Verify routine__parse_arg_names() with INOUT and OUT ok 77 - Verify routine__parse_arg_names() with just INOUT ok 78 - Verify routine__parse_arg_names() with just OUT ok 79 - Verify routine__parse_arg_names() with only inputs ok 80 - Function cat_tools.routine__parse_arg_names(text) should not be security definer ok 81 - Function cat_tools.routine__parse_arg_names_text(text) should not be security definer ok 82 - Create pg_temp.named_function(input_val int, INOUT inout_val text, OUT output_val boolean) ok 83 - Verify routine__arg_names() returns argument names (unnamed function) ok 84 - Verify routine__arg_names() with named arguments ok 85 - Verify routine__arg_names() with no arguments ok 86 - Verify routine__arg_names_text() formatting ok 87 - Verify routine__arg_names_text() with unnamed arguments ok 88 - Verify routine__arg_names_text() with built-in function ok 89 - Verify routine__arg_names_text() with no arguments ok 90 - cat_tools schema(s) must not be part of the resolved search_path -- got {tap,public} # TRANSACTION INTENTIONALLY LEFT OPEN!