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