Extra information in pg_dump

Adrian Klaver aklaver at comcast.net
Tue May 23 03:15:27 UTC 2006


I did a plain text dump of a database I was working on and found the 
following.  The first function was created against PostgresPy. The second 
function is the same but created against plpythonu. Any clues as what all the 
escape sequences are for?

Thank you,
Adrian Klaver

CREATE FUNCTION upc_check_py(character varying) RETURNS text
    AS 
E'c\\002\\000\\000\\000\\012\\000\\000\\000\\005\\000\\000\\000C\\000\\000\\000s\\373\\000\\000\\000d\\000\\000k\\000\\000}\\010\\000t\\001\\000|
\\001\\000d\\001\\000\\031\\203\\001\\000}\\003\\000t\\004\\000|
\\003\\000\\203\\001\\000d\\002\\000j\\002\\000o\\307\\000\\001d\\001\\000}\\007\\000x4\\000t\\006\\000d\\001\\000t\\004\\000|
\\003\\000\\203\\001\\000d\\003\\000\\203\\003\\000D]\\032\\000}\\004\\000|
\\007\\000t\\010\\000|\\003\\000|
\\004\\000\\031\\203\\001\\000\\027}\\007\\000qK\\000Wd\\001\\000}\\002\\000x4\\000t\\006\\000d\\004\\000t\\004\\000|
\\003\\000\\203\\001\\000d\\003\\000\\203\\003\\000D]\\032\\000}\\004\\000|
\\002\\000t\\010\\000|\\003\\000|
\\004\\000\\031\\203\\001\\000\\027}\\002\\000q\\210\\000W|
\\007\\000d\\005\\000\\024|\\002\\000\\027}\\006\\000|\\010\\000i\\013\\000|
\\006\\000d\\006\\000\\203\\002\\000}\\011\\000|
\\011\\000d\\001\\000j\\004\\000o\\016\\000\\001d\\006\\000|
\\011\\000\\030}\\005\\000n\\007\\000\\001d\\001\\000}\\005\\000d\\007\\000|
\\005\\000\\026Sn\\005\\000\\001d\\010\\000Sd\\000\\000S(\\011\\000\\000\\000Ni\\000\\000\\000\\000i\\013\\000\\000\\000i\\002\\000\\000\\000i\\001\\000\\000\\000i\\003\\000\\000\\000i\\012\\000\\000\\000s\\002\\000\\000\\000%is\\014\\000\\000\\000Wrong 
length(\\016\\000\\000\\000s\\004\\000\\000\\000maths\\003\\000\\000\\000strs\\004\\000\\000\\000argss\\002\\000\\000\\000bcs\\003\\000\\000\\000lens\\003\\000\\000\\000odds\\005\\000\\000\\000ranges\\001\\000\\000\\000is\\003\\000\\000\\000ints\\004\\000\\000\\000evens\\005\\000\\000\\000totals\\004\\000\\000\\000fmods\\003\\000\\000\\000mods\\002\\000\\000\\000cd(\\012\\000\\000\\000s\\004\\000\\000\\000selfs\\004\\000\\000\\000argss\\004\\000\\000\\000evens\\002\\000\\000\\000bcs\\001\\000\\000\\000is\\002\\000\\000\\000cds\\005\\000\\000\\000totals\\003\\000\\000\\000odds\\004\\000\\000\\000maths\\003\\000\\000\\000mod(\\000\\000\\000\\000
(\\000\\000\\000\\000s\\006\\000\\000\\000/16814s\\037\\000\\000\\000upc_check_py(character 
varying)\\002\\000\\000\\000s$\\000\\000\\000\\000\\002\\011\\001\\020\\001\\023\\001\\006\\001\\031\\000\\006\\001\\030\\001\\006\\001\\031\\000\\006\\001\\030\\001\\016\\001\\022\\001\\015\\001\\016\\002\\006\\001\\014\\002', 
$$
import math
bc=str(args[0])
if len(bc)==11:
    odd=0
    for i in range(0,len(bc),2):
        odd=odd+int(bc[i])
    even=0
    for i in range(1,len(bc),2):
        even=even+int(bc[i])
    total=(odd*3)+even
    mod=math.fmod(total,10)
    if mod>0:
        cd=10-mod
    else:
        cd=0
    return '%i' % cd
else:
    return 'Wrong length'
$$
    LANGUAGE python;




--
-- Name: upc_check_py_pl(character varying); Type: FUNCTION; Schema: utility; 
Owner: postgres
--

CREATE FUNCTION upc_check_py_pl(character varying) RETURNS text
    AS $$
import math
bc=str(args[0])
if len(bc)==11:
    odd=0
    for i in range(0,len(bc),2):
        odd=odd+int(bc[i])
    even=0
    for i in range(1,len(bc),2):
        even=even+int(bc[i])
    total=(odd*3)+even
    mod=math.fmod(total,10)
    if mod>0:
        cd=10-mod
    else:
        cd=0
    return '%i' % cd
else:
    return 'Wrong length'
$$
    LANGUAGE plpythonu;

-- 
Adrian Klaver	
aklaver at comcast.net


More information about the Python-general mailing list