*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_do.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_do.out	Wed Jan 13 00:46:31 2016
***************
*** 2,8 ****
  NOTICE:  This is plpythonu.
  CONTEXT:  PL/Python anonymous code block
  DO $$ nonsense $$ LANGUAGE plpython3u;
! ERROR:  NameError: global name 'nonsense' is not defined
  CONTEXT:  Traceback (most recent call last):
    PL/Python anonymous code block, line 1, in <module>
      nonsense 
--- 2,8 ----
  NOTICE:  This is plpythonu.
  CONTEXT:  PL/Python anonymous code block
  DO $$ nonsense $$ LANGUAGE plpython3u;
! ERROR:  NameError: name 'nonsense' is not defined
  CONTEXT:  Traceback (most recent call last):
    PL/Python anonymous code block, line 1, in <module>
      nonsense 

======================================================================

*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_import.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_import.out	Wed Jan 13 00:46:32 2016
***************
*** 51,57 ****
  -- import python modules
  --
  SELECT import_fail();
! NOTICE:  import socket failed -- No module named foosocket
  CONTEXT:  PL/Python function "import_fail"
      import_fail     
  --------------------
--- 51,57 ----
  -- import python modules
  --
  SELECT import_fail();
! NOTICE:  import socket failed -- No module named 'foosocket'
  CONTEXT:  PL/Python function "import_fail"
      import_fail     
  --------------------

======================================================================

*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_params.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_params.out	Wed Jan 13 00:46:32 2016
***************
*** 37,46 ****
  SELECT test_param_names2(users) from users;
                             test_param_names2                           
  -----------------------------------------------------------------------
!  {'lname': 'doe', 'username': 'j_doe', 'userid': 1, 'fname': 'jane'}
!  {'lname': 'doe', 'username': 'johnd', 'userid': 2, 'fname': 'john'}
!  {'lname': 'doe', 'username': 'w_doe', 'userid': 3, 'fname': 'willem'}
!  {'lname': 'smith', 'username': 'slash', 'userid': 4, 'fname': 'rick'}
  (4 rows)
  
  SELECT test_param_names2(NULL);
--- 37,46 ----
  SELECT test_param_names2(users) from users;
                             test_param_names2                           
  -----------------------------------------------------------------------
!  {'userid': 1, 'username': 'j_doe', 'lname': 'doe', 'fname': 'jane'}
!  {'userid': 2, 'username': 'johnd', 'lname': 'doe', 'fname': 'john'}
!  {'userid': 3, 'username': 'w_doe', 'lname': 'doe', 'fname': 'willem'}
!  {'userid': 4, 'username': 'slash', 'lname': 'smith', 'fname': 'rick'}
  (4 rows)
  
  SELECT test_param_names2(NULL);

======================================================================

*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_trigger.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_trigger.out	Wed Jan 13 00:46:32 2016
***************
*** 119,125 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_before
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
--- 119,125 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_before
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 139,145 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_after
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
--- 139,145 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_after
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 180,188 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_before
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 1, 'v': 'update'}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 180,188 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_before
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'update', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 200,208 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_after
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 1, 'v': 'update'}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 200,208 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig_after
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'update', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 243,249 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'update'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 243,249 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'update', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 263,269 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'update'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 263,269 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'update', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 311,317 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 2, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
--- 311,317 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'insert', 'i': 2}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[old] => None
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 332,340 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'i': 1, 'v': 'update'}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 332,340 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[name] => show_trigger_data_trig
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[new] => {'v': 'update', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
***************
*** 355,361 ****
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'i': 1, 'v': 'insert'}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"
--- 355,361 ----
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[new] => None
  CONTEXT:  PL/Python function "trigger_data"
! NOTICE:  TD[old] => {'v': 'insert', 'i': 1}
  CONTEXT:  PL/Python function "trigger_data"
  NOTICE:  TD[relid] => bogus:12345
  CONTEXT:  PL/Python function "trigger_data"

======================================================================

*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_error.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_error.out	Wed Jan 13 00:46:32 2016
***************
*** 245,251 ****
  plpy.nonexistent
  $$ LANGUAGE plpython3u;
  SELECT toplevel_attribute_error();
! ERROR:  AttributeError: 'module' object has no attribute 'nonexistent'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "toplevel_attribute_error", line 2, in <module>
      plpy.nonexistent
--- 245,251 ----
  plpy.nonexistent
  $$ LANGUAGE plpython3u;
  SELECT toplevel_attribute_error();
! ERROR:  AttributeError: module 'plpy' has no attribute 'nonexistent'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "toplevel_attribute_error", line 2, in <module>
      plpy.nonexistent

======================================================================

*** /Users/tgl/pgsql/src/pl/plpython/./python3/expected/plpython_subtransaction.out	Wed Jan 13 00:46:31 2016
--- /Users/tgl/pgsql/src/pl/plpython/./python3/results/plpython_subtransaction.out	Wed Jan 13 00:46:32 2016
***************
*** 58,64 ****
  
  TRUNCATE subtransaction_tbl;
  SELECT subtransaction_test('Python');
! ERROR:  AttributeError: 'module' object has no attribute 'attribute_error'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "subtransaction_test", line 13, in <module>
      plpy.attribute_error
--- 58,64 ----
  
  TRUNCATE subtransaction_tbl;
  SELECT subtransaction_test('Python');
! ERROR:  AttributeError: module 'plpy' has no attribute 'attribute_error'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "subtransaction_test", line 13, in <module>
      plpy.attribute_error
***************
*** 110,116 ****
  
  TRUNCATE subtransaction_tbl;
  SELECT subtransaction_ctx_test('Python');
! ERROR:  AttributeError: 'module' object has no attribute 'attribute_error'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "subtransaction_ctx_test", line 8, in <module>
      plpy.attribute_error
--- 110,116 ----
  
  TRUNCATE subtransaction_tbl;
  SELECT subtransaction_ctx_test('Python');
! ERROR:  AttributeError: module 'plpy' has no attribute 'attribute_error'
  CONTEXT:  Traceback (most recent call last):
    PL/Python function "subtransaction_ctx_test", line 8, in <module>
      plpy.attribute_error

======================================================================

