You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by rv...@apache.org on 2015/09/22 21:14:04 UTC

[01/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 8b26974cd -> a485be476


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/setup.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/setup.py b/tools/bin/pythonSrc/PyGreSQL-4.0/setup.py
new file mode 100755
index 0000000..5d28b31
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/setup.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env python
+# $Id: setup.py,v 1.27 2008/11/21 17:08:17 cito Exp $
+
+"""Setup script for PyGreSQL version 4.0
+
+Authors and history:
+* PyGreSQL written 1997 by D'Arcy J.M. Cain <da...@druid.net>
+* based on code written 1995 by Pascal Andre <an...@chimay.via.ecp.fr>
+* setup script created 2000/04 Mark Alexander <mw...@gate.net>
+* tweaked 2000/05 Jeremy Hylton <je...@cnri.reston.va.us>
+* win32 support 2001/01 by Gerhard Haering <ge...@bigfoot.de>
+* tweaked 2006/02 and 2008/11 by Christoph Zwerschke <ci...@online.de>
+
+Prerequisites to be installed:
+* Python including devel package (header files and distutils)
+* PostgreSQL libs and devel packages (header files of client and server)
+* PostgreSQL pg_config tool (usually included in the devel package)
+  (the Windows installer has it as part of the database server feature)
+
+Tested with Python 2.5.2 and PostGreSQL 8.3.5. Older version should work
+as well, but you will need at least Python 2.3 and PostgreSQL 7.4.
+
+Use as follows:
+python setup.py build   # to build the module
+python setup.py install # to install it
+
+You should use MinGW (www.mingw.org) for building on Win32:
+python setup.py build -c mingw32 install # use MinGW
+Note that Python newer than version 2.3 is using msvcr71 instead of msvcrt
+as its common runtime library. So, if you are using MinGW to build PyGreSQL,
+you should edit the file "%MinGWpath%/lib/gcc/%MinGWversion%/specs"
+and change the entry that reads -lmsvcrt to -lmsvcr71.
+
+See docs.python.org/doc/install/ for more information on
+using distutils to install Python programs.
+
+"""
+
+version = "4.0"
+
+import sys
+
+if not (2, 2) < sys.version_info[:2] < (3, 0):
+    raise Exception("PyGreSQL %s requires a Python 2 version"
+        " newer than 2.2." % version)
+
+import os
+from distutils.core import setup
+from distutils.extension import Extension
+
+def pg_config(s):
+    """Retrieve information about installed version of PostgreSQL."""
+    if os.path.exists("../../../../src/bin/pg_config/pg_config"):
+        f = os.popen("../../../../src/bin/pg_config/pg_config --%s" % s)
+    else:
+        """If a VPATH build, it might not be there.  Look other places"""
+        """It should be the one in the path, because the makefile includes greenplum_path.sh """
+        f = os.popen("pg_config --%s" % s)
+
+    d = f.readline().strip()
+    if f.close() is not None:
+        raise Exception("pg_config tool is not available.")
+    if not d:
+        raise Exception("Could not get %s information." % s)
+    return d
+
+def mk_include():
+    """Create a temporary local include directory.
+
+    The directory will contain a copy of the PostgreSQL server header files,
+    where all features which are not necessary for PyGreSQL are disabled.
+
+    """
+    os.mkdir('include')
+    for f in os.listdir(pg_include_dir_server):
+        if not f.endswith('.h'):
+            continue
+        d = open(os.path.join(pg_include_dir_server, f)).read()
+        if f == 'pg_config.h':
+            d += '\n'.join(('',
+                '#undef ENABLE_NLS',
+                '#undef USE_REPL_SNPRINTF',
+                '#undef USE_SSL',
+                '#undef USE_ZLIB',
+                '#undef HAVE_STDINT_H',
+                '#undef HAVE_SYS_TIME_H',
+                '#undef HAVE_UNISTD_H',
+                '#define _CRT_SECURE_NO_WARNINGS 1',
+                '#define _USE_32BIT_TIME_T 1',
+                ''))
+        open(os.path.join('include', f), 'w').write(d)
+
+def rm_include():
+    """Remove the temporary local include directory."""
+    if os.path.exists('include'):
+        for f in os.listdir('include'):
+            os.remove(os.path.join('include', f))
+        os.rmdir('include')
+
+pg_include_dir = pg_config('includedir')
+pg_include_dir_server = pg_config('includedir-server')
+
+rm_include()
+mk_include()
+
+include_dirs = ['include', pg_include_dir,  pg_include_dir_server]
+
+pg_libdir = pg_config('libdir')
+library_dirs = [pg_libdir]
+
+libraries=['pq']
+
+if sys.platform == "win32":
+    include_dirs.append(os.path.join(pg_include_dir_server, 'port/win32'))
+
+setup(
+    name="PyGreSQL",
+    version=version,
+    description="Python PostgreSQL Interfaces",
+    long_description = ("PyGreSQL is an open-source Python module"
+        " that interfaces to a PostgreSQL database."
+        " It embeds the PostgreSQL query library to allow easy use"
+        " of the powerful PostgreSQL features from a Python script."),
+    keywords="postgresql database api dbapi",
+    author="D'Arcy J. M. Cain",
+    author_email="darcy@PyGreSQL.org",
+    url="http://www.pygresql.org",
+    download_url = "ftp://ftp.pygresql.org/pub/distrib/",
+    platforms = ["any"],
+    license="Python",
+    py_modules=['pg', 'pgdb'],
+    ext_modules=[Extension(
+        '_pg', ['pgmodule.c'],
+        include_dirs = include_dirs,
+        library_dirs = library_dirs,
+        libraries = libraries,
+        extra_compile_args = ['-O2']
+    )],
+    classifiers=[
+        "Development Status :: 6 - Mature",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: Python Software Foundation License",
+        "Operating System :: OS Independent",
+        "Programming Language :: C",
+        "Programming Language :: Python",
+        "Topic :: Database",
+        "Topic :: Database :: Front-Ends",
+        "Topic :: Software Development :: Libraries :: Python Modules"
+    ]
+)
+
+rm_include()

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/advanced.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/advanced.py b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/advanced.py
new file mode 100755
index 0000000..41a5bc4
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/advanced.py
@@ -0,0 +1,198 @@
+#! /usr/bin/env python
+# advanced.py - demo of advanced features of PostGres. Some may not be ANSI.
+# inspired from the Postgres tutorial 
+# adapted to Python 1995 by Pascal Andre
+
+print """
+__________________________________________________________________
+MODULE ADVANCED.PY : ADVANCED POSTGRES SQL COMMANDS TUTORIAL
+
+This module is designed for being imported from python prompt
+
+In order to run the samples included here, first create a connection
+using :                        cnx = advanced.DB(...)
+
+The "..." should be replaced with whatever arguments you need to open an
+existing database.  Usually all you need is the name of the database and,
+in fact, if it is the same as your login name, you can leave it empty.
+
+then start the demo with:      advanced.demo(cnx)
+__________________________________________________________________
+"""
+
+from pg import DB
+import sys
+
+# waits for a key
+def wait_key():
+	print "Press <enter>"
+	sys.stdin.read(1)
+
+# inheritance features
+def inherit_demo(pgcnx):
+	print "-----------------------------"
+	print "-- Inheritance:"
+	print "--   a table can inherit from zero or more tables. A query"
+	print "--   can reference either all rows of a table or all rows "
+	print "--   of a table plus all of its descendants."
+	print "-----------------------------"
+	print
+	print "-- For example, the capitals table inherits from cities table."
+	print "-- (It inherits  all data fields from cities.)"
+	print
+	print "CREATE TABLE cities ("
+	print "    name         text,"
+	print "    population   float8,"
+	print "    altitude     int"
+	print ")"
+	print
+	print "CREATE TABLE capitals ("
+	print "    state        varchar(2)"
+	print ") INHERITS (cities)"
+	pgcnx.query("""CREATE TABLE cities (
+        name        text,
+        population  float8,
+        altitude    int)""")
+	pgcnx.query("""CREATE TABLE capitals (
+        state       varchar(2)) INHERITS (cities)""")
+	wait_key()
+	print
+	print "-- now, let's populate the tables"
+	print
+	print "INSERT INTO cities VALUES ('San Francisco', 7.24E+5, 63)"
+	print "INSERT INTO cities VALUES ('Las Vegas', 2.583E+5, 2174)"
+	print "INSERT INTO cities VALUES ('Mariposa', 1200, 1953)"
+	print
+	print "INSERT INTO capitals VALUES ('Sacramento', 3.694E+5, 30, 'CA')"
+	print "INSERT INTO capitals VALUES ('Madison', 1.913E+5, 845, 'WI')"
+	print
+	pgcnx.query("INSERT INTO cities VALUES ('San Francisco', 7.24E+5, 63)")
+	pgcnx.query("INSERT INTO cities VALUES ('Las Vegas', 2.583E+5, 2174)")
+	pgcnx.query("INSERT INTO cities VALUES ('Mariposa', 1200, 1953)")
+	pgcnx.query("INSERT INTO capitals VALUES ('Sacramento',3.694E+5,30,'CA')")
+	pgcnx.query("INSERT INTO capitals VALUES ('Madison', 1.913E+5, 845, 'WI')")
+	print
+	print "SELECT * FROM cities"
+	print pgcnx.query("SELECT * FROM cities")
+	print "SELECT * FROM capitals"
+	print pgcnx.query("SELECT * FROM capitals")
+	print
+	print "-- like before, a regular query references rows of the base"
+	print "-- table only"
+	print
+	print "SELECT name, altitude"
+	print "FROM cities"
+	print "WHERE altitude > 500;"
+	print pgcnx.query("""SELECT name, altitude
+        FROM cities
+        WHERE altitude > 500""")
+	print
+	print "-- on the other hand, you can find all cities, including "
+	print "-- capitals, that are located at an altitude of 500 'ft "
+	print "-- or higher by:"
+	print
+	print "SELECT c.name, c.altitude"
+	print "FROM cities* c"
+	print "WHERE c.altitude > 500"
+	print pgcnx.query("""SELECT c.name, c.altitude
+        FROM cities* c
+        WHERE c.altitude > 500""")
+
+# arrays attributes 
+def array_demo(pgcnx):
+	print "----------------------"
+	print "-- Arrays:"
+	print "--      attributes can be arrays of base types or user-defined "
+	print "--      types"
+	print "----------------------"
+	print
+	print "CREATE TABLE sal_emp ("
+	print "    name            text,"
+	print "    pay_by_quarter  int4[],"
+	print "    pay_by_extra_quarter  int8[],"
+	print "    schedule        text[][]"
+	print ")"
+	pgcnx.query("""CREATE TABLE sal_emp (
+        name              text,
+        pay_by_quarter    int4[],
+        pay_by_extra_quarter    int8[],
+        schedule          text[][])""")
+	wait_key()
+	print
+	print "-- insert instances with array attributes.  "
+	print "   Note the use of braces"
+	print
+	print "INSERT INTO sal_emp VALUES ("
+	print "    'Bill',"
+	print "    '{10000,10000,10000,10000}',"
+	print "    '{9223372036854775800,9223372036854775800,9223372036854775800}',"
+	print "    '{{\"meeting\", \"lunch\"}, {}}')"
+	print
+	print "INSERT INTO sal_emp VALUES ("
+	print "    'Carol',"
+	print "    '{20000,25000,25000,25000}',"
+	print "    '{9223372036854775807,9223372036854775807,9223372036854775807}',"
+	print "    '{{\"talk\", \"consult\"}, {\"meeting\"}}')"
+	print
+	pgcnx.query("""INSERT INTO sal_emp VALUES (
+        'Bill', '{10000,10000,10000,10000}',
+	'{9223372036854775800,9223372036854775800,9223372036854775800}',
+        '{{\"meeting\", \"lunch\"}, {}}')""")
+	pgcnx.query("""INSERT INTO sal_emp VALUES (
+        'Carol', '{20000,25000,25000,25000}',
+	'{9223372036854775807,9223372036854775807,9223372036854775807}',
+        '{{\"talk\", \"consult\"}, {\"meeting\"}}')""")
+	wait_key()
+	print
+	print "----------------------"
+	print "-- queries on array attributes"
+	print "----------------------"
+	print
+	print "SELECT name FROM sal_emp WHERE"
+	print "  sal_emp.pay_by_quarter[1] <> sal_emp.pay_by_quarter[2]"
+	print
+	print pgcnx.query("""SELECT name FROM sal_emp WHERE
+        sal_emp.pay_by_quarter[1] <> sal_emp.pay_by_quarter[2]""")
+	print
+	print pgcnx.query("""SELECT name FROM sal_emp WHERE
+        sal_emp.pay_by_extra_quarter[1] <> sal_emp.pay_by_extra_quarter[2]""")
+	print
+	print "-- retrieve third quarter pay of all employees"
+	print 
+	print "SELECT sal_emp.pay_by_quarter[3] FROM sal_emp"
+	print
+	print pgcnx.query("SELECT sal_emp.pay_by_quarter[3] FROM sal_emp")
+	print
+	print "-- retrieve third quarter extra pay of all employees"
+	print 
+	print "SELECT sal_emp.pay_by_extra_quarter[3] FROM sal_emp"
+	print pgcnx.query("SELECT sal_emp.pay_by_extra_quarter[3] FROM sal_emp")
+	print 
+	print "-- retrieve first two quarters of extra quarter pay of all employees"
+	print 
+	print "SELECT sal_emp.pay_by_extra_quarter[1:2] FROM sal_emp"
+	print
+	print pgcnx.query("SELECT sal_emp.pay_by_extra_quarter[1:2] FROM sal_emp")
+	print
+	print "-- select subarrays"
+	print 
+	print "SELECT sal_emp.schedule[1:2][1:1] FROM sal_emp WHERE"
+	print "     sal_emp.name = 'Bill'"
+	print pgcnx.query("SELECT sal_emp.schedule[1:2][1:1] FROM sal_emp WHERE " \
+        "sal_emp.name = 'Bill'")
+
+# base cleanup
+def demo_cleanup(pgcnx):
+	print "-- clean up (you must remove the children first)"
+	print "DROP TABLE sal_emp"
+	print "DROP TABLE capitals"
+	print "DROP TABLE cities;"
+	pgcnx.query("DROP TABLE sal_emp")
+	pgcnx.query("DROP TABLE capitals")
+	pgcnx.query("DROP TABLE cities")
+
+# main demo function
+def demo(pgcnx):
+	inherit_demo(pgcnx)
+	array_demo(pgcnx)
+	demo_cleanup(pgcnx)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/basics.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/basics.py b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/basics.py
new file mode 100755
index 0000000..98a7f86
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/basics.py
@@ -0,0 +1,296 @@
+#! /usr/bin/env python
+# basics.py - basic SQL commands tutorial
+# inspired from the Postgres95 tutorial 
+# adapted to Python 1995 by Pascal ANDRE
+
+print """
+__________________________________________________________________
+MODULE BASICS.PY : BASIC POSTGRES SQL COMMANDS TUTORIAL
+    
+This module is designed for being imported from python prompt
+    
+In order to run the samples included here, first create a connection
+using :                        cnx = basics.DB(...)
+  
+The "..." should be replaced with whatever arguments you need to open an
+existing database.  Usually all you need is the name of the database and,
+in fact, if it is the same as your login name, you can leave it empty.
+        
+then start the demo with:      basics.demo(cnx)
+__________________________________________________________________
+""" 
+
+from pg import DB
+import sys
+
+# waits for a key
+def wait_key():
+	print "Press <enter>"
+	sys.stdin.read(1)
+
+# table creation commands
+def create_table(pgcnx):
+	print "-----------------------------"
+	print "-- Creating a table:"
+	print "--  a CREATE TABLE is used to create base tables. POSTGRES"
+	print "--  SQL has its own set of built-in types. (Note that"
+	print "--  keywords are case-insensitive but identifiers are "
+	print "--  case-sensitive.)"
+	print "-----------------------------"
+	print
+	print "Sending query :"
+	print "CREATE TABLE weather ("
+        print "    city            varchar(80),"
+        print "    temp_lo         int,"
+        print "    temp_hi         int,"
+        print "    prcp            float8,"
+        print "    date            date"
+        print ")"
+        pgcnx.query("""CREATE TABLE weather (city varchar(80), temp_lo int,
+            temp_hi int, prcp float8, date date)""")
+	print
+	print "Sending query :"
+	print "CREATE TABLE cities ("
+	print "    name        varchar(80),"
+	print "    location    point"
+	print ")"
+	pgcnx.query("""CREATE TABLE cities (
+        name     varchar(80),
+        location point)""")
+
+# data insertion commands
+def insert_data(pgcnx):
+	print "-----------------------------"
+	print "-- Inserting data:"
+	print "--  an INSERT statement is used to insert a new row into"
+	print "--  a table. There are several ways you can specify what"
+	print "--  columns the data should go to."
+	print "-----------------------------"
+	print
+	print "-- 1. the simplest case is when the list of value correspond to"
+	print "--    the order of the columns specified in CREATE TABLE."
+	print
+	print "Sending query :"
+	print "INSERT INTO weather "
+	print "   VALUES ('San Francisco', 46, 50, 0.25, '11/27/1994')"
+	pgcnx.query("""INSERT INTO weather
+        VALUES ('San Francisco', 46, 50, 0.25, '11/27/1994')""")
+	print
+	print "Sending query :"
+	print "INSERT INTO cities "
+	print "   VALUES ('San Francisco', '(-194.0, 53.0)')"
+	pgcnx.query("""INSERT INTO cities
+        VALUES ('San Francisco', '(-194.0, 53.0)')""")
+	print
+	wait_key()
+	print "-- 2. you can also specify what column the values correspond "
+	print "     to. (The columns can be specified in any order. You may "
+	print "     also omit any number of columns. eg. unknown precipitation"
+	print "     below)"
+	print "Sending query :"
+	print "INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)"
+	print "   VALUES ('San Francisco', 43, 57, 0.0, '11/29/1994')"
+	pgcnx.query("INSERT INTO weather (date, city, temp_hi, temp_lo)" \
+        "VALUES ('11/29/1994', 'Hayward', 54, 37)")
+
+# direct selection commands
+def select_data1(pgcnx):
+	print "-----------------------------"
+	print "-- Retrieving data:"
+	print "--  a SELECT statement is used for retrieving data. The "
+	print "--  basic syntax is:"
+	print "--      SELECT columns FROM tables WHERE predicates"
+	print "-----------------------------"
+	print
+	print "-- a simple one would be the query:"
+	print "SELECT * FROM weather"
+	print 
+	print "The result is :"
+	q = pgcnx.query("SELECT * FROM weather")
+	print q
+	print
+	print "-- you may also specify expressions in the target list (the "
+	print "-- 'AS column' specifies the column name of the result. It is "
+	print "-- optional.)"
+	print "The query :"
+	print "   SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date "
+	print "   FROM weather"
+	print "Gives :"
+	print pgcnx.query("""SELECT city, (temp_hi+temp_lo)/2
+        AS temp_avg, date FROM weather""")
+	print
+	print "-- if you want to retrieve rows that satisfy certain condition"
+	print "-- (ie. a restriction), specify the condition in WHERE. The "
+	print "-- following retrieves the weather of San Francisco on rainy "
+	print "-- days."
+	print "SELECT *"
+	print "FROM weather"
+	print "WHERE city = 'San Francisco' "
+	print "  and prcp > 0.0"
+	print pgcnx.query("""SELECT * FROM weather WHERE city = 'San Francisco'
+        AND prcp > 0.0""")
+	print
+	print "-- here is a more complicated one. Duplicates are removed when "
+	print "-- DISTINCT is specified. ORDER BY specifies the column to sort"
+	print "-- on. (Just to make sure the following won't confuse you, "
+	print "-- DISTINCT and ORDER BY can be used separately.)"
+	print "SELECT DISTINCT city"
+	print "FROM weather"
+	print "ORDER BY city;"
+	print pgcnx.query("SELECT DISTINCT city FROM weather ORDER BY city")
+
+# selection to a temporary table
+def select_data2(pgcnx):
+	print "-----------------------------"
+	print "-- Retrieving data into other classes:"
+	print "--  a SELECT ... INTO statement can be used to retrieve "
+	print "--  data into another class."
+	print "-----------------------------"
+	print 
+	print "The query :"
+	print "SELECT * INTO TABLE temptab "
+	print "FROM weather"
+	print "WHERE city = 'San Francisco' "
+	print "  and prcp > 0.0"
+	pgcnx.query("""SELECT * INTO TABLE temptab FROM weather
+        WHERE city = 'San Francisco' and prcp > 0.0""")
+	print "Fills the table temptab, that can be listed with :"
+	print "SELECT * from temptab"
+	print pgcnx.query("SELECT * from temptab")
+
+# aggregate creation commands
+def create_aggregate(pgcnx):
+	print "-----------------------------"
+	print "-- Aggregates"
+	print "-----------------------------"
+	print
+	print "Let's consider the query :"
+	print "SELECT max(temp_lo)"
+	print "FROM weather;"
+	print pgcnx.query("SELECT max(temp_lo) FROM weather")
+	print 
+	print "-- Aggregate with GROUP BY"
+	print "SELECT city, max(temp_lo)"
+	print "FROM weather "
+	print "GROUP BY city;"
+	print pgcnx.query( """SELECT city, max(temp_lo)
+        FROM weather GROUP BY city""")
+
+# table join commands
+def join_table(pgcnx):
+	print "-----------------------------"
+	print "-- Joining tables:"
+	print "--  queries can access multiple tables at once or access"
+	print "--  the same table in such a way that multiple instances"
+	print "--  of the table are being processed at the same time."
+	print "-----------------------------"
+	print
+	print "-- suppose we want to find all the records that are in the "
+	print "-- temperature range of other records. W1 and W2 are aliases "
+	print "--for weather."
+	print
+	print "SELECT W1.city, W1.temp_lo, W1.temp_hi, "
+	print "    W2.city, W2.temp_lo, W2.temp_hi"
+	print "FROM weather W1, weather W2"
+	print "WHERE W1.temp_lo < W2.temp_lo "
+	print "  and W1.temp_hi > W2.temp_hi"
+	print
+	print pgcnx.query("""SELECT W1.city, W1.temp_lo, W1.temp_hi,
+        W2.city, W2.temp_lo, W2.temp_hi FROM weather W1, weather W2
+        WHERE W1.temp_lo < W2.temp_lo and W1.temp_hi > W2.temp_hi""")
+	print
+	print "-- let's join two tables. The following joins the weather table"
+	print "-- and the cities table."
+	print
+	print "SELECT city, location, prcp, date"
+	print "FROM weather, cities"
+	print "WHERE name = city"
+	print
+	print pgcnx.query("""SELECT city, location, prcp, date FROM weather, cities
+        WHERE name = city""")
+	print
+	print "-- since the column names are all different, we don't have to "
+	print "-- specify the table name. If you want to be clear, you can do "
+	print "-- the following. They give identical results, of course."
+	print
+	print "SELECT w.city, c.location, w.prcp, w.date"
+	print "FROM weather w, cities c"
+	print "WHERE c.name = w.city;"
+	print
+	print pgcnx.query("""SELECT w.city, c.location, w.prcp, w.date
+        FROM weather w, cities c WHERE c.name = w.city""")
+
+# data updating commands
+def update_data(pgcnx):
+	print "-----------------------------"
+	print "-- Updating data:"
+	print "--  an UPDATE statement is used for updating data. "
+	print "-----------------------------"
+	print 
+	print "-- suppose you discover the temperature readings are all off by"
+	print "-- 2 degrees as of Nov 28, you may update the data as follow:"
+	print
+	print "UPDATE weather"
+	print "  SET temp_hi = temp_hi - 2,  temp_lo = temp_lo - 2"
+	print "  WHERE date > '11/28/1994'"
+	print
+	pgcnx.query("""UPDATE weather
+        SET temp_hi = temp_hi - 2,  temp_lo = temp_lo - 2
+        WHERE date > '11/28/1994'""")
+	print
+	print "SELECT * from weather"
+	print pgcnx.query("SELECT * from weather")
+
+# data deletion commands
+def delete_data(pgcnx):
+	print "-----------------------------"
+	print "-- Deleting data:"
+	print "--  a DELETE statement is used for deleting rows from a "
+	print "--  table."
+	print "-----------------------------"
+	print
+	print "-- suppose you are no longer interested in the weather of "
+	print "-- Hayward, you can do the following to delete those rows from"
+	print "-- the table"
+	print
+	print "DELETE FROM weather WHERE city = 'Hayward'"
+	pgcnx.query("DELETE FROM weather WHERE city = 'Hayward'")
+	print
+	print "SELECT * from weather"
+	print
+	print pgcnx.query("SELECT * from weather")
+	print
+	print "-- you can also delete all the rows in a table by doing the "
+	print "-- following. (This is different from DROP TABLE which removes "
+	print "-- the table in addition to the removing the rows.)"
+	print
+	print "DELETE FROM weather"
+	pgcnx.query("DELETE FROM weather")
+	print
+	print "SELECT * from weather"
+	print pgcnx.query("SELECT * from weather")
+
+# table removal commands
+def remove_table(pgcnx):
+	print "-----------------------------"
+	print "-- Removing the tables:"
+	print "--  DROP TABLE is used to remove tables. After you have"
+	print "--  done this, you can no longer use those tables."
+	print "-----------------------------"
+	print
+	print "DROP TABLE weather, cities, temptab"
+	pgcnx.query("DROP TABLE weather, cities, temptab")
+
+# main demo function
+def demo(pgcnx):
+	create_table(pgcnx)
+	wait_key()
+	insert_data(pgcnx)
+	wait_key()
+	select_data1(pgcnx)
+	select_data2(pgcnx)
+	create_aggregate(pgcnx)
+	join_table(pgcnx)
+	update_data(pgcnx)
+	delete_data(pgcnx)
+	remove_table(pgcnx)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/func.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/func.py b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/func.py
new file mode 100755
index 0000000..af2b412
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/func.py
@@ -0,0 +1,205 @@
+# func.py - demonstrate the use of SQL functions
+# inspired from the PostgreSQL tutorial 
+# adapted to Python 1995 by Pascal ANDRE
+
+print """
+__________________________________________________________________
+MODULE FUNC.PY : SQL FUNCTION DEFINITION TUTORIAL
+
+This module is designed for being imported from python prompt
+
+In order to run the samples included here, first create a connection
+using :                        cnx = func.DB(...)
+
+The "..." should be replaced with whatever arguments you need to open an
+existing database.  Usually all you need is the name of the database and,
+in fact, if it is the same as your login name, you can leave it empty.
+
+then start the demo with:      func.demo(cnx)
+__________________________________________________________________
+""" 
+
+from pg import DB
+import sys
+
+# waits for a key
+def wait_key():
+	print "Press <enter>"
+	sys.stdin.read(1)
+
+# basic functions declaration
+def base_func(pgcnx):
+	print "-----------------------------"
+	print "-- Creating SQL Functions on Base Types"
+	print "--  a CREATE FUNCTION statement lets you create a new "
+	print "--  function that can be used in expressions (in SELECT, "
+	print "--  INSERT, etc.). We will start with functions that "
+	print "--  return values of base types."
+	print "-----------------------------"
+	print
+	print "--"
+	print "-- let's create a simple SQL function that takes no arguments"
+	print "-- and returns 1"
+	print
+	print "CREATE FUNCTION one() RETURNS int4"
+	print "   AS 'SELECT 1 as ONE' LANGUAGE 'sql'"
+	pgcnx.query("""CREATE FUNCTION one() RETURNS int4
+        AS 'SELECT 1 as ONE' LANGUAGE 'sql'""")
+	wait_key()
+	print
+	print "--"
+	print "-- functions can be used in any expressions (eg. in the target"
+	print "-- list or qualifications)"
+	print
+	print "SELECT one() AS answer"
+	print pgcnx.query("SELECT one() AS answer")
+	print
+	print "--"
+	print "-- here's how you create a function that takes arguments. The"
+	print "-- following function returns the sum of its two arguments:"
+	print
+	print "CREATE FUNCTION add_em(int4, int4) RETURNS int4"
+	print "   AS 'SELECT $1 + $2' LANGUAGE 'sql'"
+	pgcnx.query("""CREATE FUNCTION add_em(int4, int4) RETURNS int4
+        AS 'SELECT $1 + $2' LANGUAGE 'sql'""")
+	print
+	print "SELECT add_em(1, 2) AS answer"
+	print pgcnx.query("SELECT add_em(1, 2) AS answer")
+
+# functions on composite types
+def comp_func(pgcnx):
+	print "-----------------------------"
+	print "-- Creating SQL Functions on Composite Types"
+	print "--  it is also possible to create functions that return"
+	print "--  values of composite types."
+	print "-----------------------------"
+	print
+	print "-- before we create more sophisticated functions, let's "
+	print "-- populate an EMP table"
+	print
+	print "CREATE TABLE EMP ("
+	print "    name    text,"
+	print "    salary  int4,"
+	print "    age     int4,"
+	print "    dept    varchar(16)"
+	print ")"
+	pgcnx.query("""CREATE TABLE EMP (
+        name        text,
+        salary      int4,
+        age         int4,
+        dept        varchar(16))""")
+	print
+	print "INSERT INTO EMP VALUES ('Sam', 1200, 16, 'toy')"
+	print "INSERT INTO EMP VALUES ('Claire', 5000, 32, 'shoe')"
+	print "INSERT INTO EMP VALUES ('Andy', -1000, 2, 'candy')"
+	print "INSERT INTO EMP VALUES ('Bill', 4200, 36, 'shoe')"
+	print "INSERT INTO EMP VALUES ('Ginger', 4800, 30, 'candy')"
+	pgcnx.query("INSERT INTO EMP VALUES ('Sam', 1200, 16, 'toy')")
+	pgcnx.query("INSERT INTO EMP VALUES ('Claire', 5000, 32, 'shoe')")
+	pgcnx.query("INSERT INTO EMP VALUES ('Andy', -1000, 2, 'candy')")
+	pgcnx.query("INSERT INTO EMP VALUES ('Bill', 4200, 36, 'shoe')")
+	pgcnx.query("INSERT INTO EMP VALUES ('Ginger', 4800, 30, 'candy')")
+	wait_key()
+	print
+	print "-- the argument of a function can also be a tuple. For "
+	print "-- instance, double_salary takes a tuple of the EMP table"
+	print
+	print "CREATE FUNCTION double_salary(EMP) RETURNS int4"
+	print "   AS 'SELECT $1.salary * 2 AS salary' LANGUAGE 'sql'"
+	pgcnx.query("""CREATE FUNCTION double_salary(EMP) RETURNS int4
+        AS 'SELECT $1.salary * 2 AS salary' LANGUAGE 'sql'""")
+	print
+	print "SELECT name, double_salary(EMP) AS dream"
+	print "FROM EMP"
+	print "WHERE EMP.dept = 'toy'"
+	print pgcnx.query("""SELECT name, double_salary(EMP) AS dream
+        FROM EMP WHERE EMP.dept = 'toy'""")
+	print
+	print "-- the return value of a function can also be a tuple. However,"
+	print "-- make sure that the expressions in the target list is in the "
+	print "-- same order as the columns of EMP."
+	print
+	print "CREATE FUNCTION new_emp() RETURNS EMP"
+	print "   AS 'SELECT \'None\'::text AS name,"
+	print "              1000 AS salary,"
+	print "              25 AS age,"
+	print "              \'none\'::varchar(16) AS dept'"
+	print "   LANGUAGE 'sql'"
+	pgcnx.query("""CREATE FUNCTION new_emp() RETURNS EMP
+        AS 'SELECT \\\'None\\\'::text AS name,
+            1000 AS salary,
+            25 AS age,
+            \\\'none\\\'::varchar(16) AS dept'
+        LANGUAGE 'sql'""")
+	wait_key()
+	print
+	print "-- you can then project a column out of resulting the tuple by"
+	print "-- using the \"function notation\" for projection columns. "
+	print "-- (ie. bar(foo) is equivalent to foo.bar) Note that we don't"
+	print "-- support new_emp().name at this moment."
+	print
+	print "SELECT name(new_emp()) AS nobody"
+	print pgcnx.query("SELECT name(new_emp()) AS nobody")
+	print
+	print "-- let's try one more function that returns tuples"
+	print "CREATE FUNCTION high_pay() RETURNS setof EMP"
+	print "   AS 'SELECT * FROM EMP where salary > 1500'"
+	print "   LANGUAGE 'sql'"
+	pgcnx.query("""CREATE FUNCTION high_pay() RETURNS setof EMP
+        AS 'SELECT * FROM EMP where salary > 1500'
+        LANGUAGE 'sql'""")
+	print
+	print "SELECT name(high_pay()) AS overpaid"
+	print pgcnx.query("SELECT name(high_pay()) AS overpaid")
+
+# function with multiple SQL commands
+def mult_func(pgcnx):
+	print "-----------------------------"
+	print "-- Creating SQL Functions with multiple SQL statements"
+	print "--  you can also create functions that do more than just a"
+	print "--  SELECT."
+	print "-----------------------------"
+	print
+	print "-- you may have noticed that Andy has a negative salary. We'll"
+	print "-- create a function that removes employees with negative "
+	print "-- salaries."
+	print
+	print "SELECT * FROM EMP"
+	print pgcnx.query("SELECT * FROM EMP")
+	print
+	print "CREATE FUNCTION clean_EMP () RETURNS int4"
+	print "   AS 'DELETE FROM EMP WHERE EMP.salary <= 0"
+	print "       SELECT 1 AS ignore_this'"
+	print "   LANGUAGE 'sql'"
+	pgcnx.query("CREATE FUNCTION clean_EMP () RETURNS int4 AS 'DELETE FROM EMP WHERE EMP.salary <= 0; SELECT 1 AS ignore_this' LANGUAGE 'sql'")
+	print
+	print "SELECT clean_EMP()"
+	print pgcnx.query("SELECT clean_EMP()")
+	print
+	print "SELECT * FROM EMP"
+	print pgcnx.query("SELECT * FROM EMP")
+
+# base cleanup
+def demo_cleanup(pgcnx):
+	print "-- remove functions that were created in this file"
+	print
+	print "DROP FUNCTION clean_EMP()"
+	print "DROP FUNCTION high_pay()"
+	print "DROP FUNCTION new_emp()"
+	print "DROP FUNCTION add_em(int4, int4)"
+	print "DROP FUNCTION one()"
+	print
+	print "DROP TABLE EMP CASCADE"
+	pgcnx.query("DROP FUNCTION clean_EMP()")
+	pgcnx.query("DROP FUNCTION high_pay()")
+	pgcnx.query("DROP FUNCTION new_emp()")
+	pgcnx.query("DROP FUNCTION add_em(int4, int4)")
+	pgcnx.query("DROP FUNCTION one()")
+	pgcnx.query("DROP TABLE EMP CASCADE")
+
+# main demo function
+def demo(pgcnx):
+	base_func(pgcnx)
+	comp_func(pgcnx)
+	mult_func(pgcnx)
+	demo_cleanup(pgcnx)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/syscat.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/syscat.py b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/syscat.py
new file mode 100755
index 0000000..1ab1d58
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/tutorial/syscat.py
@@ -0,0 +1,149 @@
+# syscat.py - parses some system catalogs
+# inspired from the PostgreSQL tutorial 
+# adapted to Python 1995 by Pascal ANDRE
+
+print """
+__________________________________________________________________
+MODULE SYSCAT.PY : PARSES SOME POSTGRESQL SYSTEM CATALOGS
+
+This module is designed for being imported from python prompt
+
+In order to run the samples included here, first create a connection
+using :                        cnx = syscat.DB(...)
+
+The "..." should be replaced with whatever arguments you need to open an 
+existing database.  Usually all you need is the name of the database and,
+in fact, if it is the same as your login name, you can leave it empty.
+
+then start the demo with:      syscat.demo(cnx)
+
+Some results may be empty, depending on your base status."
+
+__________________________________________________________________
+"""
+
+from pg import DB
+import sys
+
+# waits for a key
+def wait_key():
+	print "Press <enter>"
+	sys.stdin.read(1)
+
+# lists all simple indices
+def list_simple_ind(pgcnx):
+	result = pgcnx.query("""SELECT bc.relname AS class_name,
+			ic.relname AS index_name, a.attname
+		FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a
+		WHERE i.indrelid = bc.oid AND i.indexrelid = bc.oid
+				AND i.indkey[0] = a.attnum AND a.attrelid = bc.oid
+				AND i.indproc = '0'::oid AND a.attisdropped = 'f'
+		ORDER BY class_name, index_name, attname""")
+	return result
+
+# list all user defined attributes and their type in user-defined classes
+def list_all_attr(pgcnx):
+	result = pgcnx.query("""SELECT c.relname, a.attname, t.typname
+		FROM pg_class c, pg_attribute a, pg_type t
+		WHERE c.relkind = 'r' and c.relname !~ '^pg_'
+			AND c.relname !~ '^Inv' and a.attnum > 0
+			AND a.attrelid = c.oid and a.atttypid = t.oid
+                        AND a.attisdropped = 'f'
+			ORDER BY relname, attname""")
+	return result
+
+# list all user defined base type
+def list_user_base_type(pgcnx):
+	result = pgcnx.query("""SELECT u.usename, t.typname
+			FROM pg_type t, pg_user u
+			WHERE u.usesysid = int2in(int4out(t.typowner))
+				AND t.typrelid = '0'::oid and t.typelem = '0'::oid 
+				AND u.usename <> 'postgres' order by usename, typname""")
+	return result 
+
+# list all right-unary operators
+def list_right_unary_operator(pgcnx):
+	result = pgcnx.query("""SELECT o.oprname AS right_unary,
+			lt.typname AS operand, result.typname AS return_type
+		FROM pg_operator o, pg_type lt, pg_type result
+		WHERE o.oprkind='r' and o.oprleft = lt.oid
+			AND o.oprresult = result.oid
+		ORDER BY operand""")
+	return result
+
+# list all left-unary operators
+def list_left_unary_operator(pgcnx):
+	result = pgcnx.query("""SELECT o.oprname AS left_unary,
+			rt.typname AS operand, result.typname AS return_type
+		FROM pg_operator o, pg_type rt, pg_type result
+		WHERE o.oprkind='l' AND o.oprright = rt.oid
+			AND o.oprresult = result.oid
+		ORDER BY operand""")
+	return result
+
+# list all binary operators
+def list_binary_operator(pgcnx):
+	result = pgcnx.query("""SELECT o.oprname AS binary_op,
+			rt.typname AS right_opr, lt.typname AS left_opr,
+			result.typname AS return_type
+		FROM pg_operator o, pg_type rt, pg_type lt, pg_type result
+		WHERE o.oprkind = 'b' AND o.oprright = rt.oid
+			AND o.oprleft = lt.oid AND o.oprresult = result.oid""")
+	return result
+
+# returns the name, args and return type from all function of lang l
+def list_lang_func(pgcnx, l):
+	result = pgcnx.query("""SELECT p.proname, p.pronargs, t.typname
+		FROM pg_proc p, pg_language l, pg_type t
+		WHERE p.prolang = l.oid AND p.prorettype = t.oid
+			AND l.lanname = '%s'
+		ORDER BY proname""" % l)
+	return result
+
+# lists all the aggregate functions and the type to which they can be applied
+def list_agg_func(pgcnx):
+	result = pgcnx.query("""SELECT p.proname, t.typname
+		FROM pg_aggregate a, pg_proc p, pg_type t
+		WHERE a.aggfnoid = p.oid
+			and p.proargtypes[0] = t.oid
+		ORDER BY proname, typname""")
+	return result
+
+# lists all the operator classes that can be used with each access method as
+# well as the operators that can be used with the respective operator classes
+def list_op_class(pgcnx):
+	result = pgcnx.query("""SELECT am.amname, opc.opcname, opr.oprname
+		FROM pg_am am, pg_amop amop, pg_opclass opc, pg_operator opr
+		WHERE amop.amopid = am.oid and amop.amopclaid = opc.oid
+			AND amop.amopopr = opr.oid order by amname, opcname, oprname""")
+	return result
+
+# demo function - runs all examples
+def demo(pgcnx):
+	import sys, os
+	save_stdout = sys.stdout
+	sys.stdout = os.popen("more", "w")
+	print "Listing simple indices ..."
+	print list_simple_ind(pgcnx)
+	print "Listing all attributes ..."
+	print list_all_attr(pgcnx)
+	print "Listing all user-defined base types ..."
+	print list_user_base_type(pgcnx)
+	print "Listing all left-unary operators defined ..."
+	print list_left_unary_operator(pgcnx)
+	print "Listing all right-unary operators defined ..."
+	print list_right_unary_operator(pgcnx)
+	print "Listing all binary operators ..."
+	print list_binary_operator(pgcnx)
+	print "Listing C external function linked ..."
+	print list_lang_func(pgcnx, 'C')
+	print "Listing C internal functions ..."
+	print list_lang_func(pgcnx, 'internal')
+	print "Listing SQL functions defined ..."
+	print list_lang_func(pgcnx, 'sql')
+	print "Listing 'aggregate functions' ..."
+	print list_agg_func(pgcnx)
+	print "Listing 'operator classes' ..."
+	print list_op_class(pgcnx)
+	del sys.stdout
+	sys.stdout = save_stdout



[08/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/reader.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/reader.py b/tools/bin/ext/yaml/reader.py
new file mode 100644
index 0000000..1d4667c
--- /dev/null
+++ b/tools/bin/ext/yaml/reader.py
@@ -0,0 +1,225 @@
+# This module contains abstractions for the input stream. You don't have to
+# looks further, there are no pretty code.
+#
+# We define two classes here.
+#
+#   Mark(source, line, column)
+# It's just a record and its only use is producing nice error messages.
+# Parser does not use it for any other purposes.
+#
+#   Reader(source, data)
+# Reader determines the encoding of `data` and converts it to unicode.
+# Reader provides the following methods and attributes:
+#   reader.peek(length=1) - return the next `length` characters
+#   reader.forward(length=1) - move the current position to `length` characters.
+#   reader.index - the number of the current character.
+#   reader.line, stream.column - the line and the column of the current character.
+
+__all__ = ['Reader', 'ReaderError']
+
+from error import YAMLError, Mark
+
+import codecs, re
+
+# Unfortunately, codec functions in Python 2.3 does not support the `finish`
+# arguments, so we have to write our own wrappers.
+
+try:
+    codecs.utf_8_decode('', 'strict', False)
+    from codecs import utf_8_decode, utf_16_le_decode, utf_16_be_decode
+
+except TypeError:
+
+    def utf_16_le_decode(data, errors, finish=False):
+        if not finish and len(data) % 2 == 1:
+            data = data[:-1]
+        return codecs.utf_16_le_decode(data, errors)
+
+    def utf_16_be_decode(data, errors, finish=False):
+        if not finish and len(data) % 2 == 1:
+            data = data[:-1]
+        return codecs.utf_16_be_decode(data, errors)
+
+    def utf_8_decode(data, errors, finish=False):
+        if not finish:
+            # We are trying to remove a possible incomplete multibyte character
+            # from the suffix of the data.
+            # The first byte of a multi-byte sequence is in the range 0xc0 to 0xfd.
+            # All further bytes are in the range 0x80 to 0xbf.
+            # UTF-8 encoded UCS characters may be up to six bytes long.
+            count = 0
+            while count < 5 and count < len(data)   \
+                    and '\x80' <= data[-count-1] <= '\xBF':
+                count -= 1
+            if count < 5 and count < len(data)  \
+                    and '\xC0' <= data[-count-1] <= '\xFD':
+                data = data[:-count-1]
+        return codecs.utf_8_decode(data, errors)
+
+class ReaderError(YAMLError):
+
+    def __init__(self, name, position, character, encoding, reason):
+        self.name = name
+        self.character = character
+        self.position = position
+        self.encoding = encoding
+        self.reason = reason
+
+    def __str__(self):
+        if isinstance(self.character, str):
+            return "'%s' codec can't decode byte #x%02x: %s\n"  \
+                    "  in \"%s\", position %d"    \
+                    % (self.encoding, ord(self.character), self.reason,
+                            self.name, self.position)
+        else:
+            return "unacceptable character #x%04x: %s\n"    \
+                    "  in \"%s\", position %d"    \
+                    % (ord(self.character), self.reason,
+                            self.name, self.position)
+
+class Reader(object):
+    # Reader:
+    # - determines the data encoding and converts it to unicode,
+    # - checks if characters are in allowed range,
+    # - adds '\0' to the end.
+
+    # Reader accepts
+    #  - a `str` object,
+    #  - a `unicode` object,
+    #  - a file-like object with its `read` method returning `str`,
+    #  - a file-like object with its `read` method returning `unicode`.
+
+    # Yeah, it's ugly and slow.
+
+    def __init__(self, stream):
+        self.name = None
+        self.stream = None
+        self.stream_pointer = 0
+        self.eof = True
+        self.buffer = u''
+        self.pointer = 0
+        self.raw_buffer = None
+        self.raw_decode = None
+        self.encoding = None
+        self.index = 0
+        self.line = 0
+        self.column = 0
+        if isinstance(stream, unicode):
+            self.name = "<unicode string>"
+            self.check_printable(stream)
+            self.buffer = stream+u'\0'
+        elif isinstance(stream, str):
+            self.name = "<string>"
+            self.raw_buffer = stream
+            self.determine_encoding()
+        else:
+            self.stream = stream
+            self.name = getattr(stream, 'name', "<file>")
+            self.eof = False
+            self.raw_buffer = ''
+            self.determine_encoding()
+
+    def peek(self, index=0):
+        try:
+            return self.buffer[self.pointer+index]
+        except IndexError:
+            self.update(index+1)
+            return self.buffer[self.pointer+index]
+
+    def prefix(self, length=1):
+        if self.pointer+length >= len(self.buffer):
+            self.update(length)
+        return self.buffer[self.pointer:self.pointer+length]
+
+    def forward(self, length=1):
+        if self.pointer+length+1 >= len(self.buffer):
+            self.update(length+1)
+        while length:
+            ch = self.buffer[self.pointer]
+            self.pointer += 1
+            self.index += 1
+            if ch in u'\n\x85\u2028\u2029'  \
+                    or (ch == u'\r' and self.buffer[self.pointer] != u'\n'):
+                self.line += 1
+                self.column = 0
+            elif ch != u'\uFEFF':
+                self.column += 1
+            length -= 1
+
+    def get_mark(self):
+        if self.stream is None:
+            return Mark(self.name, self.index, self.line, self.column,
+                    self.buffer, self.pointer)
+        else:
+            return Mark(self.name, self.index, self.line, self.column,
+                    None, None)
+
+    def determine_encoding(self):
+        while not self.eof and len(self.raw_buffer) < 2:
+            self.update_raw()
+        if not isinstance(self.raw_buffer, unicode):
+            if self.raw_buffer.startswith(codecs.BOM_UTF16_LE):
+                self.raw_decode = utf_16_le_decode
+                self.encoding = 'utf-16-le'
+            elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE):
+                self.raw_decode = utf_16_be_decode
+                self.encoding = 'utf-16-be'
+            else:
+                self.raw_decode = utf_8_decode
+                self.encoding = 'utf-8'
+        self.update(1)
+
+    NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD]')
+    def check_printable(self, data):
+        match = self.NON_PRINTABLE.search(data)
+        if match:
+            character = match.group()
+            position = self.index+(len(self.buffer)-self.pointer)+match.start()
+            raise ReaderError(self.name, position, character,
+                    'unicode', "special characters are not allowed")
+
+    def update(self, length):
+        if self.raw_buffer is None:
+            return
+        self.buffer = self.buffer[self.pointer:]
+        self.pointer = 0
+        while len(self.buffer) < length:
+            if not self.eof:
+                self.update_raw()
+            if self.raw_decode is not None:
+                try:
+                    data, converted = self.raw_decode(self.raw_buffer,
+                            'strict', self.eof)
+                except UnicodeDecodeError, exc:
+                    character = exc.object[exc.start]
+                    if self.stream is not None:
+                        position = self.stream_pointer-len(self.raw_buffer)+exc.start
+                    else:
+                        position = exc.start
+                    raise ReaderError(self.name, position, character,
+                            exc.encoding, exc.reason)
+            else:
+                data = self.raw_buffer
+                converted = len(data)
+            self.check_printable(data)
+            self.buffer += data
+            self.raw_buffer = self.raw_buffer[converted:]
+            if self.eof:
+                self.buffer += u'\0'
+                self.raw_buffer = None
+                break
+
+    def update_raw(self, size=1024):
+        data = self.stream.read(size)
+        if data:
+            self.raw_buffer += data
+            self.stream_pointer += len(data)
+        else:
+            self.eof = True
+
+#try:
+#    import psyco
+#    psyco.bind(Reader)
+#except ImportError:
+#    pass
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/reader.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/reader.pyc b/tools/bin/ext/yaml/reader.pyc
new file mode 100644
index 0000000..e41c788
Binary files /dev/null and b/tools/bin/ext/yaml/reader.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/representer.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/representer.py b/tools/bin/ext/yaml/representer.py
new file mode 100644
index 0000000..1f4fe59
--- /dev/null
+++ b/tools/bin/ext/yaml/representer.py
@@ -0,0 +1,488 @@
+
+__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer',
+    'RepresenterError']
+
+from error import *
+from nodes import *
+
+import datetime
+
+try:
+    set
+except NameError:
+    from sets import Set as set
+
+import sys, copy_reg, types
+
+class RepresenterError(YAMLError):
+    pass
+
+class BaseRepresenter(object):
+
+    yaml_representers = {}
+    yaml_multi_representers = {}
+
+    def __init__(self, default_style=None, default_flow_style=None):
+        self.default_style = default_style
+        self.default_flow_style = default_flow_style
+        self.represented_objects = {}
+        self.object_keeper = []
+        self.alias_key = None
+
+    def represent(self, data):
+        node = self.represent_data(data)
+        self.serialize(node)
+        self.represented_objects = {}
+        self.object_keeper = []
+        self.alias_key = None
+
+    def get_classobj_bases(self, cls):
+        bases = [cls]
+        for base in cls.__bases__:
+            bases.extend(self.get_classobj_bases(base))
+        return bases
+
+    def represent_data(self, data):
+        if self.ignore_aliases(data):
+            self.alias_key = None
+        else:
+            self.alias_key = id(data)
+        if self.alias_key is not None:
+            if self.alias_key in self.represented_objects:
+                node = self.represented_objects[self.alias_key]
+                #if node is None:
+                #    raise RepresenterError("recursive objects are not allowed: %r" % data)
+                return node
+            #self.represented_objects[alias_key] = None
+            self.object_keeper.append(data)
+        data_types = type(data).__mro__
+        if type(data) is types.InstanceType:
+            data_types = self.get_classobj_bases(data.__class__)+list(data_types)
+        if data_types[0] in self.yaml_representers:
+            node = self.yaml_representers[data_types[0]](self, data)
+        else:
+            for data_type in data_types:
+                if data_type in self.yaml_multi_representers:
+                    node = self.yaml_multi_representers[data_type](self, data)
+                    break
+            else:
+                if None in self.yaml_multi_representers:
+                    node = self.yaml_multi_representers[None](self, data)
+                elif None in self.yaml_representers:
+                    node = self.yaml_representers[None](self, data)
+                else:
+                    node = ScalarNode(None, unicode(data))
+        #if alias_key is not None:
+        #    self.represented_objects[alias_key] = node
+        return node
+
+    def add_representer(cls, data_type, representer):
+        if not 'yaml_representers' in cls.__dict__:
+            cls.yaml_representers = cls.yaml_representers.copy()
+        cls.yaml_representers[data_type] = representer
+    add_representer = classmethod(add_representer)
+
+    def add_multi_representer(cls, data_type, representer):
+        if not 'yaml_multi_representers' in cls.__dict__:
+            cls.yaml_multi_representers = cls.yaml_multi_representers.copy()
+        cls.yaml_multi_representers[data_type] = representer
+    add_multi_representer = classmethod(add_multi_representer)
+
+    def represent_scalar(self, tag, value, style=None):
+        if style is None:
+            style = self.default_style
+        node = ScalarNode(tag, value, style=style)
+        if self.alias_key is not None:
+            self.represented_objects[self.alias_key] = node
+        return node
+
+    def represent_sequence(self, tag, sequence, flow_style=None):
+        value = []
+        node = SequenceNode(tag, value, flow_style=flow_style)
+        if self.alias_key is not None:
+            self.represented_objects[self.alias_key] = node
+        best_style = True
+        for item in sequence:
+            node_item = self.represent_data(item)
+            if not (isinstance(node_item, ScalarNode) and not node_item.style):
+                best_style = False
+            value.append(node_item)
+        if flow_style is None:
+            if self.default_flow_style is not None:
+                node.flow_style = self.default_flow_style
+            else:
+                node.flow_style = best_style
+        return node
+
+    def represent_mapping(self, tag, mapping, flow_style=None):
+        value = []
+        node = MappingNode(tag, value, flow_style=flow_style)
+        if self.alias_key is not None:
+            self.represented_objects[self.alias_key] = node
+        best_style = True
+        if hasattr(mapping, 'items'):
+            mapping = mapping.items()
+            mapping.sort()
+        for item_key, item_value in mapping:
+            node_key = self.represent_data(item_key)
+            node_value = self.represent_data(item_value)
+            if not (isinstance(node_key, ScalarNode) and not node_key.style):
+                best_style = False
+            if not (isinstance(node_value, ScalarNode) and not node_value.style):
+                best_style = False
+            value.append((node_key, node_value))
+        if flow_style is None:
+            if self.default_flow_style is not None:
+                node.flow_style = self.default_flow_style
+            else:
+                node.flow_style = best_style
+        return node
+
+    def ignore_aliases(self, data):
+        return False
+
+class SafeRepresenter(BaseRepresenter):
+
+    def ignore_aliases(self, data):
+        if data in [None, ()]:
+            return True
+        if isinstance(data, (str, unicode, bool, int, float)):
+            return True
+
+    def represent_none(self, data):
+        return self.represent_scalar(u'tag:yaml.org,2002:null',
+                u'null')
+
+    def represent_str(self, data):
+        tag = None
+        style = None
+        try:
+            data = unicode(data, 'ascii')
+            tag = u'tag:yaml.org,2002:str'
+        except UnicodeDecodeError:
+            try:
+                data = unicode(data, 'utf-8')
+                tag = u'tag:yaml.org,2002:str'
+            except UnicodeDecodeError:
+                data = data.encode('base64')
+                tag = u'tag:yaml.org,2002:binary'
+                style = '|'
+        return self.represent_scalar(tag, data, style=style)
+
+    def represent_unicode(self, data):
+        return self.represent_scalar(u'tag:yaml.org,2002:str', data)
+
+    def represent_bool(self, data):
+        if data:
+            value = u'true'
+        else:
+            value = u'false'
+        return self.represent_scalar(u'tag:yaml.org,2002:bool', value)
+
+    def represent_int(self, data):
+        return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data))
+
+    def represent_long(self, data):
+        return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data))
+
+    inf_value = 1e300
+    while repr(inf_value) != repr(inf_value*inf_value):
+        inf_value *= inf_value
+
+    def represent_float(self, data):
+        if data != data or (data == 0.0 and data == 1.0):
+            value = u'.nan'
+        elif data == self.inf_value:
+            value = u'.inf'
+        elif data == -self.inf_value:
+            value = u'-.inf'
+        else:
+            value = unicode(repr(data)).lower()
+            # Note that in some cases `repr(data)` represents a float number
+            # without the decimal parts.  For instance:
+            #   >>> repr(1e17)
+            #   '1e17'
+            # Unfortunately, this is not a valid float representation according
+            # to the definition of the `!!float` tag.  We fix this by adding
+            # '.0' before the 'e' symbol.
+            if u'.' not in value and u'e' in value:
+                value = value.replace(u'e', u'.0e', 1)
+        return self.represent_scalar(u'tag:yaml.org,2002:float', value)
+
+    def represent_list(self, data):
+        #pairs = (len(data) > 0 and isinstance(data, list))
+        #if pairs:
+        #    for item in data:
+        #        if not isinstance(item, tuple) or len(item) != 2:
+        #            pairs = False
+        #            break
+        #if not pairs:
+            return self.represent_sequence(u'tag:yaml.org,2002:seq', data)
+        #value = []
+        #for item_key, item_value in data:
+        #    value.append(self.represent_mapping(u'tag:yaml.org,2002:map',
+        #        [(item_key, item_value)]))
+        #return SequenceNode(u'tag:yaml.org,2002:pairs', value)
+
+    def represent_dict(self, data):
+        return self.represent_mapping(u'tag:yaml.org,2002:map', data)
+
+    def represent_set(self, data):
+        value = {}
+        for key in data:
+            value[key] = None
+        return self.represent_mapping(u'tag:yaml.org,2002:set', value)
+
+    def represent_date(self, data):
+        value = unicode(data.isoformat())
+        return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
+
+    def represent_datetime(self, data):
+        value = unicode(data.isoformat(' '))
+        return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
+
+    def represent_yaml_object(self, tag, data, cls, flow_style=None):
+        if hasattr(data, '__getstate__'):
+            state = data.__getstate__()
+        else:
+            state = data.__dict__.copy()
+        return self.represent_mapping(tag, state, flow_style=flow_style)
+
+    def represent_undefined(self, data):
+        raise RepresenterError("cannot represent an object: %s" % data)
+
+SafeRepresenter.add_representer(type(None),
+        SafeRepresenter.represent_none)
+
+SafeRepresenter.add_representer(str,
+        SafeRepresenter.represent_str)
+
+SafeRepresenter.add_representer(unicode,
+        SafeRepresenter.represent_unicode)
+
+SafeRepresenter.add_representer(bool,
+        SafeRepresenter.represent_bool)
+
+SafeRepresenter.add_representer(int,
+        SafeRepresenter.represent_int)
+
+SafeRepresenter.add_representer(long,
+        SafeRepresenter.represent_long)
+
+SafeRepresenter.add_representer(float,
+        SafeRepresenter.represent_float)
+
+SafeRepresenter.add_representer(list,
+        SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(tuple,
+        SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(dict,
+        SafeRepresenter.represent_dict)
+
+SafeRepresenter.add_representer(set,
+        SafeRepresenter.represent_set)
+
+SafeRepresenter.add_representer(datetime.date,
+        SafeRepresenter.represent_date)
+SafeRepresenter.add_representer(datetime.datetime,
+        SafeRepresenter.represent_datetime)
+
+SafeRepresenter.add_representer(None,
+        SafeRepresenter.represent_undefined)
+
+class Representer(SafeRepresenter):
+
+    def represent_str(self, data):
+        tag = None
+        style = None
+        try:
+            data = unicode(data, 'ascii')
+            tag = u'tag:yaml.org,2002:str'
+        except UnicodeDecodeError:
+            try:
+                data = unicode(data, 'utf-8')
+                tag = u'tag:yaml.org,2002:python/str'
+            except UnicodeDecodeError:
+                data = data.encode('base64')
+                tag = u'tag:yaml.org,2002:binary'
+                style = '|'
+        return self.represent_scalar(tag, data, style=style)
+
+    def represent_unicode(self, data):
+        tag = None
+        try:
+            data.encode('ascii')
+            tag = u'tag:yaml.org,2002:python/unicode'
+        except UnicodeEncodeError:
+            tag = u'tag:yaml.org,2002:str'
+        return self.represent_scalar(tag, data)
+
+    def represent_long(self, data):
+        tag = u'tag:yaml.org,2002:int'
+        if int(data) is not data:
+            tag = u'tag:yaml.org,2002:python/long'
+        return self.represent_scalar(tag, unicode(data))
+
+    def represent_complex(self, data):
+        if data.imag == 0.0:
+            data = u'%r' % data.real
+        elif data.real == 0.0:
+            data = u'%rj' % data.imag
+        elif data.imag > 0:
+            data = u'%r+%rj' % (data.real, data.imag)
+        else:
+            data = u'%r%rj' % (data.real, data.imag)
+        return self.represent_scalar(u'tag:yaml.org,2002:python/complex', data)
+
+    def represent_tuple(self, data):
+        return self.represent_sequence(u'tag:yaml.org,2002:python/tuple', data)
+
+    def represent_name(self, data):
+        name = u'%s.%s' % (data.__module__, data.__name__)
+        return self.represent_scalar(u'tag:yaml.org,2002:python/name:'+name, u'')
+
+    def represent_module(self, data):
+        return self.represent_scalar(
+                u'tag:yaml.org,2002:python/module:'+data.__name__, u'')
+
+    def represent_instance(self, data):
+        # For instances of classic classes, we use __getinitargs__ and
+        # __getstate__ to serialize the data.
+
+        # If data.__getinitargs__ exists, the object must be reconstructed by
+        # calling cls(**args), where args is a tuple returned by
+        # __getinitargs__. Otherwise, the cls.__init__ method should never be
+        # called and the class instance is created by instantiating a trivial
+        # class and assigning to the instance's __class__ variable.
+
+        # If data.__getstate__ exists, it returns the state of the object.
+        # Otherwise, the state of the object is data.__dict__.
+
+        # We produce either a !!python/object or !!python/object/new node.
+        # If data.__getinitargs__ does not exist and state is a dictionary, we
+        # produce a !!python/object node . Otherwise we produce a
+        # !!python/object/new node.
+
+        cls = data.__class__
+        class_name = u'%s.%s' % (cls.__module__, cls.__name__)
+        args = None
+        state = None
+        if hasattr(data, '__getinitargs__'):
+            args = list(data.__getinitargs__())
+        if hasattr(data, '__getstate__'):
+            state = data.__getstate__()
+        else:
+            state = data.__dict__
+        if args is None and isinstance(state, dict):
+            return self.represent_mapping(
+                    u'tag:yaml.org,2002:python/object:'+class_name, state)
+        if isinstance(state, dict) and not state:
+            return self.represent_sequence(
+                    u'tag:yaml.org,2002:python/object/new:'+class_name, args)
+        value = {}
+        if args:
+            value['args'] = args
+        value['state'] = state
+        return self.represent_mapping(
+                u'tag:yaml.org,2002:python/object/new:'+class_name, value)
+
+    def represent_object(self, data):
+        # We use __reduce__ API to save the data. data.__reduce__ returns
+        # a tuple of length 2-5:
+        #   (function, args, state, listitems, dictitems)
+
+        # For reconstructing, we calls function(*args), then set its state,
+        # listitems, and dictitems if they are not None.
+
+        # A special case is when function.__name__ == '__newobj__'. In this
+        # case we create the object with args[0].__new__(*args).
+
+        # Another special case is when __reduce__ returns a string - we don't
+        # support it.
+
+        # We produce a !!python/object, !!python/object/new or
+        # !!python/object/apply node.
+
+        cls = type(data)
+        if cls in copy_reg.dispatch_table:
+            reduce = copy_reg.dispatch_table[cls](data)
+        elif hasattr(data, '__reduce_ex__'):
+            reduce = data.__reduce_ex__(2)
+        elif hasattr(data, '__reduce__'):
+            reduce = data.__reduce__()
+        else:
+            raise RepresenterError("cannot represent object: %r" % data)
+        reduce = (list(reduce)+[None]*5)[:5]
+        function, args, state, listitems, dictitems = reduce
+        args = list(args)
+        if state is None:
+            state = {}
+        if listitems is not None:
+            listitems = list(listitems)
+        if dictitems is not None:
+            dictitems = dict(dictitems)
+        if function.__name__ == '__newobj__':
+            function = args[0]
+            args = args[1:]
+            tag = u'tag:yaml.org,2002:python/object/new:'
+            newobj = True
+        else:
+            tag = u'tag:yaml.org,2002:python/object/apply:'
+            newobj = False
+        function_name = u'%s.%s' % (function.__module__, function.__name__)
+        if not args and not listitems and not dictitems \
+                and isinstance(state, dict) and newobj:
+            return self.represent_mapping(
+                    u'tag:yaml.org,2002:python/object:'+function_name, state)
+        if not listitems and not dictitems  \
+                and isinstance(state, dict) and not state:
+            return self.represent_sequence(tag+function_name, args)
+        value = {}
+        if args:
+            value['args'] = args
+        if state or not isinstance(state, dict):
+            value['state'] = state
+        if listitems:
+            value['listitems'] = listitems
+        if dictitems:
+            value['dictitems'] = dictitems
+        return self.represent_mapping(tag+function_name, value)
+
+Representer.add_representer(str,
+        Representer.represent_str)
+
+Representer.add_representer(unicode,
+        Representer.represent_unicode)
+
+Representer.add_representer(long,
+        Representer.represent_long)
+
+Representer.add_representer(complex,
+        Representer.represent_complex)
+
+Representer.add_representer(tuple,
+        Representer.represent_tuple)
+
+Representer.add_representer(type,
+        Representer.represent_name)
+
+Representer.add_representer(types.ClassType,
+        Representer.represent_name)
+
+Representer.add_representer(types.FunctionType,
+        Representer.represent_name)
+
+Representer.add_representer(types.BuiltinFunctionType,
+        Representer.represent_name)
+
+Representer.add_representer(types.ModuleType,
+        Representer.represent_module)
+
+Representer.add_multi_representer(types.InstanceType,
+        Representer.represent_instance)
+
+Representer.add_multi_representer(object,
+        Representer.represent_object)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/representer.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/representer.pyc b/tools/bin/ext/yaml/representer.pyc
new file mode 100644
index 0000000..f12198a
Binary files /dev/null and b/tools/bin/ext/yaml/representer.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/resolver.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/resolver.py b/tools/bin/ext/yaml/resolver.py
new file mode 100644
index 0000000..5cbf6b3
--- /dev/null
+++ b/tools/bin/ext/yaml/resolver.py
@@ -0,0 +1,223 @@
+
+__all__ = ['BaseResolver', 'Resolver']
+
+from error import *
+from nodes import *
+
+import re
+
+class ResolverError(YAMLError):
+    pass
+
+class BaseResolver(object):
+
+    DEFAULT_SCALAR_TAG = u'tag:yaml.org,2002:str'
+    DEFAULT_SEQUENCE_TAG = u'tag:yaml.org,2002:seq'
+    DEFAULT_MAPPING_TAG = u'tag:yaml.org,2002:map'
+
+    yaml_implicit_resolvers = {}
+    yaml_path_resolvers = {}
+
+    def __init__(self):
+        self.resolver_exact_paths = []
+        self.resolver_prefix_paths = []
+
+    def add_implicit_resolver(cls, tag, regexp, first):
+        if not 'yaml_implicit_resolvers' in cls.__dict__:
+            cls.yaml_implicit_resolvers = cls.yaml_implicit_resolvers.copy()
+        if first is None:
+            first = [None]
+        for ch in first:
+            cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp))
+    add_implicit_resolver = classmethod(add_implicit_resolver)
+
+    def add_path_resolver(cls, tag, path, kind=None):
+        # Note: `add_path_resolver` is experimental.  The API could be changed.
+        # `new_path` is a pattern that is matched against the path from the
+        # root to the node that is being considered.  `node_path` elements are
+        # tuples `(node_check, index_check)`.  `node_check` is a node class:
+        # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`.  `None`
+        # matches any kind of a node.  `index_check` could be `None`, a boolean
+        # value, a string value, or a number.  `None` and `False` match against
+        # any _value_ of sequence and mapping nodes.  `True` matches against
+        # any _key_ of a mapping node.  A string `index_check` matches against
+        # a mapping value that corresponds to a scalar key which content is
+        # equal to the `index_check` value.  An integer `index_check` matches
+        # against a sequence value with the index equal to `index_check`.
+        if not 'yaml_path_resolvers' in cls.__dict__:
+            cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy()
+        new_path = []
+        for element in path:
+            if isinstance(element, (list, tuple)):
+                if len(element) == 2:
+                    node_check, index_check = element
+                elif len(element) == 1:
+                    node_check = element[0]
+                    index_check = True
+                else:
+                    raise ResolverError("Invalid path element: %s" % element)
+            else:
+                node_check = None
+                index_check = element
+            if node_check is str:
+                node_check = ScalarNode
+            elif node_check is list:
+                node_check = SequenceNode
+            elif node_check is dict:
+                node_check = MappingNode
+            elif node_check not in [ScalarNode, SequenceNode, MappingNode]  \
+                    and not isinstance(node_check, basestring)  \
+                    and node_check is not None:
+                raise ResolverError("Invalid node checker: %s" % node_check)
+            if not isinstance(index_check, (basestring, int))   \
+                    and index_check is not None:
+                raise ResolverError("Invalid index checker: %s" % index_check)
+            new_path.append((node_check, index_check))
+        if kind is str:
+            kind = ScalarNode
+        elif kind is list:
+            kind = SequenceNode
+        elif kind is dict:
+            kind = MappingNode
+        elif kind not in [ScalarNode, SequenceNode, MappingNode]    \
+                and kind is not None:
+            raise ResolverError("Invalid node kind: %s" % kind)
+        cls.yaml_path_resolvers[tuple(new_path), kind] = tag
+    add_path_resolver = classmethod(add_path_resolver)
+
+    def descend_resolver(self, current_node, current_index):
+        if not self.yaml_path_resolvers:
+            return
+        exact_paths = {}
+        prefix_paths = []
+        if current_node:
+            depth = len(self.resolver_prefix_paths)
+            for path, kind in self.resolver_prefix_paths[-1]:
+                if self.check_resolver_prefix(depth, path, kind,
+                        current_node, current_index):
+                    if len(path) > depth:
+                        prefix_paths.append((path, kind))
+                    else:
+                        exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+        else:
+            for path, kind in self.yaml_path_resolvers:
+                if not path:
+                    exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+                else:
+                    prefix_paths.append((path, kind))
+        self.resolver_exact_paths.append(exact_paths)
+        self.resolver_prefix_paths.append(prefix_paths)
+
+    def ascend_resolver(self):
+        if not self.yaml_path_resolvers:
+            return
+        self.resolver_exact_paths.pop()
+        self.resolver_prefix_paths.pop()
+
+    def check_resolver_prefix(self, depth, path, kind,
+            current_node, current_index):
+        node_check, index_check = path[depth-1]
+        if isinstance(node_check, basestring):
+            if current_node.tag != node_check:
+                return
+        elif node_check is not None:
+            if not isinstance(current_node, node_check):
+                return
+        if index_check is True and current_index is not None:
+            return
+        if (index_check is False or index_check is None)    \
+                and current_index is None:
+            return
+        if isinstance(index_check, basestring):
+            if not (isinstance(current_index, ScalarNode)
+                    and index_check == current_index.value):
+                return
+        elif isinstance(index_check, int) and not isinstance(index_check, bool):
+            if index_check != current_index:
+                return
+        return True
+
+    def resolve(self, kind, value, implicit):
+        if kind is ScalarNode and implicit[0]:
+            if value == u'':
+                resolvers = self.yaml_implicit_resolvers.get(u'', [])
+            else:
+                resolvers = self.yaml_implicit_resolvers.get(value[0], [])
+            resolvers += self.yaml_implicit_resolvers.get(None, [])
+            for tag, regexp in resolvers:
+                if regexp.match(value):
+                    return tag
+            implicit = implicit[1]
+        if self.yaml_path_resolvers:
+            exact_paths = self.resolver_exact_paths[-1]
+            if kind in exact_paths:
+                return exact_paths[kind]
+            if None in exact_paths:
+                return exact_paths[None]
+        if kind is ScalarNode:
+            return self.DEFAULT_SCALAR_TAG
+        elif kind is SequenceNode:
+            return self.DEFAULT_SEQUENCE_TAG
+        elif kind is MappingNode:
+            return self.DEFAULT_MAPPING_TAG
+
+class Resolver(BaseResolver):
+    pass
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:bool',
+        re.compile(ur'''^(?:yes|Yes|YES|no|No|NO
+                    |true|True|TRUE|false|False|FALSE
+                    |on|On|ON|off|Off|OFF)$''', re.X),
+        list(u'yYnNtTfFoO'))
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:float',
+        re.compile(ur'''^(?:[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*(?:[eE][-+][0-9]+)?
+                    |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*
+                    |[-+]?\.(?:inf|Inf|INF)
+                    |\.(?:nan|NaN|NAN))$''', re.X),
+        list(u'-+0123456789.'))
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:int',
+        re.compile(ur'''^(?:[-+]?0b[0-1_]+
+                    |[-+]?0[0-7_]+
+                    |[-+]?(?:0|[1-9][0-9_]*)
+                    |[-+]?0x[0-9a-fA-F_]+
+                    |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X),
+        list(u'-+0123456789'))
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:merge',
+        re.compile(ur'^(?:<<)$'),
+        ['<'])
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:null',
+        re.compile(ur'''^(?: ~
+                    |null|Null|NULL
+                    | )$''', re.X),
+        [u'~', u'n', u'N', u''])
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:timestamp',
+        re.compile(ur'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
+                    |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]?
+                     (?:[Tt]|[ \t]+)[0-9][0-9]?
+                     :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)?
+                     (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X),
+        list(u'0123456789'))
+
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:value',
+        re.compile(ur'^(?:=)$'),
+        ['='])
+
+# The following resolver is only for documentation purposes. It cannot work
+# because plain scalars cannot start with '!', '&', or '*'.
+Resolver.add_implicit_resolver(
+        u'tag:yaml.org,2002:yaml',
+        re.compile(ur'^(?:!|&|\*)$'),
+        list(u'!&*'))
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/resolver.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/resolver.pyc b/tools/bin/ext/yaml/resolver.pyc
new file mode 100644
index 0000000..8f83512
Binary files /dev/null and b/tools/bin/ext/yaml/resolver.pyc differ



[23/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_proc32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_proc32.data b/src/test/regress/data/upgrade33/pg_proc32.data
new file mode 100644
index 0000000..c155798
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_proc32.data
@@ -0,0 +1,2687 @@
+proname,pronamespace,proowner,prolang,proisagg,prosecdef,proisstrict,proretset,provolatile,pronargs,prorettype,proiswin,proargtypes,proallargtypes,proargmodes,proargnames,prosrc,probin,proacl
+1242,boolin,11,10,12,f,f,t,f,i,1,16,f,2275,,,,boolin,-,
+1243,boolout,11,10,12,f,f,t,f,i,1,2275,f,16,,,,boolout,-,
+1244,byteain,11,10,12,f,f,t,f,i,1,17,f,2275,,,,byteain,-,
+31,byteaout,11,10,12,f,f,t,f,i,1,2275,f,17,,,,byteaout,-,
+1245,charin,11,10,12,f,f,t,f,i,1,18,f,2275,,,,charin,-,
+33,charout,11,10,12,f,f,t,f,i,1,2275,f,18,,,,charout,-,
+34,namein,11,10,12,f,f,t,f,i,1,19,f,2275,,,,namein,-,
+35,nameout,11,10,12,f,f,t,f,i,1,2275,f,19,,,,nameout,-,
+38,int2in,11,10,12,f,f,t,f,i,1,21,f,2275,,,,int2in,-,
+39,int2out,11,10,12,f,f,t,f,i,1,2275,f,21,,,,int2out,-,
+40,int2vectorin,11,10,12,f,f,t,f,i,1,22,f,2275,,,,int2vectorin,-,
+41,int2vectorout,11,10,12,f,f,t,f,i,1,2275,f,22,,,,int2vectorout,-,
+42,int4in,11,10,12,f,f,t,f,i,1,23,f,2275,,,,int4in,-,
+43,int4out,11,10,12,f,f,t,f,i,1,2275,f,23,,,,int4out,-,
+44,regprocin,11,10,12,f,f,t,f,s,1,24,f,2275,,,,regprocin,-,
+45,regprocout,11,10,12,f,f,t,f,s,1,2275,f,24,,,,regprocout,-,
+46,textin,11,10,12,f,f,t,f,i,1,25,f,2275,,,,textin,-,
+47,textout,11,10,12,f,f,t,f,i,1,2275,f,25,,,,textout,-,
+48,tidin,11,10,12,f,f,t,f,i,1,27,f,2275,,,,tidin,-,
+49,tidout,11,10,12,f,f,t,f,i,1,2275,f,27,,,,tidout,-,
+50,xidin,11,10,12,f,f,t,f,i,1,28,f,2275,,,,xidin,-,
+51,xidout,11,10,12,f,f,t,f,i,1,2275,f,28,,,,xidout,-,
+52,cidin,11,10,12,f,f,t,f,i,1,29,f,2275,,,,cidin,-,
+53,cidout,11,10,12,f,f,t,f,i,1,2275,f,29,,,,cidout,-,
+54,oidvectorin,11,10,12,f,f,t,f,i,1,30,f,2275,,,,oidvectorin,-,
+55,oidvectorout,11,10,12,f,f,t,f,i,1,2275,f,30,,,,oidvectorout,-,
+56,boollt,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boollt,-,
+57,boolgt,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolgt,-,
+60,booleq,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,booleq,-,
+61,chareq,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,chareq,-,
+62,nameeq,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,nameeq,-,
+63,int2eq,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2eq,-,
+64,int2lt,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2lt,-,
+65,int4eq,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4eq,-,
+66,int4lt,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4lt,-,
+67,texteq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texteq,-,
+68,xideq,11,10,12,f,f,t,f,i,2,16,f,28 28,,,,xideq,-,
+69,cideq,11,10,12,f,f,t,f,i,2,16,f,29 29,,,,cideq,-,
+70,charne,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charne,-,
+1246,charlt,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charlt,-,
+72,charle,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charle,-,
+73,chargt,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,chargt,-,
+74,charge,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charge,-,
+77,int4,11,10,12,f,f,t,f,i,1,23,f,18,,,,chartoi4,-,
+78,char,11,10,12,f,f,t,f,i,1,18,f,23,,,,i4tochar,-,
+79,nameregexeq,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameregexeq,-,
+1252,nameregexne,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameregexne,-,
+1254,textregexeq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textregexeq,-,
+1256,textregexne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textregexne,-,
+1257,textlen,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1258,textcat,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,textcat,-,
+84,boolne,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolne,-,
+89,version,11,10,12,f,f,t,f,s,0,25,f,"",,,,pgsql_version,-,
+101,eqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,eqsel,-,
+102,neqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,neqsel,-,
+103,scalarltsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,scalarltsel,-,
+104,scalargtsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,scalargtsel,-,
+105,eqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,eqjoinsel,-,
+106,neqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,neqjoinsel,-,
+107,scalarltjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,scalarltjoinsel,-,
+108,scalargtjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,scalargtjoinsel,-,
+109,unknownin,11,10,12,f,f,t,f,i,1,705,f,2275,,,,unknownin,-,
+110,unknownout,11,10,12,f,f,t,f,i,1,2275,f,705,,,,unknownout,-,
+111,numeric_fac,11,10,12,f,f,t,f,i,1,1700,f,20,,,,numeric_fac,-,
+112,text,11,10,12,f,f,t,f,i,1,25,f,23,,,,int4_text,-,
+113,text,11,10,12,f,f,t,f,i,1,25,f,21,,,,int2_text,-,
+114,text,11,10,12,f,f,t,f,i,1,25,f,26,,,,oid_text,-,
+115,box_above_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_above_eq,-,
+116,box_below_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_below_eq,-,
+117,point_in,11,10,12,f,f,t,f,i,1,600,f,2275,,,,point_in,-,
+118,point_out,11,10,12,f,f,t,f,i,1,2275,f,600,,,,point_out,-,
+119,lseg_in,11,10,12,f,f,t,f,i,1,601,f,2275,,,,lseg_in,-,
+120,lseg_out,11,10,12,f,f,t,f,i,1,2275,f,601,,,,lseg_out,-,
+121,path_in,11,10,12,f,f,t,f,i,1,602,f,2275,,,,path_in,-,
+122,path_out,11,10,12,f,f,t,f,i,1,2275,f,602,,,,path_out,-,
+123,box_in,11,10,12,f,f,t,f,i,1,603,f,2275,,,,box_in,-,
+124,box_out,11,10,12,f,f,t,f,i,1,2275,f,603,,,,box_out,-,
+125,box_overlap,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overlap,-,
+126,box_ge,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_ge,-,
+127,box_gt,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_gt,-,
+128,box_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_eq,-,
+129,box_lt,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_lt,-,
+130,box_le,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_le,-,
+131,point_above,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_above,-,
+132,point_left,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_left,-,
+133,point_right,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_right,-,
+134,point_below,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_below,-,
+135,point_eq,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_eq,-,
+136,on_pb,11,10,12,f,f,t,f,i,2,16,f,600 603,,,,on_pb,-,
+137,on_ppath,11,10,12,f,f,t,f,i,2,16,f,600 602,,,,on_ppath,-,
+138,box_center,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+139,areasel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,areasel,-,
+140,areajoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,areajoinsel,-,
+141,int4mul,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mul,-,
+144,int4ne,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4ne,-,
+145,int2ne,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2ne,-,
+146,int2gt,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2gt,-,
+147,int4gt,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4gt,-,
+148,int2le,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2le,-,
+149,int4le,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4le,-,
+150,int4ge,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4ge,-,
+151,int2ge,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2ge,-,
+152,int2mul,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mul,-,
+153,int2div,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2div,-,
+154,int4div,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4div,-,
+155,int2mod,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mod,-,
+156,int4mod,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mod,-,
+157,textne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textne,-,
+158,int24eq,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24eq,-,
+159,int42eq,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42eq,-,
+160,int24lt,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24lt,-,
+161,int42lt,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42lt,-,
+162,int24gt,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24gt,-,
+163,int42gt,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42gt,-,
+164,int24ne,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24ne,-,
+165,int42ne,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42ne,-,
+166,int24le,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24le,-,
+167,int42le,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42le,-,
+168,int24ge,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24ge,-,
+169,int42ge,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42ge,-,
+170,int24mul,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mul,-,
+171,int42mul,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mul,-,
+172,int24div,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24div,-,
+173,int42div,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42div,-,
+174,int24mod,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mod,-,
+175,int42mod,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mod,-,
+176,int2pl,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2pl,-,
+177,int4pl,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4pl,-,
+178,int24pl,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24pl,-,
+179,int42pl,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42pl,-,
+180,int2mi,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mi,-,
+181,int4mi,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mi,-,
+182,int24mi,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mi,-,
+183,int42mi,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mi,-,
+184,oideq,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oideq,-,
+185,oidne,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidne,-,
+186,box_same,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_same,-,
+187,box_contain,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_contain,-,
+188,box_left,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_left,-,
+189,box_overleft,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overleft,-,
+190,box_overright,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overright,-,
+191,box_right,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_right,-,
+192,box_contained,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_contained,-,
+200,float4in,11,10,12,f,f,t,f,i,1,700,f,2275,,,,float4in,-,
+201,float4out,11,10,12,f,f,t,f,i,1,2275,f,700,,,,float4out,-,
+202,float4mul,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4mul,-,
+203,float4div,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4div,-,
+204,float4pl,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4pl,-,
+205,float4mi,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4mi,-,
+206,float4um,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4um,-,
+207,float4abs,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4abs,-,
+208,float4_accum,11,10,12,f,f,t,f,i,2,1022,f,1022 700,,,,float4_accum,-,
+6024,float4_decum,11,10,12,f,f,t,f,i,2,1022,f,1022 700,,,,float4_decum,-,
+3106,float4_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 700,,,,float4_avg_accum,-,
+3107,float4_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 700,,,,float4_avg_decum,-,
+209,float4larger,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4larger,-,
+211,float4smaller,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4smaller,-,
+212,int4um,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4um,-,
+213,int2um,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2um,-,
+214,float8in,11,10,12,f,f,t,f,i,1,701,f,2275,,,,float8in,-,
+215,float8out,11,10,12,f,f,t,f,i,1,2275,f,701,,,,float8out,-,
+216,float8mul,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8mul,-,
+217,float8div,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8div,-,
+218,float8pl,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8pl,-,
+219,float8mi,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8mi,-,
+220,float8um,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8um,-,
+221,float8abs,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8abs,-,
+222,float8_accum,11,10,12,f,f,t,f,i,2,1022,f,1022 701,,,,float8_accum,-,
+6025,float8_decum,11,10,12,f,f,t,f,i,2,1022,f,1022 701,,,,float8_decum,-,
+3108,float8_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 701,,,,float8_avg_accum,-,
+3109,float8_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 701,,,,float8_avg_decum,-,
+223,float8larger,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8larger,-,
+224,float8smaller,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8smaller,-,
+225,lseg_center,11,10,12,f,f,t,f,i,1,600,f,601,,,,lseg_center,-,
+226,path_center,11,10,12,f,f,t,f,i,1,600,f,602,,,,path_center,-,
+227,poly_center,11,10,12,f,f,t,f,i,1,600,f,604,,,,poly_center,-,
+228,dround,11,10,12,f,f,t,f,i,1,701,f,701,,,,dround,-,
+229,dtrunc,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtrunc,-,
+2308,ceil,11,10,12,f,f,t,f,i,1,701,f,701,,,,dceil,-,
+2320,ceiling,11,10,12,f,f,t,f,i,1,701,f,701,,,,dceil,-,
+2309,floor,11,10,12,f,f,t,f,i,1,701,f,701,,,,dfloor,-,
+2310,sign,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsign,-,
+230,dsqrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsqrt,-,
+231,dcbrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcbrt,-,
+232,dpow,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+233,dexp,11,10,12,f,f,t,f,i,1,701,f,701,,,,dexp,-,
+234,dlog1,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog1,-,
+235,float8,11,10,12,f,f,t,f,i,1,701,f,21,,,,i2tod,-,
+236,float4,11,10,12,f,f,t,f,i,1,700,f,21,,,,i2tof,-,
+237,int2,11,10,12,f,f,t,f,i,1,21,f,701,,,,dtoi2,-,
+238,int2,11,10,12,f,f,t,f,i,1,21,f,700,,,,ftoi2,-,
+239,line_distance,11,10,12,f,f,t,f,i,2,701,f,628 628,,,,line_distance,-,
+240,abstimein,11,10,12,f,f,t,f,s,1,702,f,2275,,,,abstimein,-,
+241,abstimeout,11,10,12,f,f,t,f,s,1,2275,f,702,,,,abstimeout,-,
+242,reltimein,11,10,12,f,f,t,f,s,1,703,f,2275,,,,reltimein,-,
+243,reltimeout,11,10,12,f,f,t,f,s,1,2275,f,703,,,,reltimeout,-,
+244,timepl,11,10,12,f,f,t,f,i,2,702,f,702 703,,,,timepl,-,
+245,timemi,11,10,12,f,f,t,f,i,2,702,f,702 703,,,,timemi,-,
+246,tintervalin,11,10,12,f,f,t,f,s,1,704,f,2275,,,,tintervalin,-,
+247,tintervalout,11,10,12,f,f,t,f,s,1,2275,f,704,,,,tintervalout,-,
+248,intinterval,11,10,12,f,f,t,f,i,2,16,f,702 704,,,,intinterval,-,
+249,tintervalrel,11,10,12,f,f,t,f,i,1,703,f,704,,,,tintervalrel,-,
+250,timenow,11,10,12,f,f,t,f,s,0,702,f,"",,,,timenow,-,
+251,abstimeeq,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimeeq,-,
+252,abstimene,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimene,-,
+253,abstimelt,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimelt,-,
+254,abstimegt,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimegt,-,
+255,abstimele,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimele,-,
+256,abstimege,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimege,-,
+257,reltimeeq,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimeeq,-,
+258,reltimene,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimene,-,
+259,reltimelt,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimelt,-,
+260,reltimegt,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimegt,-,
+261,reltimele,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimele,-,
+262,reltimege,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimege,-,
+263,tintervalsame,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalsame,-,
+264,tintervalct,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalct,-,
+265,tintervalov,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalov,-,
+266,tintervalleneq,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervalleneq,-,
+267,tintervallenne,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenne,-,
+268,tintervallenlt,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenlt,-,
+269,tintervallengt,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallengt,-,
+270,tintervallenle,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenle,-,
+271,tintervallenge,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenge,-,
+272,tintervalstart,11,10,12,f,f,t,f,i,1,702,f,704,,,,tintervalstart,-,
+273,tintervalend,11,10,12,f,f,t,f,i,1,702,f,704,,,,tintervalend,-,
+274,timeofday,11,10,12,f,f,t,f,v,0,25,f,"",,,,timeofday,-,
+275,isfinite,11,10,12,f,f,t,f,i,1,16,f,702,,,,abstime_finite,-,
+277,inter_sl,11,10,12,f,f,t,f,i,2,16,f,601 628,,,,inter_sl,-,
+278,inter_lb,11,10,12,f,f,t,f,i,2,16,f,628 603,,,,inter_lb,-,
+279,float48mul,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48mul,-,
+280,float48div,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48div,-,
+281,float48pl,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48pl,-,
+282,float48mi,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48mi,-,
+283,float84mul,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84mul,-,
+284,float84div,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84div,-,
+285,float84pl,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84pl,-,
+286,float84mi,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84mi,-,
+287,float4eq,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4eq,-,
+288,float4ne,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4ne,-,
+289,float4lt,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4lt,-,
+290,float4le,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4le,-,
+291,float4gt,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4gt,-,
+292,float4ge,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4ge,-,
+293,float8eq,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8eq,-,
+294,float8ne,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8ne,-,
+295,float8lt,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8lt,-,
+296,float8le,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8le,-,
+297,float8gt,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8gt,-,
+298,float8ge,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8ge,-,
+299,float48eq,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48eq,-,
+300,float48ne,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48ne,-,
+301,float48lt,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48lt,-,
+302,float48le,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48le,-,
+303,float48gt,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48gt,-,
+304,float48ge,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48ge,-,
+305,float84eq,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84eq,-,
+306,float84ne,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84ne,-,
+307,float84lt,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84lt,-,
+308,float84le,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84le,-,
+309,float84gt,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84gt,-,
+310,float84ge,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84ge,-,
+311,float8,11,10,12,f,f,t,f,i,1,701,f,700,,,,ftod,-,
+312,float4,11,10,12,f,f,t,f,i,1,700,f,701,,,,dtof,-,
+313,int4,11,10,12,f,f,t,f,i,1,23,f,21,,,,i2toi4,-,
+314,int2,11,10,12,f,f,t,f,i,1,21,f,23,,,,i4toi2,-,
+315,int2vectoreq,11,10,12,f,f,t,f,i,2,16,f,22 22,,,,int2vectoreq,-,
+316,float8,11,10,12,f,f,t,f,i,1,701,f,23,,,,i4tod,-,
+317,int4,11,10,12,f,f,t,f,i,1,23,f,701,,,,dtoi4,-,
+318,float4,11,10,12,f,f,t,f,i,1,700,f,23,,,,i4tof,-,
+319,int4,11,10,12,f,f,t,f,i,1,23,f,700,,,,ftoi4,-,
+330,btgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,btgettuple,-,
+636,btgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,btgetmulti,-,
+331,btinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,btinsert,-,
+333,btbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,btbeginscan,-,
+334,btrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,btrescan,-,
+335,btendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btendscan,-,
+336,btmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btmarkpos,-,
+337,btrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btrestrpos,-,
+338,btbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,btbuild,-,
+332,btbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,btbulkdelete,-,
+972,btvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,btvacuumcleanup,-,
+1268,btcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,btcostestimate,-,
+2785,btoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,btoptions,-,
+339,poly_same,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_same,-,
+340,poly_contain,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_contain,-,
+341,poly_left,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_left,-,
+342,poly_overleft,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overleft,-,
+343,poly_overright,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overright,-,
+344,poly_right,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_right,-,
+345,poly_contained,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_contained,-,
+346,poly_overlap,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overlap,-,
+347,poly_in,11,10,12,f,f,t,f,i,1,604,f,2275,,,,poly_in,-,
+348,poly_out,11,10,12,f,f,t,f,i,1,2275,f,604,,,,poly_out,-,
+350,btint2cmp,11,10,12,f,f,t,f,i,2,23,f,21 21,,,,btint2cmp,-,
+351,btint4cmp,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,btint4cmp,-,
+842,btint8cmp,11,10,12,f,f,t,f,i,2,23,f,20 20,,,,btint8cmp,-,
+354,btfloat4cmp,11,10,12,f,f,t,f,i,2,23,f,700 700,,,,btfloat4cmp,-,
+355,btfloat8cmp,11,10,12,f,f,t,f,i,2,23,f,701 701,,,,btfloat8cmp,-,
+356,btoidcmp,11,10,12,f,f,t,f,i,2,23,f,26 26,,,,btoidcmp,-,
+404,btoidvectorcmp,11,10,12,f,f,t,f,i,2,23,f,30 30,,,,btoidvectorcmp,-,
+357,btabstimecmp,11,10,12,f,f,t,f,i,2,23,f,702 702,,,,btabstimecmp,-,
+358,btcharcmp,11,10,12,f,f,t,f,i,2,23,f,18 18,,,,btcharcmp,-,
+359,btnamecmp,11,10,12,f,f,t,f,i,2,23,f,19 19,,,,btnamecmp,-,
+360,bttextcmp,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,bttextcmp,-,
+377,cash_cmp,11,10,12,f,f,t,f,i,2,23,f,790 790,,,,cash_cmp,-,
+380,btreltimecmp,11,10,12,f,f,t,f,i,2,23,f,703 703,,,,btreltimecmp,-,
+381,bttintervalcmp,11,10,12,f,f,t,f,i,2,23,f,704 704,,,,bttintervalcmp,-,
+382,btarraycmp,11,10,12,f,f,t,f,i,2,23,f,2277 2277,,,,btarraycmp,-,
+361,lseg_distance,11,10,12,f,f,t,f,i,2,701,f,601 601,,,,lseg_distance,-,
+362,lseg_interpt,11,10,12,f,f,t,f,i,2,600,f,601 601,,,,lseg_interpt,-,
+363,dist_ps,11,10,12,f,f,t,f,i,2,701,f,600 601,,,,dist_ps,-,
+364,dist_pb,11,10,12,f,f,t,f,i,2,701,f,600 603,,,,dist_pb,-,
+365,dist_sb,11,10,12,f,f,t,f,i,2,701,f,601 603,,,,dist_sb,-,
+366,close_ps,11,10,12,f,f,t,f,i,2,600,f,600 601,,,,close_ps,-,
+367,close_pb,11,10,12,f,f,t,f,i,2,600,f,600 603,,,,close_pb,-,
+368,close_sb,11,10,12,f,f,t,f,i,2,600,f,601 603,,,,close_sb,-,
+369,on_ps,11,10,12,f,f,t,f,i,2,16,f,600 601,,,,on_ps,-,
+370,path_distance,11,10,12,f,f,t,f,i,2,701,f,602 602,,,,path_distance,-,
+371,dist_ppath,11,10,12,f,f,t,f,i,2,701,f,600 602,,,,dist_ppath,-,
+372,on_sb,11,10,12,f,f,t,f,i,2,16,f,601 603,,,,on_sb,-,
+373,inter_sb,11,10,12,f,f,t,f,i,2,16,f,601 603,,,,inter_sb,-,
+401,text,11,10,12,f,f,t,f,i,1,25,f,1042,,,,rtrim1,-,
+406,text,11,10,12,f,f,t,f,i,1,25,f,19,,,,name_text,-,
+407,name,11,10,12,f,f,t,f,i,1,19,f,25,,,,text_name,-,
+408,bpchar,11,10,12,f,f,t,f,i,1,1042,f,19,,,,name_bpchar,-,
+409,name,11,10,12,f,f,t,f,i,1,19,f,1042,,,,bpchar_name,-,
+440,hashgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,hashgettuple,-,
+637,hashgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,hashgetmulti,-,
+441,hashinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,hashinsert,-,
+443,hashbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,hashbeginscan,-,
+444,hashrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,hashrescan,-,
+445,hashendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashendscan,-,
+446,hashmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashmarkpos,-,
+447,hashrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashrestrpos,-,
+448,hashbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,hashbuild,-,
+442,hashbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,hashbulkdelete,-,
+425,hashvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,hashvacuumcleanup,-,
+438,hashcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,hashcostestimate,-,
+2786,hashoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,hashoptions,-,
+449,hashint2,11,10,12,f,f,t,f,i,1,23,f,21,,,,hashint2,-,
+450,hashint4,11,10,12,f,f,t,f,i,1,23,f,23,,,,hashint4,-,
+949,hashint8,11,10,12,f,f,t,f,i,1,23,f,20,,,,hashint8,-,
+451,hashfloat4,11,10,12,f,f,t,f,i,1,23,f,700,,,,hashfloat4,-,
+452,hashfloat8,11,10,12,f,f,t,f,i,1,23,f,701,,,,hashfloat8,-,
+453,hashoid,11,10,12,f,f,t,f,i,1,23,f,26,,,,hashoid,-,
+454,hashchar,11,10,12,f,f,t,f,i,1,23,f,18,,,,hashchar,-,
+455,hashname,11,10,12,f,f,t,f,i,1,23,f,19,,,,hashname,-,
+400,hashtext,11,10,12,f,f,t,f,i,1,23,f,25,,,,hashtext,-,
+456,hashvarlena,11,10,12,f,f,t,f,i,1,23,f,2281,,,,hashvarlena,-,
+457,hashoidvector,11,10,12,f,f,t,f,i,1,23,f,30,,,,hashoidvector,-,
+329,hash_aclitem,11,10,12,f,f,t,f,i,1,23,f,1033,,,,hash_aclitem,-,
+398,hashint2vector,11,10,12,f,f,t,f,i,1,23,f,22,,,,hashint2vector,-,
+399,hashmacaddr,11,10,12,f,f,t,f,i,1,23,f,829,,,,hashmacaddr,-,
+422,hashinet,11,10,12,f,f,t,f,i,1,23,f,869,,,,hashinet,-,
+6432,hash_numeric,11,10,12,f,f,t,f,i,1,23,f,1700,,,,hash_numeric,-,
+458,text_larger,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,text_larger,-,
+459,text_smaller,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,text_smaller,-,
+460,int8in,11,10,12,f,f,t,f,i,1,20,f,2275,,,,int8in,-,
+461,int8out,11,10,12,f,f,t,f,i,1,2275,f,20,,,,int8out,-,
+462,int8um,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8um,-,
+463,int8pl,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8pl,-,
+464,int8mi,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mi,-,
+465,int8mul,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mul,-,
+466,int8div,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8div,-,
+467,int8eq,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8eq,-,
+468,int8ne,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8ne,-,
+469,int8lt,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8lt,-,
+470,int8gt,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8gt,-,
+471,int8le,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8le,-,
+472,int8ge,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8ge,-,
+474,int84eq,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84eq,-,
+475,int84ne,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84ne,-,
+476,int84lt,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84lt,-,
+477,int84gt,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84gt,-,
+478,int84le,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84le,-,
+479,int84ge,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84ge,-,
+480,int4,11,10,12,f,f,t,f,i,1,23,f,20,,,,int84,-,
+481,int8,11,10,12,f,f,t,f,i,1,20,f,23,,,,int48,-,
+482,float8,11,10,12,f,f,t,f,i,1,701,f,20,,,,i8tod,-,
+483,int8,11,10,12,f,f,t,f,i,1,20,f,701,,,,dtoi8,-,
+652,float4,11,10,12,f,f,t,f,i,1,700,f,20,,,,i8tof,-,
+653,int8,11,10,12,f,f,t,f,i,1,20,f,700,,,,ftoi8,-,
+714,int2,11,10,12,f,f,t,f,i,1,21,f,20,,,,int82,-,
+754,int8,11,10,12,f,f,t,f,i,1,20,f,21,,,,int28,-,
+1285,int4notin,11,10,12,f,f,t,f,s,2,16,f,23 25,,,,int4notin,-,
+1286,oidnotin,11,10,12,f,f,t,f,s,2,16,f,26 25,,,,oidnotin,-,
+655,namelt,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namelt,-,
+656,namele,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namele,-,
+657,namegt,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namegt,-,
+658,namege,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namege,-,
+659,namene,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namene,-,
+668,bpchar,11,10,12,f,f,t,f,i,3,1042,f,1042 23 16,,,,bpchar,-,
+669,varchar,11,10,12,f,f,t,f,i,3,1043,f,1043 23 16,,,,varchar,-,
+676,mktinterval,11,10,12,f,f,t,f,i,2,704,f,702 702,,,,mktinterval,-,
+619,oidvectorne,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorne,-,
+677,oidvectorlt,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorlt,-,
+678,oidvectorle,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorle,-,
+679,oidvectoreq,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectoreq,-,
+680,oidvectorge,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorge,-,
+681,oidvectorgt,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorgt,-,
+710,getpgusername,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_user,-,
+716,oidlt,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidlt,-,
+717,oidle,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidle,-,
+720,octet_length,11,10,12,f,f,t,f,i,1,23,f,17,,,,byteaoctetlen,-,
+721,get_byte,11,10,12,f,f,t,f,i,2,23,f,17 23,,,,byteaGetByte,-,
+722,set_byte,11,10,12,f,f,t,f,i,3,17,f,17 23 23,,,,byteaSetByte,-,
+723,get_bit,11,10,12,f,f,t,f,i,2,23,f,17 23,,,,byteaGetBit,-,
+724,set_bit,11,10,12,f,f,t,f,i,3,17,f,17 23 23,,,,byteaSetBit,-,
+725,dist_pl,11,10,12,f,f,t,f,i,2,701,f,600 628,,,,dist_pl,-,
+726,dist_lb,11,10,12,f,f,t,f,i,2,701,f,628 603,,,,dist_lb,-,
+727,dist_sl,11,10,12,f,f,t,f,i,2,701,f,601 628,,,,dist_sl,-,
+728,dist_cpoly,11,10,12,f,f,t,f,i,2,701,f,718 604,,,,dist_cpoly,-,
+729,poly_distance,11,10,12,f,f,t,f,i,2,701,f,604 604,,,,poly_distance,-,
+740,text_lt,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_lt,-,
+741,text_le,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_le,-,
+742,text_gt,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_gt,-,
+743,text_ge,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_ge,-,
+745,current_user,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_user,-,
+746,session_user,11,10,12,f,f,t,f,s,0,19,f,"",,,,session_user,-,
+744,array_eq,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_eq,-,
+390,array_ne,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_ne,-,
+391,array_lt,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_lt,-,
+392,array_gt,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_gt,-,
+393,array_le,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_le,-,
+396,array_ge,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_ge,-,
+747,array_dims,11,10,12,f,f,t,f,i,1,25,f,2277,,,,array_dims,-,
+750,array_in,11,10,12,f,f,t,f,s,3,2277,f,2275 26 23,,,,array_in,-,
+751,array_out,11,10,12,f,f,t,f,s,1,2275,f,2277,,,,array_out,-,
+2091,array_lower,11,10,12,f,f,t,f,i,2,23,f,2277 23,,,,array_lower,-,
+2092,array_upper,11,10,12,f,f,t,f,i,2,23,f,2277 23,,,,array_upper,-,
+378,array_append,11,10,12,f,f,f,f,i,2,2277,f,2277 2283,,,,array_push,-,
+379,array_prepend,11,10,12,f,f,f,f,i,2,2277,f,2283 2277,,,,array_push,-,
+383,array_cat,11,10,12,f,f,f,f,i,2,2277,f,2277 2277,,,,array_cat,-,
+384,array_coerce,11,10,12,f,f,t,f,s,1,2277,f,2277,,,,array_type_coerce,-,
+394,string_to_array,11,10,12,f,f,t,f,i,2,1009,f,25 25,,,,text_to_array,-,
+395,array_to_string,11,10,12,f,f,t,f,i,2,25,f,2277 25,,,,array_to_text,-,
+515,array_larger,11,10,12,f,f,t,f,i,2,2277,f,2277 2277,,,,array_larger,-,
+516,array_smaller,11,10,12,f,f,t,f,i,2,2277,f,2277 2277,,,,array_smaller,-,
+6012,array_add,11,10,12,f,f,t,f,i,2,1007,f,1007 1007,,,,array_int4_add,-,
+760,smgrin,11,10,12,f,f,t,f,s,1,210,f,2275,,,,smgrin,-,
+761,smgrout,11,10,12,f,f,t,f,s,1,2275,f,210,,,,smgrout,-,
+762,smgreq,11,10,12,f,f,t,f,i,2,16,f,210 210,,,,smgreq,-,
+763,smgrne,11,10,12,f,f,t,f,i,2,16,f,210 210,,,,smgrne,-,
+764,lo_import,11,10,12,f,f,t,f,v,1,26,f,25,,,,lo_import,-,
+765,lo_export,11,10,12,f,f,t,f,v,2,23,f,26 25,,,,lo_export,-,
+766,int4inc,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4inc,-,
+768,int4larger,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4larger,-,
+769,int4smaller,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4smaller,-,
+770,int2larger,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2larger,-,
+771,int2smaller,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2smaller,-,
+774,gistgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,gistgettuple,-,
+638,gistgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,gistgetmulti,-,
+775,gistinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,gistinsert,-,
+777,gistbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,gistbeginscan,-,
+778,gistrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,gistrescan,-,
+779,gistendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistendscan,-,
+780,gistmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistmarkpos,-,
+781,gistrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistrestrpos,-,
+782,gistbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,gistbuild,-,
+776,gistbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,gistbulkdelete,-,
+2561,gistvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,gistvacuumcleanup,-,
+772,gistcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,gistcostestimate,-,
+2787,gistoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,gistoptions,-,
+784,tintervaleq,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervaleq,-,
+785,tintervalne,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalne,-,
+786,tintervallt,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervallt,-,
+787,tintervalgt,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalgt,-,
+788,tintervalle,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalle,-,
+789,tintervalge,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalge,-,
+817,oid,11,10,12,f,f,t,f,i,1,26,f,25,,,,text_oid,-,
+818,int2,11,10,12,f,f,t,f,i,1,21,f,25,,,,text_int2,-,
+819,int4,11,10,12,f,f,t,f,i,1,23,f,25,,,,text_int4,-,
+838,float8,11,10,12,f,f,t,f,i,1,701,f,25,,,,text_float8,-,
+839,float4,11,10,12,f,f,t,f,i,1,700,f,25,,,,text_float4,-,
+840,text,11,10,12,f,f,t,f,i,1,25,f,701,,,,float8_text,-,
+841,text,11,10,12,f,f,t,f,i,1,25,f,700,,,,float4_text,-,
+846,cash_mul_flt4,11,10,12,f,f,t,f,i,2,790,f,790 700,,,,cash_mul_flt4,-,
+847,cash_div_flt4,11,10,12,f,f,t,f,i,2,790,f,790 700,,,,cash_div_flt4,-,
+848,flt4_mul_cash,11,10,12,f,f,t,f,i,2,790,f,700 790,,,,flt4_mul_cash,-,
+849,position,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,textpos,-,
+850,textlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textlike,-,
+851,textnlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textnlike,-,
+852,int48eq,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48eq,-,
+853,int48ne,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48ne,-,
+854,int48lt,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48lt,-,
+855,int48gt,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48gt,-,
+856,int48le,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48le,-,
+857,int48ge,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48ge,-,
+858,namelike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namelike,-,
+859,namenlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namenlike,-,
+860,bpchar,11,10,12,f,f,t,f,i,1,1042,f,18,,,,char_bpchar,-,
+861,current_database,11,10,12,f,f,t,f,i,0,19,f,"",,,,current_database,-,
+862,int4_mul_cash,11,10,12,f,f,t,f,i,2,790,f,23 790,,,,int4_mul_cash,-,
+863,int2_mul_cash,11,10,12,f,f,t,f,i,2,790,f,21 790,,,,int2_mul_cash,-,
+864,cash_mul_int4,11,10,12,f,f,t,f,i,2,790,f,790 23,,,,cash_mul_int4,-,
+865,cash_div_int4,11,10,12,f,f,t,f,i,2,790,f,790 23,,,,cash_div_int4,-,
+866,cash_mul_int2,11,10,12,f,f,t,f,i,2,790,f,790 21,,,,cash_mul_int2,-,
+867,cash_div_int2,11,10,12,f,f,t,f,i,2,790,f,790 21,,,,cash_div_int2,-,
+886,cash_in,11,10,12,f,f,t,f,i,1,790,f,2275,,,,cash_in,-,
+887,cash_out,11,10,12,f,f,t,f,i,1,2275,f,790,,,,cash_out,-,
+888,cash_eq,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_eq,-,
+889,cash_ne,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_ne,-,
+890,cash_lt,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_lt,-,
+891,cash_le,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_le,-,
+892,cash_gt,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_gt,-,
+893,cash_ge,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_ge,-,
+894,cash_pl,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cash_pl,-,
+895,cash_mi,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cash_mi,-,
+896,cash_mul_flt8,11,10,12,f,f,t,f,i,2,790,f,790 701,,,,cash_mul_flt8,-,
+897,cash_div_flt8,11,10,12,f,f,t,f,i,2,790,f,790 701,,,,cash_div_flt8,-,
+898,cashlarger,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cashlarger,-,
+899,cashsmaller,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cashsmaller,-,
+919,flt8_mul_cash,11,10,12,f,f,t,f,i,2,790,f,701 790,,,,flt8_mul_cash,-,
+935,cash_words,11,10,12,f,f,t,f,i,1,25,f,790,,,,cash_words,-,
+940,mod,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mod,-,
+941,mod,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mod,-,
+942,mod,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mod,-,
+943,mod,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mod,-,
+945,int8mod,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mod,-,
+947,mod,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mod,-,
+944,char,11,10,12,f,f,t,f,i,1,18,f,25,,,,text_char,-,
+946,text,11,10,12,f,f,t,f,i,1,25,f,18,,,,char_text,-,
+950,istrue,11,10,12,f,f,f,f,i,1,16,f,16,,,,istrue,-,
+951,isfalse,11,10,12,f,f,f,f,i,1,16,f,16,,,,isfalse,-,
+952,lo_open,11,10,12,f,f,t,f,v,2,23,f,26 23,,,,lo_open,-,
+953,lo_close,11,10,12,f,f,t,f,v,1,23,f,23,,,,lo_close,-,
+954,loread,11,10,12,f,f,t,f,v,2,17,f,23 23,,,,loread,-,
+955,lowrite,11,10,12,f,f,t,f,v,2,23,f,23 17,,,,lowrite,-,
+956,lo_lseek,11,10,12,f,f,t,f,v,3,23,f,23 23 23,,,,lo_lseek,-,
+957,lo_creat,11,10,12,f,f,t,f,v,1,26,f,23,,,,lo_creat,-,
+715,lo_create,11,10,12,f,f,t,f,v,1,26,f,26,,,,lo_create,-,
+958,lo_tell,11,10,12,f,f,t,f,v,1,23,f,23,,,,lo_tell,-,
+959,on_pl,11,10,12,f,f,t,f,i,2,16,f,600 628,,,,on_pl,-,
+960,on_sl,11,10,12,f,f,t,f,i,2,16,f,601 628,,,,on_sl,-,
+961,close_pl,11,10,12,f,f,t,f,i,2,600,f,600 628,,,,close_pl,-,
+962,close_sl,11,10,12,f,f,t,f,i,2,600,f,601 628,,,,close_sl,-,
+963,close_lb,11,10,12,f,f,t,f,i,2,600,f,628 603,,,,close_lb,-,
+964,lo_unlink,11,10,12,f,f,t,f,v,1,23,f,26,,,,lo_unlink,-,
+973,path_inter,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_inter,-,
+975,area,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_area,-,
+976,width,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_width,-,
+977,height,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_height,-,
+978,box_distance,11,10,12,f,f,t,f,i,2,701,f,603 603,,,,box_distance,-,
+979,area,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_area,-,
+980,box_intersect,11,10,12,f,f,t,f,i,2,603,f,603 603,,,,box_intersect,-,
+981,diagonal,11,10,12,f,f,t,f,i,1,601,f,603,,,,box_diagonal,-,
+982,path_n_lt,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_lt,-,
+983,path_n_gt,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_gt,-,
+984,path_n_eq,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_eq,-,
+985,path_n_le,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_le,-,
+986,path_n_ge,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_ge,-,
+987,path_length,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_length,-,
+988,point_ne,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_ne,-,
+989,point_vert,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_vert,-,
+990,point_horiz,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_horiz,-,
+991,point_distance,11,10,12,f,f,t,f,i,2,701,f,600 600,,,,point_distance,-,
+992,slope,11,10,12,f,f,t,f,i,2,701,f,600 600,,,,point_slope,-,
+993,lseg,11,10,12,f,f,t,f,i,2,601,f,600 600,,,,lseg_construct,-,
+994,lseg_intersect,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_intersect,-,
+995,lseg_parallel,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_parallel,-,
+996,lseg_perp,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_perp,-,
+997,lseg_vertical,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_vertical,-,
+998,lseg_horizontal,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_horizontal,-,
+999,lseg_eq,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_eq,-,
+748,date,11,10,12,f,f,t,f,s,1,1082,f,25,,,,text_date,-,
+749,text,11,10,12,f,f,t,f,s,1,25,f,1082,,,,date_text,-,
+837,time,11,10,12,f,f,t,f,s,1,1083,f,25,,,,text_time,-,
+948,text,11,10,12,f,f,t,f,i,1,25,f,1083,,,,time_text,-,
+938,timetz,11,10,12,f,f,t,f,s,1,1266,f,25,,,,text_timetz,-,
+939,text,11,10,12,f,f,t,f,i,1,25,f,1266,,,,timetz_text,-,
+1026,timezone,11,10,12,f,f,t,f,i,2,1114,f,1186 1184,,,,timestamptz_izone,-,
+1029,nullvalue,11,10,12,f,f,f,f,i,1,16,f,2276,,,,nullvalue,-,
+1030,nonnullvalue,11,10,12,f,f,f,f,i,1,16,f,2276,,,,nonnullvalue,-,
+1031,aclitemin,11,10,12,f,f,t,f,s,1,1033,f,2275,,,,aclitemin,-,
+1032,aclitemout,11,10,12,f,f,t,f,s,1,2275,f,1033,,,,aclitemout,-,
+1035,aclinsert,11,10,12,f,f,t,f,i,2,1034,f,1034 1033,,,,aclinsert,-,
+1036,aclremove,11,10,12,f,f,t,f,i,2,1034,f,1034 1033,,,,aclremove,-,
+1037,aclcontains,11,10,12,f,f,t,f,i,2,16,f,1034 1033,,,,aclcontains,-,
+1062,aclitemeq,11,10,12,f,f,t,f,i,2,16,f,1033 1033,,,,aclitem_eq,-,
+1365,makeaclitem,11,10,12,f,f,t,f,i,4,1033,f,26 26 25 16,,,,makeaclitem,-,
+1044,bpcharin,11,10,12,f,f,t,f,i,3,1042,f,2275 26 23,,,,bpcharin,-,
+1045,bpcharout,11,10,12,f,f,t,f,i,1,2275,f,1042,,,,bpcharout,-,
+1046,varcharin,11,10,12,f,f,t,f,i,3,1043,f,2275 26 23,,,,varcharin,-,
+1047,varcharout,11,10,12,f,f,t,f,i,1,2275,f,1043,,,,varcharout,-,
+1048,bpchareq,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpchareq,-,
+1049,bpcharlt,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharlt,-,
+1050,bpcharle,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharle,-,
+1051,bpchargt,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpchargt,-,
+1052,bpcharge,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharge,-,
+1053,bpcharne,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharne,-,
+1063,bpchar_larger,11,10,12,f,f,t,f,i,2,1042,f,1042 1042,,,,bpchar_larger,-,
+1064,bpchar_smaller,11,10,12,f,f,t,f,i,2,1042,f,1042 1042,,,,bpchar_smaller,-,
+1078,bpcharcmp,11,10,12,f,f,t,f,i,2,23,f,1042 1042,,,,bpcharcmp,-,
+1080,hashbpchar,11,10,12,f,f,t,f,i,1,23,f,1042,,,,hashbpchar,-,
+1081,format_type,11,10,12,f,f,f,f,s,2,25,f,26 23,,,,format_type,-,
+1084,date_in,11,10,12,f,f,t,f,s,1,1082,f,2275,,,,date_in,-,
+1085,date_out,11,10,12,f,f,t,f,s,1,2275,f,1082,,,,date_out,-,
+1086,date_eq,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_eq,-,
+1087,date_lt,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_lt,-,
+1088,date_le,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_le,-,
+1089,date_gt,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_gt,-,
+1090,date_ge,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_ge,-,
+1091,date_ne,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_ne,-,
+1092,date_cmp,11,10,12,f,f,t,f,i,2,23,f,1082 1082,,,,date_cmp,-,
+1102,time_lt,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_lt,-,
+1103,time_le,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_le,-,
+1104,time_gt,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_gt,-,
+1105,time_ge,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_ge,-,
+1106,time_ne,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_ne,-,
+1107,time_cmp,11,10,12,f,f,t,f,i,2,23,f,1083 1083,,,,time_cmp,-,
+1138,date_larger,11,10,12,f,f,t,f,i,2,1082,f,1082 1082,,,,date_larger,-,
+1139,date_smaller,11,10,12,f,f,t,f,i,2,1082,f,1082 1082,,,,date_smaller,-,
+1140,date_mi,11,10,12,f,f,t,f,i,2,23,f,1082 1082,,,,date_mi,-,
+1141,date_pli,11,10,12,f,f,t,f,i,2,1082,f,1082 23,,,,date_pli,-,
+1142,date_mii,11,10,12,f,f,t,f,i,2,1082,f,1082 23,,,,date_mii,-,
+1143,time_in,11,10,12,f,f,t,f,s,3,1083,f,2275 26 23,,,,time_in,-,
+1144,time_out,11,10,12,f,f,t,f,i,1,2275,f,1083,,,,time_out,-,
+1145,time_eq,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_eq,-,
+1146,circle_add_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_add_pt,-,
+1147,circle_sub_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_sub_pt,-,
+1148,circle_mul_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_mul_pt,-,
+1149,circle_div_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_div_pt,-,
+1150,timestamptz_in,11,10,12,f,f,t,f,s,3,1184,f,2275 26 23,,,,timestamptz_in,-,
+1151,timestamptz_out,11,10,12,f,f,t,f,s,1,2275,f,1184,,,,timestamptz_out,-,
+1152,timestamptz_eq,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_eq,-,
+1153,timestamptz_ne,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_ne,-,
+1154,timestamptz_lt,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_lt,-,
+1155,timestamptz_le,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_le,-,
+1156,timestamptz_ge,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_ge,-,
+1157,timestamptz_gt,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_gt,-,
+1158,to_timestamp,11,10,14,f,f,t,f,i,1,1184,f,701,,,,select ('epoch'::timestamptz + $1 * '1 second'::interval),-,
+1159,timezone,11,10,12,f,f,t,f,i,2,1114,f,25 1184,,,,timestamptz_zone,-,
+1160,interval_in,11,10,12,f,f,t,f,s,3,1186,f,2275 26 23,,,,interval_in,-,
+1161,interval_out,11,10,12,f,f,t,f,i,1,2275,f,1186,,,,interval_out,-,
+1162,interval_eq,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_eq,-,
+1163,interval_ne,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_ne,-,
+1164,interval_lt,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_lt,-,
+1165,interval_le,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_le,-,
+1166,interval_ge,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_ge,-,
+1167,interval_gt,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_gt,-,
+1168,interval_um,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_um,-,
+1169,interval_pl,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_pl,-,
+1170,interval_mi,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_mi,-,
+1171,date_part,11,10,12,f,f,t,f,s,2,701,f,25 1184,,,,timestamptz_part,-,
+1172,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1186,,,,interval_part,-,
+1173,timestamptz,11,10,12,f,f,t,f,i,1,1184,f,702,,,,abstime_timestamptz,-,
+1174,timestamptz,11,10,12,f,f,t,f,s,1,1184,f,1082,,,,date_timestamptz,-,
+2711,justify_interval,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_interval,-,
+1175,justify_hours,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_hours,-,
+1295,justify_days,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_days,-,
+1176,timestamptz,11,10,14,f,f,t,f,s,2,1184,f,1082 1083,,,,select cast(($1 + $2) as timestamp with time zone),-,
+1177,interval,11,10,12,f,f,t,f,i,1,1186,f,703,,,,reltime_interval,-,
+1178,date,11,10,12,f,f,t,f,s,1,1082,f,1184,,,,timestamptz_date,-,
+1179,date,11,10,12,f,f,t,f,s,1,1082,f,702,,,,abstime_date,-,
+1180,abstime,11,10,12,f,f,t,f,i,1,702,f,1184,,,,timestamptz_abstime,-,
+1181,age,11,10,12,f,f,t,f,s,1,23,f,28,,,,xid_age,-,
+1188,timestamptz_mi,11,10,12,f,f,t,f,i,2,1186,f,1184 1184,,,,timestamp_mi,-,
+1189,timestamptz_pl_interval,11,10,12,f,f,t,f,s,2,1184,f,1184 1186,,,,timestamptz_pl_interval,-,
+1190,timestamptz_mi_interval,11,10,12,f,f,t,f,s,2,1184,f,1184 1186,,,,timestamptz_mi_interval,-,
+1191,timestamptz,11,10,12,f,f,t,f,s,1,1184,f,25,,,,text_timestamptz,-,
+1192,text,11,10,12,f,f,t,f,s,1,25,f,1184,,,,timestamptz_text,-,
+1193,text,11,10,12,f,f,t,f,i,1,25,f,1186,,,,interval_text,-,
+1194,reltime,11,10,12,f,f,t,f,i,1,703,f,1186,,,,interval_reltime,-,
+1195,timestamptz_smaller,11,10,12,f,f,t,f,i,2,1184,f,1184 1184,,,,timestamp_smaller,-,
+1196,timestamptz_larger,11,10,12,f,f,t,f,i,2,1184,f,1184 1184,,,,timestamp_larger,-,
+1197,interval_smaller,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_smaller,-,
+1198,interval_larger,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_larger,-,
+1199,age,11,10,12,f,f,t,f,i,2,1186,f,1184 1184,,,,timestamptz_age,-,
+1200,interval,11,10,12,f,f,t,f,i,2,1186,f,1186 23,,,,interval_scale,-,
+1215,obj_description,11,10,14,f,f,t,f,s,2,25,f,26 19,,,,select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) and objsubid = 0,-,
+1216,col_description,11,10,14,f,f,t,f,s,2,25,f,26 23,,,,select description from pg_catalog.pg_description where objoid = $1 and classoid = 'pg_catalog.pg_class'::regclass and objsubid = $2,-,
+1993,shobj_description,11,10,14,f,f,t,f,s,2,25,f,26 19,,,,select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11),-,
+1217,date_trunc,11,10,12,f,f,t,f,s,2,1184,f,25 1184,,,,timestamptz_trunc,-,
+1218,date_trunc,11,10,12,f,f,t,f,i,2,1186,f,25 1186,,,,interval_trunc,-,
+1219,int8inc,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8inc,-,
+2857,int8dec,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8dec,-,
+2804,int8inc_any,11,10,12,f,f,t,f,i,2,20,f,20 2276,,,,int8inc_any,-,
+1230,int8abs,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8abs,-,
+1236,int8larger,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8larger,-,
+1237,int8smaller,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8smaller,-,
+1238,texticregexeq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticregexeq,-,
+1239,texticregexne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticregexne,-,
+1240,nameicregexeq,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicregexeq,-,
+1241,nameicregexne,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicregexne,-,
+1251,int4abs,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4abs,-,
+1253,int2abs,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2abs,-,
+1263,interval,11,10,12,f,f,t,f,s,1,1186,f,25,,,,text_interval,-,
+1271,overlaps,11,10,12,f,f,f,f,i,4,16,f,1266 1266 1266 1266,,,,overlaps_timetz,-,
+1272,datetime_pl,11,10,12,f,f,t,f,i,2,1114,f,1082 1083,,,,datetime_timestamp,-,
+1273,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1266,,,,timetz_part,-,
+1274,int84pl,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84pl,-,
+1275,int84mi,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84mi,-,
+1276,int84mul,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84mul,-,
+1277,int84div,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84div,-,
+1278,int48pl,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48pl,-,
+1279,int48mi,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48mi,-,
+1280,int48mul,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48mul,-,
+1281,int48div,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48div,-,
+1287,oid,11,10,12,f,f,t,f,i,1,26,f,20,,,,i8tooid,-,
+1288,int8,11,10,12,f,f,t,f,i,1,20,f,26,,,,oidtoi8,-,
+1289,text,11,10,12,f,f,t,f,i,1,25,f,20,,,,int8_text,-,
+1290,int8,11,10,12,f,f,t,f,i,1,20,f,25,,,,text_int8,-,
+1291,array_length_coerce,11,10,12,f,f,t,f,s,3,2277,f,2277 23 16,,,,array_length_coerce,-,
+1292,tideq,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tideq,-,
+1293,currtid,11,10,12,f,f,t,f,v,2,27,f,26 27,,,,currtid_byreloid,-,
+1294,currtid2,11,10,12,f,f,t,f,v,2,27,f,25 27,,,,currtid_byrelname,-,
+1265,tidne,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidne,-,
+2790,tidgt,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidgt,-,
+2791,tidlt,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidlt,-,
+2792,tidge,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidge,-,
+2793,tidle,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidle,-,
+2794,bttidcmp,11,10,12,f,f,t,f,i,2,23,f,27 27,,,,bttidcmp,-,
+2795,tidlarger,11,10,12,f,f,t,f,i,2,27,f,27 27,,,,tidlarger,-,
+2796,tidsmaller,11,10,12,f,f,t,f,i,2,27,f,27 27,,,,tidsmaller,-,
+1296,timedate_pl,11,10,14,f,f,t,f,i,2,1114,f,1083 1082,,,,select ($2 + $1),-,
+1297,datetimetz_pl,11,10,12,f,f,t,f,i,2,1184,f,1082 1266,,,,datetimetz_timestamptz,-,
+1298,timetzdate_pl,11,10,14,f,f,t,f,i,2,1184,f,1266 1082,,,,select ($2 + $1),-,
+1299,now,11,10,12,f,f,t,f,s,0,1184,f,"",,,,now,-,
+2647,transaction_timestamp,11,10,12,f,f,t,f,s,0,1184,f,"",,,,now,-,
+2648,statement_timestamp,11,10,12,f,f,t,f,s,0,1184,f,"",,,,statement_timestamp,-,
+2649,clock_timestamp,11,10,12,f,f,t,f,v,0,1184,f,"",,,,clock_timestamp,-,
+1300,positionsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,positionsel,-,
+1301,positionjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,positionjoinsel,-,
+1302,contsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,contsel,-,
+1303,contjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,contjoinsel,-,
+1304,overlaps,11,10,12,f,f,f,f,i,4,16,f,1184 1184 1184 1184,,,,overlaps_timestamp,-,
+1305,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1186 1184 1186,,,,"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))",-,
+1306,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1184 1184 1186,,,,"select ($1, $2) overlaps ($3, ($3 + $4))",-,
+1307,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1186 1184 1184,,,,"select ($1, ($1 + $2)) overlaps ($3, $4)",-,
+1308,overlaps,11,10,12,f,f,f,f,i,4,16,f,1083 1083 1083 1083,,,,overlaps_time,-,
+1309,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1186 1083 1186,,,,"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))",-,
+1310,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1083 1083 1186,,,,"select ($1, $2) overlaps ($3, ($3 + $4))",-,
+1311,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1186 1083 1083,,,,"select ($1, ($1 + $2)) overlaps ($3, $4)",-,
+1312,timestamp_in,11,10,12,f,f,t,f,s,3,1114,f,2275 26 23,,,,timestamp_in,-,
+1313,timestamp_out,11,10,12,f,f,t,f,s,1,2275,f,1114,,,,timestamp_out,-,
+1314,timestamptz_cmp,11,10,12,f,f,t,f,i,2,23,f,1184 1184,,,,timestamp_cmp,-,
+1315,interval_cmp,11,10,12,f,f,t,f,i,2,23,f,1186 1186,,,,interval_cmp,-,
+1316,time,11,10,12,f,f,t,f,i,1,1083,f,1114,,,,timestamp_time,-,
+1317,length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1318,length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1319,xideqint4,11,10,12,f,f,t,f,i,2,16,f,28 23,,,,xideq,-,
+1326,interval_div,11,10,12,f,f,t,f,i,2,1186,f,1186 701,,,,interval_div,-,
+1339,dlog10,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog10,-,
+1340,log,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog10,-,
+1341,ln,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog1,-,
+1342,round,11,10,12,f,f,t,f,i,1,701,f,701,,,,dround,-,
+1343,trunc,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtrunc,-,
+1344,sqrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsqrt,-,
+1345,cbrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcbrt,-,
+1346,pow,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+1368,power,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+1347,exp,11,10,12,f,f,t,f,i,1,701,f,701,,,,dexp,-,
+1348,obj_description,11,10,14,f,f,t,f,s,1,25,f,26,,,,select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0,-,
+1349,oidvectortypes,11,10,12,f,f,t,f,s,1,25,f,30,,,,oidvectortypes,-,
+1350,timetz_in,11,10,12,f,f,t,f,s,3,1266,f,2275 26 23,,,,timetz_in,-,
+1351,timetz_out,11,10,12,f,f,t,f,i,1,2275,f,1266,,,,timetz_out,-,
+1352,timetz_eq,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_eq,-,
+1353,timetz_ne,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_ne,-,
+1354,timetz_lt,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_lt,-,
+1355,timetz_le,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_le,-,
+1356,timetz_ge,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_ge,-,
+1357,timetz_gt,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_gt,-,
+1358,timetz_cmp,11,10,12,f,f,t,f,i,2,23,f,1266 1266,,,,timetz_cmp,-,
+1359,timestamptz,11,10,12,f,f,t,f,i,2,1184,f,1082 1266,,,,datetimetz_timestamptz,-,
+1364,time,11,10,14,f,f,t,f,s,1,1083,f,702,,,,select cast(cast($1 as timestamp without time zone) as time),-,
+1367,character_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1369,character_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1370,interval,11,10,12,f,f,t,f,i,1,1186,f,1083,,,,time_interval,-,
+1372,char_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1373,array_type_length_coerce,11,10,12,f,f,t,f,s,3,2277,f,2277 23 16,,,,array_type_length_coerce,-,
+1374,octet_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textoctetlen,-,
+1375,octet_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharoctetlen,-,
+1377,time_larger,11,10,12,f,f,t,f,i,2,1083,f,1083 1083,,,,time_larger,-,
+1378,time_smaller,11,10,12,f,f,t,f,i,2,1083,f,1083 1083,,,,time_smaller,-,
+1379,timetz_larger,11,10,12,f,f,t,f,i,2,1266,f,1266 1266,,,,timetz_larger,-,
+1380,timetz_smaller,11,10,12,f,f,t,f,i,2,1266,f,1266 1266,,,,timetz_smaller,-,
+1381,char_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1382,date_part,11,10,14,f,f,t,f,s,2,701,f,25 702,,,,"select pg_catalog.date_part($1, cast($2 as timestamp with time zone))",-,
+1383,date_part,11,10,14,f,f,t,f,s,2,701,f,25 703,,,,"select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))",-,
+1384,date_part,11,10,14,f,f,t,f,i,2,701,f,25 1082,,,,"select pg_catalog.date_part($1, cast($2 as timestamp without time zone))",-,
+1385,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1083,,,,time_part,-,
+1386,age,11,10,14,f,f,t,f,s,1,1186,f,1184,,,,"select pg_catalog.age(cast(current_date as timestamp with time zone), $1)",-,
+1388,timetz,11,10,12,f,f,t,f,s,1,1266,f,1184,,,,timestamptz_timetz,-,
+1389,isfinite,11,10,12,f,f,t,f,i,1,16,f,1184,,,,timestamp_finite,-,
+1390,isfinite,11,10,12,f,f,t,f,i,1,16,f,1186,,,,interval_finite,-,
+1376,factorial,11,10,12,f,f,t,f,i,1,1700,f,20,,,,numeric_fac,-,
+1394,abs,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4abs,-,
+1395,abs,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8abs,-,
+1396,abs,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8abs,-,
+1397,abs,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4abs,-,
+1398,abs,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2abs,-,
+1400,name,11,10,12,f,f,t,f,i,1,19,f,1043,,,,text_name,-,
+1401,varchar,11,10,12,f,f,t,f,i,1,1043,f,19,,,,name_text,-,
+1402,current_schema,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_schema,-,
+1403,current_schemas,11,10,12,f,f,t,f,s,1,1003,f,16,,,,current_schemas,-,
+1404,overlay,11,10,14,f,f,t,f,i,4,25,f,25 25 23 23,,,,"select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + $4))",-,
+1405,overlay,11,10,14,f,f,t,f,i,3,25,f,25 25 23,,,,"select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + pg_catalog.char_length($2)))",-,
+1406,isvertical,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_vert,-,
+1407,ishorizontal,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_horiz,-,
+1408,isparallel,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_parallel,-,
+1409,isperp,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_perp,-,
+1410,isvertical,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_vertical,-,
+1411,ishorizontal,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_horizontal,-,
+1412,isparallel,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_parallel,-,
+1413,isperp,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_perp,-,
+1414,isvertical,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_vertical,-,
+1415,ishorizontal,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_horizontal,-,
+1416,point,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1417,isnottrue,11,10,12,f,f,f,f,i,1,16,f,16,,,,isnottrue,-,
+1418,isnotfalse,11,10,12,f,f,f,f,i,1,16,f,16,,,,isnotfalse,-,
+1419,time,11,10,12,f,f,t,f,i,1,1083,f,1186,,,,interval_time,-,
+1421,box,11,10,12,f,f,t,f,i,2,603,f,600 600,,,,points_box,-,
+1422,box_add,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_add,-,
+1423,box_sub,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_sub,-,
+1424,box_mul,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_mul,-,
+1425,box_div,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_div,-,
+1426,path_contain_pt,11,10,14,f,f,t,f,i,2,16,f,602 600,,,,"select pg_catalog.on_ppath($2, $1)",-,
+1428,poly_contain_pt,11,10,12,f,f,t,f,i,2,16,f,604 600,,,,poly_contain_pt,-,
+1429,pt_contained_poly,11,10,12,f,f,t,f,i,2,16,f,600 604,,,,pt_contained_poly,-,
+1430,isclosed,11,10,12,f,f,t,f,i,1,16,f,602,,,,path_isclosed,-,
+1431,isopen,11,10,12,f,f,t,f,i,1,16,f,602,,,,path_isopen,-,
+1432,path_npoints,11,10,12,f,f,t,f,i,1,23,f,602,,,,path_npoints,-,
+1433,pclose,11,10,12,f,f,t,f,i,1,602,f,602,,,,path_close,-,
+1434,popen,11,10,12,f,f,t,f,i,1,602,f,602,,,,path_open,-,
+1435,path_add,11,10,12,f,f,t,f,i,2,602,f,602 602,,,,path_add,-,
+1436,path_add_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_add_pt,-,
+1437,path_sub_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_sub_pt,-,
+1438,path_mul_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_mul_pt,-,
+1439,path_div_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_div_pt,-,
+1440,point,11,10,12,f,f,t,f,i,2,600,f,701 701,,,,construct_point,-,
+1441,point_add,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_add,-,
+1442,point_sub,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_sub,-,
+1443,point_mul,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_mul,-,
+1444,point_div,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_div,-,
+1445,poly_npoints,11,10,12,f,f,t,f,i,1,23,f,604,,,,poly_npoints,-,
+1446,box,11,10,12,f,f,t,f,i,1,603,f,604,,,,poly_box,-,
+1447,path,11,10,12,f,f,t,f,i,1,602,f,604,,,,poly_path,-,
+1448,polygon,11,10,12,f,f,t,f,i,1,604,f,603,,,,box_poly,-,
+1449,polygon,11,10,12,f,f,t,f,i,1,604,f,602,,,,path_poly,-,
+1450,circle_in,11,10,12,f,f,t,f,i,1,718,f,2275,,,,circle_in,-,
+1451,circle_out,11,10,12,f,f,t,f,i,1,2275,f,718,,,,circle_out,-,
+1452,circle_same,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_same,-,
+1453,circle_contain,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_contain,-,
+1454,circle_left,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_left,-,
+1455,circle_overleft,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overleft,-,
+1456,circle_overright,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overright,-,
+1457,circle_right,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_right,-,
+1458,circle_contained,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_contained,-,
+1459,circle_overlap,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overlap,-,
+1460,circle_below,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_below,-,
+1461,circle_above,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_above,-,
+1462,circle_eq,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_eq,-,
+1463,circle_ne,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_ne,-,
+1464,circle_lt,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_lt,-,
+1465,circle_gt,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_gt,-,
+1466,circle_le,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_le,-,
+1467,circle_ge,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_ge,-,
+1468,area,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_area,-,
+1469,diameter,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_diameter,-,
+1470,radius,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_radius,-,
+1471,circle_distance,11,10,12,f,f,t,f,i,2,701,f,718 718,,,,circle_distance,-,
+1472,circle_center,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1473,circle,11,10,12,f,f,t,f,i,2,718,f,600 701,,,,cr_circle,-,
+1474,circle,11,10,12,f,f,t,f,i,1,718,f,604,,,,poly_circle,-,
+1475,polygon,11,10,12,f,f,t,f,i,2,604,f,23 718,,,,circle_poly,-,
+1476,dist_pc,11,10,12,f,f,t,f,i,2,701,f,600 718,,,,dist_pc,-,
+1477,circle_contain_pt,11,10,12,f,f,t,f,i,2,16,f,718 600,,,,circle_contain_pt,-,
+1478,pt_contained_circle,11,10,12,f,f,t,f,i,2,16,f,600 718,,,,pt_contained_circle,-,
+1479,circle,11,10,12,f,f,t,f,i,1,718,f,603,,,,box_circle,-,
+1480,box,11,10,12,f,f,t,f,i,1,603,f,718,,,,circle_box,-,
+1481,tinterval,11,10,12,f,f,t,f,i,2,704,f,702 702,,,,mktinterval,-,
+1482,lseg_ne,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_ne,-,
+1483,lseg_lt,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_lt,-,
+1484,lseg_le,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_le,-,
+1485,lseg_gt,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_gt,-,
+1486,lseg_ge,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_ge,-,
+1487,lseg_length,11,10,12,f,f,t,f,i,1,701,f,601,,,,lseg_length,-,
+1488,close_ls,11,10,12,f,f,t,f,i,2,600,f,628 601,,,,close_ls,-,
+1489,close_lseg,11,10,12,f,f,t,f,i,2,600,f,601 601,,,,close_lseg,-,
+1490,line_in,11,10,12,f,f,t,f,i,1,628,f,2275,,,,line_in,-,
+1491,line_out,11,10,12,f,f,t,f,i,1,2275,f,628,,,,line_out,-,
+1492,line_eq,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_eq,-,
+1493,line,11,10,12,f,f,t,f,i,2,628,f,600 600,,,,line_construct_pp,-,
+1494,line_interpt,11,10,12,f,f,t,f,i,2,600,f,628 628,,,,line_interpt,-,
+1495,line_intersect,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_intersect,-,
+1496,line_parallel,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_parallel,-,
+1497,line_perp,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_perp,-,
+1498,line_vertical,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_vertical,-,
+1499,line_horizontal,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_horizontal,-,
+1530,length,11,10,12,f,f,t,f,i,1,701,f,601,,,,lseg_length,-,
+1531,length,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_length,-,
+1532,point,11,10,12,f,f,t,f,i,1,600,f,601,,,,lseg_center,-,
+1533,point,11,10,12,f,f,t,f,i,1,600,f,602,,,,path_center,-,
+1534,point,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+1540,point,11,10,12,f,f,t,f,i,1,600,f,604,,,,poly_center,-,
+1541,lseg,11,10,12,f,f,t,f,i,1,601,f,603,,,,box_diagonal,-,
+1542,center,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+1543,center,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1544,polygon,11,10,14,f,f,t,f,i,1,604,f,718,,,,"select pg_catalog.polygon(12, $1)",-,
+1545,npoints,11,10,12,f,f,t,f,i,1,23,f,602,,,,path_npoints,-,
+1556,npoints,11,10,12,f,f,t,f,i,1,23,f,604,,,,poly_npoints,-,
+1564,bit_in,11,10,12,f,f,t,f,i,3,1560,f,2275 26 23,,,,bit_in,-,
+1565,bit_out,11,10,12,f,f,t,f,i,1,2275,f,1560,,,,bit_out,-,
+1569,like,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textlike,-,
+1570,notlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textnlike,-,
+1571,like,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namelike,-,
+1572,notlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namenlike,-,
+1574,nextval,11,10,12,f,f,t,f,v,1,20,f,2205,,,,nextval_oid,-,
+1575,currval,11,10,12,f,f,t,f,v,1,20,f,2205,,,,currval_oid,-,
+1576,setval,11,10,12,f,f,t,f,v,2,20,f,2205 20,,,,setval_oid,-,
+1765,setval,11,10,12,f,f,t,f,v,3,20,f,2205 20 16,,,,setval3_oid,-,
+1579,varbit_in,11,10,12,f,f,t,f,i,3,1562,f,2275 26 23,,,,varbit_in,-,
+1580,varbit_out,11,10,12,f,f,t,f,i,1,2275,f,1562,,,,varbit_out,-,
+1581,biteq,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,biteq,-,
+1582,bitne,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitne,-,
+1592,bitge,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitge,-,
+1593,bitgt,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitgt,-,
+1594,bitle,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitle,-,
+1595,bitlt,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitlt,-,
+1596,bitcmp,11,10,12,f,f,t,f,i,2,23,f,1560 1560,,,,bitcmp,-,
+1598,random,11,10,12,f,f,t,f,v,0,701,f,"",,,,drandom,-,
+1599,setseed,11,10,12,f,f,t,f,v,1,23,f,701,,,,setseed,-,
+1600,asin,11,10,12,f,f,t,f,i,1,701,f,701,,,,dasin,-,
+1601,acos,11,10,12,f,f,t,f,i,1,701,f,701,,,,dacos,-,
+1602,atan,11,10,12,f,f,t,f,i,1,701,f,701,,,,datan,-,
+1603,atan2,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,datan2,-,
+1604,sin,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsin,-,
+1605,cos,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcos,-,
+1606,tan,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtan,-,
+1607,cot,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcot,-,
+1608,degrees,11,10,12,f,f,t,f,i,1,701,f,701,,,,degrees,-,
+1609,radians,11,10,12,f,f,t,f,i,1,701,f,701,,,,radians,-,
+1610,pi,11,10,12,f,f,t,f,i,0,701,f,"",,,,dpi,-,
+1618,interval_mul,11,10,12,f,f,t,f,i,2,1186,f,1186 701,,,,interval_mul,-,
+1620,ascii,11,10,12,f,f,t,f,i,1,23,f,25,,,,ascii,-,
+1621,chr,11,10,12,f,f,t,f,i,1,25,f,23,,,,chr,-,
+1622,repeat,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,repeat,-,
+1623,similar_escape,11,10,12,f,f,f,f,i,2,25,f,25 25,,,,similar_escape,-,
+1624,mul_d_interval,11,10,12,f,f,t,f,i,2,1186,f,701 1186,,,,mul_d_interval,-,
+1631,bpcharlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textlike,-,
+1632,bpcharnlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textnlike,-,
+1633,texticlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticlike,-,
+1634,texticnlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticnlike,-,
+1635,nameiclike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameiclike,-,
+1636,nameicnlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicnlike,-,
+1637,like_escape,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,like_escape,-,
+1656,bpcharicregexeq,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticregexeq,-,
+1657,bpcharicregexne,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticregexne,-,
+1658,bpcharregexeq,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textregexeq,-,
+1659,bpcharregexne,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textregexne,-,
+1660,bpchariclike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticlike,-,
+1661,bpcharicnlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticnlike,-,
+1689,flatfile_update_trigger,11,10,12,f,f,t,f,v,0,2279,f,"",,,,flatfile_update_trigger,-,
+868,strpos,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,textpos,-,
+870,lower,11,10,12,f,f,t,f,i,1,25,f,25,,,,lower,-,
+871,upper,11,10,12,f,f,t,f,i,1,25,f,25,,,,upper,-,
+872,initcap,11,10,12,f,f,t,f,i,1,25,f,25,,,,initcap,-,
+873,lpad,11,10,12,f,f,t,f,i,3,25,f,25 23 25,,,,lpad,-,
+874,rpad,11,10,12,f,f,t,f,i,3,25,f,25 23 25,,,,rpad,-,
+875,ltrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,ltrim,-,
+876,rtrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,rtrim,-,
+877,substr,11,10,12,f,f,t,f,i,3,25,f,25 23 23,,,,text_substr,-,
+878,translate,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,translate,-,
+879,lpad,11,10,14,f,f,t,f,i,2,25,f,25 23,,,,"select pg_catalog.lpad($1, $2, ' ')",-,
+880,rpad,11,10,14,f,f,t,f,i,2,25,f,25 23,,,,"select pg_catalog.rpad($1, $2, ' ')",-,
+881,ltrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,ltrim1,-,
+882,rtrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,rtrim1,-,
+883,substr,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,text_substr_no_len,-,
+884,btrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,btrim,-,
+885,btrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,btrim1,-,
+936,substring,11,10,12,f,f,t,f,i,3,25,f,25 23 23,,,,text_substr,-,
+937,substring,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,text_substr_no_len,-,
+2087,replace,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,replace_text,-,
+2284,regexp_replace,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,textregexreplace_noopt,-,
+2285,regexp_replace,11,10,12,f,f,t,f,i,4,25,f,25 25 25 25,,,,textregexreplace,-,
+5018,regexp_matches,11,10,12,f,f,t,t,i,2,1009,f,25 25,,,,regexp_matches_no_flags,-,
+5019,regexp_matches,11,10,12,f,f,t,t,i,3,1009,f,25 25 25,,,,regexp_matches,-,
+5020,regexp_split_to_table,11,10,12,f,f,t,t,i,2,25,f,25 25,,,,regexp_split_to_table_no_flags,-,
+5021,regexp_split_to_table,11,10,12,f,f,t,t,i,3,25,f,25 25 25,,,,regexp_split_to_table,-,
+5022,regexp_split_to_array,11,10,12,f,f,t,f,i,2,1009,f,25 25,,,,regexp_split_to_array_no_flags,-,
+5023,regexp_split_to_array,11,10,12,f,f,t,f,i,3,1009,f,25 25 25,,,,regexp_split_to_array,-,
+2088,split_part,11,10,12,f,f,t,f,i,3,25,f,25 25 23,,,,split_text,-,
+2089,to_hex,11,10,12,f,f,t,f,i,1,25,f,23,,,,to_hex32,-,
+2090,to_hex,11,10,12,f,f,t,f,i,1,25,f,20,,,,to_hex64,-,
+1039,getdatabaseencoding,11,10,12,f,f,t,f,s,0,19,f,"",,,,getdatabaseencoding,-,
+810,pg_client_encoding,11,10,12,f,f,t,f,s,0,19,f,"",,,,pg_client_encoding,-,
+1717,convert,11,10,12,f,f,t,f,s,2,25,f,25 19,,,,pg_convert,-,
+1813,convert,11,10,12,f,f,t,f,s,3,25,f,25 19 19,,,,pg_convert2,-,
+1619,convert_using,11,10,12,f,f,t,f,s,2,25,f,25 25,,,,pg_convert_using,-,
+1264,pg_char_to_encoding,11,10,12,f,f,t,f,s,1,23,f,19,,,,PG_char_to_encoding,-,
+1597,pg_encoding_to_char,11,10,12,f,f,t,f,s,1,19,f,23,,,,PG_encoding_to_char,-,
+1638,oidgt,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidgt,-,
+1639,oidge,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidge,-,
+1573,pg_get_ruledef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_ruledef,-,
+1640,pg_get_viewdef,11,10,12,f,f,t,f,s,1,25,f,25,,,,pg_get_viewdef_name,-,
+1641,pg_get_viewdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_viewdef,-,
+1642,pg_get_userbyid,11,10,12,f,f,t,f,s,1,19,f,26,,,,pg_get_userbyid,-,
+1643,pg_get_indexdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_indexdef,-,
+1662,pg_get_triggerdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_triggerdef,-,
+1387,pg_get_constraintdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_constraintdef,-,
+1716,pg_get_expr,11,10,12,f,f,t,f,s,2,25,f,25 26,,,,pg_get_expr,-,
+1665,pg_get_serial_sequence,11,10,12,f,f,t,f,s,2,25,f,25 25,,,,pg_get_serial_sequence,-,
+5024,pg_get_partition_def,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_partition_def,-,
+5025,pg_get_partition_def,11,10,12,f,f,t,f,s,2,25,f,26 16,,,,pg_get_partition_def_ext,-,
+5027,pg_get_partition_rule_def,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_partition_rule_def,-,
+5028,pg_get_partition_rule_def,11,10,12,f,f,t,f,s,2,25,f,26 16,,,,pg_get_partition_rule_def_ext,-,
+1644,RI_FKey_check_ins,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_check_ins,-,
+1645,RI_FKey_check_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_check_upd,-,
+1646,RI_FKey_cascade_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_cascade_del,-,
+1647,RI_FKey_cascade_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_cascade_upd,-,
+1648,RI_FKey_restrict_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_restrict_del,-,
+1649,RI_FKey_restrict_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_restrict_upd,-,
+1650,RI_FKey_setnull_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setnull_del,-,
+1651,RI_FKey_setnull_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setnull_upd,-,
+1652,RI_FKey_setdefault_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setdefault_del,-,
+1653,RI_FKey_setdefault_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setdefault_upd,-,
+1654,RI_FKey_noaction_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_noaction_del,-,
+1655,RI_FKey_noaction_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_noaction_upd,-,
+1666,varbiteq,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,biteq,-,
+1667,varbitne,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitne,-,
+1668,varbitge,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitge,-,
+1669,varbitgt,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitgt,-,
+1670,varbitle,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitle,-,
+1671,varbitlt,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitlt,-,
+1672,varbitcmp,11,10,12,f,f,t,f,i,2,23,f,1562 1562,,,,bitcmp,-,
+1673,bitand,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitand,-,
+1674,bitor,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitor,-,
+1675,bitxor,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitxor,-,
+1676,bitnot,11,10,12,f,f,t,f,i,1,1560,f,1560,,,,bitnot,-,
+1677,bitshiftleft,11,10,12,f,f,t,f,i,2,1560,f,1560 23,,,,bitshiftleft,-,
+1678,bitshiftright,11,10,12,f,f,t,f,i,2,1560,f,1560 23,,,,bitshiftright,-,
+1679,bitcat,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitcat,-,
+1680,substring,11,10,12,f,f,t,f,i,3,1560,f,1560 23 23,,,,bitsubstr,-,
+1681,length,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bitlength,-,
+1682,octet_length,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bitoctetlength,-,
+1683,bit,11,10,12,f,f,t,f,i,2,1560,f,23 23,,,,bitfromint4,-,
+1684,int4,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bittoint4,-,
+1685,bit,11,10,12,f,f,t,f,i,3,1560,f,1560 23 16,,,,bit,-,
+1687,varbit,11,10,12,f,f,t,f,i,3,1562,f,1562 23 16,,,,varbit,-,
+1698,position,11,10,12,f,f,t,f,i,2,23,f,1560 1560,,,,bitposition,-,
+1699,substring,11,10,14,f,f,t,f,i,2,1560,f,1560 23,,,,"select pg_catalog.substring($1, $2, -1)",-,
+436,macaddr_in,11,10,12,f,f,t,f,i,1,829,f,2275,,,,macaddr_in,-,
+437,macaddr_out,11,10,12,f,f,t,f,i,1,2275,f,829,,,,macaddr_out,-,
+752,text,11,10,12,f,f,t,f,i,1,25,f,829,,,,macaddr_text,-,
+753,trunc,11,10,12,f,f,t,f,i,1,829,f,829,,,,macaddr_trunc,-,
+767,macaddr,11,10,12,f,f,t,f,i,1,829,f,25,,,,text_macaddr,-,
+830,macaddr_eq,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_eq,-,
+831,macaddr_lt,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_lt,-,
+832,macaddr_le,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_le,-,
+833,macaddr_gt,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_gt,-,
+834,macaddr_ge,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_ge,-,
+835,macaddr_ne,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_ne,-,
+836,macaddr_cmp,11,10,12,f,f,t,f,i,2,23,f,829 829,,,,macaddr_cmp,-,
+910,inet_in,11,10,12,f,f,t,f,i,1,869,f,2275,,,,inet_in,-,
+911,inet_out,11,10,12,f,f,t,f,i,1,2275,f,869,,,,inet_out,-,
+1267,cidr_in,11,10,12,f,f,t,f,i,1,650,f,2275,,,,cidr_in,-,
+1427,cidr_out,11,10,12,f,f,t,f,i,1,2275,f,650,,,,cidr_out,-,
+920,network_eq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_eq,-,
+921,network_lt,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_lt,-,
+922,network_le,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_le,-,
+923,network_gt,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_gt,-,
+924,network_ge,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_ge,-,
+925,network_ne,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_ne,-,
+926,network_cmp,11,10,12,f,f,t,f,i,2,23,f,869 869,,,,network_cmp,-,
+927,network_sub,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_sub,-,
+928,network_subeq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_subeq,-,
+929,network_sup,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_sup,-,
+930,network_supeq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_supeq,-,
+598,abbrev,11,10,12,f,f,t,f,i,1,25,f,869,,,,inet_abbrev,-,
+599,abbrev,11,10,12,f,f,t,f,i,1,25,f,650,,,,cidr_abbrev,-,
+605,set_masklen,11,10,12,f,f,t,f,i,2,869,f,869 23,,,,inet_set_masklen,-,
+635,set_masklen,11,10,12,f,f,t,f,i,2,650,f,650 23,,,,cidr_set_masklen,-,
+711,family,11,10,12,f,f,t,f,i,1,23,f,869,,,,network_family,-,
+683,network,11,10,12,f,f,t,f,i,1,650,f,869,,,,network_network,-,
+696,netmask,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_netmask,-,
+697,masklen,11,10,12,f,f,t,f,i,1,23,f,869,,,,network_masklen,-,
+698,broadcast,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_broadcast,-,
+699,host,11,10,12,f,f,t,f,i,1,25,f,869,,,,network_host,-,
+730,text,11,10,12,f,f,t,f,i,1,25,f,869,,,,network_show,-,
+1362,hostmask,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_hostmask,-,
+1713,inet,11,10,12,f,f,t,f,i,1,869,f,25,,,,text_inet,-,
+1714,cidr,11,10,12,f,f,t,f,i,1,650,f,25,,,,text_cidr,-,
+1715,cidr,11,10,12,f,f,t,f,i,1,650,f,869,,,,inet_to_cidr,-,
+2196,inet_client_addr,11,10,12,f,f,f,f,s,0,869,f,"",,,,inet_client_addr,-,
+2197,inet_client_port,11,10,12,f,f,f,f,s,0,23,f,"",,,,inet_client_port,-,
+2198,inet_server_addr,11,10,12,f,f,f,f,s,0,869,f,"",,,,inet_server_addr,-,
+2199,inet_server_port,11,10,12,f,f,f,f,s,0,23,f,"",,,,inet_server_port,-,
+2627,inetnot,11,10,12,f,f,t,f,i,1,869,f,869,,,,inetnot,-,
+2628,inetand,11,10,12,f,f,t,f,i,2,869,f,869 869,,,,inetand,-,
+2629,inetor,11,10,12,f,f,t,f,i,2,869,f,869 869,,,,inetor,-,
+2630,inetpl,11,10,12,f,f,t,f,i,2,869,f,869 20,,,,inetpl,-,
+2631,int8pl_inet,11,10,14,f,f,t,f,i,2,869,f,20 869,,,,select $2 + $1,-,
+2632,inetmi_int8,11,10,12,f,f,t,f,i,2,869,f,869 20,,,,inetmi_int8,-,
+2633,inetmi,11,10,12,f,f,t,f,i,2,20,f,869 869,,,,inetmi,-,
+1686,numeric,11,10,12,f,f,t,f,i,1,1700,f,25,,,,text_numeric,-,
+1688,text,11,10,12,f,f,t,f,i,1,25,f,1700,,,,numeric_text,-,
+1690,time_mi_time,11,10,12,f,f,t,f,i,2,1186,f,1083 1083,,,,time_mi_time,-,
+1691,boolle,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolle,-,
+1692,boolge,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolge,-,
+1693,btboolcmp,11,10,12,f,f,t,f,i,2,23,f,16 16,,,,btboolcmp,-,
+1696,timetz_hash,11,10,12,f,f,t,f,i,1,23,f,1266,,,,timetz_hash,-,
+1697,interval_hash,11,10,12,f,f,t,f,i,1,23,f,1186,,,,interval_hash,-,
+1701,numeric_in,11,10,12,f,f,t,f,i,3,1700,f,2275 26 23,,,,numeric_in,-,
+1702,numeric_out,11,10,12,f,f,t,f,i,1,2275,f,1700,,,,numeric_out,-,
+1703,numeric,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric,-,
+1704,numeric_abs,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_abs,-,
+1705,abs,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_abs,-,
+1706,sign,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sign,-,
+1707,round,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric_round,-,
+1708,round,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.round($1,0)",-,
+1709,trunc,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric_trunc,-,
+1710,trunc,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.trunc($1,0)",-,
+1711,ceil,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ceil,-,
+2167,ceiling,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ceil,-,
+1712,floor,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_floor,-,
+1718,numeric_eq,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_eq,-,
+1719,numeric_ne,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_ne,-,
+1720,numeric_gt,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_gt,-,
+1721,numeric_ge,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_ge,-,
+1722,numeric_lt,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_lt,-,
+1723,numeric_le,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_le,-,
+1724,numeric_add,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_add,-,
+1725,numeric_sub,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_sub,-,
+1726,numeric_mul,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mul,-,
+1727,numeric_div,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_div,-,
+1728,mod,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mod,-,
+1729,numeric_mod,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mod,-,
+1730,sqrt,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sqrt,-,
+1731,numeric_sqrt,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sqrt,-,
+1732,exp,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_exp,-,
+1733,numeric_exp,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_exp,-,
+1734,ln,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ln,-,
+1735,numeric_ln,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ln,-,
+1736,log,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_log,-,
+1737,numeric_log,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_log,-,
+1738,pow,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+2169,power,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+1739,numeric_power,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+1740,numeric,11,10,12,f,f,t,f,i,1,1700,f,23,,,,int4_numeric,-,
+1741,log,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.log(10, $1)",-,
+1742,numeric,11,10,12,f,f,t,f,i,1,1700,f,700,,,,float4_numeric,-,
+1743,numeric,11,10,12,f,f,t,f,i,1,1700,f,701,,,,float8_numeric,-,
+1744,int4,11,10,12,f,f,t,f,i,1,23,f,1700,,,,numeric_int4,-,
+1745,float4,11,10,12,f,f,t,f,i,1,700,f,1700,,,,numeric_float4,-,
+1746,float8,11,10,12,f,f,t,f,i,1,701,f,1700,,,,numeric_float8,-,
+2170,width_bucket,11,10,12,f,f,t,f,i,4,23,f,1700 1700 1700 23,,,,width_bucket_numeric,-,
+1747,time_pl_interval,11,10,12,f,f,t,f,i,2,1083,f,1083 1186,,,,time_pl_interval,-,
+1748,time_mi_interval,11,10,12,f,f,t,f,i,2,1083,f,1083 1186,,,,time_mi_interval,-,
+1749,timetz_pl_interval,11,10,12,f,f,t,f,i,2,1266,f,1266 1186,,,,timetz_pl_interval,-,
+1750,timetz_mi_interval,11,10,12,f,f,t,f,i,2,1266,f,1266 1186,,,,timetz_mi_interval,-,
+1764,numeric_inc,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_inc,-,
+1004,numeric_dec,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_dec,-,
+1766,numeric_smaller,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_smaller,-,
+1767,numeric_larger,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_larger,-,
+1769,numeric_cmp,11,10,12,f,f,t,f,i,2,23,f,1700 1700,,,,numeric_cmp,-,
+1771,numeric_uminus,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_uminus,-,
+1779,int8,11,10,12,f,f,t,f,i,1,20,f,1700,,,,numeric_int8,-,
+1781,numeric,11,10,12,f,f,t,f,i,1,1700,f,20,,,,int8_numeric,-,
+1782,numeric,11,10,12,f,f,t,f,i,1,1700,f,21,,,,int2_numeric,-,
+1783,int2,11,10,12,f,f,t,f,i,1,21,f,1700,,,,numeric_int2,-,
+1770,to_char,11,10,12,f,f,t,f,s,2,25,f,1184 25,,,,timestamptz_to_char,-,
+1772,to_char,11,10,12,f,f,t,f,s,2,25,f,1700 25,,,,numeric_to_char,-,
+1773,to_char,11,10,12,f,f,t,f,s,2,25,f,23 25,,,,int4_to_char,-,
+1774,to_char,11,10,12,f,f,t,f,s,2,25,f,20 25,,,,int8_to_char,-,
+1775,to_char,11,10,12,f,f,t,f,s,2,25,f,700 25,,,,float4_to_char,-,
+1776,to_char,11,10,12,f,f,t,f,s,2,25,f,701 25,,,,float8_to_char,-,
+1777,to_number,11,10,12,f,f,t,f,s,2,1700,f,25 25,,,,numeric_to_number,-,
+1778,to_timestamp,11,10,12,f,f,t,f,s,2,1184,f,25 25,,,,to_timestamp,-,
+1780,to_date,11,10,12,f,f,t,f,s,2,1082,f,25 25,,,,to_date,-,
+1768,to_char,11,10,12,f,f,t,f,s,2,25,f,1186 25,,,,interval_to_char,-,
+1282,quote_ident,11,10,12,f,f,t,f,i,1,25,f,25,,,,quote_ident,-,
+1283,quote_literal,11,10,12,f,f,t,f,i,1,25,f,25,,,,quote_literal,-,
+1798,oidin,11,10,12,f,f,t,f,i,1,26,f,2275,,,,oidin,-,
+1799,oidout,11,10,12,f,f,t,f,i,1,2275,f,26,,,,oidout,-,
+1810,bit_length,11,10,14,f,f,t,f,i,1,23,f,17,,,,select pg_catalog.octet_length($1) * 8,-,
+1811,bit_length,11,10,14,f,f,t,f,i,1,23,f,25,,,,select pg_catalog.octet_length($1) * 8,-,
+1812,bit_length,11,10,14,f,f,t,f,i,1,23,f,1560,,,,select pg_catalog.length($1),-,
+1814,iclikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,iclikesel,-,
+1815,icnlikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icnlikesel,-,
+1816,iclikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,iclikejoinsel,-,
+1817,icnlikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icnlikejoinsel,-,
+1818,regexeqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,regexeqsel,-,
+1819,likesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,likesel,-,
+1820,icregexeqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icregexeqsel,-,
+1821,regexnesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,regexnesel,-,
+1822,nlikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,nlikesel,-,
+1823,icregexnesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icregexnesel,-,
+1824,regexeqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,regexeqjoinsel,-,
+1825,likejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,likejoinsel,-,
+1826,icregexeqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icregexeqjoinsel,-,
+1827,regexnejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,regexnejoinsel,-,
+1828,nlikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,nlikejoinsel,-,
+1829,icregexnejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icregexnejoinsel,-,
+1830,float8_avg,11,10,12,f,f,t,f,i,1,701,f,17,,,,float8_avg,-,
+2512,float8_var_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_var_pop,-,
+1831,float8_var_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_var_samp,-,
+2513,float8_stddev_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_stddev_pop,-,
+1832,float8_stddev_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_stddev_samp,-,
+1833,numeric_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 1700,,,,numeric_accum,-,
+3102,numeric_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 1700,,,,numeric_avg_accum,-,
+7309,numeric_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 1700,,,,numeric_decum,-,
+3103,numeric_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 1700,,,,numeric_avg_decum,-,
+1834,int2_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 21,,,,int2_accum,-,
+1835,int4_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 23,,,,int4_accum,-,
+1836,int8_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 20,,,,int8_accum,-,
+7306,int2_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 21,,,,int2_decum,-,
+7307,int4_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 23,,,,int4_decum,-,
+7308,int8_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 20,,,,int8_decum,-,
+1837,numeric_avg,11,10,12,f,f,t,f,i,1,1700,f,17,,,,numeric_avg,-,
+2514,numeric_var_pop,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_var_pop,-,
+1838,numeric_var_samp,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_var_samp,-,
+2596,numeric_stddev_pop,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_stddev_pop,-,
+1839,numeric_stddev_samp,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_stddev_samp,-,
+1840,int2_sum,11,10,12,f,f,f,f,i,2,20,f,20 21,,,,int2_sum,-,
+1841,int4_sum,11,10,12,f,f,f,f,i,2,20,f,20 23,,,,int4_sum,-,
+1842,int8_sum,11,10,12,f,f,f,f,i,2,1700,f,1700 20,,,,int8_sum,-,
+7008,int2_invsum,11,10,12,f,f,f,f,i,2,20,f,20 21,,,,int2_invsum,-,
+7009,int4_invsum,11,10,12,f,f,f,f,i,2,20,f,20 23,,,,int4_invsum,-,
+7010,int8_invsum,11,10,12,f,f,f,f,i,2,1700,f,1700 20,,,,int8_invsum,-,
+1843,interval_accum,11,10,12,f,f,t,f,i,2,1187,f,1187 1186,,,,interval_accum,-,
+6038,interval_decum,11,10,12,f,f,t,f,i,2,1187,f,1187 1186,,,,interval_decum,-,
+1844,interval_avg,11,10,12,f,f,t,f,i,1,1186,f,1187,,,,interval_avg,-,
+1962,int2_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 21,,,,int2_avg_accum,-,
+1963,int4_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 23,,,,int4_avg_accum,-,
+3100,int8_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 20,,,,int8_avg_accum,-,
+6019,int2_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 21,,,,int2_avg_decum,-,
+6020,int4_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 23,,,,int4_avg_decum,-,
+3101,int8_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 20,,,,int8_avg_decum,-,
+1964,int8_avg,11,10,12,f,f,t,f,i,1,1700,f,17,,,,int8_avg,-,
+2805,int8inc_float8_float8,11,10,12,f,f,t,f,i,3,20,f,20 701 701,,,,int8inc_float8_float8,-,
+2806,float8_regr_accum,11,10,12,f,f,t,f,i,3,1022,f,1022 701 701,,,,float8_regr_accum,-,
+2807,float8_regr_sxx,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_sxx,-,
+2808,float8_regr_syy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_syy,-,
+2809,float8_regr_sxy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_sxy,-,
+2810,float8_regr_avgx,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_avgx,-,
+2811,float8_regr_avgy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_avgy,-,
+2812,float8_regr_r2,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_r2,-,
+2813,float8_regr_slope,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_slope,-,
+2814,float8_regr_intercept,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_intercept,-,
+2815,float8_covar_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_covar_pop,-,
+2816,float8_covar_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_covar_samp,-,
+2817,float8_corr,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_corr,-,
+1845,to_ascii,11,10,12,f,f,t,f,i,1,25,f,25,,,,to_ascii_default,-,
+1846,to_ascii,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,to_ascii_enc,-,
+1847,to_ascii,11,10,12,f,f,t,f,i,2,25,f,25 19,,,,to_ascii_encname,-,
+1848,interval_pl_time,11,10,14,f,f,t,f,i,2,1083,f,1186 1083,,,,select $2 + $1,-,
+1850,int28eq,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28eq,-,
+1851,int28ne,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28ne,-,
+1852,int28lt,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28lt,-,
+1853,int28gt,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28gt,-,
+1854,int28le,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28le,-,
+1855,int28ge,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28ge,-,
+1856,int82eq,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82eq,-,
+1857,int82ne,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82ne,-,
+1858,int82lt,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82lt,-,
+1859,int82gt,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82gt,-,
+1860,int82le,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82le,-,
+1861,int82ge,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82ge,-,
+1892,int2and,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2and,-,
+1893,int2or,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2or,-,
+1894,int2xor,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2xor,-,
+1895,int2not,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2not,-,
+1896,int2shl,11,10,12,f,f,t,f,i,2,21,f,21 23,,,,int2shl,-,
+1897,int2shr,11,10,12,f,f,t,f,i,2,21,f,21 23,,,,int2shr,-,
+1898,int4and,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4and,-,
+1899,int4or,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4or,-,
+1900,int4xor,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4xor,-,
+1901,int4not,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4not,-,
+1902,int4shl,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4shl,-,
+1903,int4shr,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4shr,-,
+1904,int8and,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8and,-,
+1905,int8or,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8or,-,
+1906,int8xor,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8xor,-,
+1907,int8not,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8not,-,
+1908,int8shl,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int8shl,-,
+1909,int8shr,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int8shr,-,
+1910,int8up,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8up,-,
+1911,int2up,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2up,-,
+1912,int4up,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4up,-,
+1913,float4up,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4up,-,
+1914,float8up,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8up,-,
+1915,numeric_uplus,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_uplus,-,
+1922,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,19 25 25,,,,has_table_privilege_name_name,-,
+1923,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,19 26 25,,,,has_table_privilege_name_id,-,
+1924,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,26 25 25,,,,has_table_privilege_id_name,-,
+1925,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,26 26 25,,,,has_table_privilege_id_id,-,
+1926,has_table_privilege,11,10,12,f,f,t,f,s,2,16,f,25 25,,,,has_table_privilege_name,-,
+1927,has_table_privilege,11,10,12,f,f,t,f,s,2,16,f,26 25,,,,has_table_privilege_id,-,
+1928,pg_stat_get_numscans,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_numscans,-,
+1929,pg_stat_get_tuples_returned,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_returned,-,
+1930,pg_stat_get_tuples_fetched,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_fetched,-,
+1931,pg_stat_get_tuples_inserted,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_inserted,-,
+1932,pg_stat_get_tuples_updated,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_updated,-,
+1933,pg_stat_get_tuples_deleted,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_deleted,-,
+1934,pg_stat_get_blocks_fetched,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_blocks_fetched,-,
+1935,pg_stat_get_blocks_hit,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_blocks_hit,-,
+2781,pg_stat_get_last_vacuum_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_vacuum_time,-,
+2782,pg_stat_get_last_autovacuum_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_autovacuum_time,-,
+2783,pg_stat_get_last_analyze_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_analyze_time,-,
+2784,pg_stat_get_last_autoanalyze_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_autoanalyze_time,-,
+1936,pg_stat_get_backend_idset,11,10,12,f,f,t,t,s,0,23,f,"",,,,pg_stat_get_backend_idset,-,
+2026,pg_backend_pid,11,10,12,f,f,t,f,s,0,23,f,"",,,,pg_backend_pid,-,
+2274,pg_stat_reset,11,10,12,f,f,f,f,v,0,16,f,"",,,,pg_stat_reset,-,
+1937,pg_stat_get_backend_pid,11,10,12,f,f,t,f,s,1,23,f,23,,,,pg_stat_get_backend_pid,-,
+1938,pg_stat_get_backend_dbid,11,10,12,f,f,t,f,s,1,26,f,23,,,,pg_stat_get_backend_dbid,-,
+1939,pg_stat_get_backend_useri

<TRUNCATED>


[20/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_attribute33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_attribute33.data b/src/test/regress/data/upgrade34/pg_attribute33.data
new file mode 100644
index 0000000..d956db6
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_attribute33.data
@@ -0,0 +1,1997 @@
+attrelid,attname,atttypid,attstattarget,attlen,attnum,attndims,attcacheoff,atttypmod,attbyval,attstorage,attalign,attnotnull,atthasdef,attisdropped,attislocal,attinhcount
+1247,typname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1247,typnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typlen,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+1247,typbyval,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typtype,18,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typisdefined,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typdelim,18,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typrelid,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typelem,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typinput,24,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typoutput,24,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typreceive,24,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typsend,24,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typanalyze,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typalign,18,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typstorage,18,-1,1,17,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typnotnull,16,-1,1,18,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typbasetype,26,-1,4,19,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typtypmod,23,-1,4,20,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typndims,23,-1,4,21,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typdefaultbin,25,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+1247,typdefault,25,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+1247,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1247,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1247,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1247,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1247,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1247,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1247,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1247,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1255,pronamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1255,prolang,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proisagg,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1255,prosecdef,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proisstrict,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proretset,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+1255,provolatile,18,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+1255,pronargs,21,-1,2,10,0,-1,-1,t,p,s,t,f,f,t,0
+1255,prorettype,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proiswin,16,-1,1,12,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proargtypes,30,-1,-1,13,1,-1,-1,f,p,i,t,f,f,t,0
+1255,proallargtypes,1028,-1,-1,14,1,-1,-1,f,x,i,f,f,f,t,0
+1255,proargmodes,1002,-1,-1,15,1,-1,-1,f,x,i,f,f,f,t,0
+1255,proargnames,1009,-1,-1,16,1,-1,-1,f,x,i,f,f,f,t,0
+1255,prosrc,25,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+1255,probin,17,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+1255,proacl,1034,-1,-1,19,1,-1,-1,f,x,i,f,f,f,t,0
+1255,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1255,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1255,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1255,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1255,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1255,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1255,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1255,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+1249,atttypid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attstattarget,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attlen,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+1249,attnum,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+1249,attndims,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attcacheoff,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1249,atttypmod,23,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attbyval,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attstorage,18,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attalign,18,-1,1,12,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attnotnull,16,-1,1,13,0,-1,-1,t,p,c,t,f,f,t,0
+1249,atthasdef,16,-1,1,14,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attisdropped,16,-1,1,15,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attislocal,16,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attinhcount,23,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+1249,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1249,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1249,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1249,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1249,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1249,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1249,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1259,relnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltype,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relowner,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relam,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relfilenode,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltablespace,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relpages,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltuples,700,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltoastrelid,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltoastidxid,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relaosegrelid,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relaosegidxid,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relhasindex,16,-1,1,14,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relisshared,16,-1,1,15,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relkind,18,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relstorage,18,-1,1,17,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relnatts,21,-1,2,18,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relchecks,21,-1,2,19,0,-1,-1,t,p,s,t,f,f,t,0
+1259,reltriggers,21,-1,2,20,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relukeys,21,-1,2,21,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relfkeys,21,-1,2,22,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relrefs,21,-1,2,23,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relhasoids,16,-1,1,24,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhaspkey,16,-1,1,25,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhasrules,16,-1,1,26,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhassubclass,16,-1,1,27,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relfrozenxid,28,-1,4,28,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relacl,1034,-1,-1,29,1,-1,-1,f,x,i,f,f,f,t,0
+1259,reloptions,1009,-1,-1,30,1,-1,-1,f,x,i,f,f,f,t,0
+1259,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1259,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1259,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1259,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1259,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1259,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1259,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1259,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+3250,classes,1009,-1,-1,1,1,-1,-1,f,x,i,f,f,f,t,0
+3250,accum,1022,-1,-1,2,1,-1,-1,f,x,d,f,f,f,t,0
+3250,apriori,1016,-1,-1,3,1,-1,-1,f,x,d,f,f,f,t,0
+1248,vacrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1248,enabled,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1248,vac_base_thresh,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_scale_factor,700,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1248,anl_base_thresh,23,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1248,anl_scale_factor,700,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_cost_delay,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_cost_limit,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1248,freeze_min_age,23,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1248,freeze_max_age,23,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1248,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1248,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1248,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1248,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1248,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1248,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1248,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2604,adrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2604,adnum,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2604,adbin,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2604,adsrc,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+2604,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2604,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2604,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2604,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2604,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2604,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2604,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2604,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2606,conname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2606,connamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2606,contype,18,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+2606,condeferrable,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2606,condeferred,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2606,conrelid,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2606,contypid,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2606,confrelid,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2606,confupdtype,18,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2606,confdeltype,18,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2606,confmatchtype,18,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+2606,conkey,1005,-1,-1,12,1,-1,-1,f,x,i,f,f,f,t,0
+2606,confkey,1005,-1,-1,13,1,-1,-1,f,x,i,f,f,f,t,0
+2606,conbin,25,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+2606,consrc,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+2606,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2606,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2606,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2606,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2606,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2606,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2606,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2606,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhparent,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhseqno,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2611,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2611,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2611,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2611,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2611,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2611,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2611,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indexrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indrelid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indnatts,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2610,indisunique,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisprimary,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisclustered,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisvalid,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indkey,22,-1,-1,8,1,-1,-1,f,p,i,t,f,f,t,0
+2610,indclass,30,-1,-1,9,1,-1,-1,f,p,i,t,f,f,t,0
+2610,indexprs,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+2610,indpred,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+2610,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2610,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2610,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2610,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2610,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2610,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2610,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2617,oprnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprkind,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2617,oprcanhash,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2617,oprleft,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprright,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprresult,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprcom,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprnegate,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprlsortop,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprrsortop,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprltcmpop,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprgtcmpop,26,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprcode,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprrest,24,-1,4,16,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprjoin,24,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+2617,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2617,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2617,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2617,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2617,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2617,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2617,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2617,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcamid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+2616,opcnamespace,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcowner,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcintype,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcdefault,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2616,opckeytype,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2616,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2616,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2616,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2616,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2616,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2616,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2616,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2616,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2601,amstrategies,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amsupport,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amorderstrategy,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amcanunique,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amcanmulticol,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amoptionalkey,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amindexnulls,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amstorage,16,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amclusterable,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amcanshrink,16,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+2601,aminsert,24,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambeginscan,24,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amgettuple,24,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amgetmulti,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amrescan,24,-1,4,16,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amendscan,24,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ammarkpos,24,-1,4,18,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amrestrpos,24,-1,4,19,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambuild,24,-1,4,20,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambulkdelete,24,-1,4,21,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amvacuumcleanup,24,-1,4,22,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amcostestimate,24,-1,4,23,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amoptions,24,-1,4,24,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2601,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2601,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2601,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2601,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2601,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2601,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2601,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopsubtype,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopstrategy,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2602,amopreqcheck,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2602,amopopr,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2602,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2602,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2602,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2602,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2602,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2602,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2602,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amprocsubtype,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amprocnum,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2603,amproc,24,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2603,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2603,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2603,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2603,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2603,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2603,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2603,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2612,lanispl,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+2612,lanpltrusted,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+2612,lanplcallfoid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanvalidator,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanacl,1034,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+2612,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2612,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2612,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2612,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2612,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2612,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2612,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2612,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2613,loid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2613,pageno,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2613,data,17,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2613,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2613,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2613,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2613,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2613,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2613,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2613,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggfnoid,24,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggtransfn,24,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginvtransfn,24,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggprelimfn,24,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginvprelimfn,24,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggfinalfn,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggsortop,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggtranstype,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginitval,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+2600,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2600,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2600,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2600,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2600,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2600,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2600,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2619,starelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staattnum,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stanullfrac,700,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stawidth,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stadistinct,700,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stakind1,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind2,21,-1,2,7,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind3,21,-1,2,8,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind4,21,-1,2,9,0,-1,-1,t,p,s,t,f,f,t,0
+2619,staop1,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop2,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop3,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop4,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stanumbers1,1021,-1,-1,14,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers2,1021,-1,-1,15,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers3,1021,-1,-1,16,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers4,1021,-1,-1,17,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stavalues1,2277,-1,-1,18,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues2,2277,-1,-1,19,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues3,2277,-1,-1,20,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues4,2277,-1,-1,21,0,-1,-1,f,x,d,f,f,f,t,0
+2619,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2619,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2619,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2619,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2619,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2619,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2619,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2618,rulename,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2618,ev_class,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2618,ev_attr,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2618,ev_type,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2618,is_instead,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2618,ev_qual,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+2618,ev_action,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+2618,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2618,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2618,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2618,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2618,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2618,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2618,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2618,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+2620,tgfoid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgtype,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+2620,tgenabled,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgisconstraint,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgconstrname,19,-1,64,7,0,-1,-1,f,p,i,t,f,f,t,0
+2620,tgconstrrelid,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgdeferrable,16,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tginitdeferred,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgnargs,21,-1,2,11,0,-1,-1,t,p,s,t,f,f,t,0
+2620,tgattr,22,-1,-1,12,1,-1,-1,f,p,i,t,f,f,t,0
+2620,tgargs,17,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+2620,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2620,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2620,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2620,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2620,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2620,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2620,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2614,relname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2614,listenerpid,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2614,notification,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2614,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2614,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2614,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2614,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2614,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2614,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2614,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2609,objoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2609,classoid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2609,objsubid,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2609,description,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+2609,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2609,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2609,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2609,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2609,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2609,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2609,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castsource,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2605,casttarget,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castfunc,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castcontext,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2605,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2605,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2605,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2605,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2605,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2605,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2605,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2605,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2615,nspname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2615,nspowner,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2615,nspacl,1034,-1,-1,3,1,-1,-1,f,x,i,f,f,f,t,0
+2615,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2615,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2615,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2615,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2615,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2615,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2615,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2615,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2607,connamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conforencoding,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2607,contoencoding,23,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conproc,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2607,condefault,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2607,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2607,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2607,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2607,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2607,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2607,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2607,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2607,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2608,classid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2608,objid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2608,objsubid,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refclassid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refobjid,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refobjsubid,23,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2608,deptype,18,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2608,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2608,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2608,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2608,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2608,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2608,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2608,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1262,datdba,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1262,encoding,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datistemplate,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1262,datallowconn,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1262,datconnlimit,23,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datlastsysoid,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datfrozenxid,28,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1262,dattablespace,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datconfig,1009,-1,-1,10,1,-1,-1,f,x,i,f,f,f,t,0
+1262,datacl,1034,-1,-1,11,1,-1,-1,f,x,i,f,f,f,t,0
+1262,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1262,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1262,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1262,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1262,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1262,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1262,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1262,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1213,spcname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1213,spcowner,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1213,spclocation,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+1213,spcacl,1034,-1,-1,4,1,-1,-1,f,x,i,f,f,f,t,0
+1213,spcprilocations,1009,-1,-1,5,1,-1,-1,f,x,i,f,f,f,t,0
+1213,spcmirlocations,1009,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+1213,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1213,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1213,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1213,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1213,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1213,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1213,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1213,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1136,tmplname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1136,tmpltrusted,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1136,tmplhandler,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmplvalidator,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmpllibrary,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmplacl,1034,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+1136,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1136,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1136,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1136,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1136,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1136,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1136,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1260,rolname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1260,rolsuper,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolinherit,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcreaterole,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcreatedb,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcatupdate,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcanlogin,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolconnlimit,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1260,rolpassword,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+1260,rolvaliduntil,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+1260,rolconfig,1009,-1,-1,11,1,-1,-1,f,x,i,f,f,f,t,0
+1260,rolresqueue,26,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+1260,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1260,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1260,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1260,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1260,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1260,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1260,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1260,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1261,roleid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1261,member,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1261,grantor,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1261,admin_option,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1261,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1261,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1261,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1261,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1261,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1261,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1261,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1214,dbid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1214,classid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1214,objid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1214,refclassid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1214,refobjid,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1214,deptype,18,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1214,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1214,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1214,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1214,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1214,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1214,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1214,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2396,objoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2396,classoid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2396,description,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2396,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2396,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2396,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2396,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2396,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2396,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2396,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+6026,rsqcountlimit,700,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqcostlimit,700,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqovercommit,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+6026,rsqignorecostlimit,700,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+6026,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6026,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+6026,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6026,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6026,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6026,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6026,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6026,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5000,content,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5000,definedprimary,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5000,dbid,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5000,isprimary,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5000,valid,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5000,hostname,19,-1,64,6,0,-1,-1,f,p,i,t,f,f,t,0
+5000,port,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+5000,datadir,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+5000,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5000,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5000,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5000,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5000,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5000,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5000,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5006,time,1184,-1,8,1,0,-1,-1,t,p,d,t,f,f,t,0
+5006,dbid,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+5006,desc,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+5006,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5006,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5006,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5006,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5006,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5006,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5006,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5029,dbid,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5029,interfaceid,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+5029,priority,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5029,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5029,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5029,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5029,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5029,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5029,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5029,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5030,interfaceid,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5030,address,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+5030,status,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5030,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5030,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5030,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5030,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5030,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5030,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5030,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5001,gpname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+5001,numsegments,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+5001,dbid,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5001,content,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+5001,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5001,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5001,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5001,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5001,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5001,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5001,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5002,localoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5002,attrnums,1005,-1,-1,2,1,-1,-1,f,x,i,f,f,f,t,0
+5002,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5002,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5002,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5002,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5002,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5002,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5002,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5003,schemaversion,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5003,productversion,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+5003,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5003,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5003,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5003,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5003,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5003,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5003,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winfnoid,24,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winrequireorder,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winallowframe,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winpeercount,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5004,wincount,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winfunc,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winprefunc,24,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winpretype,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winfinfunc,24,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winkind,18,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+5004,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5004,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5004,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5004,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5004,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5004,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5004,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6040,reloid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+6040,location,1009,-1,-1,2,1,-1,-1,f,x,i,f,f,f,t,0
+6040,fmttype,18,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+6040,fmtopts,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+6040,command,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+6040,rejectlimit,23,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+6040,rejectlimittype,18,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+6040,fmterrtbl,26,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+6040,encoding,23,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+6040,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6040,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6040,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6040,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6040,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6040,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6040,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6105,relid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+6105,blocksize,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+6105,safefswritesize,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+6105,compresslevel,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+6105,majorversion,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+6105,minorversion,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+6105,checksum,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+6105,compresstype,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+6105,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6105,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6105,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6105,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6105,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6105,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6105,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6110,relid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+6110,changenum,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+6110,segfilenums,1007,-1,-1,3,1,-1,-1,f,x,i,f,f,f,t,0
+6110,highwaterrownums,17,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+6110,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6110,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6110,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6110,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6110,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6110,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6110,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5008,summary_state,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+5008,detail_state,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+5008,log_time,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+5008,error_message,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+5008,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5008,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5008,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5008,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5008,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5008,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5008,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5010,parrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5010,parkind,18,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5010,parlevel,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5010,paristemplate,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5010,parnatts,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+5010,paratts,22,-1,-1,6,1,-1,-1,f,p,i,t,f,f,t,0
+5010,parclass,30,-1,-1,7,1,-1,-1,f,p,i,t,f,f,t,0
+5010,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5010,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+5010,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5010,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5010,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5010,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5010,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5010,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5011,paroid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parchildrelid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parparentrule,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parname,19,-1,64,4,0,-1,-1,f,p,i,t,f,f,t,0
+5011,parisdefault,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parruleord,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+5011,parrangestartincl,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parrangeendincl,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parrangestart,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parrangeend,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parrangeevery,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parlistvalues,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parreloptions,1009,-1,-1,13,1,-1,-1,f,x,i,f,f,f,t,0
+5011,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5011,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+5011,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5011,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5011,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5011,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5011,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5011,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2830,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2830,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2830,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2830,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2830,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2830,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2830,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2830,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2830,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2830,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2831,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2831,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2832,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2832,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2832,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2832,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2832,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2832,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2832,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2833,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2833,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2834,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2834,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2834,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2834,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2834,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2834,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2834,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2835,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2835,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2836,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2836,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2836,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2836,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2836,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2836,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2836,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2837,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2837,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2838,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2838,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2838,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2838,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2838,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2838,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2838,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2839,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2839,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2840,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2840,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2840,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2840,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2840,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2840,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2840,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2841,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2841,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2842,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2842,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2842,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2842,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2842,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2842,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2842,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2843,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2843,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2844,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2844,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2844,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2844,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2844,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2844,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2844,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2845,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2845,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2846,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2846,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2846,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2846,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2846,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2846,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2846,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2847,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2847,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2650,aggfnoid,24,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2651,amname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2652,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopsubtype,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopstrategy,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+2654,amopopr,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2654,amopclaid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amprocsubtype,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amprocnum,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+2656,adrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2656,adnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2657,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2658,attrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2658,attname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2659,attrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2659,attnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2676,rolname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2677,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2694,roleid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2694,member,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2695,member,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2695,roleid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6027,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+6028,rsqname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+6041,reloid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1250,vacrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2660,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2661,castsource,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2661,casttarget,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2662,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2663,relname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2663,relnamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6029,rolresqueue,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2664,conname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2664,connamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2665,conrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2666,contypid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2667,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2668,connamespace,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2668,conforencoding,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2668,contoencoding,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2668,oid,26,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+2669,conname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2669,connamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2670,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2671,datname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2672,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2673,classid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2673,objid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2673,objsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refclassid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refobjid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refobjsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2675,objoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2675,classoid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2675,objsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2397,objoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2397,classoid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2678,indrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2679,indexrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2680,inhrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2680,inhseqno,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2681,lanname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2682,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2683,loid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2683,pageno,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2684,nspname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2685,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2686,opcamid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2686,opcname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2686,opcnamespace,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2687,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2688,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2689,oprleft,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprright,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprnamespace,26,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+1137,tmplname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2690,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2691,proname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2691,proargtypes,30,-1,-1,2,1,-1,-1,f,p,i,f,f,f,t,0
+2691,pronamespace,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2692,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2693,ev_class,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2693,rulename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+1232,dbid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1232,classid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+1232,objid,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+1233,refclassid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1233,refobjid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2696,starelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2696,staattnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2697,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2698,spcname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2699,tgconstrname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2700,tgconstrrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2701,tgrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2701,tgname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2702,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2703,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2704,typname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2704,typnamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6101,content,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+6101,definedprimary,16,-1,1,2,0,-1,-1,t,p,c,f,f,f,t,0
+6102,dbid,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+6103,localoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+6108,dbid,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+6109,interfaceid,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+5005,winfnoid,24,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5007,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5012,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5017,parrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5017,parlevel,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+5017,paristemplate,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+5013,parrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5014,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parchildrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parparentrule,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parruleord,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+5016,parchildrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5026,paroid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5026,parparentrule,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+5026,parruleord,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+5031,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5031,changenum,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10309,rolname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10309,rolsuper,16,-1,1,2,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolinherit,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcreaterole,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcreatedb,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcatupdate,16,-1,1,6,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcanlogin,16,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolconnlimit,23,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10309,rolpassword,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10309,rolvaliduntil,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10309,rolconfig,1009,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10309,rolresqueue,26,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10309,oid,26,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10312,usename,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10312,usesysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10312,usecreatedb,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10312,usesuper,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10312,usecatupd,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10312,passwd,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10312,valuntil,702,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10312,useconfig,1009,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10315,groname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10315,grosysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10315,grolist,1028,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10318,usename,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10318,usesysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10318,usecreatedb,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10318,usesuper,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10318,usecatupd,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10318,passwd,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10318,valuntil,702,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10318,useconfig,1009,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10321,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10321,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10321,rulename,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10321,definition,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10324,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10324,viewname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10324,viewowner,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10324,definition,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10327,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tableowner,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tablespace,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10327,hasindexes,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10327,hasrules,16,-1,1,6,0,-1,-1,t,p,c,f,f,f,t,0
+10327,hastriggers,16,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+10330,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10330,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10330,indexname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10330,tablespace,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10330,indexdef,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10333,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10333,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10333,attname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10333,null_frac,700,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10333,avg_width,23,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10333,n_distinct,700,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10333,most_common_vals,2277,-1,-1,7,0,-1,-1,f,x,d,f,f,f,t,0
+10333,most_common_freqs,1021,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10333,histogram_bounds,2277,-1,-1,9,0,-1,-1,f,x,d,f,f,f,t,0
+10333,correlation,700,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10336,locktype,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10336,database,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10336,relation,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10336,page,23,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10336,tuple,21,-1,2,5,0,-1,-1,t,p,s,f,f,f,t,0
+10336,transactionid,28,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10336,classid,26,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10336,objid,26,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10336,objsubid,21,-1,2,9,0,-1,-1,t,p,s,f,f,f,t,0
+10336,transaction,28,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10336,pid,23,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10336,mode,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10336,granted,16,-1,1,13,0,-1,-1,t,p,c,f,f,f,t,0
+10336,mppsessionid,23,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10336,mppiswriter,16,-1,1,15,0,-1,-1,t,p,c,f,f,f,t,0
+10339,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10339,statement,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10339,is_holdable,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10339,is_binary,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10339,is_scrollable,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10339,creation_time,1184,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10342,transaction,28,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10342,gid,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10342,prepared,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10342,owner,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10342,database,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10345,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10345,statement,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10345,prepare_time,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10345,parameter_types,2211,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10345,from_sql,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10348,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10348,setting,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10348,unit,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10348,category,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10348,short_desc,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10348,extra_desc,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10348,context,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10348,vartype,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10348,source,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10348,min_val,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10348,max_val,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10353,abbrev,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10353,utc_offset,1186,-1,16,2,0,-1,-1,f,p,d,f,f,f,t,0
+10353,is_dst,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10356,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10356,abbrev,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10356,utc_offset,1186,-1,16,3,0,-1,-1,f,p,d,f,f,f,t,0
+10356,is_dst,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10359,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10359,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10359,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10359,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10359,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10359,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10359,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10362,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10362,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10362,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10362,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10362,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10362,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10362,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10365,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10365,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10365,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10365,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10365,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10365,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10365,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10368,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10368,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10368,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10368,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10368,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10368,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10368,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10368,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10368,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10368,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10368,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10371,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10371,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10371,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10371,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10371,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10371,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10371,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10371,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10371,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10371,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10371,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10374,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10374,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10374,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10374,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10374,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10374,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10374,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10374,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10374,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10374,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10374,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10377,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10377,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10377,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10377,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10377,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10377,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10377,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10377,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10380,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10380,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10380,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10380,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10380,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10380,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10380,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10380,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10383,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10383,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10383,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10383,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10383,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10383,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10383,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10383,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10386,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10386,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10386,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10386,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10386,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10386,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10386,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10389,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10389,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10389,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10389,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10389,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10389,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10389,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10392,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10392,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10392,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10392,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10392,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10392,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10392,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10395,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10395,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10395,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10395,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10395,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10398,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10398,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10398,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10398,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10398,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10401,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10401,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10401,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10401,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10401,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10404,datid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10404,datname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10404,procpid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10404,sess_id,23,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10404,usesysid,26,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10404,usename,19,-1,64,6,0,-1,-1,f,p,i,f,f,f,t,0
+10404,current_query,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10404,waiting,16,-1,1,8,0,-1,-1,t,p,c,f,f,f,t,0
+10404,query_start,1184,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10404,backend_start,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10404,client_addr,869,-1,-1,11,0,-1,-1,f,p,i,f,f,f,t,0
+10404,client_port,23,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10407,datid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10407,datname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10407,numbackends,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10407,xact_commit,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10407,xact_rollback,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10407,blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10407,blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10410,queueid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10410,queuename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10410,n_queries_exec,20,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10410,n_queries_wait,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10410,elapsed_exec,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10410,elapsed_wait,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10413,rsqname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10413,rsqcountlimit,700,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcountvalue,700,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcostlimit,700,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcostvalue,700,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqwaiters,23,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqholders,23,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10416,hostname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10416,maxfiles,20,-1,8,2,0,-1,-1,t,p,d,f,f,f,t,0
+10419,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10419,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitionschemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitiontablename,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitionname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10419,parentpartitiontablename,19,-1,64,6,0,-1,-1,f,p,i,f,f,f,t,0
+10419,parentpartitionname,19,-1,64,7,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitiontype,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionlevel,21,-1,2,9,0,-1,-1,t,p,s,f,f,f,t,0
+10419,partitionrank,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10419,partitionposition,21,-1,2,11,0,-1,-1,t,p,s,f,f,f,t,0
+10419,partitionlistvalues,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionrangestart,25,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionstartinclusive,16,-1,1,14,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitionrangeend,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionendinclusive,16,-1,1,16,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitioneveryclause,25,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionisdefault,16,-1,1,18,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitionboundary,25,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10422,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10422,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10422,columnname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10422,partitionlevel,21,-1,2,4,0,-1,-1,t,p,s,f,f,f,t,0
+10422,position_in_partition_key,23,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10425,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10425,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10425,partitionname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10425,partitiontype,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionlevel,21,-1,2,5,0,-1,-1,t,p,s,f,f,f,t,0
+10425,partitionrank,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10425,partitionposition,21,-1,2,7,0,-1,-1,t,p,s,f,f,f,t,0
+10425,partitionlistvalues,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionrangestart,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionstartinclusive,16,-1,1,10,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitionrangeend,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionendinclusive,16,-1,1,12,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitioneveryclause,25,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionisdefault,16,-1,1,14,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitionboundary,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10821,check_option,10675,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10821,is_updatable,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10821,is_insertable_into,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10824,object_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10824,object_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10824,object_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10824,object_type,10675,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10824,dtd_identifier,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10827,object_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10827,object_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10827,object_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10827,object_type,10675,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10827,collection_type_identifier,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10827,data_type,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10827,character_maximum_length,10673,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10827,character_octet_length,10673,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10827,character_set_catalog,10676,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10827,character_set_schema,10676,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10827,character_set_name,10676,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10827,collation_catalog,10676,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10827,collation_schema,10676,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10827,collation_name,10676,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10827,numeric_precision,10673,-1,4,15,0,-1,-1,t,p,i,f,f,f,t,0
+10827,numeric_precision_radix,10673,-1,4,16,0,-1,-1,t,p,i,f,f,f,t,0
+10827,numeric_scale,10673,-1,4,17,0,-1,-1,t,p,i,f,f,f,t,0
+10827,datetime_precision,10673,-1,4,18,0,-1,-1,t,p,i,f,f,f,t,0
+10827,interval_type,10675,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10827,interval_precision,10675,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10827,domain_default,10675,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10827,udt_catalog,10676,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10827,udt_schema,10676,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10827,udt_name,10676,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10827,scope_catalog,10676,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10827,scope_schema,10676,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10827,scope_name,10676,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10827,maximum_cardinality,10673,-1,4,28,0,-1,-1,t,p,i,f,f,f,t,0
+10827,dtd_identifier,10676,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10830,dbid,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+10830,isprimary,16,-1,1,2,0,-1,-1,t,p,c,f,f,f,t,0
+10830,content,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+10830,valid,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10830,definedprimary,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10833,distributed_xid,28,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10833,distributed_id,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10833,state,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10677,catalog_name,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10681,grantee,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10681,role_name,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10681,is_grantable,10675,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10684,grantee,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10684,role_name,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10684,is_grantable,10675,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10687,udt_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10687,udt_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10687,udt_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10687,attribute_name,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10687,ordinal_position,10673,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10687,attribute_default,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10687,is_nullable,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10687,data_type,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10687,character_maximum_length,10673,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10687,character_octet_length,10673,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10687,character_set_catalog,10676,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10687,character_set_schema,10676,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10687,character_set_name,10676,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10687,collation_catalog,10676,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10687,collation_schema,10676,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10687,collation_name,10676,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10687,numeric_precision,10673,-1,4,17,0,-1,-1,t,p,i,f,f,f,t,0
+10687,numeric_precision_radix,10673,-1,4,18,0,-1,-1,t,p,i,f,f,f,t,0
+10687,numeric_scale,10673,-1,4,19,0,-1,-1,t,p,i,f,f,f,t,0
+10687,datetime_precision,10673,-1,4,20,0,-1,-1,t,p,i,f,f,f,t,0
+10687,interval_type,10675,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10687,interval_precision,10675,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10687,attribute_udt_catalog,10676,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10687,attribute_udt_schema,10676,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10687,attribute_udt_name,10676,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10687,scope_catalog,10676,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10687,scope_schema,10676,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10687,scope_name,10676,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10687,maximum_cardinality,10673,-1,4,29,0,-1,-1,t,p,i,f,f,f,t,0
+10687,dtd_identifier,10676,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10687,is_derived_reference_attribute,10675,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10690,constraint_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10690,constraint_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10690,constraint_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10690,specific_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10690,specific_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10690,specific_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10693,constraint_catalog,1043,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10693,constraint_schema,1043,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10693,constraint_name,1043,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10693,check_clause,1043,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10696,domain_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10696,domain_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10696,domain_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10696,table_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10696,table_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10696,table_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10696,column_name,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10699,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10699,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10699,table_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10699,table_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10699,table_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10699,column_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10699,privilege_type,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10699,is_grantable,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10702,udt_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10702,udt_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10702,udt_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10702,table_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10702,table_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10702,table_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10702,column_name,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10705,table_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10705,table_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10705,table_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10705,column_name,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10705,ordinal_position,10673,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10705,column_default,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10705,is_nullable,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10705,data_type,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10705,character_maximum_length,10673,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10705,character_octet_length,10673,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10705,numeric_precision,10673,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10705,numeric_precision_radix,10673,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10705,numeric_scale,10673,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10705,datetime_precision,10673,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10705,interval_type,10675,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10705,interval_precision,10675,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10705,character_set_catalog,10676,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10705,character_set_schema,10676,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10705,character_set_name,10676,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10705,collation_catalog,10676,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10705,collation_schema,10676,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10705,collation_name,10676,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10705,domain_catalog,10676,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10705,domain_schema,10676,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10705,domain_name,10676,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10705,udt_catalog,10676,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10705,udt_schema,10676,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10705,udt_name,10676,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10705,scope_catalog,10676,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10705,scope_schema,10676,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10705,scope_name,10676,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10705,maximum_cardinality,10673,-1,4,32,0,-1,-1,t,p,i,f,f,f,t,0
+10705,dtd_identifier,10676,-1,-1,33,0,-1,-1,f,x,i,f,f,f,t,0
+10705,is_self_referencing,10675,-1,-1,34,0,-1,-1,f,x,i,f,f,f,t,0
+10705,is_identity,10675,-1,-1,35,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_generation,10675,-1,-1,36,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_start,10675,-1,-1,37,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_increment,10675,-1,-1,38,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_maximum,10675,-1,-1,39,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_minimum,10675,-1,-1,40,0,-1,-1,f,x,i,f,f,f,t,0
+10705,identity_cycle,10675,-1,-1,41,0,-1,-1,f,x,i,f,f,f,t,0
+10705,is_generated,10675,-1,-1,42,0,-1,-1,f,x,i,f,f,f,t,0
+10705,generation_expression,10675,-1,-1,43,0,-1,-1,f,x,i,f,f,f,t,0
+10705,is_updatable,10675,-1,-1,44,0,-1,-1,f,x,i,f,f,f,t,0
+10708,table_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10708,table_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10708,table_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10708,column_name,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10708,constraint_catalog,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10708,constraint_schema,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10708,constraint_name,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10711,table_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10711,table_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10711,table_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10711,constraint_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10711,constraint_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10711,constraint_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10714,constraint_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10714,constraint_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10714,constraint_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10714,domain_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10714,domain_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10714,domain_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10714,is_deferrable,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10714,initially_deferred,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10717,udt_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10717,udt_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10717,udt_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10717,domain_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10717,domain_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10717,domain_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10720,domain_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10720,domain_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10720,domain_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10720,data_type,10675,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10720,character_maximum_length,10673,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10720,character_octet_length,10673,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10720,character_set_catalog,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10720,character_set_schema,10676,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10720,character_set_name,10676,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10720,collation_catalog,10676,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10720,collation_schema,10676,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10720,collation_name,10676,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10720,numeric_precision,10673,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10720,numeric_precision_radix,10673,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10720,numeric_scale,10673,-1,4,15,0,-1,-1,t,p,i,f,f,f,t,0
+10720,datetime_precision,10673,-1,4,16,0,-1,-1,t,p,i,f,f,f,t,0
+10720,interval_type,10675,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10720,interval_precision,10675,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10720,domain_default,10675,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10720,udt_catalog,10676,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10720,udt_schema,10676,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10720,udt_name,10676,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10720,scope_catalog,10676,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10720,scope_schema,10676,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10720,scope_name,10676,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10720,maximum_cardinality,10673,-1,4,26,0,-1,-1,t,p,i,f,f,f,t,0
+10720,dtd_identifier,10676,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10723,role_name,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10726,constraint_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10726,constraint_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10726,constraint_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10726,table_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10726,table_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10726,table_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10726,column_name,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10726,ordinal_position,10673,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10726,position_in_unique_constraint,10673,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10729,specific_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10729,specific_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10729,specific_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10729,ordinal_position,10673,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10729,parameter_mode,10675,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10729,is_result,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10729,as_locator,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10729,parameter_name,10676,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10729,data_type,10675,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10729,character_maximum_length,10673,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10729,character_octet_length,10673,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10729,character_set_catalog,10676,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10729,character_set_schema,10676,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10729,character_set_name,10676,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10729,collation_catalog,10676,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10729,collation_schema,10676,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10729,collation_name,10676,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10729,numeric_precision,10673,-1,4,18,0,-1,-1,t,p,i,f,f,f,t,0
+10729,numeric_precision_radix,10673,-1,4,19,0,-1,-1,t,p,i,f,f,f,t,0
+10729,numeric_scale,10673,-1,4,20,0,-1,-1,t,p,i,f,f,f,t,0
+10729,datetime_precision,10673,-1,4,21,0,-1,-1,t,p,i,f,f,f,t,0
+10729,interval_type,10675,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10729,interval_precision,10675,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10729,udt_catalog,10676,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10729,udt_schema,10676,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10729,udt_name,10676,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10729,scope_catalog,10676,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10729,scope_schema,10676,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10729,scope_name,10676,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10729,maximum_cardinality,10673,-1,4,30,0,-1,-1,t,p,i,f,f,f,t,0
+10729,dtd_identifier,10676,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10732,constraint_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10732,constraint_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10732,constraint_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10732,unique_constraint_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10732,unique_constraint_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10732,unique_constraint_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10732,match_option,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10732,update_rule,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10732,delete_rule,10675,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10735,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10735,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10735,table_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10735,table_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10735,table_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10735,column_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10735,privilege_type,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10735,is_grantable,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10738,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10738,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10738,specific_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10738,specific_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10738,specific_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10738,routine_catalog,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10738,routine_schema,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10738,routine_name,10676,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10738,privilege_type,10675,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10738,is_grantable,10675,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10741,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10741,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10741,table_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10741,table_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10741,table_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10741,privilege_type,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10741,is_grantable,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10741,with_hierarchy,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10744,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10744,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10744,object_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10744,object_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10744,object_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10744,object_type,10675,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10744,privilege_type,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10744,is_grantable,10675,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10747,grantor,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10747,grantee,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10747,specific_catalog,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10747,specific_schema,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10747,specific_name,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10747,routine_catalog,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10747,routine_schema,10676,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10747,routine_name,10676,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10747,privilege_type,10675,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10747,is_grantable,10675,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10750,specific_catalog,10676,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10750,specific_schema,10676,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10750,specific_name,10676,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_catalog,10676,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_schema,10676,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_name,10676,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_type,10675,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10750,module_catalog,10676,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10750,module_schema,10676,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10750,module_name,10676,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10750,udt_catalog,10676,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10750,udt_schema,10676,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10750,udt_name,10676,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10750,data_type,10675,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10750,character_maximum_length,10673,-1,4,15,0,-1,-1,t,p,i,f,f,f,t,0
+10750,character_octet_length,10673,-1,4,16,0,-1,-1,t,p,i,f,f,f,t,0
+10750,character_set_catalog,10676,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10750,character_set_schema,10676,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10750,character_set_name,10676,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10750,collation_catalog,10676,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10750,collation_schema,10676,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10750,collation_name,10676,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10750,numeric_precision,10673,-1,4,23,0,-1,-1,t,p,i,f,f,f,t,0
+10750,numeric_precision_radix,10673,-1,4,24,0,-1,-1,t,p,i,f,f,f,t,0
+10750,numeric_scale,10673,-1,4,25,0,-1,-1,t,p,i,f,f,f,t,0
+10750,datetime_precision,10673,-1,4,26,0,-1,-1,t,p,i,f,f,f,t,0
+10750,interval_type,10675,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10750,interval_precision,10675,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10750,type_udt_catalog,10676,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10750,type_udt_schema,10676,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10750,type_udt_name,10676,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10750,scope_catalog,10676,-1,-1,32,0,-1,-1,f,x,i,f,f,f,t,0
+10750,scope_schema,10676,-1,-1,33,0,-1,-1,f,x,i,f,f,f,t,0
+10750,scope_name,10676,-1,-1,34,0,-1,-1,f,x,i,f,f,f,t,0
+10750,maximum_cardinality,10673,-1,4,35,0,-1,-1,t,p,i,f,f,f,t,0
+10750,dtd_identifier,10676,-1,-1,36,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_body,10675,-1,-1,37,0,-1,-1,f,x,i,f,f,f,t,0
+10750,routine_definition,10675,-1,-1,38,0,-1,-1,f,x,i,f,f,f,t,0
+10750,external_name,10675,-1,-1,39,0,-1,-1,f,x,i,f,f,f,t,0
+10750,external_language,10675,-1,-1,40,0,-1,-1,f,x,i,f,f,f,t,0
+10750,parameter_style,10675,-1,-1,41,0,-1,-1,f,x,i,f,f,f,t,0
+10750,is_deterministic,10675,-1,-1,42,0,-1,-1,f,x,i,f,f,f,t,0
+10750,sql_data_access,10675,-1,-1,43,0,-1,-1,f,x,i,f,f,f,t,0
+10750,is_null_call,10675,-1,-1,44,0,-1,-1,f,x,i,f,f,f,t,0
+10750,sql_path,10675,-1,-1,45,0,-1,-1,f,x,i,f,f,f,t,0
+10750,schema_level_routine,10675,-1,-1,46,0,-1,-1,f,x,i,f,f,f,t,0
+10750,max_dynamic_result_sets,10673,-1,4,47,0,-1,-1,t,p,i,f,f,f,t,0
+10750,is_user_defined_cast,10675,-1,-1,48,0,-1,-1,f,x,i,f,f,f,t,0
+10750,is_implicitly_invocable,10675,-1,-1,49,0,-1,-1,f,x,i,f,f,f,t,0
+10750,security_type,10675,-1,-1,50,0,-1,-1,f,x,i,f,f,f,t,0
+10750,to_sql_specific_catalog,10676,-1,-1,51,0,-1,-1,f,x,i,f,f,f,t,0
+10750,to_sql_specific_schema,10676,-1,-1,52,0,-1,-1,f,x,i,f,f,f,t,0
+10750,to_sql_specific_name,10676,-1,-1,53,0,-1,-1,f,x,i,f,f,f,t,0
+10750,as_locator,10675,-1,-1,54,0,-1,-1,f,x,i,f,f,f,t,0
+10750,created,10680,-1,8,55,0,-1,-1,t,p,d,f,f,f,t,0
+10750,last_altered,10680,-1,8,56,0,-1,-1,t,p,d,f,f,f,t,0
+10750,new_savepoint_level,10675,-1,-1,57,0,-1,-1,f,x,i,f,f,f,t,0
+10750,is_udt_dependent,10675,-1,-1,58,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_from_data_type,10675,-1,-1,59,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_as_locator,10675,-1,-1,60,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_char_max_length,10673,-1,4,61,0,-1,-1,t,p,i,f,f,f,t,0
+10750,result_cast_char_octet_length,10673,-1,4,62,0,-1,-1,t,p,i,f,f,f,t,0
+10750,result_cast_char_set_catalog,10676,-1,-1,63,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_char_set_schema,10676,-1,-1,64,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_character_set_name,10676,-1,-1,65,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_collation_catalog,10676,-1,-1,66,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_collation_schema,10676,-1,-1,67,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_collation_name,10676,-1,-1,68,0,-1,-1,f,x,i,f,f,f,t,0
+10750,result_cast_

<TRUNCATED>


[11/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/types.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/types.py b/tools/bin/ext/pg8000/types.py
new file mode 100644
index 0000000..c622a7d
--- /dev/null
+++ b/tools/bin/ext/pg8000/types.py
@@ -0,0 +1,687 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+import datetime
+import decimal
+import struct
+import math
+from errors import (NotSupportedError, ArrayDataParseError, InternalError,
+        ArrayContentEmptyError, ArrayContentNotHomogenousError,
+        ArrayContentNotSupportedError, ArrayDimensionsNotConsistentError)
+
+try:
+    from pytz import utc
+except ImportError:
+    ZERO = datetime.timedelta(0)
+    class UTC(datetime.tzinfo):
+        def utcoffset(self, dt):
+            return ZERO
+        def tzname(self, dt):
+            return "UTC"
+        def dst(self, dt):
+            return ZERO
+    utc = UTC()
+
+class Bytea(str):
+    pass
+
+class Interval(object):
+    def __init__(self, microseconds=0, days=0, months=0):
+        self.microseconds = microseconds
+        self.days = days
+        self.months = months
+
+    def _setMicroseconds(self, value):
+        if not isinstance(value, int) and not isinstance(value, long):
+            raise TypeError("microseconds must be an int or long")
+        elif not (min_int8 < value < max_int8):
+            raise OverflowError("microseconds must be representable as a 64-bit integer")
+        else:
+            self._microseconds = value
+
+    def _setDays(self, value):
+        if not isinstance(value, int) and not isinstance(value, long):
+            raise TypeError("days must be an int or long")
+        elif not (min_int4 < value < max_int4):
+            raise OverflowError("days must be representable as a 32-bit integer")
+        else:
+            self._days = value
+
+    def _setMonths(self, value):
+        if not isinstance(value, int) and not isinstance(value, long):
+            raise TypeError("months must be an int or long")
+        elif not (min_int4 < value < max_int4):
+            raise OverflowError("months must be representable as a 32-bit integer")
+        else:
+            self._months = value
+
+    microseconds = property(lambda self: self._microseconds, _setMicroseconds)
+    days = property(lambda self: self._days, _setDays)
+    months = property(lambda self: self._months, _setMonths)
+
+    def __repr__(self):
+        return "<Interval %s months %s days %s microseconds>" % (self.months, self.days, self.microseconds)
+
+    def __cmp__(self, other):
+        if other == None: return -1
+        c = cmp(self.months, other.months)
+        if c != 0: return c
+        c = cmp(self.days, other.days)
+        if c != 0: return c
+        return cmp(self.microseconds, other.microseconds)
+
+def pg_type_info(typ):
+    value = None
+    if isinstance(typ, dict):
+        value = typ["value"]
+        typ = typ["type"]
+
+    data = py_types.get(typ)
+    if data == None:
+        raise NotSupportedError("type %r not mapped to pg type" % typ)
+
+    # permit the type data to be determined by the value, if provided
+    inspect_func = data.get("inspect")
+    if value != None and inspect_func != None:
+        data = inspect_func(value)
+
+    type_oid = data.get("typeoid")
+    if type_oid == None:
+        raise InternalError("type %r has no type_oid" % typ)
+    elif type_oid == -1:
+        # special case: NULL values
+        return type_oid, 0
+
+    # prefer bin, but go with whatever exists
+    if data.get("bin_out"):
+        format = 1
+    elif data.get("txt_out"):
+        format = 0
+    else:
+        raise InternalError("no conversion fuction for type %r" % typ)
+
+    return type_oid, format
+
+def pg_value(value, fc, **kwargs):
+    typ = type(value)
+    data = py_types.get(typ)
+    if data == None:
+        raise NotSupportedError("type %r not mapped to pg type" % typ)
+
+    # permit the type conversion to be determined by the value, if provided
+    inspect_func = data.get("inspect")
+    if value != None and inspect_func != None:
+        data = inspect_func(value)
+
+    # special case: NULL values
+    if data.get("typeoid") == -1:
+        return None
+
+    if fc == 0:
+        func = data.get("txt_out")
+    elif fc == 1:
+        func = data.get("bin_out")
+    else:
+        raise InternalError("unrecognized format code %r" % fc)
+    if func == None:
+        raise NotSupportedError("type %r, format code %r not supported" % (typ, fc))
+    return func(value, **kwargs)
+
+def py_type_info(description, record_field_names):
+    type_oid = description['type_oid']
+    data = pg_types.get(type_oid)
+    if data == None:
+        record_data = record_field_names.get(type_oid)
+        if record_data != None:
+            # records are in bin format
+            return 1
+        raise NotSupportedError("type oid %r not mapped to py type" % type_oid)
+    # prefer bin, but go with whatever exists
+    if data.get("bin_in"):
+        format = 1
+    elif data.get("txt_in"):
+        format = 0
+    else:
+        raise InternalError("no conversion fuction for type oid %r" % type_oid)
+    return format
+
+def py_value(v, description, record_field_names, **kwargs):
+    if v == None:
+        # special case - NULL value
+        return None
+    type_oid = description['type_oid']
+    format = description['format']
+    data = pg_types.get(type_oid)
+    if data == None:
+        record_data = record_field_names.get(type_oid)
+        if record_data != None:
+            data = {"bin_in": record_recv(record_data)}
+    if data == None:
+        raise NotSupportedError("type oid %r not supported" % type_oid)
+    if format == 0:
+        func = data.get("txt_in")
+    elif format == 1:
+        func = data.get("bin_in")
+    else:
+        raise NotSupportedError("format code %r not supported" % format)
+    if func == None:
+        raise NotSupportedError("data response format %r, type %r not supported" % (format, type_oid))
+    return func(v, **kwargs)
+
+def voidrecv(data, **kwargs):
+    return None
+
+def voidsend(v, **kwargs):
+    return None
+
+def boolrecv(data, **kwargs):
+    return data == "\x01"
+
+def boolsend(v, **kwargs):
+    if v:
+        return "\x01"
+    else:
+        return "\x00"
+
+min_int2, max_int2 = -2 ** 15, 2 ** 15
+min_int4, max_int4 = -2 ** 31, 2 ** 31
+min_int8, max_int8 = -2 ** 63, 2 ** 63
+
+def int_inspect(value):
+    if min_int2 < value < max_int2:
+        return {"typeoid": 21, "bin_out": int2send}
+    elif min_int4 < value < max_int4:
+        return {"typeoid": 23, "bin_out": int4send}
+    elif min_int8 < value < max_int8:
+        return {"typeoid": 20, "bin_out": int8send}
+    else:
+        return {"typeoid": 1700, "bin_out": numeric_send}
+
+def int2recv(data, **kwargs):
+    return struct.unpack("!h", data)[0]
+
+def int2send(v, **kwargs):
+    return struct.pack("!h", v)
+
+def int4recv(data, **kwargs):
+    return struct.unpack("!i", data)[0]
+
+def int4send(v, **kwargs):
+    return struct.pack("!i", v)
+
+def int8recv(data, **kwargs):
+    return struct.unpack("!q", data)[0]
+
+def int8send(v, **kwargs):
+    return struct.pack("!q", v)
+
+def float4recv(data, **kwargs):
+    return struct.unpack("!f", data)[0]
+
+def float8recv(data, **kwargs):
+    return struct.unpack("!d", data)[0]
+
+def float8send(v, **kwargs):
+    return struct.pack("!d", v)
+
+def datetime_inspect(value):
+    if value.tzinfo != None:
+        # send as timestamptz if timezone is provided
+        return {"typeoid": 1184, "bin_out": timestamptz_send}
+    else:
+        # otherwise send as timestamp
+        return {"typeoid": 1114, "bin_out": timestamp_send}
+
+def timestamp_recv(data, integer_datetimes, **kwargs):
+    if integer_datetimes:
+        # data is 64-bit integer representing milliseconds since 2000-01-01
+        val = struct.unpack("!q", data)[0]
+        return datetime.datetime(2000, 1, 1) + datetime.timedelta(microseconds = val)
+    else:
+        # data is double-precision float representing seconds since 2000-01-01
+        val = struct.unpack("!d", data)[0]
+        return datetime.datetime(2000, 1, 1) + datetime.timedelta(seconds = val)
+
+# return a timezone-aware datetime instance if we're reading from a
+# "timestamp with timezone" type.  The timezone returned will always be UTC,
+# but providing that additional information can permit conversion to local.
+def timestamptz_recv(data, **kwargs):
+    return timestamp_recv(data, **kwargs).replace(tzinfo=utc)
+
+def timestamp_send(v, integer_datetimes, **kwargs):
+    delta = v - datetime.datetime(2000, 1, 1)
+    val = delta.microseconds + (delta.seconds * 1000000) + (delta.days * 86400000000)
+    if integer_datetimes:
+        # data is 64-bit integer representing milliseconds since 2000-01-01
+        return struct.pack("!q", val)
+    else:
+        # data is double-precision float representing seconds since 2000-01-01
+        return struct.pack("!d", val / 1000.0 / 1000.0)
+
+def timestamptz_send(v, **kwargs):
+    # timestamps should be sent as UTC.  If they have zone info,
+    # convert them.
+    return timestamp_send(v.astimezone(utc).replace(tzinfo=None), **kwargs)
+
+def date_in(data, **kwargs):
+    year = int(data[0:4])
+    month = int(data[5:7])
+    day = int(data[8:10])
+    return datetime.date(year, month, day)
+
+def date_out(v, **kwargs):
+    return v.isoformat()
+
+def time_in(data, **kwargs):
+    hour = int(data[0:2])
+    minute = int(data[3:5])
+    sec = decimal.Decimal(data[6:])
+    return datetime.time(hour, minute, int(sec), int((sec - int(sec)) * 1000000))
+
+def time_out(v, **kwargs):
+    return v.isoformat()
+
+def numeric_in(data, **kwargs):
+    if data.find(".") == -1:
+        return int(data)
+    else:
+        return decimal.Decimal(data)
+
+def numeric_recv(data, **kwargs):
+    num_digits, weight, sign, scale = struct.unpack("!hhhh", data[:8])
+    data = data[8:]
+    digits = struct.unpack("!" + ("h" * num_digits), data)
+    weight = decimal.Decimal(weight)
+    retval = 0
+    for d in digits:
+        d = decimal.Decimal(d)
+        retval += d * (10000 ** weight)
+        weight -= 1
+    if sign:
+        retval *= -1
+    return retval
+
+def numeric_send(v, **kwargs):
+    sign = 0
+    if v < 0:
+        sign = 16384
+        v *= -1
+    max_weight = decimal.Decimal(int(math.floor(math.log(v) / math.log(10000))))
+    weight = max_weight
+    digits = []
+    while v != 0:
+        digit = int(math.floor(v / (10000 ** weight)))
+        v = v - (digit * (10000 ** weight))
+        weight -= 1
+        digits.append(digit)
+    retval = struct.pack("!hhhh", len(digits), max_weight, sign, 0)
+    retval += struct.pack("!" + ("h" * len(digits)), *digits)
+    return retval
+
+def numeric_out(v, **kwargs):
+    return str(v)
+
+# PostgreSQL encodings:
+#   http://www.postgresql.org/docs/8.3/interactive/multibyte.html
+# Python encodings:
+#   http://www.python.org/doc/2.4/lib/standard-encodings.html
+#
+# Commented out encodings don't require a name change between PostgreSQL and
+# Python.  If the py side is None, then the encoding isn't supported.
+pg_to_py_encodings = {
+    # Not supported:
+    "mule_internal": None,
+    "euc_tw": None,
+
+    # Name fine as-is:
+    #"euc_jp",
+    #"euc_jis_2004",
+    #"euc_kr",
+    #"gb18030",
+    #"gbk",
+    #"johab",
+    #"sjis",
+    #"shift_jis_2004",
+    #"uhc",
+    #"utf8",
+
+    # Different name:
+    "euc_cn": "gb2312",
+    "iso_8859_5": "is8859_5",
+    "iso_8859_6": "is8859_6",
+    "iso_8859_7": "is8859_7",
+    "iso_8859_8": "is8859_8",
+    "koi8": "koi8_r",
+    "latin1": "iso8859-1",
+    "latin2": "iso8859_2",
+    "latin3": "iso8859_3",
+    "latin4": "iso8859_4",
+    "latin5": "iso8859_9",
+    "latin6": "iso8859_10",
+    "latin7": "iso8859_13",
+    "latin8": "iso8859_14",
+    "latin9": "iso8859_15",
+    "sql_ascii": "ascii",
+    "win866": "cp886",
+    "win874": "cp874",
+    "win1250": "cp1250",
+    "win1251": "cp1251",
+    "win1252": "cp1252",
+    "win1253": "cp1253",
+    "win1254": "cp1254",
+    "win1255": "cp1255",
+    "win1256": "cp1256",
+    "win1257": "cp1257",
+    "win1258": "cp1258",
+}
+
+def encoding_convert(encoding):
+    return pg_to_py_encodings.get(encoding.lower(), encoding)
+
+def varcharin(data, client_encoding, **kwargs):
+    return unicode(data, encoding_convert(client_encoding))
+
+def textout(v, client_encoding, **kwargs):
+    return v.encode(encoding_convert(client_encoding))
+
+def byteasend(v, **kwargs):
+    return str(v)
+
+def bytearecv(data, **kwargs):
+    return Bytea(data)
+
+# interval support does not provide a Python-usable interval object yet
+def interval_recv(data, integer_datetimes, **kwargs):
+    if integer_datetimes:
+        microseconds, days, months = struct.unpack("!qii", data)
+    else:
+        seconds, days, months = struct.unpack("!dii", data)
+        microseconds = int(seconds * 1000 * 1000)
+    return Interval(microseconds, days, months)
+
+def interval_send(data, integer_datetimes, **kwargs):
+    if integer_datetimes:
+        return struct.pack("!qii", data.microseconds, data.days, data.months)
+    else:
+        return struct.pack("!dii", data.microseconds / 1000.0 / 1000.0, data.days, data.months)
+
+def array_recv(data, **kwargs):
+    dim, hasnull, typeoid = struct.unpack("!iii", data[:12])
+    data = data[12:]
+
+    # get type conversion method for typeoid
+    conversion = pg_types[typeoid]["bin_in"]
+
+    # Read dimension info
+    dim_lengths = []
+    element_count = 1
+    for idim in range(dim):
+        dim_len, dim_lbound = struct.unpack("!ii", data[:8])
+        data = data[8:]
+        dim_lengths.append(dim_len)
+        element_count *= dim_len
+
+    # Read all array values
+    array_values = []
+    for i in range(element_count):
+        element_len, = struct.unpack("!i", data[:4])
+        data = data[4:]
+        if element_len == -1:
+            array_values.append(None)
+        else:
+            array_values.append(conversion(data[:element_len], **kwargs))
+            data = data[element_len:]
+    if data != "":
+        raise ArrayDataParseError("unexpected data left over after array read")
+
+    # at this point, {{1,2,3},{4,5,6}}::int[][] looks like [1,2,3,4,5,6].
+    # go through the dimensions and fix up the array contents to match
+    # expected dimensions
+    for dim_length in reversed(dim_lengths[1:]):
+        val = []
+        while array_values:
+            val.append(array_values[:dim_length])
+            array_values = array_values[dim_length:]
+        array_values = val
+
+    return array_values
+
+def array_inspect(value):
+    # Check if array has any values.  If not, we can't determine the proper
+    # array typeoid.
+    first_element = array_find_first_element(value)
+    if first_element == None:
+        raise ArrayContentEmptyError("array has no values")
+
+    # supported array output
+    typ = type(first_element)
+    if issubclass(typ, int) or issubclass(typ, long):
+        # special int array support -- send as smallest possible array type
+        special_int_support = True
+        int2_ok, int4_ok, int8_ok = True, True, True
+        for v in array_flatten(value):
+            if v == None:
+                continue
+            if min_int2 < v < max_int2:
+                continue
+            int2_ok = False
+            if min_int4 < v < max_int4:
+                continue
+            int4_ok = False
+            if min_int8 < v < max_int8:
+                continue
+            int8_ok = False
+        if int2_ok:
+            array_typeoid = 1005 # INT2[]
+        elif int4_ok:
+            array_typeoid = 1007 # INT4[]
+        elif int8_ok:
+            array_typeoid = 1016 # INT8[]
+        else:
+            raise ArrayContentNotSupportedError("numeric not supported as array contents")
+    else:
+        special_int_support = False
+        array_typeoid = py_array_types.get(typ)
+        if array_typeoid == None:
+            raise ArrayContentNotSupportedError("type %r not supported as array contents" % typ)
+
+    # check for homogenous array
+    for v in array_flatten(value):
+        if v != None and not (isinstance(v, typ) or (typ == long and isinstance(v, int)) or (typ == int and isinstance(v, long))):
+            raise ArrayContentNotHomogenousError("not all array elements are of type %r" % typ)
+
+    # check that all array dimensions are consistent
+    array_check_dimensions(value)
+
+    type_data = py_types[typ]
+    if special_int_support:
+        if array_typeoid == 1005:
+            type_data = {"typeoid": 21, "bin_out": int2send}
+        elif array_typeoid == 1007:
+            type_data = {"typeoid": 23, "bin_out": int4send}
+        elif array_typeoid == 1016:
+            type_data = {"typeoid": 20, "bin_out": int8send}
+    else:
+        type_data = py_types[typ]
+    return {
+        "typeoid": array_typeoid,
+        "bin_out": array_send(type_data["typeoid"], type_data["bin_out"])
+    }
+
+def array_find_first_element(arr):
+    for v in array_flatten(arr):
+        if v != None:
+            return v
+    return None
+
+def array_flatten(arr):
+    for v in arr:
+        if isinstance(v, list):
+            for v2 in array_flatten(v):
+                yield v2
+        else:
+            yield v
+
+def array_check_dimensions(arr):
+    v0 = arr[0]
+    if isinstance(v0, list):
+        req_len = len(v0)
+        req_inner_lengths = array_check_dimensions(v0)
+        for v in arr:
+            inner_lengths = array_check_dimensions(v)
+            if len(v) != req_len or inner_lengths != req_inner_lengths:
+                raise ArrayDimensionsNotConsistentError("array dimensions not consistent")
+        retval = [req_len]
+        retval.extend(req_inner_lengths)
+        return retval
+    else:
+        # make sure nothing else at this level is a list
+        for v in arr:
+            if isinstance(v, list):
+                raise ArrayDimensionsNotConsistentError("array dimensions not consistent")
+        return []
+
+def array_has_null(arr):
+    for v in array_flatten(arr):
+        if v == None:
+            return True
+    return False
+
+def array_dim_lengths(arr):
+    v0 = arr[0]
+    if isinstance(v0, list):
+        retval = [len(v0)]
+        retval.extend(array_dim_lengths(v0))
+    else:
+        return [len(arr)]
+
+class array_send(object):
+    def __init__(self, typeoid, bin_out_func):
+        self.typeoid = typeoid
+        self.bin_out_func = bin_out_func
+
+    def __call__(self, arr, **kwargs):
+        has_null = array_has_null(arr)
+        dim_lengths = array_dim_lengths(arr)
+        data = struct.pack("!iii", len(dim_lengths), has_null, self.typeoid)
+        for i in dim_lengths:
+            data += struct.pack("!ii", i, 1)
+        for v in array_flatten(arr):
+            if v == None:
+                data += struct.pack("!i", -1)
+            else:
+                inner_data = self.bin_out_func(v, **kwargs)
+                data += struct.pack("!i", len(inner_data))
+                data += inner_data
+        return data
+
+class record_recv(object):
+    def __init__(self, record_field_names):
+        self.record_field_names = record_field_names
+
+    def __call__(self, data, **kwargs):
+        num_fields, = struct.unpack("!i", data[:4])
+        data = data[4:]
+        retval = {}
+        for i in range(num_fields):
+            typeoid, size = struct.unpack("!ii", data[:8])
+            data = data[8:]
+            conversion = pg_types[typeoid]["bin_in"]
+            value = conversion(data[:size], **kwargs)
+            data = data[size:]
+            retval[self.record_field_names[i]] = value
+        return retval
+
+py_types = {
+    bool: {"typeoid": 16, "bin_out": boolsend},
+    int: {"inspect": int_inspect},
+    long: {"inspect": int_inspect},
+    str: {"typeoid": 25, "bin_out": textout},
+    unicode: {"typeoid": 25, "bin_out": textout},
+    float: {"typeoid": 701, "bin_out": float8send},
+    decimal.Decimal: {"typeoid": 1700, "bin_out": numeric_send},
+    Bytea: {"typeoid": 17, "bin_out": byteasend},
+    datetime.datetime: {"typeoid": 1114, "bin_out": timestamp_send, "inspect": datetime_inspect},
+    datetime.date: {"typeoid": 1082, "txt_out": date_out},
+    datetime.time: {"typeoid": 1083, "txt_out": time_out},
+    Interval: {"typeoid": 1186, "bin_out": interval_send},
+    type(None): {"typeoid": -1},
+    list: {"inspect": array_inspect},
+}
+
+# py type -> pg array typeoid
+py_array_types = {
+    float: 1022,
+    bool: 1000,
+    str: 1009,      # TEXT[]
+    unicode: 1009,  # TEXT[]
+    decimal.Decimal: 1231, # NUMERIC[]
+}
+
+pg_types = {
+    16: {"bin_in": boolrecv},
+    17: {"bin_in": bytearecv},
+    18: {"txt_in": varcharin}, # char type (Greenplum)
+    19: {"bin_in": varcharin}, # name type
+    20: {"bin_in": int8recv},
+    21: {"bin_in": int2recv},
+    23: {"bin_in": int4recv},
+    24: {"txt_in": varcharin}, # regproc    (Greenplum)
+    25: {"bin_in": varcharin}, # TEXT type
+    26: {"txt_in": numeric_in}, # oid type
+    28: {"txt_in": numeric_in}, # xid type  (Greenplum)
+    700: {"bin_in": float4recv},
+    701: {"bin_in": float8recv},
+    829: {"txt_in": varcharin}, # MACADDR type
+    1000: {"bin_in": array_recv}, # BOOL[]
+    1003: {"bin_in": array_recv}, # NAME[]
+    1005: {"bin_in": array_recv}, # INT2[]
+    1007: {"bin_in": array_recv}, # INT4[]
+    1009: {"bin_in": array_recv}, # TEXT[]
+    1014: {"bin_in": array_recv}, # CHAR[]
+    1015: {"bin_in": array_recv}, # VARCHAR[]
+    1016: {"bin_in": array_recv}, # INT8[]
+    1021: {"bin_in": array_recv}, # FLOAT4[]
+    1022: {"bin_in": array_recv}, # FLOAT8[]
+    1042: {"bin_in": varcharin}, # CHAR type
+    1043: {"bin_in": varcharin}, # VARCHAR type
+    1082: {"txt_in": date_in},
+    1083: {"txt_in": time_in},
+    1114: {"bin_in": timestamp_recv},
+    1184: {"bin_in": timestamptz_recv}, # timestamp w/ tz
+    1186: {"bin_in": interval_recv},
+    1231: {"bin_in": array_recv}, # NUMERIC[]
+    1263: {"bin_in": array_recv}, # cstring[]
+    1700: {"bin_in": numeric_recv},
+    2275: {"bin_in": varcharin}, # cstring
+    2278: {"txt_in": voidrecv}, # void - This is to allow the code to handle the situation where a SQL function returns void
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/util.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/util.py b/tools/bin/ext/pg8000/util.py
new file mode 100644
index 0000000..d99421e
--- /dev/null
+++ b/tools/bin/ext/pg8000/util.py
@@ -0,0 +1,20 @@
+
+class MulticastDelegate(object):
+    def __init__(self):
+        self.delegates = []
+
+    def __iadd__(self, delegate):
+        self.add(delegate)
+        return self
+
+    def add(self, delegate):
+        self.delegates.append(delegate)
+
+    def __isub__(self, delegate):
+        self.delegates.remove(delegate)
+        return self
+
+    def __call__(self, *args, **kwargs):
+        for d in self.delegates:
+            d(*args, **kwargs)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pygresql/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pygresql/__init__.py b/tools/bin/ext/pygresql/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/__init__.py b/tools/bin/ext/simplejson/__init__.py
new file mode 100755
index 0000000..38d6229
--- /dev/null
+++ b/tools/bin/ext/simplejson/__init__.py
@@ -0,0 +1,287 @@
+r"""
+A simple, fast, extensible JSON encoder and decoder
+
+JSON (JavaScript Object Notation) <http://json.org> is a subset of
+JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data
+interchange format.
+
+simplejson exposes an API familiar to uses of the standard library
+marshal and pickle modules.
+
+Encoding basic Python object hierarchies::
+    
+    >>> import simplejson
+    >>> simplejson.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
+    '["foo", {"bar": ["baz", null, 1.0, 2]}]'
+    >>> print simplejson.dumps("\"foo\bar")
+    "\"foo\bar"
+    >>> print simplejson.dumps(u'\u1234')
+    "\u1234"
+    >>> print simplejson.dumps('\\')
+    "\\"
+    >>> print simplejson.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
+    {"a": 0, "b": 0, "c": 0}
+    >>> from StringIO import StringIO
+    >>> io = StringIO()
+    >>> simplejson.dump(['streaming API'], io)
+    >>> io.getvalue()
+    '["streaming API"]'
+
+Compact encoding::
+
+    >>> import simplejson
+    >>> simplejson.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
+    '[1,2,3,{"4":5,"6":7}]'
+
+Pretty printing::
+
+    >>> import simplejson
+    >>> print simplejson.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)
+    {
+        "4": 5, 
+        "6": 7
+    }
+
+Decoding JSON::
+    
+    >>> import simplejson
+    >>> simplejson.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
+    [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
+    >>> simplejson.loads('"\\"foo\\bar"')
+    u'"foo\x08ar'
+    >>> from StringIO import StringIO
+    >>> io = StringIO('["streaming API"]')
+    >>> simplejson.load(io)
+    [u'streaming API']
+
+Specializing JSON object decoding::
+
+    >>> import simplejson
+    >>> def as_complex(dct):
+    ...     if '__complex__' in dct:
+    ...         return complex(dct['real'], dct['imag'])
+    ...     return dct
+    ... 
+    >>> simplejson.loads('{"__complex__": true, "real": 1, "imag": 2}',
+    ...     object_hook=as_complex)
+    (1+2j)
+
+Extending JSONEncoder::
+    
+    >>> import simplejson
+    >>> class ComplexEncoder(simplejson.JSONEncoder):
+    ...     def default(self, obj):
+    ...         if isinstance(obj, complex):
+    ...             return [obj.real, obj.imag]
+    ...         return simplejson.JSONEncoder.default(self, obj)
+    ... 
+    >>> dumps(2 + 1j, cls=ComplexEncoder)
+    '[2.0, 1.0]'
+    >>> ComplexEncoder().encode(2 + 1j)
+    '[2.0, 1.0]'
+    >>> list(ComplexEncoder().iterencode(2 + 1j))
+    ['[', '2.0', ', ', '1.0', ']']
+    
+
+Note that the JSON produced by this module's default settings
+is a subset of YAML, so it may be used as a serializer for that as well.
+"""
+__version__ = '1.7.3'
+__all__ = [
+    'dump', 'dumps', 'load', 'loads',
+    'JSONDecoder', 'JSONEncoder',
+]
+
+from decoder import JSONDecoder
+from encoder import JSONEncoder
+
+_default_encoder = JSONEncoder(
+    skipkeys=False,
+    ensure_ascii=True,
+    check_circular=True,
+    allow_nan=True,
+    indent=None,
+    separators=None,
+    encoding='utf-8'
+)
+
+def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,
+        allow_nan=True, cls=None, indent=None, separators=None,
+        encoding='utf-8', **kw):
+    """
+    Serialize ``obj`` as a JSON formatted stream to ``fp`` (a
+    ``.write()``-supporting file-like object).
+
+    If ``skipkeys`` is ``True`` then ``dict`` keys that are not basic types
+    (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) 
+    will be skipped instead of raising a ``TypeError``.
+
+    If ``ensure_ascii`` is ``False``, then the some chunks written to ``fp``
+    may be ``unicode`` instances, subject to normal Python ``str`` to
+    ``unicode`` coercion rules. Unless ``fp.write()`` explicitly
+    understands ``unicode`` (as in ``codecs.getwriter()``) this is likely
+    to cause an error.
+
+    If ``check_circular`` is ``False``, then the circular reference check
+    for container types will be skipped and a circular reference will
+    result in an ``OverflowError`` (or worse).
+
+    If ``allow_nan`` is ``False``, then it will be a ``ValueError`` to
+    serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``)
+    in strict compliance of the JSON specification, instead of using the
+    JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
+
+    If ``indent`` is a non-negative integer, then JSON array elements and object
+    members will be pretty-printed with that indent level. An indent level
+    of 0 will only insert newlines. ``None`` is the most compact representation.
+
+    If ``separators`` is an ``(item_separator, dict_separator)`` tuple
+    then it will be used instead of the default ``(', ', ': ')`` separators.
+    ``(',', ':')`` is the most compact JSON representation.
+
+    ``encoding`` is the character encoding for str instances, default is UTF-8.
+
+    To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
+    ``.default()`` method to serialize additional types), specify it with
+    the ``cls`` kwarg.
+    """
+    # cached encoder
+    if (skipkeys is False and ensure_ascii is True and
+        check_circular is True and allow_nan is True and
+        cls is None and indent is None and separators is None and
+        encoding == 'utf-8' and not kw):
+        iterable = _default_encoder.iterencode(obj)
+    else:
+        if cls is None:
+            cls = JSONEncoder
+        iterable = cls(skipkeys=skipkeys, ensure_ascii=ensure_ascii,
+            check_circular=check_circular, allow_nan=allow_nan, indent=indent,
+            separators=separators, encoding=encoding, **kw).iterencode(obj)
+    # could accelerate with writelines in some versions of Python, at
+    # a debuggability cost
+    for chunk in iterable:
+        fp.write(chunk)
+
+
+def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
+        allow_nan=True, cls=None, indent=None, separators=None,
+        encoding='utf-8', **kw):
+    """
+    Serialize ``obj`` to a JSON formatted ``str``.
+
+    If ``skipkeys`` is ``True`` then ``dict`` keys that are not basic types
+    (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) 
+    will be skipped instead of raising a ``TypeError``.
+
+    If ``ensure_ascii`` is ``False``, then the return value will be a
+    ``unicode`` instance subject to normal Python ``str`` to ``unicode``
+    coercion rules instead of being escaped to an ASCII ``str``.
+
+    If ``check_circular`` is ``False``, then the circular reference check
+    for container types will be skipped and a circular reference will
+    result in an ``OverflowError`` (or worse).
+
+    If ``allow_nan`` is ``False``, then it will be a ``ValueError`` to
+    serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in
+    strict compliance of the JSON specification, instead of using the
+    JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
+
+    If ``indent`` is a non-negative integer, then JSON array elements and
+    object members will be pretty-printed with that indent level. An indent
+    level of 0 will only insert newlines. ``None`` is the most compact
+    representation.
+
+    If ``separators`` is an ``(item_separator, dict_separator)`` tuple
+    then it will be used instead of the default ``(', ', ': ')`` separators.
+    ``(',', ':')`` is the most compact JSON representation.
+
+    ``encoding`` is the character encoding for str instances, default is UTF-8.
+
+    To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
+    ``.default()`` method to serialize additional types), specify it with
+    the ``cls`` kwarg.
+    """
+    # cached encoder
+    if (skipkeys is False and ensure_ascii is True and
+        check_circular is True and allow_nan is True and
+        cls is None and indent is None and separators is None and
+        encoding == 'utf-8' and not kw):
+        return _default_encoder.encode(obj)
+    if cls is None:
+        cls = JSONEncoder
+    return cls(
+        skipkeys=skipkeys, ensure_ascii=ensure_ascii,
+        check_circular=check_circular, allow_nan=allow_nan, indent=indent,
+        separators=separators, encoding=encoding,
+        **kw).encode(obj)
+
+_default_decoder = JSONDecoder(encoding=None, object_hook=None)
+
+def load(fp, encoding=None, cls=None, object_hook=None, **kw):
+    """
+    Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
+    a JSON document) to a Python object.
+
+    If the contents of ``fp`` is encoded with an ASCII based encoding other
+    than utf-8 (e.g. latin-1), then an appropriate ``encoding`` name must
+    be specified. Encodings that are not ASCII based (such as UCS-2) are
+    not allowed, and should be wrapped with
+    ``codecs.getreader(fp)(encoding)``, or simply decoded to a ``unicode``
+    object and passed to ``loads()``
+
+    ``object_hook`` is an optional function that will be called with the
+    result of any object literal decode (a ``dict``). The return value of
+    ``object_hook`` will be used instead of the ``dict``. This feature
+    can be used to implement custom decoders (e.g. JSON-RPC class hinting).
+    
+    To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
+    kwarg.
+    """
+    return loads(fp.read(),
+        encoding=encoding, cls=cls, object_hook=object_hook, **kw)
+
+def loads(s, encoding=None, cls=None, object_hook=None, **kw):
+    """
+    Deserialize ``s`` (a ``str`` or ``unicode`` instance containing a JSON
+    document) to a Python object.
+
+    If ``s`` is a ``str`` instance and is encoded with an ASCII based encoding
+    other than utf-8 (e.g. latin-1) then an appropriate ``encoding`` name
+    must be specified. Encodings that are not ASCII based (such as UCS-2)
+    are not allowed and should be decoded to ``unicode`` first.
+
+    ``object_hook`` is an optional function that will be called with the
+    result of any object literal decode (a ``dict``). The return value of
+    ``object_hook`` will be used instead of the ``dict``. This feature
+    can be used to implement custom decoders (e.g. JSON-RPC class hinting).
+
+    To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
+    kwarg.
+    """
+    if cls is None and encoding is None and object_hook is None and not kw:
+        return _default_decoder.decode(s)
+    if cls is None:
+        cls = JSONDecoder
+    if object_hook is not None:
+        kw['object_hook'] = object_hook
+    return cls(encoding=encoding, **kw).decode(s)
+
+def read(s):
+    """
+    json-py API compatibility hook. Use loads(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.loads(s) should be used instead of read(s)",
+        DeprecationWarning)
+    return loads(s)
+
+def write(obj):
+    """
+    json-py API compatibility hook. Use dumps(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.dumps(s) should be used instead of write(s)",
+        DeprecationWarning)
+    return dumps(obj)
+
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/_speedups.c
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/_speedups.c b/tools/bin/ext/simplejson/_speedups.c
new file mode 100644
index 0000000..8f290bb
--- /dev/null
+++ b/tools/bin/ext/simplejson/_speedups.c
@@ -0,0 +1,215 @@
+#include "Python.h"
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
+
+static Py_ssize_t
+ascii_escape_char(Py_UNICODE c, char *output, Py_ssize_t chars);
+static PyObject *
+ascii_escape_unicode(PyObject *pystr);
+static PyObject *
+ascii_escape_str(PyObject *pystr);
+static PyObject *
+py_encode_basestring_ascii(PyObject* self __attribute__((__unused__)), PyObject *pystr);
+void init_speedups(void);
+
+#define S_CHAR(c) (c >= ' ' && c <= '~' && c != '\\' && c != '/' && c != '"')
+
+#define MIN_EXPANSION 6
+#ifdef Py_UNICODE_WIDE
+#define MAX_EXPANSION (2 * MIN_EXPANSION)
+#else
+#define MAX_EXPANSION MIN_EXPANSION
+#endif
+
+static Py_ssize_t
+ascii_escape_char(Py_UNICODE c, char *output, Py_ssize_t chars) {
+    Py_UNICODE x;
+    output[chars++] = '\\';
+    switch (c) {
+        case '/': output[chars++] = (char)c; break;
+        case '\\': output[chars++] = (char)c; break;
+        case '"': output[chars++] = (char)c; break;
+        case '\b': output[chars++] = 'b'; break;
+        case '\f': output[chars++] = 'f'; break;
+        case '\n': output[chars++] = 'n'; break;
+        case '\r': output[chars++] = 'r'; break;
+        case '\t': output[chars++] = 't'; break;
+        default:
+#ifdef Py_UNICODE_WIDE
+            if (c >= 0x10000) {
+                /* UTF-16 surrogate pair */
+                Py_UNICODE v = c - 0x10000;
+                c = 0xd800 | ((v >> 10) & 0x3ff);
+                output[chars++] = 'u';
+                x = (c & 0xf000) >> 12;
+                output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+                x = (c & 0x0f00) >> 8;
+                output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+                x = (c & 0x00f0) >> 4;
+                output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+                x = (c & 0x000f);
+                output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+                c = 0xdc00 | (v & 0x3ff);
+                output[chars++] = '\\';
+            }
+#endif
+            output[chars++] = 'u';
+            x = (c & 0xf000) >> 12;
+            output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+            x = (c & 0x0f00) >> 8;
+            output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+            x = (c & 0x00f0) >> 4;
+            output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+            x = (c & 0x000f);
+            output[chars++] = (x < 10) ? '0' + x : 'a' + (x - 10);
+    }
+    return chars;
+}
+
+static PyObject *
+ascii_escape_unicode(PyObject *pystr) {
+    Py_ssize_t i;
+    Py_ssize_t input_chars;
+    Py_ssize_t output_size;
+    Py_ssize_t chars;
+    PyObject *rval;
+    char *output;
+    Py_UNICODE *input_unicode;
+
+    input_chars = PyUnicode_GET_SIZE(pystr);
+    input_unicode = PyUnicode_AS_UNICODE(pystr);
+    /* One char input can be up to 6 chars output, estimate 4 of these */
+    output_size = 2 + (MIN_EXPANSION * 4) + input_chars;
+    rval = PyString_FromStringAndSize(NULL, output_size);
+    if (rval == NULL) {
+        return NULL;
+    }
+    output = PyString_AS_STRING(rval);
+    chars = 0;
+    output[chars++] = '"';
+    for (i = 0; i < input_chars; i++) {
+        Py_UNICODE c = input_unicode[i];
+        if (S_CHAR(c)) {
+            output[chars++] = (char)c;
+        } else {
+            chars = ascii_escape_char(c, output, chars);
+        }
+        if (output_size - chars < (1 + MAX_EXPANSION)) {
+            /* There's more than four, so let's resize by a lot */
+            output_size *= 2;
+            /* This is an upper bound */
+            if (output_size > 2 + (input_chars * MAX_EXPANSION)) {
+                output_size = 2 + (input_chars * MAX_EXPANSION);
+            }
+            if (_PyString_Resize(&rval, output_size) == -1) {
+                return NULL;
+            }
+            output = PyString_AS_STRING(rval);
+        }
+    }
+    output[chars++] = '"';
+    if (_PyString_Resize(&rval, chars) == -1) {
+        return NULL;
+    }
+    return rval;
+}
+
+static PyObject *
+ascii_escape_str(PyObject *pystr) {
+    Py_ssize_t i;
+    Py_ssize_t input_chars;
+    Py_ssize_t output_size;
+    Py_ssize_t chars;
+    PyObject *rval;
+    char *output;
+    char *input_str;
+
+    input_chars = PyString_GET_SIZE(pystr);
+    input_str = PyString_AS_STRING(pystr);
+    /* One char input can be up to 6 chars output, estimate 4 of these */
+    output_size = 2 + (MIN_EXPANSION * 4) + input_chars;
+    rval = PyString_FromStringAndSize(NULL, output_size);
+    if (rval == NULL) {
+        return NULL;
+    }
+    output = PyString_AS_STRING(rval);
+    chars = 0;
+    output[chars++] = '"';
+    for (i = 0; i < input_chars; i++) {
+        Py_UNICODE c = (Py_UNICODE)input_str[i];
+        if (S_CHAR(c)) {
+            output[chars++] = (char)c;
+        } else if (c > 0x7F) {
+            /* We hit a non-ASCII character, bail to unicode mode */
+            PyObject *uni;
+            Py_DECREF(rval);
+            uni = PyUnicode_DecodeUTF8(input_str, input_chars, "strict");
+            if (uni == NULL) {
+                return NULL;
+            }
+            rval = ascii_escape_unicode(uni);
+            Py_DECREF(uni);
+            return rval;
+        } else {
+            chars = ascii_escape_char(c, output, chars);
+        }
+        /* An ASCII char can't possibly expand to a surrogate! */
+        if (output_size - chars < (1 + MIN_EXPANSION)) {
+            /* There's more than four, so let's resize by a lot */
+            output_size *= 2;
+            if (output_size > 2 + (input_chars * MIN_EXPANSION)) {
+                output_size = 2 + (input_chars * MIN_EXPANSION);
+            }
+            if (_PyString_Resize(&rval, output_size) == -1) {
+                return NULL;
+            }
+            output = PyString_AS_STRING(rval);
+        }
+    }
+    output[chars++] = '"';
+    if (_PyString_Resize(&rval, chars) == -1) {
+        return NULL;
+    }
+    return rval;
+}
+
+PyDoc_STRVAR(pydoc_encode_basestring_ascii,
+    "encode_basestring_ascii(basestring) -> str\n"
+    "\n"
+    "..."
+);
+
+static PyObject *
+py_encode_basestring_ascii(PyObject* self __attribute__((__unused__)), PyObject *pystr) {
+    /* METH_O */
+    if (PyString_Check(pystr)) {
+        return ascii_escape_str(pystr);
+    } else if (PyUnicode_Check(pystr)) {
+        return ascii_escape_unicode(pystr);
+    }
+    PyErr_SetString(PyExc_TypeError, "first argument must be a string");
+    return NULL;
+}
+
+#define DEFN(n, k) \
+    {  \
+        #n, \
+        (PyCFunction)py_ ##n, \
+        k, \
+        pydoc_ ##n \
+    }
+static PyMethodDef speedups_methods[] = {
+    DEFN(encode_basestring_ascii, METH_O),
+    {}
+};
+#undef DEFN
+
+void
+init_speedups(void)
+{
+    PyObject *m;
+    m = Py_InitModule4("_speedups", speedups_methods, NULL, NULL, PYTHON_API_VERSION);
+}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/decoder.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/decoder.py b/tools/bin/ext/simplejson/decoder.py
new file mode 100755
index 0000000..a1b53b2
--- /dev/null
+++ b/tools/bin/ext/simplejson/decoder.py
@@ -0,0 +1,273 @@
+"""
+Implementation of JSONDecoder
+"""
+import re
+
+from simplejson.scanner import Scanner, pattern
+
+FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
+
+def _floatconstants():
+    import struct
+    import sys
+    _BYTES = '7FF80000000000007FF0000000000000'.decode('hex')
+    if sys.byteorder != 'big':
+        _BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1]
+    nan, inf = struct.unpack('dd', _BYTES)
+    return nan, inf, -inf
+
+NaN, PosInf, NegInf = _floatconstants()
+
+def linecol(doc, pos):
+    lineno = doc.count('\n', 0, pos) + 1
+    if lineno == 1:
+        colno = pos
+    else:
+        colno = pos - doc.rindex('\n', 0, pos)
+    return lineno, colno
+
+def errmsg(msg, doc, pos, end=None):
+    lineno, colno = linecol(doc, pos)
+    if end is None:
+        return '%s: line %d column %d (char %d)' % (msg, lineno, colno, pos)
+    endlineno, endcolno = linecol(doc, end)
+    return '%s: line %d column %d - line %d column %d (char %d - %d)' % (
+        msg, lineno, colno, endlineno, endcolno, pos, end)
+
+_CONSTANTS = {
+    '-Infinity': NegInf,
+    'Infinity': PosInf,
+    'NaN': NaN,
+    'true': True,
+    'false': False,
+    'null': None,
+}
+
+def JSONConstant(match, context, c=_CONSTANTS):
+    return c[match.group(0)], None
+pattern('(-?Infinity|NaN|true|false|null)')(JSONConstant)
+
+def JSONNumber(match, context):
+    match = JSONNumber.regex.match(match.string, *match.span())
+    integer, frac, exp = match.groups()
+    if frac or exp:
+        res = float(integer + (frac or '') + (exp or ''))
+    else:
+        res = int(integer)
+    return res, None
+pattern(r'(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?')(JSONNumber)
+
+STRINGCHUNK = re.compile(r'(.*?)(["\\])', FLAGS)
+BACKSLASH = {
+    '"': u'"', '\\': u'\\', '/': u'/',
+    'b': u'\b', 'f': u'\f', 'n': u'\n', 'r': u'\r', 't': u'\t',
+}
+
+DEFAULT_ENCODING = "utf-8"
+
+def scanstring(s, end, encoding=None, _b=BACKSLASH, _m=STRINGCHUNK.match):
+    if encoding is None:
+        encoding = DEFAULT_ENCODING
+    chunks = []
+    _append = chunks.append
+    begin = end - 1
+    while 1:
+        chunk = _m(s, end)
+        if chunk is None:
+            raise ValueError(
+                errmsg("Unterminated string starting at", s, begin))
+        end = chunk.end()
+        content, terminator = chunk.groups()
+        if content:
+            if not isinstance(content, unicode):
+                content = unicode(content, encoding)
+            _append(content)
+        if terminator == '"':
+            break
+        try:
+            esc = s[end]
+        except IndexError:
+            raise ValueError(
+                errmsg("Unterminated string starting at", s, begin))
+        if esc != 'u':
+            try:
+                m = _b[esc]
+            except KeyError:
+                raise ValueError(
+                    errmsg("Invalid \\escape: %r" % (esc,), s, end))
+            end += 1
+        else:
+            esc = s[end + 1:end + 5]
+            try:
+                m = unichr(int(esc, 16))
+                if len(esc) != 4 or not esc.isalnum():
+                    raise ValueError
+            except ValueError:
+                raise ValueError(errmsg("Invalid \\uXXXX escape", s, end))
+            end += 5
+        _append(m)
+    return u''.join(chunks), end
+
+def JSONString(match, context):
+    encoding = getattr(context, 'encoding', None)
+    return scanstring(match.string, match.end(), encoding)
+pattern(r'"')(JSONString)
+
+WHITESPACE = re.compile(r'\s*', FLAGS)
+
+def JSONObject(match, context, _w=WHITESPACE.match):
+    pairs = {}
+    s = match.string
+    end = _w(s, match.end()).end()
+    nextchar = s[end:end + 1]
+    # trivial empty object
+    if nextchar == '}':
+        return pairs, end + 1
+    if nextchar != '"':
+        raise ValueError(errmsg("Expecting property name", s, end))
+    end += 1
+    encoding = getattr(context, 'encoding', None)
+    iterscan = JSONScanner.iterscan
+    while True:
+        key, end = scanstring(s, end, encoding)
+        end = _w(s, end).end()
+        if s[end:end + 1] != ':':
+            raise ValueError(errmsg("Expecting : delimiter", s, end))
+        end = _w(s, end + 1).end()
+        try:
+            value, end = iterscan(s, idx=end, context=context).next()
+        except StopIteration:
+            raise ValueError(errmsg("Expecting object", s, end))
+        pairs[key] = value
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar == '}':
+            break
+        if nextchar != ',':
+            raise ValueError(errmsg("Expecting , delimiter", s, end - 1))
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar != '"':
+            raise ValueError(errmsg("Expecting property name", s, end - 1))
+    object_hook = getattr(context, 'object_hook', None)
+    if object_hook is not None:
+        pairs = object_hook(pairs)
+    return pairs, end
+pattern(r'{')(JSONObject)
+            
+def JSONArray(match, context, _w=WHITESPACE.match):
+    values = []
+    s = match.string
+    end = _w(s, match.end()).end()
+    # look-ahead for trivial empty array
+    nextchar = s[end:end + 1]
+    if nextchar == ']':
+        return values, end + 1
+    iterscan = JSONScanner.iterscan
+    while True:
+        try:
+            value, end = iterscan(s, idx=end, context=context).next()
+        except StopIteration:
+            raise ValueError(errmsg("Expecting object", s, end))
+        values.append(value)
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar == ']':
+            break
+        if nextchar != ',':
+            raise ValueError(errmsg("Expecting , delimiter", s, end))
+        end = _w(s, end).end()
+    return values, end
+pattern(r'\[')(JSONArray)
+ 
+ANYTHING = [
+    JSONObject,
+    JSONArray,
+    JSONString,
+    JSONConstant,
+    JSONNumber,
+]
+
+JSONScanner = Scanner(ANYTHING)
+
+class JSONDecoder(object):
+    """
+    Simple JSON <http://json.org> decoder
+
+    Performs the following translations in decoding:
+    
+    +---------------+-------------------+
+    | JSON          | Python            |
+    +===============+===================+
+    | object        | dict              |
+    +---------------+-------------------+
+    | array         | list              |
+    +---------------+-------------------+
+    | string        | unicode           |
+    +---------------+-------------------+
+    | number (int)  | int, long         |
+    +---------------+-------------------+
+    | number (real) | float             |
+    +---------------+-------------------+
+    | true          | True              |
+    +---------------+-------------------+
+    | false         | False             |
+    +---------------+-------------------+
+    | null          | None              |
+    +---------------+-------------------+
+
+    It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as
+    their corresponding ``float`` values, which is outside the JSON spec.
+    """
+
+    _scanner = Scanner(ANYTHING)
+    __all__ = ['__init__', 'decode', 'raw_decode']
+
+    def __init__(self, encoding=None, object_hook=None):
+        """
+        ``encoding`` determines the encoding used to interpret any ``str``
+        objects decoded by this instance (utf-8 by default).  It has no
+        effect when decoding ``unicode`` objects.
+        
+        Note that currently only encodings that are a superset of ASCII work,
+        strings of other encodings should be passed in as ``unicode``.
+
+        ``object_hook``, if specified, will be called with the result
+        of every JSON object decoded and its return value will be used in
+        place of the given ``dict``.  This can be used to provide custom
+        deserializations (e.g. to support JSON-RPC class hinting).
+        """
+        self.encoding = encoding
+        self.object_hook = object_hook
+
+    def decode(self, s, _w=WHITESPACE.match):
+        """
+        Return the Python representation of ``s`` (a ``str`` or ``unicode``
+        instance containing a JSON document)
+        """
+        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+        end = _w(s, end).end()
+        if end != len(s):
+            raise ValueError(errmsg("Extra data", s, end, len(s)))
+        return obj
+
+    def raw_decode(self, s, **kw):
+        """
+        Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning
+        with a JSON document) and return a 2-tuple of the Python
+        representation and the index in ``s`` where the document ended.
+
+        This can be used to decode a JSON document from a string that may
+        have extraneous data at the end.
+        """
+        kw.setdefault('context', self)
+        try:
+            obj, end = self._scanner.iterscan(s, **kw).next()
+        except StopIteration:
+            raise ValueError("No JSON object could be decoded")
+        return obj, end
+
+__all__ = ['JSONDecoder']

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/encoder.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/encoder.py b/tools/bin/ext/simplejson/encoder.py
new file mode 100755
index 0000000..d29919a
--- /dev/null
+++ b/tools/bin/ext/simplejson/encoder.py
@@ -0,0 +1,371 @@
+"""
+Implementation of JSONEncoder
+"""
+import re
+try:
+    from simplejson import _speedups
+except ImportError:
+    _speedups = None
+
+ESCAPE = re.compile(r'[\x00-\x19\\"\b\f\n\r\t]')
+ESCAPE_ASCII = re.compile(r'([\\"/]|[^\ -~])')
+ESCAPE_DCT = {
+    # escape all forward slashes to prevent </script> attack
+    '/': '\\/',
+    '\\': '\\\\',
+    '"': '\\"',
+    '\b': '\\b',
+    '\f': '\\f',
+    '\n': '\\n',
+    '\r': '\\r',
+    '\t': '\\t',
+}
+for i in range(0x20):
+    ESCAPE_DCT.setdefault(chr(i), '\\u%04x' % (i,))
+
+# assume this produces an infinity on all machines (probably not guaranteed)
+INFINITY = float('1e66666')
+
+def floatstr(o, allow_nan=True):
+    # Check for specials.  Note that this type of test is processor- and/or
+    # platform-specific, so do tests which don't depend on the internals.
+
+    if o != o:
+        text = 'NaN'
+    elif o == INFINITY:
+        text = 'Infinity'
+    elif o == -INFINITY:
+        text = '-Infinity'
+    else:
+        return repr(o)
+
+    if not allow_nan:
+        raise ValueError("Out of range float values are not JSON compliant: %r"
+            % (o,))
+
+    return text
+
+
+def encode_basestring(s):
+    """
+    Return a JSON representation of a Python string
+    """
+    def replace(match):
+        return ESCAPE_DCT[match.group(0)]
+    return '"' + ESCAPE.sub(replace, s) + '"'
+
+def encode_basestring_ascii(s):
+    def replace(match):
+        s = match.group(0)
+        try:
+            return ESCAPE_DCT[s]
+        except KeyError:
+            n = ord(s)
+            if n < 0x10000:
+                return '\\u%04x' % (n,)
+            else:
+                # surrogate pair
+                n -= 0x10000
+                s1 = 0xd800 | ((n >> 10) & 0x3ff)
+                s2 = 0xdc00 | (n & 0x3ff)
+                return '\\u%04x\\u%04x' % (s1, s2)
+    return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"'
+        
+try:
+    encode_basestring_ascii = _speedups.encode_basestring_ascii
+    _need_utf8 = True
+except AttributeError:
+    _need_utf8 = False
+
+class JSONEncoder(object):
+    """
+    Extensible JSON <http://json.org> encoder for Python data structures.
+
+    Supports the following objects and types by default:
+    
+    +-------------------+---------------+
+    | Python            | JSON          |
+    +===================+===============+
+    | dict              | object        |
+    +-------------------+---------------+
+    | list, tuple       | array         |
+    +-------------------+---------------+
+    | str, unicode      | string        |
+    +-------------------+---------------+
+    | int, long, float  | number        |
+    +-------------------+---------------+
+    | True              | true          |
+    +-------------------+---------------+
+    | False             | false         |
+    +-------------------+---------------+
+    | None              | null          |
+    +-------------------+---------------+
+
+    To extend this to recognize other objects, subclass and implement a
+    ``.default()`` method with another method that returns a serializable
+    object for ``o`` if possible, otherwise it should call the superclass
+    implementation (to raise ``TypeError``).
+    """
+    __all__ = ['__init__', 'default', 'encode', 'iterencode']
+    item_separator = ', '
+    key_separator = ': '
+    def __init__(self, skipkeys=False, ensure_ascii=True,
+            check_circular=True, allow_nan=True, sort_keys=False,
+            indent=None, separators=None, encoding='utf-8'):
+        """
+        Constructor for JSONEncoder, with sensible defaults.
+
+        If skipkeys is False, then it is a TypeError to attempt
+        encoding of keys that are not str, int, long, float or None.  If
+        skipkeys is True, such items are simply skipped.
+
+        If ensure_ascii is True, the output is guaranteed to be str
+        objects with all incoming unicode characters escaped.  If
+        ensure_ascii is false, the output will be unicode object.
+
+        If check_circular is True, then lists, dicts, and custom encoded
+        objects will be checked for circular references during encoding to
+        prevent an infinite recursion (which would cause an OverflowError).
+        Otherwise, no such check takes place.
+
+        If allow_nan is True, then NaN, Infinity, and -Infinity will be
+        encoded as such.  This behavior is not JSON specification compliant,
+        but is consistent with most JavaScript based encoders and decoders.
+        Otherwise, it will be a ValueError to encode such floats.
+
+        If sort_keys is True, then the output of dictionaries will be
+        sorted by key; this is useful for regression tests to ensure
+        that JSON serializations can be compared on a day-to-day basis.
+
+        If indent is a non-negative integer, then JSON array
+        elements and object members will be pretty-printed with that
+        indent level.  An indent level of 0 will only insert newlines.
+        None is the most compact representation.
+
+        If specified, separators should be a (item_separator, key_separator)
+        tuple. The default is (', ', ': '). To get the most compact JSON
+        representation you should specify (',', ':') to eliminate whitespace.
+
+        If encoding is not None, then all input strings will be
+        transformed into unicode using that encoding prior to JSON-encoding. 
+        The default is UTF-8.
+        """
+
+        self.skipkeys = skipkeys
+        self.ensure_ascii = ensure_ascii
+        self.check_circular = check_circular
+        self.allow_nan = allow_nan
+        self.sort_keys = sort_keys
+        self.indent = indent
+        self.current_indent_level = 0
+        if separators is not None:
+            self.item_separator, self.key_separator = separators
+        self.encoding = encoding
+
+    def _newline_indent(self):
+        return '\n' + (' ' * (self.indent * self.current_indent_level))
+
+    def _iterencode_list(self, lst, markers=None):
+        if not lst:
+            yield '[]'
+            return
+        if markers is not None:
+            markerid = id(lst)
+            if markerid in markers:
+                raise ValueError("Circular reference detected")
+            markers[markerid] = lst
+        yield '['
+        if self.indent is not None:
+            self.current_indent_level += 1
+            newline_indent = self._newline_indent()
+            separator = self.item_separator + newline_indent
+            yield newline_indent
+        else:
+            newline_indent = None
+            separator = self.item_separator
+        first = True
+        for value in lst:
+            if first:
+                first = False
+            else:
+                yield separator
+            for chunk in self._iterencode(value, markers):
+                yield chunk
+        if newline_indent is not None:
+            self.current_indent_level -= 1
+            yield self._newline_indent()
+        yield ']'
+        if markers is not None:
+            del markers[markerid]
+
+    def _iterencode_dict(self, dct, markers=None):
+        if not dct:
+            yield '{}'
+            return
+        if markers is not None:
+            markerid = id(dct)
+            if markerid in markers:
+                raise ValueError("Circular reference detected")
+            markers[markerid] = dct
+        yield '{'
+        key_separator = self.key_separator
+        if self.indent is not None:
+            self.current_indent_level += 1
+            newline_indent = self._newline_indent()
+            item_separator = self.item_separator + newline_indent
+            yield newline_indent
+        else:
+            newline_indent = None
+            item_separator = self.item_separator
+        first = True
+        if self.ensure_ascii:
+            encoder = encode_basestring_ascii
+        else:
+            encoder = encode_basestring
+        allow_nan = self.allow_nan
+        if self.sort_keys:
+            keys = dct.keys()
+            keys.sort()
+            items = [(k, dct[k]) for k in keys]
+        else:
+            items = dct.iteritems()
+        _encoding = self.encoding
+        _do_decode = (_encoding is not None
+            and not (_need_utf8 and _encoding == 'utf-8'))
+        for key, value in items:
+            if isinstance(key, str):
+                if _do_decode:
+                    key = key.decode(_encoding)
+            elif isinstance(key, basestring):
+                pass
+            # JavaScript is weakly typed for these, so it makes sense to
+            # also allow them.  Many encoders seem to do something like this.
+            elif isinstance(key, float):
+                key = floatstr(key, allow_nan)
+            elif isinstance(key, (int, long)):
+                key = str(key)
+            elif key is True:
+                key = 'true'
+            elif key is False:
+                key = 'false'
+            elif key is None:
+                key = 'null'
+            elif self.skipkeys:
+                continue
+            else:
+                raise TypeError("key %r is not a string" % (key,))
+            if first:
+                first = False
+            else:
+                yield item_separator
+            yield encoder(key)
+            yield key_separator
+            for chunk in self._iterencode(value, markers):
+                yield chunk
+        if newline_indent is not None:
+            self.current_indent_level -= 1
+            yield self._newline_indent()
+        yield '}'
+        if markers is not None:
+            del markers[markerid]
+
+    def _iterencode(self, o, markers=None):
+        if isinstance(o, basestring):
+            if self.ensure_ascii:
+                encoder = encode_basestring_ascii
+            else:
+                encoder = encode_basestring
+            _encoding = self.encoding
+            if (_encoding is not None and isinstance(o, str)
+                    and not (_need_utf8 and _encoding == 'utf-8')):
+                o = o.decode(_encoding)
+            yield encoder(o)
+        elif o is None:
+            yield 'null'
+        elif o is True:
+            yield 'true'
+        elif o is False:
+            yield 'false'
+        elif isinstance(o, (int, long)):
+            yield str(o)
+        elif isinstance(o, float):
+            yield floatstr(o, self.allow_nan)
+        elif isinstance(o, (list, tuple)):
+            for chunk in self._iterencode_list(o, markers):
+                yield chunk
+        elif isinstance(o, dict):
+            for chunk in self._iterencode_dict(o, markers):
+                yield chunk
+        else:
+            if markers is not None:
+                markerid = id(o)
+                if markerid in markers:
+                    raise ValueError("Circular reference detected")
+                markers[markerid] = o
+            for chunk in self._iterencode_default(o, markers):
+                yield chunk
+            if markers is not None:
+                del markers[markerid]
+
+    def _iterencode_default(self, o, markers=None):
+        newobj = self.default(o)
+        return self._iterencode(newobj, markers)
+
+    def default(self, o):
+        """
+        Implement this method in a subclass such that it returns
+        a serializable object for ``o``, or calls the base implementation
+        (to raise a ``TypeError``).
+
+        For example, to support arbitrary iterators, you could
+        implement default like this::
+            
+            def default(self, o):
+                try:
+                    iterable = iter(o)
+                except TypeError:
+                    pass
+                else:
+                    return list(iterable)
+                return JSONEncoder.default(self, o)
+        """
+        raise TypeError("%r is not JSON serializable" % (o,))
+
+    def encode(self, o):
+        """
+        Return a JSON string representation of a Python data structure.
+
+        >>> JSONEncoder().encode({"foo": ["bar", "baz"]})
+        '{"foo":["bar", "baz"]}'
+        """
+        # This is for extremely simple cases and benchmarks...
+        if isinstance(o, basestring):
+            if isinstance(o, str):
+                _encoding = self.encoding
+                if (_encoding is not None 
+                        and not (_encoding == 'utf-8' and _need_utf8)):
+                    o = o.decode(_encoding)
+            return encode_basestring_ascii(o)
+        # This doesn't pass the iterator directly to ''.join() because it
+        # sucks at reporting exceptions.  It's going to do this internally
+        # anyway because it uses PySequence_Fast or similar.
+        chunks = list(self.iterencode(o))
+        return ''.join(chunks)
+
+    def iterencode(self, o):
+        """
+        Encode the given object and yield each string
+        representation as available.
+        
+        For example::
+            
+            for chunk in JSONEncoder().iterencode(bigobject):
+                mysocket.write(chunk)
+        """
+        if self.check_circular:
+            markers = {}
+        else:
+            markers = None
+        return self._iterencode(o, markers)
+
+__all__ = ['JSONEncoder']

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/jsonfilter.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/jsonfilter.py b/tools/bin/ext/simplejson/jsonfilter.py
new file mode 100755
index 0000000..01ca21d
--- /dev/null
+++ b/tools/bin/ext/simplejson/jsonfilter.py
@@ -0,0 +1,40 @@
+import simplejson
+import cgi
+
+class JSONFilter(object):
+    def __init__(self, app, mime_type='text/x-json'):
+        self.app = app
+        self.mime_type = mime_type
+
+    def __call__(self, environ, start_response):
+        # Read JSON POST input to jsonfilter.json if matching mime type
+        response = {'status': '200 OK', 'headers': []}
+        def json_start_response(status, headers):
+            response['status'] = status
+            response['headers'].extend(headers)
+        environ['jsonfilter.mime_type'] = self.mime_type
+        if environ.get('REQUEST_METHOD', '') == 'POST':
+            if environ.get('CONTENT_TYPE', '') == self.mime_type:
+                args = [_ for _ in [environ.get('CONTENT_LENGTH')] if _]
+                data = environ['wsgi.input'].read(*map(int, args))
+                environ['jsonfilter.json'] = simplejson.loads(data)
+        res = simplejson.dumps(self.app(environ, json_start_response))
+        jsonp = cgi.parse_qs(environ.get('QUERY_STRING', '')).get('jsonp')
+        if jsonp:
+            content_type = 'text/javascript'
+            res = ''.join(jsonp + ['(', res, ')'])
+        elif 'Opera' in environ.get('HTTP_USER_AGENT', ''):
+            # Opera has bunk XMLHttpRequest support for most mime types
+            content_type = 'text/plain'
+        else:
+            content_type = self.mime_type
+        headers = [
+            ('Content-type', content_type),
+            ('Content-length', len(res)),
+        ]
+        headers.extend(response['headers'])
+        start_response(response['status'], headers)
+        return [res]
+
+def factory(app, global_conf, **kw):
+    return JSONFilter(app, **kw)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/scanner.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/scanner.py b/tools/bin/ext/simplejson/scanner.py
new file mode 100755
index 0000000..64f4999
--- /dev/null
+++ b/tools/bin/ext/simplejson/scanner.py
@@ -0,0 +1,63 @@
+"""
+Iterator based sre token scanner
+"""
+import sre_parse, sre_compile, sre_constants
+from sre_constants import BRANCH, SUBPATTERN
+from re import VERBOSE, MULTILINE, DOTALL
+import re
+
+__all__ = ['Scanner', 'pattern']
+
+FLAGS = (VERBOSE | MULTILINE | DOTALL)
+class Scanner(object):
+    def __init__(self, lexicon, flags=FLAGS):
+        self.actions = [None]
+        # combine phrases into a compound pattern
+        s = sre_parse.Pattern()
+        s.flags = flags
+        p = []
+        for idx, token in enumerate(lexicon):
+            phrase = token.pattern
+            try:
+                subpattern = sre_parse.SubPattern(s,
+                    [(SUBPATTERN, (idx + 1, sre_parse.parse(phrase, flags)))])
+            except sre_constants.error:
+                raise
+            p.append(subpattern)
+            self.actions.append(token)
+
+        p = sre_parse.SubPattern(s, [(BRANCH, (None, p))])
+        self.scanner = sre_compile.compile(p)
+
+
+    def iterscan(self, string, idx=0, context=None):
+        """
+        Yield match, end_idx for each match
+        """
+        match = self.scanner.scanner(string, idx).match
+        actions = self.actions
+        lastend = idx
+        end = len(string)
+        while True:
+            m = match()
+            if m is None:
+                break
+            matchbegin, matchend = m.span()
+            if lastend == matchend:
+                break
+            action = actions[m.lastindex]
+            if action is not None:
+                rval, next_pos = action(m, context)
+                if next_pos is not None and next_pos != matchend:
+                    # "fast forward" the scanner
+                    matchend = next_pos
+                    match = self.scanner.scanner(string, matchend).match
+                yield rval, matchend
+            lastend = matchend
+            
+def pattern(pattern, flags=FLAGS):
+    def decorator(fn):
+        fn.pattern = pattern
+        fn.regex = re.compile(pattern, flags)
+        return fn
+    return decorator

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/__init__.py b/tools/bin/ext/simplejson/tests/__init__.py
new file mode 100755
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_attacks.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_attacks.py b/tools/bin/ext/simplejson/tests/test_attacks.py
new file mode 100755
index 0000000..8ecfed8
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_attacks.py
@@ -0,0 +1,6 @@
+def test_script_close_attack():
+    import simplejson
+    res = simplejson.dumps('</script>')
+    assert '</script>' not in res
+    res = simplejson.dumps(simplejson.loads('"</script>"'))
+    assert '</script>' not in res

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_dump.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_dump.py b/tools/bin/ext/simplejson/tests/test_dump.py
new file mode 100755
index 0000000..b4e236e
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_dump.py
@@ -0,0 +1,10 @@
+from cStringIO import StringIO
+import simplejson as S
+
+def test_dump():
+    sio = StringIO()
+    S.dump({}, sio)
+    assert sio.getvalue() == '{}'
+    
+def test_dumps():
+    assert S.dumps({}) == '{}'

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_fail.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_fail.py b/tools/bin/ext/simplejson/tests/test_fail.py
new file mode 100755
index 0000000..a99d9c4
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_fail.py
@@ -0,0 +1,70 @@
+# Fri Dec 30 18:57:26 2005
+JSONDOCS = [
+    # http://json.org/JSON_checker/test/fail1.json
+    '"A JSON payload should be an object or array, not a string."',
+    # http://json.org/JSON_checker/test/fail2.json
+    '["Unclosed array"',
+    # http://json.org/JSON_checker/test/fail3.json
+    '{unquoted_key: "keys must be quoted}',
+    # http://json.org/JSON_checker/test/fail4.json
+    '["extra comma",]',
+    # http://json.org/JSON_checker/test/fail5.json
+    '["double extra comma",,]',
+    # http://json.org/JSON_checker/test/fail6.json
+    '[   , "<-- missing value"]',
+    # http://json.org/JSON_checker/test/fail7.json
+    '["Comma after the close"],',
+    # http://json.org/JSON_checker/test/fail8.json
+    '["Extra close"]]',
+    # http://json.org/JSON_checker/test/fail9.json
+    '{"Extra comma": true,}',
+    # http://json.org/JSON_checker/test/fail10.json
+    '{"Extra value after close": true} "misplaced quoted value"',
+    # http://json.org/JSON_checker/test/fail11.json
+    '{"Illegal expression": 1 + 2}',
+    # http://json.org/JSON_checker/test/fail12.json
+    '{"Illegal invocation": alert()}',
+    # http://json.org/JSON_checker/test/fail13.json
+    '{"Numbers cannot have leading zeroes": 013}',
+    # http://json.org/JSON_checker/test/fail14.json
+    '{"Numbers cannot be hex": 0x14}',
+    # http://json.org/JSON_checker/test/fail15.json
+    '["Illegal backslash escape: \\x15"]',
+    # http://json.org/JSON_checker/test/fail16.json
+    '["Illegal backslash escape: \\\'"]',
+    # http://json.org/JSON_checker/test/fail17.json
+    '["Illegal backslash escape: \\017"]',
+    # http://json.org/JSON_checker/test/fail18.json
+    '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
+    # http://json.org/JSON_checker/test/fail19.json
+    '{"Missing colon" null}',
+    # http://json.org/JSON_checker/test/fail20.json
+    '{"Double colon":: null}',
+    # http://json.org/JSON_checker/test/fail21.json
+    '{"Comma instead of colon", null}',
+    # http://json.org/JSON_checker/test/fail22.json
+    '["Colon instead of comma": false]',
+    # http://json.org/JSON_checker/test/fail23.json
+    '["Bad value", truth]',
+    # http://json.org/JSON_checker/test/fail24.json
+    "['single quote']",
+]
+
+SKIPS = {
+    1: "why not have a string payload?",
+    18: "spec doesn't specify any nesting limitations",
+}
+
+def test_failures():
+    import simplejson
+    for idx, doc in enumerate(JSONDOCS):
+        idx = idx + 1
+        if idx in SKIPS:
+            simplejson.loads(doc)
+            continue
+        try:
+            simplejson.loads(doc)
+        except ValueError:
+            pass
+        else:
+            assert False, "Expected failure for fail%d.json: %r" % (idx, doc)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_float.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_float.py b/tools/bin/ext/simplejson/tests/test_float.py
new file mode 100755
index 0000000..ee93358
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_float.py
@@ -0,0 +1,4 @@
+def test_floats():
+    import simplejson
+    for num in [1617161771.7650001]:
+        assert simplejson.dumps(num) == repr(num)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_indent.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_indent.py b/tools/bin/ext/simplejson/tests/test_indent.py
new file mode 100755
index 0000000..47dd4dc
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_indent.py
@@ -0,0 +1,41 @@
+
+
+
+def test_indent():
+    import simplejson
+    import textwrap
+    
+    h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
+         {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
+
+    expect = textwrap.dedent("""\
+    [
+      [
+        "blorpie"
+      ],
+      [
+        "whoops"
+      ],
+      [],
+      "d-shtaeou",
+      "d-nthiouh",
+      "i-vhbjkhnth",
+      {
+        "nifty": 87
+      },
+      {
+        "field": "yes",
+        "morefield": false
+      }
+    ]""")
+
+
+    d1 = simplejson.dumps(h)
+    d2 = simplejson.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
+
+    h1 = simplejson.loads(d1)
+    h2 = simplejson.loads(d2)
+
+    assert h1 == h
+    assert h2 == h
+    assert d2 == expect

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_pass1.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_pass1.py b/tools/bin/ext/simplejson/tests/test_pass1.py
new file mode 100755
index 0000000..4eda192
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_pass1.py
@@ -0,0 +1,72 @@
+# from http://json.org/JSON_checker/test/pass1.json
+JSON = r'''
+[
+    "JSON Test Pattern pass1",
+    {"object with 1 member":["array with 1 element"]},
+    {},
+    [],
+    -42,
+    true,
+    false,
+    null,
+    {
+        "integer": 1234567890,
+        "real": -9876.543210,
+        "e": 0.123456789e-12,
+        "E": 1.234567890E+34,
+        "":  23456789012E666,
+        "zero": 0,
+        "one": 1,
+        "space": " ",
+        "quote": "\"",
+        "backslash": "\\",
+        "controls": "\b\f\n\r\t",
+        "slash": "/ & \/",
+        "alpha": "abcdefghijklmnopqrstuvwyz",
+        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
+        "digit": "0123456789",
+        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
+        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
+        "true": true,
+        "false": false,
+        "null": null,
+        "array":[  ],
+        "object":{  },
+        "address": "50 St. James Street",
+        "url": "http://www.JSON.org/",
+        "comment": "// /* <!-- --",
+        "# -- --> */": " ",
+        " s p a c e d " :[1,2 , 3
+
+,
+
+4 , 5        ,          6           ,7        ],
+        "compact": [1,2,3,4,5,6,7],
+        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
+        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
+        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
+: "A key can be any string"
+    },
+    0.5 ,98.6
+,
+99.44
+,
+
+1066
+
+
+,"rosebud"]
+'''
+
+def test_parse():
+    # test in/out equivalence and parsing
+    import simplejson
+    res = simplejson.loads(JSON)
+    out = simplejson.dumps(res)
+    assert res == simplejson.loads(out)
+    try:
+        simplejson.dumps(res, allow_nan=False)
+    except ValueError:
+        pass
+    else:
+        assert False, "23456789012E666 should be out of range"

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_pass2.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_pass2.py b/tools/bin/ext/simplejson/tests/test_pass2.py
new file mode 100755
index 0000000..ae74abb
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_pass2.py
@@ -0,0 +1,11 @@
+# from http://json.org/JSON_checker/test/pass2.json
+JSON = r'''
+[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
+'''
+
+def test_parse():
+    # test in/out equivalence and parsing
+    import simplejson
+    res = simplejson.loads(JSON)
+    out = simplejson.dumps(res)
+    assert res == simplejson.loads(out)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_pass3.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_pass3.py b/tools/bin/ext/simplejson/tests/test_pass3.py
new file mode 100755
index 0000000..d94893f
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_pass3.py
@@ -0,0 +1,16 @@
+# from http://json.org/JSON_checker/test/pass3.json
+JSON = r'''
+{
+    "JSON Test Pattern pass3": {
+        "The outermost value": "must be an object or array.",
+        "In this test": "It is an object."
+    }
+}
+'''
+
+def test_parse():
+    # test in/out equivalence and parsing
+    import simplejson
+    res = simplejson.loads(JSON)
+    out = simplejson.dumps(res)
+    assert res == simplejson.loads(out)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_recursion.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_recursion.py b/tools/bin/ext/simplejson/tests/test_recursion.py
new file mode 100755
index 0000000..756b066
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_recursion.py
@@ -0,0 +1,62 @@
+import simplejson
+
+def test_listrecursion():
+    x = []
+    x.append(x)
+    try:
+        simplejson.dumps(x)
+    except ValueError:
+        pass
+    else:
+        assert False, "didn't raise ValueError on list recursion"
+    x = []
+    y = [x]
+    x.append(y)
+    try:
+        simplejson.dumps(x)
+    except ValueError:
+        pass
+    else:
+        assert False, "didn't raise ValueError on alternating list recursion"
+    y = []
+    x = [y, y]
+    # ensure that the marker is cleared
+    simplejson.dumps(x)
+
+def test_dictrecursion():
+    x = {}
+    x["test"] = x
+    try:
+        simplejson.dumps(x)
+    except ValueError:
+        pass
+    else:
+        assert False, "didn't raise ValueError on dict recursion"
+    x = {}
+    y = {"a": x, "b": x}
+    # ensure that the marker is cleared
+    simplejson.dumps(x)
+
+class TestObject:
+    pass
+
+class RecursiveJSONEncoder(simplejson.JSONEncoder):
+    recurse = False
+    def default(self, o):
+        if o is TestObject:
+            if self.recurse:
+                return [TestObject]
+            else:
+                return 'TestObject'
+        simplejson.JSONEncoder.default(o)
+
+def test_defaultrecursion():
+    enc = RecursiveJSONEncoder()
+    assert enc.encode(TestObject) == '"TestObject"'
+    enc.recurse = True
+    try:
+        enc.encode(TestObject)
+    except ValueError:
+        pass
+    else:
+        assert False, "didn't raise ValueError on default recursion"

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_separators.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_separators.py b/tools/bin/ext/simplejson/tests/test_separators.py
new file mode 100755
index 0000000..a615354
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_separators.py
@@ -0,0 +1,41 @@
+
+
+
+def test_separators():
+    import simplejson
+    import textwrap
+    
+    h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
+         {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
+
+    expect = textwrap.dedent("""\
+    [
+      [
+        "blorpie"
+      ] ,
+      [
+        "whoops"
+      ] ,
+      [] ,
+      "d-shtaeou" ,
+      "d-nthiouh" ,
+      "i-vhbjkhnth" ,
+      {
+        "nifty" : 87
+      } ,
+      {
+        "field" : "yes" ,
+        "morefield" : false
+      }
+    ]""")
+
+
+    d1 = simplejson.dumps(h)
+    d2 = simplejson.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : '))
+
+    h1 = simplejson.loads(d1)
+    h2 = simplejson.loads(d2)
+
+    assert h1 == h
+    assert h2 == h
+    assert d2 == expect

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/simplejson/tests/test_unicode.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/simplejson/tests/test_unicode.py b/tools/bin/ext/simplejson/tests/test_unicode.py
new file mode 100755
index 0000000..88d0939
--- /dev/null
+++ b/tools/bin/ext/simplejson/tests/test_unicode.py
@@ -0,0 +1,16 @@
+import simplejson as S
+
+def test_encoding1():
+    encoder = S.JSONEncoder(encoding='utf-8')
+    u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
+    s = u.encode('utf-8')
+    ju = encoder.encode(u)
+    js = encoder.encode(s)
+    assert ju == js
+    
+def test_encoding2():
+    u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
+    s = u.encode('utf-8')
+    ju = S.dumps(u, encoding='utf-8')
+    js = S.dumps(s, encoding='utf-8')
+    assert ju == js


[19/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_class33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_class33.data.in b/src/test/regress/data/upgrade34/pg_class33.data.in
new file mode 100644
index 0000000..fac6f3d
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_class33.data.in
@@ -0,0 +1,250 @@
+oid,relname,relnamespace,reltype,relowner,relam,relfilenode,reltablespace,relpages,reltuples,reltoastrelid,reltoastidxid,relaosegrelid,relaosegidxid,relhasindex,relisshared,relkind,relstorage,relnatts,relchecks,reltriggers,relukeys,relfkeys,relrefs,relhasoids,relhaspkey,relhasrules,relhassubclass,relfrozenxid,relacl,reloptions
+10714,domain_constraints,10659,10715,10,0,10714,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10717,domain_udt_usage,10659,10718,10,0,10717,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10720,domains,10659,10721,10,0,10720,0,0,0,0,0,0,0,f,f,v,v,27,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10723,enabled_roles,10659,10724,10,0,10723,0,0,0,0,0,0,0,f,f,v,v,1,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+3250,nb_classification,11,3251,10,0,3250,0,0,0,0,0,0,0,f,f,c,v,3,0,0,0,0,0,f,f,f,f,0,,
+10726,key_column_usage,10659,10727,10,0,10726,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10729,parameters,10659,10730,10,0,10729,0,0,0,0,0,0,0,f,f,v,v,31,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10732,referential_constraints,10659,10733,10,0,10732,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10735,role_column_grants,10659,10736,10,0,10735,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10738,role_routine_grants,10659,10739,10,0,10738,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10741,role_table_grants,10659,10742,10,0,10741,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10744,role_usage_grants,10659,10745,10,0,10744,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10747,routine_privileges,10659,10748,10,0,10747,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10750,routines,10659,10751,10,0,10750,0,0,0,0,0,0,0,f,f,v,v,82,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10753,schemata,10659,10754,10,0,10753,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10756,sequences,10659,10757,10,0,10756,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10761,pg_toast_10759,99,10762,10,0,10761,0,0,0,0,10763,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,828,,
+10763,pg_toast_10759_index,99,0,10,403,10763,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10759,sql_features,10659,10760,10,0,10759,0,2,439,10761,0,0,0,f,f,r,h,7,0,0,0,0,0,f,f,f,f,828,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10766,pg_toast_10764,99,10767,10,0,10766,0,0,0,0,10768,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,829,,
+10768,pg_toast_10764_index,99,0,10,403,10768,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10764,sql_implementation_info,10659,10765,10,0,10764,0,1,12,10766,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,829,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10771,pg_toast_10769,99,10772,10,0,10771,0,0,0,0,10773,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,830,,
+10773,pg_toast_10769_index,99,0,10,403,10773,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10769,sql_languages,10659,10770,10,0,10769,0,1,4,10771,0,0,0,f,f,r,h,7,0,0,0,0,0,f,f,f,f,830,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10776,pg_toast_10774,99,10777,10,0,10776,0,0,0,0,10778,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,831,,
+10778,pg_toast_10774_index,99,0,10,403,10778,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10774,sql_packages,10659,10775,10,0,10774,0,1,10,10776,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,831,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10781,pg_toast_10779,99,10782,10,0,10781,0,0,0,0,10783,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,832,,
+10783,pg_toast_10779_index,99,0,10,403,10783,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10779,sql_parts,10659,10780,10,0,10779,0,1,9,10781,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,832,,
+10786,pg_toast_10784,99,10787,10,0,10786,0,0,0,0,10788,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,833,,
+10788,pg_toast_10784_index,99,0,10,403,10788,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10784,sql_sizing,10659,10785,10,0,10784,0,1,23,10786,0,0,0,f,f,r,h,4,0,0,0,0,0,f,f,f,f,833,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10791,pg_toast_10789,99,10792,10,0,10791,0,0,0,0,10793,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,834,,
+10793,pg_toast_10789_index,99,0,10,403,10793,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10789,sql_sizing_profiles,10659,10790,10,0,10789,0,0,0,10791,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,834,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10794,table_constraints,10659,10795,10,0,10794,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10797,table_privileges,10659,10798,10,0,10797,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10800,tables,10659,10801,10,0,10800,0,0,0,0,0,0,0,f,f,v,v,12,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10803,triggered_update_columns,10659,10804,10,0,10803,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10806,triggers,10659,10807,10,0,10806,0,0,0,0,0,0,0,f,f,v,v,17,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10809,usage_privileges,10659,10810,10,0,10809,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10812,view_column_usage,10659,10813,10,0,10812,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10815,view_routine_usage,10659,10816,10,0,10815,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10818,view_table_usage,10659,10819,10,0,10818,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10821,views,10659,10822,10,0,10821,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10824,data_type_privileges,10659,10825,10,0,10824,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10827,element_types,10659,10828,10,0,10827,0,0,0,0,0,0,0,f,f,v,v,29,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+2830,pg_toast_2604,99,10297,10,0,2830,0,0,0,0,2831,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,841,,
+2831,pg_toast_2604_index,99,0,10,403,2831,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2832,pg_toast_2606,99,10298,10,0,2832,0,0,0,0,2833,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,842,,
+2833,pg_toast_2606_index,99,0,10,403,2833,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2834,pg_toast_2609,99,10299,10,0,2834,0,0,0,0,2835,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,857,,
+2835,pg_toast_2609_index,99,0,10,403,2835,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2836,pg_toast_1255,99,10300,10,0,2836,0,0,0,0,2837,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,838,,
+2837,pg_toast_1255_index,99,0,10,403,2837,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2838,pg_toast_2618,99,10301,10,0,2838,0,0,0,0,2839,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,854,,
+2839,pg_toast_2618_index,99,0,10,403,2839,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2840,pg_toast_2619,99,10302,10,0,2840,0,0,0,0,2841,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,853,,
+2841,pg_toast_2619_index,99,0,10,403,2841,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2842,pg_toast_1260,99,10303,10,0,2842,1664,0,0,0,2843,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,835,,
+2843,pg_toast_1260_index,99,0,10,403,2843,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2844,pg_toast_1262,99,10304,10,0,2844,1664,0,0,0,2845,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,881,,
+2845,pg_toast_1262_index,99,0,10,403,2845,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2846,pg_toast_2396,99,10305,10,0,2846,1664,0,0,0,2847,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,865,,
+2847,pg_toast_2396_index,99,0,10,403,2847,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2650,pg_aggregate_fnoid_index,11,0,10,403,2650,0,2,125,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2651,pg_am_name_index,11,0,10,403,2651,0,2,5,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2652,pg_am_oid_index,11,0,10,403,2652,0,2,5,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2653,pg_amop_opc_strat_index,11,0,10,403,2653,0,2,691,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2654,pg_amop_opr_opc_index,11,0,10,403,2654,0,2,691,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2655,pg_amproc_opc_proc_index,11,0,10,403,2655,0,2,274,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2656,pg_attrdef_adrelid_adnum_index,11,0,10,403,2656,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2657,pg_attrdef_oid_index,11,0,10,403,2657,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2658,pg_attribute_relid_attnam_index,11,0,10,403,2658,0,8,1996,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2659,pg_attribute_relid_attnum_index,11,0,10,403,2659,0,4,1996,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2676,pg_authid_rolname_index,11,0,10,403,2676,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2677,pg_authid_oid_index,11,0,10,403,2677,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2694,pg_auth_members_role_member_index,11,0,10,403,2694,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2695,pg_auth_members_member_role_index,11,0,10,403,2695,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6027,pg_resqueue_oid_index,11,0,10,403,6027,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6028,pg_resqueue_rsqname_index,11,0,10,403,6028,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6041,pg_exttable_reloid_index,11,0,10,403,6041,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+1250,pg_autovacuum_vacrelid_index,11,0,10,403,1250,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2660,pg_cast_oid_index,11,0,10,403,2660,0,2,257,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2661,pg_cast_source_target_index,11,0,10,403,2661,0,2,257,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2662,pg_class_oid_index,11,0,10,403,2662,0,2,249,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2663,pg_class_relname_nsp_index,11,0,10,403,2663,0,4,249,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6029,pg_authid_rolresqueue_index,11,0,10,403,6029,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2664,pg_constraint_conname_nsp_index,11,0,10,403,2664,0,2,1,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2665,pg_constraint_conrelid_index,11,0,10,403,2665,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2666,pg_constraint_contypid_index,11,0,10,403,2666,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2667,pg_constraint_oid_index,11,0,10,403,2667,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2668,pg_conversion_default_index,11,0,10,403,2668,0,2,132,0,0,0,0,f,f,i,h,4,0,0,0,0,0,f,f,f,f,0,,
+2669,pg_conversion_name_nsp_index,11,0,10,403,2669,0,2,132,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2670,pg_conversion_oid_index,11,0,10,403,2670,0,2,132,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2671,pg_database_datname_index,11,0,10,403,2671,1664,2,3,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2672,pg_database_oid_index,11,0,10,403,2672,1664,2,3,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2673,pg_depend_depender_index,11,0,10,403,2673,0,8,5147,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2674,pg_depend_reference_index,11,0,10,403,2674,0,10,5147,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2675,pg_description_o_c_o_index,11,0,10,403,2675,0,4,2093,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2397,pg_shdescription_o_c_index,11,0,10,403,2397,1664,2,1,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2678,pg_index_indrelid_index,11,0,10,403,2678,0,2,95,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2679,pg_index_indexrelid_index,11,0,10,403,2679,0,2,95,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2680,pg_inherits_relid_seqno_index,11,0,10,403,2680,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2681,pg_language_name_index,11,0,10,403,2681,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2682,pg_language_oid_index,11,0,10,403,2682,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2683,pg_largeobject_loid_pn_index,11,0,10,403,2683,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2684,pg_namespace_nspname_index,11,0,10,403,2684,0,2,6,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2685,pg_namespace_oid_index,11,0,10,403,2685,0,2,6,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2686,pg_opclass_am_name_nsp_index,11,0,10,403,2686,0,2,138,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2687,pg_opclass_oid_index,11,0,10,403,2687,0,2,138,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2688,pg_operator_oid_index,11,0,10,403,2688,0,2,666,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2689,pg_operator_oprname_l_r_n_index,11,0,10,403,2689,0,4,666,0,0,0,0,f,f,i,h,4,0,0,0,0,0,f,f,f,f,0,,
+1137,pg_pltemplate_name_index,11,0,10,403,1137,1664,2,7,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2690,pg_proc_oid_index,11,0,10,403,2690,0,4,2648,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2691,pg_proc_proname_args_nsp_index,11,0,10,403,2691,0,12,2648,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2692,pg_rewrite_oid_index,11,0,10,403,2692,0,2,84,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2693,pg_rewrite_rel_rulename_index,11,0,10,403,2693,0,2,84,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+1232,pg_shdepend_depender_index,11,0,10,403,1232,1664,2,1,0,0,0,0,f,t,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+1233,pg_shdepend_reference_index,11,0,10,403,1233,1664,2,1,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2696,pg_statistic_relid_att_index,11,0,10,403,2696,0,2,324,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2697,pg_tablespace_oid_index,11,0,10,403,2697,1664,2,2,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2698,pg_tablespace_spcname_index,11,0,10,403,2698,1664,2,2,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2699,pg_trigger_tgconstrname_index,11,0,10,403,2699,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2700,pg_trigger_tgconstrrelid_index,11,0,10,403,2700,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2701,pg_trigger_tgrelid_tgname_index,11,0,10,403,2701,0,2,3,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2702,pg_trigger_oid_index,11,0,10,403,2702,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2703,pg_type_oid_index,11,0,10,403,2703,0,2,268,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2704,pg_type_typname_nsp_index,11,0,10,403,2704,0,2,268,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6101,gp_configuration_content_definedprimary_index,11,0,10,403,6101,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6102,gp_configuration_dbid_index,11,0,10,403,6102,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6103,gp_policy_localoid_index,11,0,10,403,6103,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6108,gp_db_interfaces_dbid_index,11,0,10,403,6108,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6109,gp_interfaces_interface_index,11,0,10,403,6109,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5005,pg_window_fnoid_index,11,0,10,403,5005,0,2,288,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5007,pg_appendonly_relid_index,11,0,10,403,5007,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5012,pg_partition_oid_index,11,0,10,403,5012,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5017,pg_partition_parrelid_parlevel_istemplate_index,11,0,10,403,5017,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+5013,pg_partition_parrelid_index,11,0,10,403,5013,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5014,pg_partition_rule_oid_index,11,0,10,403,5014,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5015,pg_partition_rule_parchildrelid_parparentrule_parruleord_index,11,0,10,403,5015,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+5016,pg_partition_rule_parchildrelid_index,11,0,10,403,5016,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5026,pg_partition_rule_paroid_parentrule_ruleord_index,11,0,10,403,5026,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+5031,pg_appendonly_alter_column_relid_index,11,0,10,403,5031,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10830,gp_pgdatabase,11,10831,10,0,10830,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10833,gp_distributed_xacts,11,10834,10,0,10833,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10836,gp_transaction_log,11,10837,10,0,10836,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+1260,pg_authid,11,10282,10,0,1260,1664,1,1,2842,0,0,0,t,t,r,h,12,0,1,0,0,0,t,f,f,f,835,{@gpcurusername@=arwdxt/@gpcurusername@},
+10839,gp_distributed_log,11,10840,10,0,10839,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+1247,pg_type,11,71,10,0,1247,0,2,268,0,0,0,0,t,f,r,h,23,0,0,0,0,0,t,f,f,f,836,{=r/@gpcurusername@},
+1249,pg_attribute,11,75,10,0,1249,0,9,1996,0,0,0,0,t,f,r,h,17,0,0,0,0,0,f,f,f,f,837,{=r/@gpcurusername@},
+1255,pg_proc,11,81,10,0,1255,0,15,2648,2836,0,0,0,t,f,r,h,19,0,0,0,0,0,t,f,f,f,838,{=r/@gpcurusername@},
+10312,pg_shadow,11,10313,10,0,10312,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{@gpcurusername@=arwdxt/@gpcurusername@},
+1259,pg_class,11,83,10,0,1259,0,2,249,0,0,0,0,t,f,r,h,30,0,0,0,0,0,t,f,f,f,839,{=r/@gpcurusername@},
+1248,pg_autovacuum,11,10000,10,0,1248,0,0,0,0,0,0,0,t,f,r,h,10,0,0,0,0,0,f,f,f,f,840,{=r/@gpcurusername@},
+2604,pg_attrdef,11,10001,10,0,2604,0,0,0,2830,0,0,0,t,f,r,h,4,0,0,0,0,0,t,f,f,f,841,{=r/@gpcurusername@},
+2606,pg_constraint,11,10002,10,0,2606,0,1,1,2832,0,0,0,t,f,r,h,15,0,0,0,0,0,t,f,f,f,842,{=r/@gpcurusername@},
+2611,pg_inherits,11,10003,10,0,2611,0,0,0,0,0,0,0,t,f,r,h,3,0,0,0,0,0,f,f,f,f,843,{=r/@gpcurusername@},
+2610,pg_index,11,10004,10,0,2610,0,1,95,0,0,0,0,t,f,r,h,11,0,0,0,0,0,f,f,f,f,844,{=r/@gpcurusername@},
+2617,pg_operator,11,10005,10,0,2617,0,4,666,0,0,0,0,t,f,r,h,17,0,0,0,0,0,t,f,f,f,845,{=r/@gpcurusername@},
+2616,pg_opclass,11,10006,10,0,2616,0,1,138,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,846,{=r/@gpcurusername@},
+2601,pg_am,11,10007,10,0,2601,0,1,5,0,0,0,0,t,f,r,h,24,0,0,0,0,0,t,f,f,f,847,{=r/@gpcurusername@},
+2602,pg_amop,11,10008,10,0,2602,0,1,691,0,0,0,0,t,f,r,h,5,0,0,0,0,0,f,f,f,f,848,{=r/@gpcurusername@},
+2603,pg_amproc,11,10009,10,0,2603,0,1,274,0,0,0,0,t,f,r,h,4,0,0,0,0,0,f,f,f,f,849,{=r/@gpcurusername@},
+2612,pg_language,11,10010,10,0,2612,0,1,3,0,0,0,0,t,f,r,h,6,0,0,0,0,0,t,f,f,f,850,{=r/@gpcurusername@},
+2613,pg_largeobject,11,10011,10,0,2613,0,0,0,0,0,0,0,t,f,r,h,3,0,0,0,0,0,f,f,f,f,851,{=r/@gpcurusername@},
+2600,pg_aggregate,11,10012,10,0,2600,0,1,125,0,0,0,0,t,f,r,h,9,0,0,0,0,0,f,f,f,f,852,{=r/@gpcurusername@},
+2619,pg_statistic,11,10013,10,0,2619,0,3,324,2840,0,0,0,t,f,r,h,21,0,0,0,0,0,f,f,f,f,853,{@gpcurusername@=arwdxt/@gpcurusername@},
+2618,pg_rewrite,11,10014,10,0,2618,0,11,84,2838,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,854,{=r/@gpcurusername@},
+2620,pg_trigger,11,10015,10,0,2620,0,1,3,0,0,0,0,t,f,r,h,13,0,0,0,0,0,t,f,f,f,855,{=r/@gpcurusername@},
+2614,pg_listener,11,10016,10,0,2614,0,0,0,0,0,0,0,f,f,r,h,3,0,0,0,0,0,f,f,f,f,856,{=r/@gpcurusername@},
+10348,pg_settings,11,10349,10,0,10348,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=rw/@gpcurusername@}",
+2609,pg_description,11,10017,10,0,2609,0,5,2093,2834,0,0,0,t,f,r,h,4,0,0,0,0,0,f,f,f,f,857,{=r/@gpcurusername@},
+2605,pg_cast,11,10018,10,0,2605,0,1,257,0,0,0,0,t,f,r,h,4,0,0,0,0,0,t,f,f,f,858,{=r/@gpcurusername@},
+2615,pg_namespace,11,10276,10,0,2615,0,1,6,0,0,0,0,t,f,r,h,3,0,0,0,0,0,t,f,f,f,859,{=r/@gpcurusername@},
+2607,pg_conversion,11,10277,10,0,2607,0,1,132,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,860,{=r/@gpcurusername@},
+2608,pg_depend,11,10278,10,0,2608,0,9,5147,0,0,0,0,t,f,r,h,7,0,0,0,0,0,f,f,f,f,861,{=r/@gpcurusername@},
+1213,pg_tablespace,11,10280,10,0,1213,1664,1,2,0,0,0,0,t,t,r,h,6,0,0,0,0,0,t,f,f,f,862,{=r/@gpcurusername@},
+1136,pg_pltemplate,11,10281,10,0,1136,1664,1,7,0,0,0,0,t,t,r,h,6,0,0,0,0,0,f,f,f,f,863,{=r/@gpcurusername@},
+1214,pg_shdepend,11,10284,10,0,1214,1664,1,1,0,0,0,0,t,t,r,h,6,0,0,0,0,0,f,f,f,f,864,{=r/@gpcurusername@},
+2396,pg_shdescription,11,10285,10,0,2396,1664,1,1,2846,0,0,0,t,t,r,h,3,0,0,0,0,0,f,f,f,f,865,{=r/@gpcurusername@},
+6026,pg_resqueue,11,10286,10,0,6026,1664,0,0,0,0,0,0,t,t,r,h,5,0,0,0,0,0,t,f,f,f,866,{=r/@gpcurusername@},
+5000,gp_configuration,11,10287,10,0,5000,1664,0,0,0,0,0,0,t,t,r,h,8,0,0,0,0,0,f,f,f,f,867,{=r/@gpcurusername@},
+5006,gp_configuration_history,11,6434,10,0,5006,1664,0,0,0,0,0,0,f,t,r,h,3,0,0,0,0,0,f,f,f,f,868,{=r/@gpcurusername@},
+5029,gp_db_interfaces,11,6436,10,0,5029,1664,0,0,0,0,0,0,t,t,r,h,3,0,0,0,0,0,f,f,f,f,869,{=r/@gpcurusername@},
+5030,gp_interfaces,11,6433,10,0,5030,1664,0,0,0,0,0,0,t,t,r,h,3,0,0,0,0,0,f,f,f,f,870,{=r/@gpcurusername@},
+5001,gp_id,11,10288,10,0,5001,1664,0,0,0,0,0,0,f,t,r,h,4,0,0,0,0,0,f,f,f,f,871,{=r/@gpcurusername@},
+5002,gp_distribution_policy,11,10289,10,0,5002,0,0,0,0,0,0,0,t,f,r,h,2,0,0,0,0,0,f,f,f,f,872,{=r/@gpcurusername@},
+5003,gp_version_at_initdb,11,10290,10,0,5003,1664,1,1,0,0,0,0,f,t,r,h,2,0,0,0,0,0,f,f,f,f,873,{=r/@gpcurusername@},
+5004,pg_window,11,10291,10,0,5004,0,1,288,0,0,0,0,t,f,r,h,10,0,0,0,0,0,f,f,f,f,874,{=r/@gpcurusername@},
+6040,pg_exttable,11,10292,10,0,6040,0,0,0,0,0,0,0,t,f,r,h,9,0,0,0,0,0,f,f,f,f,875,{=r/@gpcurusername@},
+6105,pg_appendonly,11,10293,10,0,6105,0,0,0,0,0,0,0,t,f,r,h,8,0,0,0,0,0,f,f,f,f,876,{=r/@gpcurusername@},
+6110,pg_appendonly_alter_column,11,6437,10,0,6110,0,0,0,0,0,0,0,t,f,r,h,4,0,0,0,0,0,f,f,f,f,877,{=r/@gpcurusername@},
+5008,gp_master_mirroring,11,10294,10,0,5008,1664,1,1,0,0,0,0,f,t,r,h,4,0,0,0,0,0,f,f,f,f,878,{=r/@gpcurusername@},
+5010,pg_partition,11,10295,10,0,5010,0,0,0,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,879,{=r/@gpcurusername@},
+5011,pg_partition_rule,11,10296,10,0,5011,0,0,0,0,0,0,0,t,f,r,h,13,0,0,0,0,0,t,f,f,f,880,{=r/@gpcurusername@},
+1262,pg_database,11,10279,10,0,1262,1664,1,3,2844,0,0,0,t,t,r,h,11,0,1,0,0,0,t,f,f,f,881,{=r/@gpcurusername@},
+1261,pg_auth_members,11,10283,10,0,1261,1664,0,0,0,0,0,0,t,t,r,h,4,0,1,0,0,0,f,f,f,f,882,{=r/@gpcurusername@},
+10309,pg_roles,11,10310,10,0,10309,0,0,0,0,0,0,0,f,f,v,v,13,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10315,pg_group,11,10316,10,0,10315,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10318,pg_user,11,10319,10,0,10318,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10321,pg_rules,11,10322,10,0,10321,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10324,pg_views,11,10325,10,0,10324,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10327,pg_tables,11,10328,10,0,10327,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10330,pg_indexes,11,10331,10,0,10330,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10333,pg_stats,11,10334,10,0,10333,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10336,pg_locks,11,10337,10,0,10336,0,0,0,0,0,0,0,f,f,v,v,15,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10339,pg_cursors,11,10340,10,0,10339,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10342,pg_prepared_xacts,11,10343,10,0,10342,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10345,pg_prepared_statements,11,10346,10,0,10345,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10353,pg_timezone_abbrevs,11,10354,10,0,10353,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10356,pg_timezone_names,11,10357,10,0,10356,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10359,pg_stat_all_tables,11,10360,10,0,10359,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10362,pg_stat_sys_tables,11,10363,10,0,10362,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10365,pg_stat_user_tables,11,10366,10,0,10365,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10368,pg_statio_all_tables,11,10369,10,0,10368,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10371,pg_statio_sys_tables,11,10372,10,0,10371,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10374,pg_statio_user_tables,11,10375,10,0,10374,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10377,pg_stat_all_indexes,11,10378,10,0,10377,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10380,pg_stat_sys_indexes,11,10381,10,0,10380,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10383,pg_stat_user_indexes,11,10384,10,0,10383,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10386,pg_statio_all_indexes,11,10387,10,0,10386,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10389,pg_statio_sys_indexes,11,10390,10,0,10389,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10392,pg_statio_user_indexes,11,10393,10,0,10392,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10395,pg_statio_all_sequences,11,10396,10,0,10395,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10398,pg_statio_sys_sequences,11,10399,10,0,10398,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10401,pg_statio_user_sequences,11,10402,10,0,10401,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10404,pg_stat_activity,11,10405,10,0,10404,0,0,0,0,0,0,0,f,f,v,v,12,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10407,pg_stat_database,11,10408,10,0,10407,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10410,pg_stat_resqueues,11,10411,10,0,10410,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10413,pg_resqueue_status,11,10414,10,0,10413,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10416,pg_max_external_files,11,10417,10,0,10416,0,0,0,0,0,0,0,f,f,v,v,2,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10419,pg_partitions,11,10420,10,0,10419,0,0,0,0,0,0,0,f,f,v,v,19,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10422,pg_partition_columns,11,10423,10,0,10422,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10425,pg_partition_templates,11,10426,10,0,10425,0,0,0,0,0,0,0,f,f,v,v,15,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10677,information_schema_catalog_name,10659,10678,10,0,10677,0,0,0,0,0,0,0,f,f,v,v,1,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10681,applicable_roles,10659,10682,10,0,10681,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10684,administrable_role_authorizations,10659,10685,10,0,10684,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10687,attributes,10659,10688,10,0,10687,0,0,0,0,0,0,0,f,f,v,v,31,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10690,check_constraint_routine_usage,10659,10691,10,0,10690,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10693,check_constraints,10659,10694,10,0,10693,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10696,column_domain_usage,10659,10697,10,0,10696,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10699,column_privileges,10659,10700,10,0,10699,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10702,column_udt_usage,10659,10703,10,0,10702,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10705,columns,10659,10706,10,0,10705,0,0,0,0,0,0,0,f,f,v,v,44,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10708,constraint_column_usage,10659,10709,10,0,10708,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10711,constraint_table_usage,10659,10712,10,0,10711,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_conversion33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_conversion33.data b/src/test/regress/data/upgrade34/pg_conversion33.data
new file mode 100644
index 0000000..ddfe227
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_conversion33.data
@@ -0,0 +1,133 @@
+oid,conname,connamespace,conowner,conforencoding,contoencoding,conproc,condefault
+ascii_to_mic,11,10,0,7,ascii_to_mic,t
+mic_to_ascii,11,10,7,0,mic_to_ascii,t
+koi8_r_to_mic,11,10,22,7,koi8r_to_mic,t
+mic_to_koi8_r,11,10,7,22,mic_to_koi8r,t
+iso_8859_5_to_mic,11,10,25,7,iso_to_mic,t
+mic_to_iso_8859_5,11,10,7,25,mic_to_iso,t
+windows_1251_to_mic,11,10,23,7,win1251_to_mic,t
+mic_to_windows_1251,11,10,7,23,mic_to_win1251,t
+windows_866_to_mic,11,10,20,7,win866_to_mic,t
+mic_to_windows_866,11,10,7,20,mic_to_win866,t
+koi8_r_to_windows_1251,11,10,22,23,koi8r_to_win1251,t
+windows_1251_to_koi8_r,11,10,23,22,win1251_to_koi8r,t
+koi8_r_to_windows_866,11,10,22,20,koi8r_to_win866,t
+windows_866_to_koi8_r,11,10,20,22,win866_to_koi8r,t
+windows_866_to_windows_1251,11,10,20,23,win866_to_win1251,t
+windows_1251_to_windows_866,11,10,23,20,win1251_to_win866,t
+iso_8859_5_to_koi8_r,11,10,25,22,iso_to_koi8r,t
+koi8_r_to_iso_8859_5,11,10,22,25,koi8r_to_iso,t
+iso_8859_5_to_windows_1251,11,10,25,23,iso_to_win1251,t
+windows_1251_to_iso_8859_5,11,10,23,25,win1251_to_iso,t
+iso_8859_5_to_windows_866,11,10,25,20,iso_to_win866,t
+windows_866_to_iso_8859_5,11,10,20,25,win866_to_iso,t
+euc_cn_to_mic,11,10,2,7,euc_cn_to_mic,t
+mic_to_euc_cn,11,10,7,2,mic_to_euc_cn,t
+euc_jp_to_sjis,11,10,1,35,euc_jp_to_sjis,t
+sjis_to_euc_jp,11,10,35,1,sjis_to_euc_jp,t
+euc_jp_to_mic,11,10,1,7,euc_jp_to_mic,t
+sjis_to_mic,11,10,35,7,sjis_to_mic,t
+mic_to_euc_jp,11,10,7,1,mic_to_euc_jp,t
+mic_to_sjis,11,10,7,35,mic_to_sjis,t
+euc_kr_to_mic,11,10,3,7,euc_kr_to_mic,t
+mic_to_euc_kr,11,10,7,3,mic_to_euc_kr,t
+euc_tw_to_big5,11,10,4,36,euc_tw_to_big5,t
+big5_to_euc_tw,11,10,36,4,big5_to_euc_tw,t
+euc_tw_to_mic,11,10,4,7,euc_tw_to_mic,t
+big5_to_mic,11,10,36,7,big5_to_mic,t
+mic_to_euc_tw,11,10,7,4,mic_to_euc_tw,t
+mic_to_big5,11,10,7,36,mic_to_big5,t
+iso_8859_2_to_mic,11,10,9,7,latin2_to_mic,t
+mic_to_iso_8859_2,11,10,7,9,mic_to_latin2,t
+windows_1250_to_mic,11,10,29,7,win1250_to_mic,t
+mic_to_windows_1250,11,10,7,29,mic_to_win1250,t
+iso_8859_2_to_windows_1250,11,10,9,29,latin2_to_win1250,t
+windows_1250_to_iso_8859_2,11,10,29,9,win1250_to_latin2,t
+iso_8859_1_to_mic,11,10,8,7,latin1_to_mic,t
+mic_to_iso_8859_1,11,10,7,8,mic_to_latin1,t
+iso_8859_3_to_mic,11,10,10,7,latin3_to_mic,t
+mic_to_iso_8859_3,11,10,7,10,mic_to_latin3,t
+iso_8859_4_to_mic,11,10,11,7,latin4_to_mic,t
+mic_to_iso_8859_4,11,10,7,11,mic_to_latin4,t
+ascii_to_utf8,11,10,0,6,ascii_to_utf8,t
+utf8_to_ascii,11,10,6,0,utf8_to_ascii,t
+big5_to_utf8,11,10,36,6,big5_to_utf8,t
+utf8_to_big5,11,10,6,36,utf8_to_big5,t
+utf8_to_koi8_r,11,10,6,22,utf8_to_koi8r,t
+koi8_r_to_utf8,11,10,22,6,koi8r_to_utf8,t
+utf8_to_koi8_u,11,10,6,34,utf8_to_koi8u,t
+koi8_u_to_utf8,11,10,34,6,koi8u_to_utf8,t
+utf8_to_windows_866,11,10,6,20,utf8_to_win,t
+windows_866_to_utf8,11,10,20,6,win_to_utf8,t
+utf8_to_windows_874,11,10,6,21,utf8_to_win,t
+windows_874_to_utf8,11,10,21,6,win_to_utf8,t
+utf8_to_windows_1250,11,10,6,29,utf8_to_win,t
+windows_1250_to_utf8,11,10,29,6,win_to_utf8,t
+utf8_to_windows_1251,11,10,6,23,utf8_to_win,t
+windows_1251_to_utf8,11,10,23,6,win_to_utf8,t
+utf8_to_windows_1252,11,10,6,24,utf8_to_win,t
+windows_1252_to_utf8,11,10,24,6,win_to_utf8,t
+utf8_to_windows_1253,11,10,6,30,utf8_to_win,t
+windows_1253_to_utf8,11,10,30,6,win_to_utf8,t
+utf8_to_windows_1254,11,10,6,31,utf8_to_win,t
+windows_1254_to_utf8,11,10,31,6,win_to_utf8,t
+utf8_to_windows_1255,11,10,6,32,utf8_to_win,t
+windows_1255_to_utf8,11,10,32,6,win_to_utf8,t
+utf8_to_windows_1256,11,10,6,18,utf8_to_win,t
+windows_1256_to_utf8,11,10,18,6,win_to_utf8,t
+utf8_to_windows_1257,11,10,6,33,utf8_to_win,t
+windows_1257_to_utf8,11,10,33,6,win_to_utf8,t
+utf8_to_windows_1258,11,10,6,19,utf8_to_win,t
+windows_1258_to_utf8,11,10,19,6,win_to_utf8,t
+euc_cn_to_utf8,11,10,2,6,euc_cn_to_utf8,t
+utf8_to_euc_cn,11,10,6,2,utf8_to_euc_cn,t
+euc_jp_to_utf8,11,10,1,6,euc_jp_to_utf8,t
+utf8_to_euc_jp,11,10,6,1,utf8_to_euc_jp,t
+euc_kr_to_utf8,11,10,3,6,euc_kr_to_utf8,t
+utf8_to_euc_kr,11,10,6,3,utf8_to_euc_kr,t
+euc_tw_to_utf8,11,10,4,6,euc_tw_to_utf8,t
+utf8_to_euc_tw,11,10,6,4,utf8_to_euc_tw,t
+gb18030_to_utf8,11,10,39,6,gb18030_to_utf8,t
+utf8_to_gb18030,11,10,6,39,utf8_to_gb18030,t
+gbk_to_utf8,11,10,37,6,gbk_to_utf8,t
+utf8_to_gbk,11,10,6,37,utf8_to_gbk,t
+utf8_to_iso_8859_2,11,10,6,9,utf8_to_iso8859,t
+iso_8859_2_to_utf8,11,10,9,6,iso8859_to_utf8,t
+utf8_to_iso_8859_3,11,10,6,10,utf8_to_iso8859,t
+iso_8859_3_to_utf8,11,10,10,6,iso8859_to_utf8,t
+utf8_to_iso_8859_4,11,10,6,11,utf8_to_iso8859,t
+iso_8859_4_to_utf8,11,10,11,6,iso8859_to_utf8,t
+utf8_to_iso_8859_9,11,10,6,12,utf8_to_iso8859,t
+iso_8859_9_to_utf8,11,10,12,6,iso8859_to_utf8,t
+utf8_to_iso_8859_10,11,10,6,13,utf8_to_iso8859,t
+iso_8859_10_to_utf8,11,10,13,6,iso8859_to_utf8,t
+utf8_to_iso_8859_13,11,10,6,14,utf8_to_iso8859,t
+iso_8859_13_to_utf8,11,10,14,6,iso8859_to_utf8,t
+utf8_to_iso_8859_14,11,10,6,15,utf8_to_iso8859,t
+iso_8859_14_to_utf8,11,10,15,6,iso8859_to_utf8,t
+utf8_to_iso_8859_15,11,10,6,16,utf8_to_iso8859,t
+iso_8859_15_to_utf8,11,10,16,6,iso8859_to_utf8,t
+utf8_to_iso_8859_16,11,10,6,17,utf8_to_iso8859,t
+iso_8859_16_to_utf8,11,10,17,6,iso8859_to_utf8,t
+utf8_to_iso_8859_5,11,10,6,25,utf8_to_iso8859,t
+iso_8859_5_to_utf8,11,10,25,6,iso8859_to_utf8,t
+utf8_to_iso_8859_6,11,10,6,26,utf8_to_iso8859,t
+iso_8859_6_to_utf8,11,10,26,6,iso8859_to_utf8,t
+utf8_to_iso_8859_7,11,10,6,27,utf8_to_iso8859,t
+iso_8859_7_to_utf8,11,10,27,6,iso8859_to_utf8,t
+utf8_to_iso_8859_8,11,10,6,28,utf8_to_iso8859,t
+iso_8859_8_to_utf8,11,10,28,6,iso8859_to_utf8,t
+iso_8859_1_to_utf8,11,10,8,6,iso8859_1_to_utf8,t
+utf8_to_iso_8859_1,11,10,6,8,utf8_to_iso8859_1,t
+johab_to_utf8,11,10,40,6,johab_to_utf8,t
+utf8_to_johab,11,10,6,40,utf8_to_johab,t
+sjis_to_utf8,11,10,35,6,sjis_to_utf8,t
+utf8_to_sjis,11,10,6,35,utf8_to_sjis,t
+uhc_to_utf8,11,10,38,6,uhc_to_utf8,t
+utf8_to_uhc,11,10,6,38,utf8_to_uhc,t
+euc_jis_2004_to_utf8,11,10,5,6,euc_jis_2004_to_utf8,t
+utf8_to_euc_jis_2004,11,10,6,5,utf8_to_euc_jis_2004,t
+shift_jis_2004_to_utf8,11,10,41,6,shift_jis_2004_to_utf8,t
+utf8_to_shift_jis_2004,11,10,6,41,utf8_to_shift_jis_2004,t
+euc_jis_2004_to_shift_jis_2004,11,10,5,41,euc_jis_2004_to_shift_jis_2004,t
+shift_jis_2004_to_euc_jis_2004,11,10,41,5,shift_jis_2004_to_euc_jis_2004,t


[14/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_shdepend33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_shdepend33.data b/src/test/regress/data/upgrade34/pg_shdepend33.data
new file mode 100644
index 0000000..b9064d7
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_shdepend33.data
@@ -0,0 +1,2 @@
+dbid,classid,objid,refclassid,refobjid,deptype
+0,0,0,1260,10,p

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_shdescription33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_shdescription33.data b/src/test/regress/data/upgrade34/pg_shdescription33.data
new file mode 100644
index 0000000..ec60abd
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_shdescription33.data
@@ -0,0 +1,2 @@
+objoid,classoid,description
+1,1262,Default template database

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_type33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_type33.data b/src/test/regress/data/upgrade34/pg_type33.data
new file mode 100644
index 0000000..3a5d8f9
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_type33.data
@@ -0,0 +1,269 @@
+oid,typname,typnamespace,typowner,typlen,typbyval,typtype,typisdefined,typdelim,typrelid,typelem,typinput,typoutput,typreceive,typsend,typanalyze,typalign,typstorage,typnotnull,typbasetype,typtypmod,typndims,typdefaultbin,typdefault
+16,bool,11,10,1,t,b,t,",",0,0,boolin,boolout,boolrecv,boolsend,-,c,p,f,0,-1,0,,
+17,bytea,11,10,-1,f,b,t,",",0,0,byteain,byteaout,bytearecv,byteasend,-,i,x,f,0,-1,0,,
+18,char,11,10,1,t,b,t,",",0,0,charin,charout,charrecv,charsend,-,c,p,f,0,-1,0,,
+19,name,11,10,64,f,b,t,",",0,18,namein,nameout,namerecv,namesend,-,i,p,f,0,-1,0,,
+20,int8,11,10,8,t,b,t,",",0,0,int8in,int8out,int8recv,int8send,-,d,p,f,0,-1,0,,
+21,int2,11,10,2,t,b,t,",",0,0,int2in,int2out,int2recv,int2send,-,s,p,f,0,-1,0,,
+22,int2vector,11,10,-1,f,b,t,",",0,21,int2vectorin,int2vectorout,int2vectorrecv,int2vectorsend,-,i,p,f,0,-1,0,,
+23,int4,11,10,4,t,b,t,",",0,0,int4in,int4out,int4recv,int4send,-,i,p,f,0,-1,0,,
+24,regproc,11,10,4,t,b,t,",",0,0,regprocin,regprocout,regprocrecv,regprocsend,-,i,p,f,0,-1,0,,
+25,text,11,10,-1,f,b,t,",",0,0,textin,textout,textrecv,textsend,-,i,x,f,0,-1,0,,
+26,oid,11,10,4,t,b,t,",",0,0,oidin,oidout,oidrecv,oidsend,-,i,p,f,0,-1,0,,
+27,tid,11,10,6,f,b,t,",",0,0,tidin,tidout,tidrecv,tidsend,-,s,p,f,0,-1,0,,
+28,xid,11,10,4,t,b,t,",",0,0,xidin,xidout,xidrecv,xidsend,-,i,p,f,0,-1,0,,
+29,cid,11,10,4,t,b,t,",",0,0,cidin,cidout,cidrecv,cidsend,-,i,p,f,0,-1,0,,
+30,oidvector,11,10,-1,f,b,t,",",0,26,oidvectorin,oidvectorout,oidvectorrecv,oidvectorsend,-,i,p,f,0,-1,0,,
+71,pg_type,11,10,-1,f,c,t,",",1247,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+75,pg_attribute,11,10,-1,f,c,t,",",1249,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+81,pg_proc,11,10,-1,f,c,t,",",1255,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+83,pg_class,11,10,-1,f,c,t,",",1259,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+210,smgr,11,10,2,t,b,t,",",0,0,smgrin,smgrout,-,-,-,s,p,f,0,-1,0,,
+600,point,11,10,16,f,b,t,",",0,701,point_in,point_out,point_recv,point_send,-,d,p,f,0,-1,0,,
+601,lseg,11,10,32,f,b,t,",",0,600,lseg_in,lseg_out,lseg_recv,lseg_send,-,d,p,f,0,-1,0,,
+602,path,11,10,-1,f,b,t,",",0,0,path_in,path_out,path_recv,path_send,-,d,x,f,0,-1,0,,
+603,box,11,10,32,f,b,t,;,0,600,box_in,box_out,box_recv,box_send,-,d,p,f,0,-1,0,,
+604,polygon,11,10,-1,f,b,t,",",0,0,poly_in,poly_out,poly_recv,poly_send,-,d,x,f,0,-1,0,,
+628,line,11,10,32,f,b,t,",",0,701,line_in,line_out,line_recv,line_send,-,d,p,f,0,-1,0,,
+629,_line,11,10,-1,f,b,t,",",0,628,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+700,float4,11,10,4,t,b,t,",",0,0,float4in,float4out,float4recv,float4send,-,i,p,f,0,-1,0,,
+701,float8,11,10,8,t,b,t,",",0,0,float8in,float8out,float8recv,float8send,-,d,p,f,0,-1,0,,
+702,abstime,11,10,4,t,b,t,",",0,0,abstimein,abstimeout,abstimerecv,abstimesend,-,i,p,f,0,-1,0,,
+703,reltime,11,10,4,t,b,t,",",0,0,reltimein,reltimeout,reltimerecv,reltimesend,-,i,p,f,0,-1,0,,
+704,tinterval,11,10,12,f,b,t,",",0,0,tintervalin,tintervalout,tintervalrecv,tintervalsend,-,i,p,f,0,-1,0,,
+705,unknown,11,10,-2,f,b,t,",",0,0,unknownin,unknownout,unknownrecv,unknownsend,-,c,p,f,0,-1,0,,
+718,circle,11,10,24,f,b,t,",",0,0,circle_in,circle_out,circle_recv,circle_send,-,d,p,f,0,-1,0,,
+719,_circle,11,10,-1,f,b,t,",",0,718,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+790,money,11,10,4,f,b,t,",",0,0,cash_in,cash_out,cash_recv,cash_send,-,i,p,f,0,-1,0,,
+791,_money,11,10,-1,f,b,t,",",0,790,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+829,macaddr,11,10,6,f,b,t,",",0,0,macaddr_in,macaddr_out,macaddr_recv,macaddr_send,-,i,p,f,0,-1,0,,
+869,inet,11,10,-1,f,b,t,",",0,0,inet_in,inet_out,inet_recv,inet_send,-,i,p,f,0,-1,0,,
+650,cidr,11,10,-1,f,b,t,",",0,0,cidr_in,cidr_out,cidr_recv,cidr_send,-,i,p,f,0,-1,0,,
+1000,_bool,11,10,-1,f,b,t,",",0,16,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1001,_bytea,11,10,-1,f,b,t,",",0,17,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1002,_char,11,10,-1,f,b,t,",",0,18,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1003,_name,11,10,-1,f,b,t,",",0,19,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1005,_int2,11,10,-1,f,b,t,",",0,21,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1006,_int2vector,11,10,-1,f,b,t,",",0,22,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1007,_int4,11,10,-1,f,b,t,",",0,23,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1008,_regproc,11,10,-1,f,b,t,",",0,24,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1009,_text,11,10,-1,f,b,t,",",0,25,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1028,_oid,11,10,-1,f,b,t,",",0,26,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1010,_tid,11,10,-1,f,b,t,",",0,27,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1011,_xid,11,10,-1,f,b,t,",",0,28,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1012,_cid,11,10,-1,f,b,t,",",0,29,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1013,_oidvector,11,10,-1,f,b,t,",",0,30,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1014,_bpchar,11,10,-1,f,b,t,",",0,1042,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1015,_varchar,11,10,-1,f,b,t,",",0,1043,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1016,_int8,11,10,-1,f,b,t,",",0,20,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1017,_point,11,10,-1,f,b,t,",",0,600,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1018,_lseg,11,10,-1,f,b,t,",",0,601,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1019,_path,11,10,-1,f,b,t,",",0,602,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1020,_box,11,10,-1,f,b,t,;,0,603,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1021,_float4,11,10,-1,f,b,t,",",0,700,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1022,_float8,11,10,-1,f,b,t,",",0,701,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1023,_abstime,11,10,-1,f,b,t,",",0,702,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1024,_reltime,11,10,-1,f,b,t,",",0,703,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1025,_tinterval,11,10,-1,f,b,t,",",0,704,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1027,_polygon,11,10,-1,f,b,t,",",0,604,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1033,aclitem,11,10,12,f,b,t,",",0,0,aclitemin,aclitemout,-,-,-,i,p,f,0,-1,0,,
+1034,_aclitem,11,10,-1,f,b,t,",",0,1033,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1040,_macaddr,11,10,-1,f,b,t,",",0,829,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1041,_inet,11,10,-1,f,b,t,",",0,869,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+651,_cidr,11,10,-1,f,b,t,",",0,650,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1042,bpchar,11,10,-1,f,b,t,",",0,0,bpcharin,bpcharout,bpcharrecv,bpcharsend,-,i,x,f,0,-1,0,,
+1043,varchar,11,10,-1,f,b,t,",",0,0,varcharin,varcharout,varcharrecv,varcharsend,-,i,x,f,0,-1,0,,
+1082,date,11,10,4,t,b,t,",",0,0,date_in,date_out,date_recv,date_send,-,i,p,f,0,-1,0,,
+1083,time,11,10,8,t,b,t,",",0,0,time_in,time_out,time_recv,time_send,-,d,p,f,0,-1,0,,
+1114,timestamp,11,10,8,t,b,t,",",0,0,timestamp_in,timestamp_out,timestamp_recv,timestamp_send,-,d,p,f,0,-1,0,,
+1115,_timestamp,11,10,-1,f,b,t,",",0,1114,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1182,_date,11,10,-1,f,b,t,",",0,1082,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1183,_time,11,10,-1,f,b,t,",",0,1083,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1184,timestamptz,11,10,8,t,b,t,",",0,0,timestamptz_in,timestamptz_out,timestamptz_recv,timestamptz_send,-,d,p,f,0,-1,0,,
+1185,_timestamptz,11,10,-1,f,b,t,",",0,1184,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1186,interval,11,10,16,f,b,t,",",0,0,interval_in,interval_out,interval_recv,interval_send,-,d,p,f,0,-1,0,,
+1187,_interval,11,10,-1,f,b,t,",",0,1186,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1231,_numeric,11,10,-1,f,b,t,",",0,1700,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1266,timetz,11,10,12,f,b,t,",",0,0,timetz_in,timetz_out,timetz_recv,timetz_send,-,d,p,f,0,-1,0,,
+1270,_timetz,11,10,-1,f,b,t,",",0,1266,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1560,bit,11,10,-1,f,b,t,",",0,0,bit_in,bit_out,bit_recv,bit_send,-,i,x,f,0,-1,0,,
+1561,_bit,11,10,-1,f,b,t,",",0,1560,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1562,varbit,11,10,-1,f,b,t,",",0,0,varbit_in,varbit_out,varbit_recv,varbit_send,-,i,x,f,0,-1,0,,
+1563,_varbit,11,10,-1,f,b,t,",",0,1562,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1700,numeric,11,10,-1,f,b,t,",",0,0,numeric_in,numeric_out,numeric_recv,numeric_send,-,i,m,f,0,-1,0,,
+1790,refcursor,11,10,-1,f,b,t,",",0,0,textin,textout,textrecv,textsend,-,i,x,f,0,-1,0,,
+2201,_refcursor,11,10,-1,f,b,t,",",0,1790,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2202,regprocedure,11,10,4,t,b,t,",",0,0,regprocedurein,regprocedureout,regprocedurerecv,regproceduresend,-,i,p,f,0,-1,0,,
+2203,regoper,11,10,4,t,b,t,",",0,0,regoperin,regoperout,regoperrecv,regopersend,-,i,p,f,0,-1,0,,
+2204,regoperator,11,10,4,t,b,t,",",0,0,regoperatorin,regoperatorout,regoperatorrecv,regoperatorsend,-,i,p,f,0,-1,0,,
+2205,regclass,11,10,4,t,b,t,",",0,0,regclassin,regclassout,regclassrecv,regclasssend,-,i,p,f,0,-1,0,,
+2206,regtype,11,10,4,t,b,t,",",0,0,regtypein,regtypeout,regtyperecv,regtypesend,-,i,p,f,0,-1,0,,
+2207,_regprocedure,11,10,-1,f,b,t,",",0,2202,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2208,_regoper,11,10,-1,f,b,t,",",0,2203,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2209,_regoperator,11,10,-1,f,b,t,",",0,2204,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2210,_regclass,11,10,-1,f,b,t,",",0,2205,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2211,_regtype,11,10,-1,f,b,t,",",0,2206,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+3251,nb_classification,11,10,-1,f,c,t,",",3250,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+2249,record,11,10,-1,f,p,t,",",0,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+2275,cstring,11,10,-2,f,p,t,",",0,0,cstring_in,cstring_out,cstring_recv,cstring_send,-,c,p,f,0,-1,0,,
+2276,any,11,10,4,t,p,t,",",0,0,any_in,any_out,-,-,-,i,p,f,0,-1,0,,
+2277,anyarray,11,10,-1,f,p,t,",",0,0,anyarray_in,anyarray_out,anyarray_recv,anyarray_send,-,d,x,f,0,-1,0,,
+2278,void,11,10,4,t,p,t,",",0,0,void_in,void_out,-,-,-,i,p,f,0,-1,0,,
+2279,trigger,11,10,4,t,p,t,",",0,0,trigger_in,trigger_out,-,-,-,i,p,f,0,-1,0,,
+2280,language_handler,11,10,4,t,p,t,",",0,0,language_handler_in,language_handler_out,-,-,-,i,p,f,0,-1,0,,
+2281,internal,11,10,4,t,p,t,",",0,0,internal_in,internal_out,-,-,-,i,p,f,0,-1,0,,
+2282,opaque,11,10,4,t,p,t,",",0,0,opaque_in,opaque_out,-,-,-,i,p,f,0,-1,0,,
+2283,anyelement,11,10,4,t,p,t,",",0,0,anyelement_in,anyelement_out,-,-,-,i,p,f,0,-1,0,,
+6433,gp_interfaces,11,10,-1,f,c,t,",",5030,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+6434,gp_configuration_history,11,10,-1,f,c,t,",",5006,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+6436,gp_db_interfaces,11,10,-1,f,c,t,",",5029,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+6437,pg_appendonly_alter_column,11,10,-1,f,c,t,",",6110,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10000,pg_autovacuum,11,10,-1,f,c,t,",",1248,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10001,pg_attrdef,11,10,-1,f,c,t,",",2604,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10002,pg_constraint,11,10,-1,f,c,t,",",2606,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10003,pg_inherits,11,10,-1,f,c,t,",",2611,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10004,pg_index,11,10,-1,f,c,t,",",2610,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10005,pg_operator,11,10,-1,f,c,t,",",2617,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10006,pg_opclass,11,10,-1,f,c,t,",",2616,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10007,pg_am,11,10,-1,f,c,t,",",2601,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10008,pg_amop,11,10,-1,f,c,t,",",2602,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10009,pg_amproc,11,10,-1,f,c,t,",",2603,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10010,pg_language,11,10,-1,f,c,t,",",2612,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10011,pg_largeobject,11,10,-1,f,c,t,",",2613,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10012,pg_aggregate,11,10,-1,f,c,t,",",2600,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10013,pg_statistic,11,10,-1,f,c,t,",",2619,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10014,pg_rewrite,11,10,-1,f,c,t,",",2618,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10015,pg_trigger,11,10,-1,f,c,t,",",2620,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10016,pg_listener,11,10,-1,f,c,t,",",2614,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10017,pg_description,11,10,-1,f,c,t,",",2609,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10018,pg_cast,11,10,-1,f,c,t,",",2605,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10276,pg_namespace,11,10,-1,f,c,t,",",2615,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10277,pg_conversion,11,10,-1,f,c,t,",",2607,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10278,pg_depend,11,10,-1,f,c,t,",",2608,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10279,pg_database,11,10,-1,f,c,t,",",1262,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10280,pg_tablespace,11,10,-1,f,c,t,",",1213,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10281,pg_pltemplate,11,10,-1,f,c,t,",",1136,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10282,pg_authid,11,10,-1,f,c,t,",",1260,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10283,pg_auth_members,11,10,-1,f,c,t,",",1261,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10284,pg_shdepend,11,10,-1,f,c,t,",",1214,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10285,pg_shdescription,11,10,-1,f,c,t,",",2396,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10286,pg_resqueue,11,10,-1,f,c,t,",",6026,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10287,gp_configuration,11,10,-1,f,c,t,",",5000,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10288,gp_id,11,10,-1,f,c,t,",",5001,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10289,gp_distribution_policy,11,10,-1,f,c,t,",",5002,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10290,gp_version_at_initdb,11,10,-1,f,c,t,",",5003,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10291,pg_window,11,10,-1,f,c,t,",",5004,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10292,pg_exttable,11,10,-1,f,c,t,",",6040,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10293,pg_appendonly,11,10,-1,f,c,t,",",6105,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10294,gp_master_mirroring,11,10,-1,f,c,t,",",5008,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10295,pg_partition,11,10,-1,f,c,t,",",5010,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10296,pg_partition_rule,11,10,-1,f,c,t,",",5011,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10297,pg_toast_2604,99,10,-1,f,c,t,",",2830,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10298,pg_toast_2606,99,10,-1,f,c,t,",",2832,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10299,pg_toast_2609,99,10,-1,f,c,t,",",2834,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10300,pg_toast_1255,99,10,-1,f,c,t,",",2836,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10301,pg_toast_2618,99,10,-1,f,c,t,",",2838,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10302,pg_toast_2619,99,10,-1,f,c,t,",",2840,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10303,pg_toast_1260,99,10,-1,f,c,t,",",2842,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10304,pg_toast_1262,99,10,-1,f,c,t,",",2844,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10305,pg_toast_2396,99,10,-1,f,c,t,",",2846,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10310,pg_roles,11,10,-1,f,c,t,",",10309,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10313,pg_shadow,11,10,-1,f,c,t,",",10312,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10316,pg_group,11,10,-1,f,c,t,",",10315,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10319,pg_user,11,10,-1,f,c,t,",",10318,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10322,pg_rules,11,10,-1,f,c,t,",",10321,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10325,pg_views,11,10,-1,f,c,t,",",10324,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10328,pg_tables,11,10,-1,f,c,t,",",10327,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10331,pg_indexes,11,10,-1,f,c,t,",",10330,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10334,pg_stats,11,10,-1,f,c,t,",",10333,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10337,pg_locks,11,10,-1,f,c,t,",",10336,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10340,pg_cursors,11,10,-1,f,c,t,",",10339,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10343,pg_prepared_xacts,11,10,-1,f,c,t,",",10342,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10346,pg_prepared_statements,11,10,-1,f,c,t,",",10345,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10349,pg_settings,11,10,-1,f,c,t,",",10348,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10354,pg_timezone_abbrevs,11,10,-1,f,c,t,",",10353,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10357,pg_timezone_names,11,10,-1,f,c,t,",",10356,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10360,pg_stat_all_tables,11,10,-1,f,c,t,",",10359,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10363,pg_stat_sys_tables,11,10,-1,f,c,t,",",10362,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10366,pg_stat_user_tables,11,10,-1,f,c,t,",",10365,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10369,pg_statio_all_tables,11,10,-1,f,c,t,",",10368,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10372,pg_statio_sys_tables,11,10,-1,f,c,t,",",10371,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10375,pg_statio_user_tables,11,10,-1,f,c,t,",",10374,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10378,pg_stat_all_indexes,11,10,-1,f,c,t,",",10377,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10381,pg_stat_sys_indexes,11,10,-1,f,c,t,",",10380,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10384,pg_stat_user_indexes,11,10,-1,f,c,t,",",10383,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10387,pg_statio_all_indexes,11,10,-1,f,c,t,",",10386,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10390,pg_statio_sys_indexes,11,10,-1,f,c,t,",",10389,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10393,pg_statio_user_indexes,11,10,-1,f,c,t,",",10392,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10396,pg_statio_all_sequences,11,10,-1,f,c,t,",",10395,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10399,pg_statio_sys_sequences,11,10,-1,f,c,t,",",10398,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10402,pg_statio_user_sequences,11,10,-1,f,c,t,",",10401,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10405,pg_stat_activity,11,10,-1,f,c,t,",",10404,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10408,pg_stat_database,11,10,-1,f,c,t,",",10407,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10411,pg_stat_resqueues,11,10,-1,f,c,t,",",10410,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10414,pg_resqueue_status,11,10,-1,f,c,t,",",10413,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10417,pg_max_external_files,11,10,-1,f,c,t,",",10416,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10420,pg_partitions,11,10,-1,f,c,t,",",10419,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10423,pg_partition_columns,11,10,-1,f,c,t,",",10422,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10426,pg_partition_templates,11,10,-1,f,c,t,",",10425,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10673,cardinal_number,10659,10,4,t,d,t,",",0,0,domain_in,int4out,domain_recv,int4send,-,i,p,f,23,-1,0,,
+10675,character_data,10659,10,-1,f,d,t,",",0,0,domain_in,varcharout,domain_recv,varcharsend,-,i,x,f,1043,-1,0,,
+10676,sql_identifier,10659,10,-1,f,d,t,",",0,0,domain_in,varcharout,domain_recv,varcharsend,-,i,x,f,1043,-1,0,,
+10678,information_schema_catalog_name,10659,10,-1,f,c,t,",",10677,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10680,time_stamp,10659,10,8,t,d,t,",",0,0,domain_in,timestamptz_out,domain_recv,timestamptz_send,-,d,p,f,1184,2,0,{FUNCEXPR :funcid 1967 :funcresulttype 1184 :funcretset false :funcformat 1 :args ({FUNCEXPR :funcid 1191 :funcresulttype 1184 :funcretset false :funcformat 2 :args ({CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 7 [ 0 0 0 7 110 111 119 ]})} {CONST :consttype 23 :constlen 4 :constbyval true :constisnull false :constvalue 4 [ 2 0 0 0 0 0 0 0 ]})},('now'::text)::timestamp(2) with time zone
+10682,applicable_roles,10659,10,-1,f,c,t,",",10681,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10685,administrable_role_authorizations,10659,10,-1,f,c,t,",",10684,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10688,attributes,10659,10,-1,f,c,t,",",10687,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10691,check_constraint_routine_usage,10659,10,-1,f,c,t,",",10690,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10694,check_constraints,10659,10,-1,f,c,t,",",10693,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10697,column_domain_usage,10659,10,-1,f,c,t,",",10696,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10700,column_privileges,10659,10,-1,f,c,t,",",10699,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10703,column_udt_usage,10659,10,-1,f,c,t,",",10702,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10706,columns,10659,10,-1,f,c,t,",",10705,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10709,constraint_column_usage,10659,10,-1,f,c,t,",",10708,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10712,constraint_table_usage,10659,10,-1,f,c,t,",",10711,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10715,domain_constraints,10659,10,-1,f,c,t,",",10714,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10718,domain_udt_usage,10659,10,-1,f,c,t,",",10717,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10721,domains,10659,10,-1,f,c,t,",",10720,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10724,enabled_roles,10659,10,-1,f,c,t,",",10723,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10727,key_column_usage,10659,10,-1,f,c,t,",",10726,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10730,parameters,10659,10,-1,f,c,t,",",10729,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10733,referential_constraints,10659,10,-1,f,c,t,",",10732,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10736,role_column_grants,10659,10,-1,f,c,t,",",10735,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10739,role_routine_grants,10659,10,-1,f,c,t,",",10738,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10742,role_table_grants,10659,10,-1,f,c,t,",",10741,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10745,role_usage_grants,10659,10,-1,f,c,t,",",10744,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10748,routine_privileges,10659,10,-1,f,c,t,",",10747,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10751,routines,10659,10,-1,f,c,t,",",10750,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10754,schemata,10659,10,-1,f,c,t,",",10753,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10757,sequences,10659,10,-1,f,c,t,",",10756,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10760,sql_features,10659,10,-1,f,c,t,",",10759,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10762,pg_toast_10759,99,10,-1,f,c,t,",",10761,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10765,sql_implementation_info,10659,10,-1,f,c,t,",",10764,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10767,pg_toast_10764,99,10,-1,f,c,t,",",10766,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10770,sql_languages,10659,10,-1,f,c,t,",",10769,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10772,pg_toast_10769,99,10,-1,f,c,t,",",10771,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10775,sql_packages,10659,10,-1,f,c,t,",",10774,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10777,pg_toast_10774,99,10,-1,f,c,t,",",10776,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10780,sql_parts,10659,10,-1,f,c,t,",",10779,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10782,pg_toast_10779,99,10,-1,f,c,t,",",10781,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10785,sql_sizing,10659,10,-1,f,c,t,",",10784,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10787,pg_toast_10784,99,10,-1,f,c,t,",",10786,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10790,sql_sizing_profiles,10659,10,-1,f,c,t,",",10789,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10792,pg_toast_10789,99,10,-1,f,c,t,",",10791,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10795,table_constraints,10659,10,-1,f,c,t,",",10794,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10798,table_privileges,10659,10,-1,f,c,t,",",10797,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10801,tables,10659,10,-1,f,c,t,",",10800,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10804,triggered_update_columns,10659,10,-1,f,c,t,",",10803,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10807,triggers,10659,10,-1,f,c,t,",",10806,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10810,usage_privileges,10659,10,-1,f,c,t,",",10809,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10813,view_column_usage,10659,10,-1,f,c,t,",",10812,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10816,view_routine_usage,10659,10,-1,f,c,t,",",10815,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10819,view_table_usage,10659,10,-1,f,c,t,",",10818,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10822,views,10659,10,-1,f,c,t,",",10821,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10825,data_type_privileges,10659,10,-1,f,c,t,",",10824,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10828,element_types,10659,10,-1,f,c,t,",",10827,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10831,gp_pgdatabase,11,10,-1,f,c,t,",",10830,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10834,gp_distributed_xacts,11,10,-1,f,c,t,",",10833,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10837,gp_transaction_log,11,10,-1,f,c,t,",",10836,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10840,gp_distributed_log,11,10,-1,f,c,t,",",10839,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_attribute_toadd33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_attribute_toadd33.data.in b/src/test/regress/data/upgrade34/upg2_pg_attribute_toadd33.data.in
new file mode 100644
index 0000000..6c287ab
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_attribute_toadd33.data.in
@@ -0,0 +1,340 @@
+attrelid|attname|atttypid|attstattarget|attlen|attnum|attndims|attcacheoff|atttypmod|attbyval|attstorage|attalign|attnotnull|atthasdef|attisdropped|attislocal|attinhcount
+2858|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2859|fsname|19|-1|64|1|0|-1|-1|f|p|i|f|f|f|t|0
+2879|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2879|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2879|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2879|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2879|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2879|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2879|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2879|reloid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+2879|server|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+2879|tbloptions|1009|-1|-1|3|1|-1|-1|f|x|i|f|f|f|t|0
+2893|fsefsoid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2894|fsefsoid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2894|fsedbid|21|-1|2|2|0|-1|-1|t|p|s|f|f|f|t|0
+2895|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2895|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2895|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2895|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2895|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2895|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2895|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+2895|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2895|umuser|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+2895|umserver|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+2895|umoptions|1009|-1|-1|3|1|-1|-1|f|x|i|f|f|f|t|0
+2898|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2898|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2898|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2898|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2898|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2898|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2898|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+2898|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2898|fdwname|19|-1|64|1|0|-1|-1|f|p|i|t|f|f|t|0
+2898|fdwowner|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+2898|fdwvalidator|26|-1|4|3|0|-1|-1|t|p|i|t|f|f|t|0
+2898|fdwacl|1034|-1|-1|4|1|-1|-1|f|x|i|f|f|f|t|0
+2898|fdwoptions|1009|-1|-1|5|1|-1|-1|f|x|i|f|f|f|t|0
+2899|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2899|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2899|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2899|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2899|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2899|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2899|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+2899|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2899|srvname|19|-1|64|1|0|-1|-1|f|p|i|t|f|f|t|0
+2899|srvowner|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+2899|srvfdw|26|-1|4|3|0|-1|-1|t|p|i|t|f|f|t|0
+2899|srvtype|25|-1|-1|4|0|-1|-1|f|x|i|f|f|f|t|0
+2899|srvversion|25|-1|-1|5|0|-1|-1|f|x|i|f|f|f|t|0
+2899|srvacl|1034|-1|-1|6|1|-1|-1|f|x|i|f|f|f|t|0
+2899|srvoptions|1009|-1|-1|7|1|-1|-1|f|x|i|f|f|f|t|0
+2900|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2900|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2900|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2900|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2900|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2900|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2900|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2900|chunk_id|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2900|chunk_seq|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+2900|chunk_data|17|-1|-1|3|0|-1|-1|f|p|i|f|f|f|t|0
+2901|chunk_id|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2901|chunk_seq|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+2902|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+2902|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+2902|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+2902|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+2902|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+2902|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+2902|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+2902|chunk_id|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2902|chunk_seq|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+2902|chunk_data|17|-1|-1|3|0|-1|-1|f|p|i|f|f|f|t|0
+2903|chunk_id|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+2903|chunk_seq|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+3049|reloid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+3306|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+3307|fdwname|19|-1|64|1|0|-1|-1|f|p|i|f|f|f|t|0
+3308|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+3309|srvname|19|-1|64|1|0|-1|-1|f|p|i|f|f|f|t|0
+3316|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+3317|umuser|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+3317|umserver|26|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+5009|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5009|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5009|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5009|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5009|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5009|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5009|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+5009|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5009|fsname|19|-1|64|1|0|-1|-1|f|p|i|t|f|f|t|0
+5009|fsowner|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+5033|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5033|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5033|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5033|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5033|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5033|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5033|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5033|fsefsoid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5033|fsedbid|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+5033|fselocation|25|-1|-1|3|0|-1|-1|f|x|i|f|f|f|t|0
+5035|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5035|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5035|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5035|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5035|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5035|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5035|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5035|mountid|21|-1|2|1|0|-1|-1|t|p|s|t|f|f|t|0
+5035|active_host|18|-1|1|2|0|-1|-1|t|p|c|t|f|f|t|0
+5035|san_type|18|-1|1|3|0|-1|-1|t|p|c|t|f|f|t|0
+5035|primary_host|25|-1|-1|4|0|-1|-1|f|x|i|f|f|f|t|0
+5035|primary_mountpoint|25|-1|-1|5|0|-1|-1|f|x|i|f|f|f|t|0
+5035|primary_device|25|-1|-1|6|0|-1|-1|f|x|i|f|f|f|t|0
+5035|mirror_host|25|-1|-1|7|0|-1|-1|f|x|i|f|f|f|t|0
+5035|mirror_mountpoint|25|-1|-1|8|0|-1|-1|f|x|i|f|f|f|t|0
+5035|mirror_device|25|-1|-1|9|0|-1|-1|f|x|i|f|f|f|t|0
+5036|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5036|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5036|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5036|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5036|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5036|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5036|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5036|dbid|21|-1|2|1|0|-1|-1|t|p|s|t|f|f|t|0
+5036|content|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+5036|role|18|-1|1|3|0|-1|-1|t|p|c|t|f|f|t|0
+5036|preferred_role|18|-1|1|4|0|-1|-1|t|p|c|t|f|f|t|0
+5036|mode|18|-1|1|5|0|-1|-1|t|p|c|t|f|f|t|0
+5036|status|18|-1|1|6|0|-1|-1|t|p|c|t|f|f|t|0
+5036|port|23|-1|4|7|0|-1|-1|t|p|i|t|f|f|t|0
+5036|hostname|25|-1|-1|8|0|-1|-1|f|x|i|f|f|f|t|0
+5036|address|25|-1|-1|9|0|-1|-1|f|x|i|f|f|f|t|0
+5036|replication_port|23|-1|4|10|0|-1|-1|t|p|i|f|f|f|t|0
+5036|san_mounts|22|-1|-1|11|1|-1|-1|f|p|i|f|f|f|t|0
+5039|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5039|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5039|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5039|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5039|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5039|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5039|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5039|fault_strategy|18|-1|1|1|0|-1|-1|t|p|c|t|f|f|t|0
+5043|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5043|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5043|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5043|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5043|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5043|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5043|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5043|objid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5043|objmod|20|-1|8|2|0|-1|-1|t|p|d|t|f|f|t|0
+5043|last_sequence|20|-1|8|3|0|-1|-1|t|p|d|t|f|f|t|0
+5090|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5090|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5090|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5090|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5090|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5090|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5090|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5090|tablespace_oid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5090|database_oid|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+5090|relfilenode_oid|26|-1|4|3|0|-1|-1|t|p|i|t|f|f|t|0
+5090|segment_file_num|23|-1|4|4|0|-1|-1|t|p|i|t|f|f|t|0
+5090|relation_storage_manager|21|-1|2|5|0|-1|-1|t|p|s|t|f|f|t|0
+5090|persistent_state|21|-1|2|6|0|-1|-1|t|p|s|t|f|f|t|0
+5090|create_mirror_data_loss_tracking_session_num|20|-1|8|7|0|-1|-1|t|p|d|t|f|f|t|0
+5090|mirror_existence_state|21|-1|2|8|0|-1|-1|t|p|s|t|f|f|t|0
+5090|mirror_data_synchronization_state|21|-1|2|9|0|-1|-1|t|p|s|t|f|f|t|0
+5090|mirror_bufpool_marked_for_scan_incremental_resync|16|-1|1|10|0|-1|-1|t|p|c|t|f|f|t|0
+5090|mirror_bufpool_resync_changed_page_count|20|-1|8|11|0|-1|-1|t|p|d|t|f|f|t|0
+5090|mirror_bufpool_resync_ckpt_loc|3310|-1|8|12|0|-1|-1|f|p|i|t|f|f|t|0
+5090|mirror_bufpool_resync_ckpt_block_num|23|-1|4|13|0|-1|-1|t|p|i|t|f|f|t|0
+5090|mirror_append_only_loss_eof|20|-1|8|14|0|-1|-1|t|p|d|t|f|f|t|0
+5090|mirror_append_only_new_eof|20|-1|8|15|0|-1|-1|t|p|d|t|f|f|t|0
+5090|reserved|23|-1|4|16|0|-1|-1|t|p|i|t|f|f|t|0
+5090|parent_xid|23|-1|4|17|0|-1|-1|t|p|i|t|f|f|t|0
+5090|persistent_serial_num|20|-1|8|18|0|-1|-1|t|p|d|t|f|f|t|0
+5090|previous_free_tid|27|-1|6|19|0|-1|-1|f|p|s|t|f|f|t|0
+5091|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5091|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5091|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5091|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5091|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5091|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5091|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5091|tablespace_oid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5091|database_oid|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+5091|persistent_state|21|-1|2|3|0|-1|-1|t|p|s|t|f|f|t|0
+5091|create_mirror_data_loss_tracking_session_num|20|-1|8|4|0|-1|-1|t|p|d|t|f|f|t|0
+5091|mirror_existence_state|21|-1|2|5|0|-1|-1|t|p|s|t|f|f|t|0
+5091|reserved|23|-1|4|6|0|-1|-1|t|p|i|t|f|f|t|0
+5091|parent_xid|23|-1|4|7|0|-1|-1|t|p|i|t|f|f|t|0
+5091|persistent_serial_num|20|-1|8|8|0|-1|-1|t|p|d|t|f|f|t|0
+5091|previous_free_tid|27|-1|6|9|0|-1|-1|f|p|s|t|f|f|t|0
+5092|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5092|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5092|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5092|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5092|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5092|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5092|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5092|filespace_oid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5092|tablespace_oid|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+5092|persistent_state|21|-1|2|3|0|-1|-1|t|p|s|t|f|f|t|0
+5092|create_mirror_data_loss_tracking_session_num|20|-1|8|4|0|-1|-1|t|p|d|t|f|f|t|0
+5092|mirror_existence_state|21|-1|2|5|0|-1|-1|t|p|s|t|f|f|t|0
+5092|reserved|23|-1|4|6|0|-1|-1|t|p|i|t|f|f|t|0
+5092|parent_xid|23|-1|4|7|0|-1|-1|t|p|i|t|f|f|t|0
+5092|persistent_serial_num|20|-1|8|8|0|-1|-1|t|p|d|t|f|f|t|0
+5092|previous_free_tid|27|-1|6|9|0|-1|-1|f|p|s|t|f|f|t|0
+5093|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5093|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5093|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5093|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5093|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5093|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5093|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5093|filespace_oid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5093|db_id_1|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+5093|location_1|25|-1|-1|3|0|-1|-1|f|x|i|f|f|f|t|0
+5093|db_id_2|21|-1|2|4|0|-1|-1|t|p|s|f|f|f|t|0
+5093|location_2|25|-1|-1|5|0|-1|-1|f|x|i|f|f|f|t|0
+5093|persistent_state|21|-1|2|6|0|-1|-1|t|p|s|f|f|f|t|0
+5093|create_mirror_data_loss_tracking_session_num|20|-1|8|7|0|-1|-1|t|p|d|f|f|f|t|0
+5093|mirror_existence_state|21|-1|2|8|0|-1|-1|t|p|s|f|f|f|t|0
+5093|reserved|23|-1|4|9|0|-1|-1|t|p|i|f|f|f|t|0
+5093|parent_xid|23|-1|4|10|0|-1|-1|t|p|i|f|f|f|t|0
+5093|persistent_serial_num|20|-1|8|11|0|-1|-1|t|p|d|f|f|f|t|0
+5093|previous_free_tid|27|-1|6|12|0|-1|-1|f|p|s|f|f|f|t|0
+5094|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5094|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5094|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5094|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5094|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5094|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5094|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5094|relfilenode_oid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+5094|segment_file_num|23|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+5094|create_mirror_data_loss_tracking_session_num|20|-1|8|3|0|-1|-1|t|p|d|t|f|f|t|0
+5094|persistent_tid|27|-1|6|4|0|-1|-1|f|p|s|t|f|f|t|0
+5094|persistent_serial_num|20|-1|8|5|0|-1|-1|t|p|d|t|f|f|t|0
+5096|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5096|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5096|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5096|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5096|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5096|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5096|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5096|sequence_num|20|-1|8|1|0|-1|-1|t|p|d|t|f|f|t|0
+6052|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6052|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+6052|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+6052|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+6052|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+6052|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+6052|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+6052|classid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+6052|objid|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+6052|staactionname|19|-1|64|3|0|-1|-1|f|p|i|t|f|f|t|0
+6052|stasysid|26|-1|4|4|0|-1|-1|t|p|i|t|f|f|t|0
+6052|stausename|19|-1|64|5|0|-1|-1|f|p|i|t|f|f|t|0
+6052|stasubtype|25|-1|-1|6|0|-1|-1|f|x|i|f|f|f|t|0
+6052|statime|1184|-1|8|7|0|-1|-1|t|p|d|f|f|f|t|0
+6053|classid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6053|objid|26|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+6054|classid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6054|objid|26|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+6054|staactionname|19|-1|64|3|0|-1|-1|f|p|i|f|f|f|t|0
+5095|relfilenode_oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+5095|segment_file_num|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+6056|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6056|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+6056|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+6056|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+6056|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+6056|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+6056|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+6056|classid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+6056|objid|26|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+6056|staactionname|19|-1|64|3|0|-1|-1|f|p|i|t|f|f|t|0
+6056|stasysid|26|-1|4|4|0|-1|-1|t|p|i|t|f|f|t|0
+6056|stausename|19|-1|64|5|0|-1|-1|f|p|i|t|f|f|t|0
+6056|stasubtype|25|-1|-1|6|0|-1|-1|f|x|i|f|f|f|t|0
+6056|statime|1184|-1|8|7|0|-1|-1|t|p|d|f|f|f|t|0
+6057|classid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6057|objid|26|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+6058|classid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6058|objid|26|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0
+6058|staactionname|19|-1|64|3|0|-1|-1|f|p|i|f|f|f|t|0
+6059|resname|19|-1|64|1|0|-1|-1|f|p|i|t|f|f|t|0
+6059|restypid|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+6059|resrequired|16|-1|1|3|0|-1|-1|t|p|c|t|f|f|t|0
+6059|reshasdefault|16|-1|1|4|0|-1|-1|t|p|c|t|f|f|t|0
+6059|reshasdisable|16|-1|1|5|0|-1|-1|t|p|c|t|f|f|t|0
+6059|resdefaultsetting|25|-1|-1|6|0|-1|-1|f|x|i|f|f|f|t|0
+6059|resdisabledsetting|25|-1|-1|7|0|-1|-1|f|x|i|f|f|f|t|0
+6059|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+6059|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+6059|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+6059|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+6059|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+6059|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+6059|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+6059|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6060|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6060|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+6060|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+6060|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+6060|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+6060|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+6060|oid|26|0|4|-2|0|-1|-1|t|p|i|t|f|f|t|0
+6060|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+6060|resqueueid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+6060|restypid|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+6060|ressetting|25|-1|-1|3|0|-1|-1|f|x|i|f|f|f|t|0
+6061|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6062|restypid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6063|resname|19|-1|64|1|0|-1|-1|f|p|i|f|f|f|t|0
+6064|oid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6065|resqueueid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6066|restypid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6040|writable|16|-1|1|10|0|-1|-1|t|p|c|f|f|f|t|0
+6067|objid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+6067|objmod|20|-1|8|2|0|-1|-1|t|p|d|f|f|f|t|0
+6106|content|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6106|preferred_role|18|-1|1|2|0|-1|-1|t|p|c|f|f|f|t|0
+6107|dbid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6111|mountid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+1260|rolcreaterextgpfd|16|-1|1|13|0|-1|-1|t|p|c|f|f|f|t|0
+1260|rolcreaterexthttp|16|-1|1|14|0|-1|-1|t|p|c|f|f|f|t|0
+1260|rolcreatewextgpfd|16|-1|1|15|0|-1|-1|t|p|c|f|f|f|t|0
+5011|partemplatespace|26|-1|4|14|0|-1|-1|t|p|i|f|f|f|t|0
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_class_toadd33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_class_toadd33.data.in b/src/test/regress/data/upgrade34/upg2_pg_class_toadd33.data.in
new file mode 100644
index 0000000..d4d2b10
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_class_toadd33.data.in
@@ -0,0 +1,52 @@
+relname|relnamespace|reltype|relowner|relam|relfilenode|reltablespace|relpages|reltuples|reltoastrelid|reltoastidxid|relaosegrelid|relaosegidxid|relhasindex|relisshared|relkind|relstorage|relnatts|relchecks|reltriggers|relukeys|relfkeys|relrefs|relhasoids|relhaspkey|relhasrules|relhassubclass|relfrozenxid|relacl|reloptions
+2858|pg_filespace_oid_index|11|0|10|403|2858|1664|2|1|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+2859|pg_filespace_fsname_index|11|0|10|403|2859|1664|2|1|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+2879|pg_foreign_table|11|6452|10|0|2879|0|1|0|0|0|0|0|t|f|r|h|3|0|0|0|0|0|f|f|f|f|923|{=r/@gpcurusername@}|\N
+2893|pg_filespace_entry_fs_index|11|0|10|403|2893|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+2894|pg_filespace_entry_fsdb_index|11|0|10|403|2894|1664|1|0|0|0|0|0|f|t|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+2895|pg_user_mapping|11|6449|10|0|2895|0|1|0|0|0|0|0|t|f|r|h|3|0|0|0|0|0|t|f|f|f|848|{@gpcurusername@=arwdxt/@gpcurusername@}|\N
+2898|pg_foreign_data_wrapper|11|6447|10|0|2898|0|1|0|0|0|0|0|t|f|r|h|5|0|0|0|0|0|t|f|f|f|896|{=r/@gpcurusername@}|\N
+2899|pg_foreign_server|11|6448|10|0|2899|0|1|0|0|0|0|0|t|f|r|h|7|0|0|0|0|0|t|f|f|f|897|{=r/@gpcurusername@}|\N
+2900|pg_toast_5036|99|2906|10|0|2900|1664|1|0|0|2901|0|0|t|t|t|h|3|0|0|0|0|0|f|f|f|f|926|\N|\N
+2901|pg_toast_5036_index|99|0|10|403|2901|1664|1|0|0|0|0|0|f|t|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+2902|pg_toast_5033|99|2907|10|0|2902|1664|1|0|0|2903|0|0|t|t|t|h|3|0|0|0|0|0|f|f|f|f|938|\N|\N
+2903|pg_toast_5033_index|99|0|10|403|2903|1664|1|0|0|0|0|0|f|t|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+3306|pg_foreign_data_wrapper_oid_index|11|0|10|403|3306|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3307|pg_foreign_data_wrapper_name_index|11|0|10|403|3307|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3308|pg_foreign_server_oid_index|11|0|10|403|3308|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3309|pg_foreign_server_name_index|11|0|10|403|3309|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3049|pg_foreign_table_reloid_index|11|0|10|403|3049|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3316|pg_user_mapping_oid_index|11|0|10|403|3316|0|1|0|0|0|0|0|f|f|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+3317|pg_user_mapping_user_server_index|11|0|10|403|3317|0|1|0|0|0|0|0|f|f|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+5009|pg_filespace|11|6438|10|0|5009|1664|1|1|0|0|0|0|t|t|r|h|2|0|0|0|0|0|t|f|f|f|937|{=r/@gpcurusername@}|\N
+5033|pg_filespace_entry|11|6439|10|0|5033|1664|1|0|2902|0|0|0|t|t|r|h|3|0|0|0|0|0|f|f|f|f|938|{=r/@gpcurusername@}|\N
+5035|gp_san_configuration|11|6444|10|0|5035|1664|1|0|0|0|0|0|t|t|r|h|9|0|0|0|0|0|f|f|f|f|900|{=r/@gpcurusername@}|\N
+5036|gp_segment_configuration|11|6442|10|0|5036|1664|1|0|2900|0|0|0|t|t|r|h|11|0|0|0|0|0|f|f|f|f|926|{=r/@gpcurusername@}|\N
+5039|gp_fault_strategy|11|6443|10|0|5039|1664|1|0|0|0|0|0|f|t|r|h|1|0|0|0|0|0|f|f|f|f|899|{=r/@gpcurusername@}|\N
+5043|gp_fastsequence|11|6453|10|0|5043|0|1|0|0|0|0|0|t|f|r|h|3|0|0|0|0|0|f|f|f|f|918|{=r/@gpcurusername@}|\N
+5090|gp_persistent_relation_node|11|6990|10|0|5090|1664|1|216|0|0|0|0|f|t|r|h|19|0|0|0|0|0|f|f|f|f|940|{=r/@gpcurusername@}|\N
+5091|gp_persistent_database_node|11|6991|10|0|5091|1664|1|2|0|0|0|0|f|t|r|h|9|0|0|0|0|0|f|f|f|f|942|{=r/@gpcurusername@}|\N
+5092|gp_persistent_tablespace_node|11|6992|10|0|5092|1664|1|2|0|0|0|0|f|t|r|h|9|0|0|0|0|0|f|f|f|f|943|{=r/@gpcurusername@}|\N
+5093|gp_persistent_filespace_node|11|6993|10|0|5093|1664|1|0|0|0|0|0|f|t|r|h|12|0|0|0|0|0|f|f|f|f|944|{=r/@gpcurusername@}|\N
+5094|gp_relation_node|11|6994|10|0|5094|0|1|216|0|0|0|0|t|f|r|h|5|0|0|0|0|0|f|f|f|f|941|{=r/@gpcurusername@}|\N
+5095|gp_relation_node_index|11|0|10|403|5095|0|2|216|0|0|0|0|f|f|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+5096|gp_global_sequence|11|6995|10|0|5096|1664|1|15|0|0|0|0|f|t|r|h|1|0|0|0|0|0|f|f|f|f|939|{=r/@gpcurusername@}|\N
+6052|pg_stat_last_operation|11|6440|10|0|6052|0|1|99|0|0|0|0|t|f|r|h|7|0|0|0|0|0|f|f|f|f|878|{=r/@gpcurusername@}|\N
+6053|pg_statlastop_classid_objid_index|11|0|10|403|6053|0|2|89|0|0|0|0|f|f|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+6054|pg_statlastop_classid_objid_staactionname_index|11|0|10|403|6054|0|2|99|0|0|0|0|f|f|i|h|3|0|0|0|0|0|f|f|f|f|0|\N|\N
+6056|pg_stat_last_shoperation|11|6441|10|0|6056|1664|1|0|0|0|0|0|t|t|r|h|7|0|0|0|0|0|f|f|f|f|879|{=r/@gpcurusername@}|\N
+6057|pg_statlastshop_classid_objid_index|11|0|10|403|6057|1664|1|0|0|0|0|0|f|t|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+6058|pg_statlastshop_classid_objid_staactionname_index|11|0|10|403|6058|1664|1|0|0|0|0|0|f|t|i|h|3|0|0|0|0|0|f|f|f|f|0|\N|\N
+6059|pg_resourcetype|11|6445|10|0|6059|1664|1|5|0|0|0|0|t|t|r|h|7|0|0|0|0|0|t|f|f|f|911|{=r/@gpcurusername@}|\N
+6060|pg_resqueuecapability|11|6446|10|0|6060|1664|1|0|0|0|0|0|t|t|r|h|3|0|0|0|0|0|t|f|f|f|898|{=r/@gpcurusername@}|\N
+6061|pg_resourcetype_oid_index|11|0|10|403|6061|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6062|pg_resourcetype_restypid_index|11|0|10|403|6062|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6063|pg_resourcetype_resname_index|11|0|10|403|6063|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6064|pg_resqueuecapability_oid_index|11|0|10|403|6064|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6065|pg_resqueuecapability_resqueueid_index|11|0|10|403|6065|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6066|pg_resqueuecapability_restypid_index|11|0|10|403|6066|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6067|gp_fastsequence_objid_objmod_index|11|0|10|403|6067|0|1|0|0|0|0|0|f|f|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+6106|gp_segment_config_content_preferred_role_index|11|0|10|403|6106|1664|1|0|0|0|0|0|f|t|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N
+6107|gp_segment_config_dbid_index|11|0|10|403|6107|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6111|gp_san_config_mountid_index|11|0|10|403|6111|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_depend_toadd33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_depend_toadd33.data b/src/test/regress/data/upgrade34/upg2_pg_depend_toadd33.data
new file mode 100644
index 0000000..6ac690a
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_depend_toadd33.data
@@ -0,0 +1,169 @@
+classid|objid|objsubid|refclassid|refobjid|refobjsubid|deptype
+0|0|0|1259|2858|0|p
+0|0|0|1259|2859|0|p
+0|0|0|1259|2893|0|p
+0|0|0|1259|2894|0|p
+0|0|0|1247|3300|0|p
+0|0|0|1247|3301|0|p
+0|0|0|1255|3302|0|p
+0|0|0|1255|3303|0|p
+0|0|0|1255|3304|0|p
+0|0|0|1255|3305|0|p
+0|0|0|1247|3310|0|p
+0|0|0|1247|3311|0|p
+0|0|0|1255|3312|0|p
+0|0|0|1255|3313|0|p
+0|0|0|1255|3314|0|p
+0|0|0|1255|3315|0|p
+0|0|0|1255|5032|0|p
+0|0|0|1247|6438|0|p
+0|0|0|1247|6439|0|p
+0|0|0|1255|9900|0|p
+0|0|0|1255|9997|0|p
+0|0|0|1255|9998|0|p
+0|0|0|1259|6052|0|p
+0|0|0|1259|6053|0|p
+0|0|0|1259|6054|0|p
+0|0|0|1247|6440|0|p
+0|0|0|1259|2898|0|p
+0|0|0|1259|2899|0|p
+0|0|0|1259|2895|0|p
+0|0|0|1259|3306|0|p
+0|0|0|1259|3307|0|p
+0|0|0|1259|3308|0|p
+0|0|0|1259|3309|0|p
+0|0|0|1259|3316|0|p
+0|0|0|1259|3317|0|p
+0|0|0|1255|2896|0|p
+0|0|0|1255|3112|0|p
+0|0|0|1255|3113|0|p
+0|0|0|1255|3114|0|p
+0|0|0|1255|3115|0|p
+0|0|0|1255|3116|0|p
+0|0|0|1255|3117|0|p
+0|0|0|1255|3118|0|p
+0|0|0|1255|3119|0|p
+0|0|0|1255|3120|0|p
+0|0|0|1255|3121|0|p
+0|0|0|1255|3122|0|p
+0|0|0|1255|3123|0|p
+0|0|0|1255|2897|0|p
+0|0|0|1255|820|0|p
+0|0|0|1255|821|0|p
+0|0|0|1255|822|0|p
+0|0|0|1255|2878|0|p
+0|0|0|1255|2971|0|p
+0|0|0|1255|5034|0|p
+0|0|0|1255|5044|0|p
+0|0|0|1255|5045|0|p
+0|0|0|1247|6442|0|p
+0|0|0|1247|6443|0|p
+0|0|0|1247|6444|0|p
+0|0|0|1259|6106|0|p
+0|0|0|1259|6107|0|p
+0|0|0|1259|6111|0|p
+0|0|0|1259|6056|0|p
+0|0|0|1259|6057|0|p
+0|0|0|1259|6058|0|p
+0|0|0|1247|6441|0|p
+0|0|0|1259|6059|0|p
+0|0|0|1259|6061|0|p
+0|0|0|1259|6062|0|p
+0|0|0|1259|6063|0|p
+0|0|0|1259|6060|0|p
+0|0|0|1259|6064|0|p
+0|0|0|1259|6065|0|p
+0|0|0|1259|6066|0|p
+0|0|0|1247|6445|0|p
+0|0|0|1247|6446|0|p
+0|0|0|1247|6447|0|p
+0|0|0|1247|6448|0|p
+0|0|0|1247|6449|0|p
+0|0|0|1259|2879|0|p
+0|0|0|1259|3049|0|p
+0|0|0|1247|6452|0|p
+0|0|0|1255|5040|0|p
+0|0|0|1255|5041|0|p
+0|0|0|1255|5042|0|p
+0|0|0|1247|6453|0|p
+0|0|0|1259|6067|0|p
+0|0|0|1247|6991|0|p
+0|0|0|1247|6993|0|p
+0|0|0|1247|6990|0|p
+0|0|0|1259|5092|0|p
+0|0|0|1247|6992|0|p
+0|0|0|1259|5094|0|p
+0|0|0|1247|6994|0|p
+0|0|0|1259|5036|0|p
+0|0|0|1259|5033|0|p
+0|0|0|1259|5093|0|p
+0|0|0|1259|5091|0|p
+0|0|0|1259|5035|0|p
+0|0|0|1259|5043|0|p
+0|0|0|1259|5039|0|p
+0|0|0|1259|5096|0|p
+0|0|0|1247|6995|0|p
+0|0|0|1259|5090|0|p
+0|0|0|1259|5009|0|p
+0|0|0|1259|2900|0|p
+0|0|0|1259|2901|0|p
+0|0|0|1259|2902|0|p
+0|0|0|1259|2903|0|p
+0|0|0|1259|5095|0|p
+0|0|0|1255|7178|0|p
+0|0|0|1255|3318|0|p
+0|0|0|1255|3319|0|p
+0|0|0|1255|3320|0|p
+0|0|0|1255|3321|0|p
+0|0|0|1255|3322|0|p
+0|0|0|1255|3323|0|p
+0|0|0|1255|3324|0|p
+0|0|0|1255|3331|0|p
+0|0|0|1255|3332|0|p
+0|0|0|1255|3333|0|p
+0|0|0|1255|6435|0|p
+0|0|0|2617|3325|0|p
+0|0|0|2617|3326|0|p
+0|0|0|2617|3327|0|p
+0|0|0|2617|3328|0|p
+0|0|0|2617|3329|0|p
+0|0|0|2617|3330|0|p
+0|0|0|2616|2904|0|p
+0|0|0|1255|2905|0|p
+0|0|0|1247|2906|0|p
+0|0|0|1247|2907|0|p
+0|0|0|2605|9901|0|p
+0|0|0|2605|9902|0|p
+0|0|0|1255|5046|0|p
+0|0|0|1255|5047|0|p
+0|0|0|1255|5048|0|p
+0|0|0|1255|5049|0|p
+0|0|0|1255|5050|0|p
+0|0|0|1255|5051|0|p
+0|0|0|1255|5052|0|p
+0|0|0|1255|5053|0|p
+0|0|0|1255|5054|0|p
+0|0|0|1255|5055|0|p
+0|0|0|1255|5037|0|p
+0|0|0|2615|8001|0|p
+0|0|0|1255|5056|0|p
+0|0|0|1255|5057|0|p
+0|0|0|1255|5058|0|p
+0|0|0|1255|5059|0|p
+0|0|0|1255|5060|0|p
+0|0|0|1255|5061|0|p
+0|0|0|1255|5062|0|p
+0|0|0|1255|5063|0|p
+0|0|0|1255|5064|0|p
+0|0|0|1255|5065|0|p
+0|0|0|1255|5066|0|p
+0|0|0|1255|5067|0|p
+0|0|0|1255|5068|0|p
+0|0|0|1255|5069|0|p
+0|0|0|1255|5070|0|p
+0|0|0|1255|5071|0|p
+0|0|0|1255|5072|0|p
+0|0|0|1255|5073|0|p
+0|0|0|1255|5074|0|p
+0|0|0|1255|6068|0|p
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_description_toadd33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_description_toadd33.data b/src/test/regress/data/upgrade34/upg2_pg_description_toadd33.data
new file mode 100644
index 0000000..1930589
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_description_toadd33.data
@@ -0,0 +1,83 @@
+objoid|classoid|objsubid|description
+820|1255|0|returns the currently executing query
+821|1255|0|list of SQL keywords
+822|1255|0|returns the type of the argument
+2878|1255|0|terminate a server process
+2896|1255|0|convert generic options array to name/value table
+2971|1255|0|convert boolean to text
+3112|1255|0|user privilege on foreign data wrapper by username, foreign data wrapper name
+3113|1255|0|user privilege on foreign data wrapper by username, foreign data wrapper oid
+3114|1255|0|user privilege on foreign data wrapper by user oid, foreign data wrapper name
+3115|1255|0|user privilege on foreign data wrapper by user oid, foreign data wrapper oid
+3116|1255|0|current user privilege on foreign data wrapper by foreign data wrapper name
+3117|1255|0|current user privilege on foreign data wrapper by foreign data wrapper oid
+3118|1255|0|user privilege on server by username, server name
+3119|1255|0|user privilege on server by username, server oid
+3120|1255|0|user privilege on server by user oid, server name
+3121|1255|0|user privilege on server by user oid, server oid
+3122|1255|0|current user privilege on server by server name
+3123|1255|0|current user privilege on server by server oid
+3302|1255|0|I/O
+3303|1255|0|I/O
+3304|1255|0|I/O
+3305|1255|0|I/O
+3312|1255|0|I/O
+3313|1255|0|I/O
+3314|1255|0|I/O
+3315|1255|0|I/O
+3300|1247|0|(segment file num, row number), logical location of append-only tuple
+3310|1247|0|(h/h) -- the hexadecimal xlogid and xrecoff of an XLOG location
+5032|1255|0|Return reltuples/relpages information for relation.
+5034|1255|0|partition configuration for a given relation
+5040|1255|0|change weight of all the backends for a given session id
+5041|1255|0|change weight of all the backends for a given session id
+5042|1255|0|list priorities of backends
+5044|1255|0|Insert text into the error log
+5045|1255|0|Insert text into the error log
+7178|1255|0|populate the persistent tables and gp_relation_node for the current database
+9997|1255|0|raises function deprecation error
+9998|1255|0|convert an object name to oid
+9999|1255|0|Greenplum fault testing only
+3318|1255|0|I/O
+3319|1255|0|I/O
+3320|1255|0|I/O
+3321|1255|0|I/O
+3322|1255|0|I/O
+3323|1255|0|I/O
+3324|1255|0|I/O
+3331|1255|0|I/O
+6435|1255|0|view logged change tracking records
+2905|1255|0|btree less-equal-greater
+5046|1255|0|Perform the catalog operations necessary for adding a new standby
+5047|1255|0|Remove a master standby from the system catalog
+5048|1255|0|Perform the catalog operations necessary for adding a new segment mirror
+5049|1255|0|Remove a segment mirror from the system catalog
+5050|1255|0|Perform the catalog operations necessary for adding a new primary segment
+5051|1255|0|Remove a primary segment from the system catalog
+5052|1255|0|Convert a cloned master catalog for use as a segment
+5053|1255|0|Activate a standby
+5054|1255|0|Persist object nodes on a segment
+5055|1255|0|Remove persistent object node references at a segment
+5037|1255|0|ALTER statement to recreate subpartition templates for a give relation
+8001|2615|0|Greenplum toolkit schema
+5056|1255|0|Add a new entry to gp_persistent_filespace_node
+5057|1255|0|Add a new entry to gp_persistent_tablespace_node
+5058|1255|0|Add a new entry to gp_persistent_database_node
+5059|1255|0|Add a new entry to gp_persistent_relation_node
+5060|1255|0|Add a new entry to gp_global_sequence
+5061|1255|0|Add a new entry to gp_relation_node
+5062|1255|0|Update an entry in gp_persistent_filespace_node
+5063|1255|0|Update an entry in gp_persistent_tablespace_node
+5064|1255|0|Update an entry in gp_persistent_database_node
+5065|1255|0|Update an entry in gp_persistent_relation_node
+5066|1255|0|Update an entry in gp_global_sequence
+5067|1255|0|Update an entry in gp_relation_node
+5068|1255|0|Remove an entry from gp_persistent_filespace_node
+5069|1255|0|Remove an entry from gp_persistent_tablespace_node
+5070|1255|0|Remove an entry from gp_persistent_database_node
+5071|1255|0|Remove an entry from gp_persistent_relation_node
+5072|1255|0|Remove an entry from gp_global_sequence
+5073|1255|0|Remove an entry from gp_relation_node
+5074|1255|0|physical filesystem information
+6068|1255|0|dbid executing function
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_index_toadd33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_index_toadd33.data.in b/src/test/regress/data/upgrade34/upg2_pg_index_toadd33.data.in
new file mode 100644
index 0000000..61ed7dd
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_index_toadd33.data.in
@@ -0,0 +1,30 @@
+indexrelid|indrelid|indnatts|indisunique|indisprimary|indisclustered|indisvalid|indkey|indclass|indexprs|indpred
+2858|5009|1|t|f|f|t|-2|1989|\N|\N
+2859|5009|1|t|f|f|t|1|1986|\N|\N
+2893|5033|1|f|f|f|t|1|1989|\N|\N
+2894|5033|2|t|f|f|t|1 2|1989 1976|\N|\N
+2901|2900|2|t|t|f|t|1 2|1989 1978|\N|\N
+2903|2902|2|t|t|f|t|1 2|1989 1978|\N|\N
+3049|2879|1|t|f|f|t|1|1989|\N|\N
+3306|2898|1|t|f|f|t|-2|1989|\N|\N
+3307|2898|1|t|f|f|t|1|1986|\N|\N
+3308|2899|1|t|f|f|t|-2|1989|\N|\N
+3309|2899|1|t|f|f|t|1|1986|\N|\N
+3316|2895|1|t|f|f|t|-2|1989|\N|\N
+3317|2895|2|t|f|f|t|1 2|1989 1989|\N|\N
+5095|5094|2|t|f|f|t|1 2|1989 1978|\N|\N
+6053|6052|2|f|f|f|t|1 2|1989 1989|\N|\N
+6054|6052|3|t|f|f|t|1 2 3|1989 1989 1986|\N|\N
+6057|6056|2|f|f|f|t|1 2|1989 1989|\N|\N
+6058|6056|3|t|f|f|t|1 2 3|1989 1989 1986|\N|\N
+6061|6059|1|t|f|f|t|-2|1989|\N|\N
+6062|6059|1|t|f|f|t|2|1976|\N|\N
+6063|6059|1|t|f|f|t|1|1986|\N|\N
+6064|6060|1|t|f|f|t|-2|1989|\N|\N
+6065|6060|1|f|f|f|t|1|1989|\N|\N
+6066|6060|1|f|f|f|t|2|1976|\N|\N
+6067|5043|2|t|f|f|t|1 2|1989 1980|\N|\N
+6106|5036|2|t|f|f|t|2 4|1976 429|\N|\N
+6107|5036|1|t|f|f|t|1|1976|\N|\N
+6111|5035|1|t|f|f|t|1|1976|\N|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_namespace_toadd33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_namespace_toadd33.data b/src/test/regress/data/upgrade34/upg2_pg_namespace_toadd33.data
new file mode 100644
index 0000000..12314d5
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_namespace_toadd33.data
@@ -0,0 +1,2 @@
+oid|nspname|nspowner|nspacl
+8001|gp_toolkit|10|\N

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_proc_toadd33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_proc_toadd33.data b/src/test/regress/data/upgrade34/upg2_pg_proc_toadd33.data
new file mode 100644
index 0000000..831c1ce
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_proc_toadd33.data
@@ -0,0 +1,83 @@
+oid|proname|pronamespace|proowner|prolang|proisagg|prosecdef|proisstrict|proretset|provolatile|pronargs|prorettype|proiswin|proargtypes|proallargtypes|proargmodes|proargnames|prosrc|probin|proacl
+820|current_query|11|10|12|f|f|f|f|v|0|25|f||\N|\N|\N|current_query|-|\N
+821|pg_get_keywords|11|10|12|f|f|t|t|s|0|2249|f||{25,18,25}|{o,o,o}|{word,catcode,catdesc}|pg_get_keywords|-|\N
+822|pg_typeof|11|10|12|f|f|f|f|s|1|2206|f|2276|\N|\N|\N|pg_typeof|-|\N
+2878|pg_terminate_backend|11|10|12|f|f|t|f|v|1|16|f|23|\N|\N|\N|pg_terminate_backend|-|\N
+2971|text|11|10|12|f|f|t|f|i|1|25|f|16|\N|\N|\N|booltext|-|\N
+2896|pg_options_to_table|11|10|12|f|f|t|t|s|1|2249|f|1009|{1009,25,25}|{i,o,o}|{options_array,option_name,option_value}|pg_options_to_table|-|\N
+2897|gpdb_fdw_validator|11|10|12|f|f|t|f|i|2|16|f|1009 26|\N|\N|\N|gpdb_fdw_validator|-|\N
+3112|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|3|16|f|19 25 25|\N|\N|\N|has_foreign_data_wrapper_privilege_name_name|-|\N
+3113|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|3|16|f|19 26 25|\N|\N|\N|has_foreign_data_wrapper_privilege_name_id|-|\N
+3114|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|3|16|f|26 25 25|\N|\N|\N|has_foreign_data_wrapper_privilege_id_name|-|\N
+3115|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|3|16|f|26 26 25|\N|\N|\N|has_foreign_data_wrapper_privilege_id_id|-|\N
+3116|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|2|16|f|25 25|\N|\N|\N|has_foreign_data_wrapper_privilege_name|-|\N
+3117|has_foreign_data_wrapper_privilege|11|10|12|f|f|t|f|s|2|16|f|26 25|\N|\N|\N|has_foreign_data_wrapper_privilege_id|-|\N
+3118|has_server_privilege|11|10|12|f|f|t|f|s|3|16|f|19 25 25|\N|\N|\N|has_server_privilege_name_name|-|\N
+3119|has_server_privilege|11|10|12|f|f|t|f|s|3|16|f|19 26 25|\N|\N|\N|has_server_privilege_name_id|-|\N
+3120|has_server_privilege|11|10|12|f|f|t|f|s|3|16|f|26 25 25|\N|\N|\N|has_server_privilege_id_name|-|\N
+3121|has_server_privilege|11|10|12|f|f|t|f|s|3|16|f|26 26 25|\N|\N|\N|has_server_privilege_id_id|-|\N
+3122|has_server_privilege|11|10|12|f|f|t|f|s|2|16|f|25 25|\N|\N|\N|has_server_privilege_name|-|\N
+3123|has_server_privilege|11|10|12|f|f|t|f|s|2|16|f|26 25|\N|\N|\N|has_server_privilege_id|-|\N
+3302|gpaotidin|11|10|12|f|f|t|f|i|1|3300|f|2275|\N|\N|\N|gpaotidin|-|\N
+3303|gpaotidout|11|10|12|f|f|t|f|i|1|2275|f|3300|\N|\N|\N|gpaotidout|-|\N
+3304|gpaotidrecv|11|10|12|f|f|t|f|i|1|3300|f|2281|\N|\N|\N|gpaotidrecv|-|\N
+3305|gpaotidsend|11|10|12|f|f|t|f|i|1|17|f|3300|\N|\N|\N|gpaotidsend|-|\N
+3312|gpxloglocin|11|10|12|f|f|t|f|i|1|3310|f|2275|\N|\N|\N|gpxloglocin|-|\N
+3313|gpxloglocout|11|10|12|f|f|t|f|i|1|2275|f|3310|\N|\N|\N|gpxloglocout|-|\N
+3314|gpxloglocrecv|11|10|12|f|f|t|f|i|1|3310|f|2281|\N|\N|\N|gpxloglocrecv|-|\N
+3315|gpxloglocsend|11|10|12|f|f|t|f|i|1|17|f|3310|\N|\N|\N|gpxloglocsend|-|\N
+3318|gpxlogloclarger|11|10|12|f|f|t|f|i|2|3310|f|3310 3310|\N|\N|\N|gpxlogloclarger|-|\N
+3319|gpxloglocsmaller|11|10|12|f|f|t|f|i|2|3310|f|3310 3310|\N|\N|\N|gpxloglocsmaller|-|\N
+3331|gpxlogloceq|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxlogloceq|-|\N
+3320|gpxloglocne|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxloglocne|-|\N
+3321|gpxlogloclt|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxlogloclt|-|\N
+3322|gpxloglocle|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxloglocle|-|\N
+3323|gpxloglocgt|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxloglocgt|-|\N
+3324|gpxloglocge|11|10|12|f|f|t|f|i|2|16|f|3310 3310|\N|\N|\N|gpxloglocge|-|\N
+2905|btgpxlogloccmp|11|10|12|f|f|t|f|i|2|23|f|3310 3310|\N|\N|\N|btgpxlogloccmp|-|\N
+3332|max|11|10|12|t|f|f|f|i|1|3310|f|3310|\N|\N|\N|aggregate_dummy|-|\N
+3333|min|11|10|12|t|f|f|f|i|1|3310|f|3310|\N|\N|\N|aggregate_dummy|-|\N
+6435|gp_changetracking_log|11|10|12|f|f|f|t|v|1|2249|f|23|{23,21,21,26,26,26,3310,23,27,20}|{i,o,o,o,o,o,o,o,o,o}|{filetype,segment_id,dbid,space,db,rel,xlogloc,blocknum,persistent_tid,persistent_sn}|gp_changetracking_log|-|\N
+5032|gp_statistics_estimate_reltuples_relpages_oid|11|10|12|f|f|t|f|v|1|1021|f|26|\N|\N|\N|gp_statistics_estimate_reltuples_relpages_oid|-|\N
+5034|pg_get_partition_def|11|10|12|f|f|t|f|s|3|25|f|26 16 16|\N|\N|\N|pg_get_partition_def_ext2|-|\N
+5040|gp_adjust_priority|11|10|12|f|f|t|f|v|3|23|f|23 23 23|\N|\N|\N|gp_adjust_priority_int|-|\N
+5041|gp_adjust_priority|11|10|12|f|f|t|f|v|3|23|f|23 23 25|\N|\N|\N|gp_adjust_priority_value|-|\N
+5042|gp_list_backend_priorities|11|10|12|f|f|f|t|v|0|2249|f||\N|\N|\N|gp_list_backend_priorities|-|\N
+5044|gp_elog|11|10|12|f|f|t|f|i|1|2278|f|25|\N|\N|\N|gp_elog|-|\N
+5045|gp_elog|11|10|12|f|f|t|f|i|2|2278|f|25 16|\N|\N|\N|gp_elog|-|\N
+7178|gp_persistent_build_db|11|10|12|f|f|f|f|v|1|23|f|16|\N|\N|\N|gp_persistent_build_db|-|\N
+9900|aocsvpinfo_decode|11|10|12|f|f|t|f|i|3|20|f|1562 23 23|\N|\N|\N|aocsvpinfo_decode|-|\N
+9997|gp_deprecated|11|10|12|f|f|f|f|i|0|2278|f||\N|\N|\N|gp_deprecated|-|\N
+9998|pg_objname_to_oid|11|10|12|f|f|t|f|i|1|26|f|25|\N|\N|\N|pg_objname_to_oid|-|\N
+5046|gp_add_master_standby|11|10|12|f|f|f|f|v|3|21|f|25 25 1009|\N|\N|\N|gp_add_master_standby|-|\N
+5047|gp_remove_master_standby|11|10|12|f|f|f|f|v|0|16|f||\N|\N|\N|gp_remove_master_standby|-|\N
+5048|gp_add_segment_mirror|11|10|12|f|f|f|f|v|6|21|f|21 25 25 23 23 1009|\N|\N|\N|gp_add_segment_mirror|-|\N
+5049|gp_remove_segment_mirror|11|10|12|f|f|f|f|v|1|16|f|21|\N|\N|\N|gp_remove_segment_mirror|-|\N
+5050|gp_add_segment|11|10|12|f|f|f|f|v|4|21|f|25 25 23 1009|\N|\N|\N|gp_add_segment|-|\N
+5051|gp_remove_segment|11|10|12|f|f|f|f|v|1|16|f|21|\N|\N|\N|gp_remove_segment|-|\N
+5052|gp_prep_new_segment|11|10|12|f|f|f|f|v|1|16|f|1009|\N|\N|\N|gp_prep_new_segment|-|\N
+5053|gp_activate_standby|11|10|12|f|f|f|f|v|0|16|f||\N|\N|\N|gp_activate_standby|-|\N
+5054|gp_add_segment_persistent_entries|11|10|12|f|f|f|f|i|3|16|f|21 21 1009|\N|\N|\N|gp_add_segment_persistent_entries|-|\N
+5055|gp_remove_segment_persistent_entries|11|10|12|f|f|f|f|i|2|16|f|21 21|\N|\N|\N|gp_remove_segment_persistent_entries|-|\N
+5037|pg_get_partition_template_def|11|10|12|f|f|t|f|s|3|25|f|26 16 16|\N|\N|\N|pg_get_partition_template_def|-|\N
+5056|gp_add_persistent_filespace_node_entry|11|10|12|f|f|f|f|v|13|16|f|27 26 21 25 21 25 21 20 21 23 23 20 27|\N|\N|\N|gp_add_persistent_filespace_node_entry|-|\N
+5057|gp_add_persistent_tablespace_node_entry|11|10|12|f|f|f|f|v|10|16|f|27 26 26 21 20 21 23 23 20 27|\N|\N|\N|gp_add_persistent_tablespace_node_entry|-|\N
+5058|gp_add_persistent_database_node_entry|11|10|12|f|f|f|f|v|10|16|f|27 26 26 21 20 21 23 23 20 27|\N|\N|\N|gp_add_persistent_database_node_entry|-|\N
+5059|gp_add_persistent_relation_node_entry|11|10|12|f|f|f|f|v|20|16|f|27 26 26 26 23 21 21 20 21 21 16 20 3310 23 20 20 23 23 20 27|\N|\N|\N|gp_add_persistent_relation_node_entry|-|\N
+5060|gp_add_global_sequence_entry|11|10|12|f|f|f|f|v|2|16|f|27 20|\N|\N|\N|gp_add_global_sequence_entry|-|\N
+5061|gp_add_relation_node_entry|11|10|12|f|f|f|f|v|6|16|f|27 26 23 20 27 20|\N|\N|\N|gp_add_relation_node_entry|-|\N
+5062|gp_update_persistent_filespace_node_entry|11|10|12|f|f|f|f|v|13|16|f|27 26 21 25 21 25 21 20 21 23 23 20 27|\N|\N|\N|gp_update_persistent_filespace_node_entry|-|\N
+5063|gp_update_persistent_tablespace_node_entry|11|10|12|f|f|f|f|v|10|16|f|27 26 26 21 20 21 23 23 20 27|\N|\N|\N|gp_update_persistent_tablespace_node_entry|-|\N
+5064|gp_update_persistent_database_node_entry|11|10|12|f|f|f|f|v|10|16|f|27 26 26 21 20 21 23 23 20 27|\N|\N|\N|gp_update_persistent_database_node_entry|-|\N
+5065|gp_update_persistent_relation_node_entry|11|10|12|f|f|f|f|v|20|16|f|27 26 26 26 23 21 21 20 21 21 16 20 3310 23 20 20 23 23 20 27|\N|\N|\N|gp_update_persistent_relation_node_entry|-|\N
+5066|gp_update_global_sequence_entry|11|10|12|f|f|f|f|v|2|16|f|27 20|\N|\N|\N|gp_update_global_sequence_entry|-|\N
+5067|gp_update_relation_node_entry|11|10|12|f|f|f|f|v|6|16|f|27 26 23 20 27 20|\N|\N|\N|gp_update_relation_node_entry|-|\N
+5068|gp_delete_persistent_filespace_node_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_persistent_filespace_node_entry|-|\N
+5069|gp_delete_persistent_tablespace_node_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_persistent_tablespace_node_entry|-|\N
+5070|gp_delete_persistent_database_node_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_persistent_database_node_entry|-|\N
+5071|gp_delete_persistent_relation_node_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_persistent_relation_node_entry|-|\N
+5072|gp_delete_global_sequence_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_global_sequence_entry|-|\N
+5073|gp_delete_relation_node_entry|11|10|12|f|f|f|f|v|1|16|f|27|\N|\N|\N|gp_delete_relation_node_entry|-|\N
+5074|gp_persistent_relation_node_check|11|10|12|f|f|f|t|v|0|6990|f||\N|\N|\N|gp_persistent_relation_node_check|-|\N
+6068|gp_execution_dbid|11|10|12|f|f|f|f|v|0|23|f||\N|\N|\N|gp_execution_dbid|-|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/upg2_pg_type_toadd33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/upg2_pg_type_toadd33.data.in b/src/test/regress/data/upgrade34/upg2_pg_type_toadd33.data.in
new file mode 100644
index 0000000..2217ef2
--- /dev/null
+++ b/src/test/regress/data/upgrade34/upg2_pg_type_toadd33.data.in
@@ -0,0 +1,28 @@
+oid|typname|typnamespace|typowner|typlen|typbyval|typtype|typisdefined|typdelim|typrelid|typelem|typinput|typoutput|typreceive|typsend|typanalyze|typalign|typstorage|typnotnull|typbasetype|typtypmod|typndims|typdefaultbin|typdefault
+2906|pg_toast_5036|99|10|-1|f|c|t|,|2900|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+2907|pg_toast_5033|99|10|-1|f|c|t|,|2902|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+3300|gpaotid|11|10|6|f|b|t|,|0|0|gpaotidin|gpaotidout|gpaotidrecv|gpaotidsend|-|s|p|f|0|-1|0|\N|\N
+3301|_gpaotid|11|10|-1|f|b|t|,|0|3300|array_in|array_out|array_recv|array_send|-|i|x|f|0|-1|0|\N|\N
+3310|gpxlogloc|11|10|8|f|b|t|,|0|0|gpxloglocin|gpxloglocout|gpxloglocrecv|gpxloglocsend|-|i|p|f|0|-1|0|\N|\N
+3311|_gpxlogloc|11|10|-1|f|b|t|,|0|3310|array_in|array_out|array_recv|array_send|-|i|x|f|0|-1|0|\N|\N
+6438|pg_filespace|11|10|-1|f|c|t|,|5009|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6439|pg_filespace_entry|11|10|-1|f|c|t|,|5033|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6440|pg_stat_last_operation|11|10|-1|f|c|t|,|6052|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6441|pg_stat_last_shoperation|11|10|-1|f|c|t|,|6056|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6442|gp_segment_configuration|11|10|-1|f|c|t|,|5036|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6443|gp_fault_strategy|11|10|-1|f|c|t|,|5039|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6444|gp_san_configuration|11|10|-1|f|c|t|,|5035|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6445|pg_resourcetype|11|10|-1|f|c|t|,|6059|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6446|pg_resqueuecapability|11|10|-1|f|c|t|,|6060|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6447|pg_foreign_data_wrapper|11|10|-1|f|c|t|,|2898|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6448|pg_foreign_server|11|10|-1|f|c|t|,|2899|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6449|pg_user_mapping|11|10|-1|f|c|t|,|2895|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6452|pg_foreign_table|11|10|-1|f|c|t|,|2879|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6453|gp_fastsequence|11|10|-1|f|c|t|,|5043|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6990|gp_persistent_relation_node|11|10|-1|f|c|t|,|5090|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6991|gp_persistent_database_node|11|10|-1|f|c|t|,|5091|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6992|gp_persistent_tablespace_node|11|10|-1|f|c|t|,|5092|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6993|gp_persistent_filespace_node|11|10|-1|f|c|t|,|5093|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6994|gp_relation_node|11|10|-1|f|c|t|,|5094|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6995|gp_global_sequence|11|10|-1|f|c|t|,|5096|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade41/.p4ignore
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade41/.p4ignore b/src/test/regress/data/upgrade41/.p4ignore
new file mode 100644
index 0000000..fb04dbb
--- /dev/null
+++ b/src/test/regress/data/upgrade41/.p4ignore
@@ -0,0 +1,4 @@
+upg2_catupgrade.sql
+upg2_catupgrade_41.sql
+upg2_catupgrade_check.sql
+.p4ignore

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/.p4ignore
----------------------------------------------------------------------
diff --git a/tools/bin/ext/.p4ignore b/tools/bin/ext/.p4ignore
new file mode 100644
index 0000000..69ee940
--- /dev/null
+++ b/tools/bin/ext/.p4ignore
@@ -0,0 +1,3 @@
+Crypto
+paramiko
+pygresql

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/Crypto/.p4ignore
----------------------------------------------------------------------
diff --git a/tools/bin/ext/Crypto/.p4ignore b/tools/bin/ext/Crypto/.p4ignore
new file mode 100644
index 0000000..6018c0c
--- /dev/null
+++ b/tools/bin/ext/Crypto/.p4ignore
@@ -0,0 +1,2 @@
+__init__.py
+test.py

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/Makefile
----------------------------------------------------------------------
diff --git a/tools/bin/ext/Makefile b/tools/bin/ext/Makefile
new file mode 100644
index 0000000..ba49f09
--- /dev/null
+++ b/tools/bin/ext/Makefile
@@ -0,0 +1,27 @@
+#-------------------------------------------------------------------------
+#
+# Makefile for the managerment utilities
+#
+#-------------------------------------------------------------------------
+
+subdir = tools/bin/ext
+top_builddir = ../../..
+include $(top_builddir)/src/Makefile.global
+
+SKIP_INSTALL=.gitignore|.p4ignore|.rcfile|Makefile|test/
+
+install:
+	${INSTALL_SCRIPT} -d ${libdir}/python/
+	@for file in `find * -type f | grep -v -E "${SKIP_INSTALL}"`; \
+		do \
+			echo "install $${file} into ${libdir}/python/$${file}" ; \
+			${INSTALL_SCRIPT} $${file} ${libdir}/python/$${file}; \
+		done
+	@for dirs in `find * -type d | grep -v test` ;\
+		do \
+			${INSTALL_SCRIPT} -d ${libdir}/python/$${dirs}; \
+			for file in `find $${dirs} -type f | grep -v -E "${SKIP_INSTALL}"`; do \
+				echo "install $${file} into ${libdir}/python/$${file}" ; \
+				${INSTALL_SCRIPT} $${file} ${libdir}/python/$${file}; \
+			done \
+		done


[18/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_depend33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_depend33.data b/src/test/regress/data/upgrade34/pg_depend33.data
new file mode 100644
index 0000000..b7da34a
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_depend33.data
@@ -0,0 +1,5148 @@
+classid,objid,objsubid,refclassid,refobjid,refobjsubid,deptype
+0,0,0,1259,1247,0,p
+0,0,0,1259,1249,0,p
+0,0,0,1259,1255,0,p
+0,0,0,1259,1259,0,p
+0,0,0,1259,3250,0,p
+0,0,0,1259,1248,0,p
+0,0,0,1259,2604,0,p
+0,0,0,1259,2606,0,p
+0,0,0,1259,2611,0,p
+0,0,0,1259,2610,0,p
+0,0,0,1259,2617,0,p
+0,0,0,1259,2616,0,p
+0,0,0,1259,2601,0,p
+0,0,0,1259,2602,0,p
+0,0,0,1259,2603,0,p
+0,0,0,1259,2612,0,p
+0,0,0,1259,2613,0,p
+0,0,0,1259,2600,0,p
+0,0,0,1259,2619,0,p
+0,0,0,1259,2618,0,p
+0,0,0,1259,2620,0,p
+0,0,0,1259,2614,0,p
+0,0,0,1259,2609,0,p
+0,0,0,1259,2605,0,p
+0,0,0,1259,2615,0,p
+0,0,0,1259,2607,0,p
+0,0,0,1259,2608,0,p
+0,0,0,1259,1213,0,p
+0,0,0,1259,1136,0,p
+0,0,0,1259,1214,0,p
+0,0,0,1259,2396,0,p
+0,0,0,1259,6026,0,p
+0,0,0,1259,5000,0,p
+0,0,0,1259,5006,0,p
+0,0,0,1259,5029,0,p
+0,0,0,1259,5030,0,p
+0,0,0,1259,5001,0,p
+0,0,0,1259,5002,0,p
+0,0,0,1259,5003,0,p
+0,0,0,1259,5004,0,p
+0,0,0,1259,6040,0,p
+0,0,0,1259,6105,0,p
+0,0,0,1259,6110,0,p
+0,0,0,1259,5008,0,p
+0,0,0,1259,5010,0,p
+0,0,0,1259,5011,0,p
+0,0,0,1259,2830,0,p
+0,0,0,1259,2831,0,p
+0,0,0,1259,2832,0,p
+0,0,0,1259,2833,0,p
+0,0,0,1259,2834,0,p
+0,0,0,1259,2835,0,p
+0,0,0,1259,2836,0,p
+0,0,0,1259,2837,0,p
+0,0,0,1259,2838,0,p
+0,0,0,1259,2839,0,p
+0,0,0,1259,2840,0,p
+0,0,0,1259,2841,0,p
+0,0,0,1259,2842,0,p
+0,0,0,1259,2843,0,p
+0,0,0,1259,2844,0,p
+0,0,0,1259,2845,0,p
+0,0,0,1259,2846,0,p
+0,0,0,1259,2847,0,p
+0,0,0,1259,2650,0,p
+0,0,0,1259,2651,0,p
+0,0,0,1259,2652,0,p
+0,0,0,1259,2653,0,p
+0,0,0,1259,2654,0,p
+0,0,0,1259,2655,0,p
+0,0,0,1259,2656,0,p
+0,0,0,1259,2657,0,p
+0,0,0,1259,2658,0,p
+0,0,0,1259,2659,0,p
+0,0,0,1259,2676,0,p
+0,0,0,1259,2677,0,p
+0,0,0,1259,2694,0,p
+0,0,0,1259,2695,0,p
+0,0,0,1259,6027,0,p
+0,0,0,1259,6028,0,p
+0,0,0,1259,6041,0,p
+0,0,0,1259,1250,0,p
+0,0,0,1259,2660,0,p
+0,0,0,1259,2661,0,p
+0,0,0,1259,2662,0,p
+0,0,0,1259,2663,0,p
+0,0,0,1259,6029,0,p
+0,0,0,1259,2664,0,p
+0,0,0,1259,2665,0,p
+0,0,0,1259,2666,0,p
+0,0,0,1259,2667,0,p
+0,0,0,1259,2668,0,p
+0,0,0,1259,2669,0,p
+0,0,0,1259,2670,0,p
+0,0,0,1259,2671,0,p
+0,0,0,1259,2672,0,p
+0,0,0,1259,2673,0,p
+0,0,0,1259,2674,0,p
+0,0,0,1259,2675,0,p
+0,0,0,1259,2397,0,p
+0,0,0,1259,2678,0,p
+0,0,0,1259,2679,0,p
+0,0,0,1259,2680,0,p
+0,0,0,1259,2681,0,p
+0,0,0,1259,2682,0,p
+0,0,0,1259,2683,0,p
+0,0,0,1259,2684,0,p
+0,0,0,1259,2685,0,p
+0,0,0,1259,2686,0,p
+0,0,0,1259,2687,0,p
+0,0,0,1259,2688,0,p
+0,0,0,1259,2689,0,p
+0,0,0,1259,1137,0,p
+0,0,0,1259,2690,0,p
+0,0,0,1259,2691,0,p
+0,0,0,1259,2692,0,p
+0,0,0,1259,2693,0,p
+0,0,0,1259,1232,0,p
+0,0,0,1259,1233,0,p
+0,0,0,1259,2696,0,p
+0,0,0,1259,2697,0,p
+0,0,0,1259,2698,0,p
+0,0,0,1259,2699,0,p
+0,0,0,1259,2700,0,p
+0,0,0,1259,2701,0,p
+0,0,0,1259,2702,0,p
+0,0,0,1259,2703,0,p
+0,0,0,1259,2704,0,p
+0,0,0,1259,6101,0,p
+0,0,0,1259,6102,0,p
+0,0,0,1259,6103,0,p
+0,0,0,1259,6108,0,p
+0,0,0,1259,6109,0,p
+0,0,0,1259,5005,0,p
+0,0,0,1259,5007,0,p
+0,0,0,1259,5012,0,p
+0,0,0,1259,5017,0,p
+0,0,0,1259,5013,0,p
+0,0,0,1259,5014,0,p
+0,0,0,1259,5015,0,p
+0,0,0,1259,5016,0,p
+0,0,0,1259,5026,0,p
+0,0,0,1259,5031,0,p
+0,0,0,1259,1262,0,p
+0,0,0,1259,1261,0,p
+0,0,0,1259,1260,0,p
+0,0,0,1255,1242,0,p
+0,0,0,1255,1243,0,p
+0,0,0,1255,1244,0,p
+0,0,0,1255,31,0,p
+0,0,0,1255,1245,0,p
+0,0,0,1255,33,0,p
+0,0,0,1255,34,0,p
+0,0,0,1255,35,0,p
+0,0,0,1255,38,0,p
+0,0,0,1255,39,0,p
+0,0,0,1255,40,0,p
+0,0,0,1255,41,0,p
+0,0,0,1255,42,0,p
+0,0,0,1255,43,0,p
+0,0,0,1255,44,0,p
+0,0,0,1255,45,0,p
+0,0,0,1255,46,0,p
+0,0,0,1255,47,0,p
+0,0,0,1255,48,0,p
+0,0,0,1255,49,0,p
+0,0,0,1255,50,0,p
+0,0,0,1255,51,0,p
+0,0,0,1255,52,0,p
+0,0,0,1255,53,0,p
+0,0,0,1255,54,0,p
+0,0,0,1255,55,0,p
+0,0,0,1255,56,0,p
+0,0,0,1255,57,0,p
+0,0,0,1255,60,0,p
+0,0,0,1255,61,0,p
+0,0,0,1255,62,0,p
+0,0,0,1255,63,0,p
+0,0,0,1255,64,0,p
+0,0,0,1255,65,0,p
+0,0,0,1255,66,0,p
+0,0,0,1255,67,0,p
+0,0,0,1255,68,0,p
+0,0,0,1255,69,0,p
+0,0,0,1255,70,0,p
+0,0,0,1255,1246,0,p
+0,0,0,1255,72,0,p
+0,0,0,1255,73,0,p
+0,0,0,1255,74,0,p
+0,0,0,1255,77,0,p
+0,0,0,1255,78,0,p
+0,0,0,1255,79,0,p
+0,0,0,1255,1252,0,p
+0,0,0,1255,1254,0,p
+0,0,0,1255,1256,0,p
+0,0,0,1255,1257,0,p
+0,0,0,1255,1258,0,p
+0,0,0,1255,84,0,p
+0,0,0,1255,89,0,p
+0,0,0,1255,101,0,p
+0,0,0,1255,102,0,p
+0,0,0,1255,103,0,p
+0,0,0,1255,104,0,p
+0,0,0,1255,105,0,p
+0,0,0,1255,106,0,p
+0,0,0,1255,107,0,p
+0,0,0,1255,108,0,p
+0,0,0,1255,109,0,p
+0,0,0,1255,110,0,p
+0,0,0,1255,111,0,p
+0,0,0,1255,112,0,p
+0,0,0,1255,113,0,p
+0,0,0,1255,114,0,p
+0,0,0,1255,115,0,p
+0,0,0,1255,116,0,p
+0,0,0,1255,117,0,p
+0,0,0,1255,118,0,p
+0,0,0,1255,119,0,p
+0,0,0,1255,120,0,p
+0,0,0,1255,121,0,p
+0,0,0,1255,122,0,p
+0,0,0,1255,123,0,p
+0,0,0,1255,124,0,p
+0,0,0,1255,125,0,p
+0,0,0,1255,126,0,p
+0,0,0,1255,127,0,p
+0,0,0,1255,128,0,p
+0,0,0,1255,129,0,p
+0,0,0,1255,130,0,p
+0,0,0,1255,131,0,p
+0,0,0,1255,132,0,p
+0,0,0,1255,133,0,p
+0,0,0,1255,134,0,p
+0,0,0,1255,135,0,p
+0,0,0,1255,136,0,p
+0,0,0,1255,137,0,p
+0,0,0,1255,138,0,p
+0,0,0,1255,139,0,p
+0,0,0,1255,140,0,p
+0,0,0,1255,141,0,p
+0,0,0,1255,144,0,p
+0,0,0,1255,145,0,p
+0,0,0,1255,146,0,p
+0,0,0,1255,147,0,p
+0,0,0,1255,148,0,p
+0,0,0,1255,149,0,p
+0,0,0,1255,150,0,p
+0,0,0,1255,151,0,p
+0,0,0,1255,152,0,p
+0,0,0,1255,153,0,p
+0,0,0,1255,154,0,p
+0,0,0,1255,155,0,p
+0,0,0,1255,156,0,p
+0,0,0,1255,157,0,p
+0,0,0,1255,158,0,p
+0,0,0,1255,159,0,p
+0,0,0,1255,160,0,p
+0,0,0,1255,161,0,p
+0,0,0,1255,162,0,p
+0,0,0,1255,163,0,p
+0,0,0,1255,164,0,p
+0,0,0,1255,165,0,p
+0,0,0,1255,166,0,p
+0,0,0,1255,167,0,p
+0,0,0,1255,168,0,p
+0,0,0,1255,169,0,p
+0,0,0,1255,170,0,p
+0,0,0,1255,171,0,p
+0,0,0,1255,172,0,p
+0,0,0,1255,173,0,p
+0,0,0,1255,174,0,p
+0,0,0,1255,175,0,p
+0,0,0,1255,176,0,p
+0,0,0,1255,177,0,p
+0,0,0,1255,178,0,p
+0,0,0,1255,179,0,p
+0,0,0,1255,180,0,p
+0,0,0,1255,181,0,p
+0,0,0,1255,182,0,p
+0,0,0,1255,183,0,p
+0,0,0,1255,184,0,p
+0,0,0,1255,185,0,p
+0,0,0,1255,186,0,p
+0,0,0,1255,187,0,p
+0,0,0,1255,188,0,p
+0,0,0,1255,189,0,p
+0,0,0,1255,190,0,p
+0,0,0,1255,191,0,p
+0,0,0,1255,192,0,p
+0,0,0,1255,200,0,p
+0,0,0,1255,201,0,p
+0,0,0,1255,202,0,p
+0,0,0,1255,203,0,p
+0,0,0,1255,204,0,p
+0,0,0,1255,205,0,p
+0,0,0,1255,206,0,p
+0,0,0,1255,207,0,p
+0,0,0,1255,208,0,p
+0,0,0,1255,6024,0,p
+0,0,0,1255,3106,0,p
+0,0,0,1255,3107,0,p
+0,0,0,1255,209,0,p
+0,0,0,1255,211,0,p
+0,0,0,1255,212,0,p
+0,0,0,1255,213,0,p
+0,0,0,1255,214,0,p
+0,0,0,1255,215,0,p
+0,0,0,1255,216,0,p
+0,0,0,1255,217,0,p
+0,0,0,1255,218,0,p
+0,0,0,1255,219,0,p
+0,0,0,1255,220,0,p
+0,0,0,1255,221,0,p
+0,0,0,1255,222,0,p
+0,0,0,1255,6025,0,p
+0,0,0,1255,3108,0,p
+0,0,0,1255,3109,0,p
+0,0,0,1255,223,0,p
+0,0,0,1255,224,0,p
+0,0,0,1255,225,0,p
+0,0,0,1255,226,0,p
+0,0,0,1255,227,0,p
+0,0,0,1255,228,0,p
+0,0,0,1255,229,0,p
+0,0,0,1255,2308,0,p
+0,0,0,1255,2320,0,p
+0,0,0,1255,2309,0,p
+0,0,0,1255,2310,0,p
+0,0,0,1255,230,0,p
+0,0,0,1255,231,0,p
+0,0,0,1255,232,0,p
+0,0,0,1255,233,0,p
+0,0,0,1255,234,0,p
+0,0,0,1255,235,0,p
+0,0,0,1255,236,0,p
+0,0,0,1255,237,0,p
+0,0,0,1255,238,0,p
+0,0,0,1255,239,0,p
+0,0,0,1255,240,0,p
+0,0,0,1255,241,0,p
+0,0,0,1255,242,0,p
+0,0,0,1255,243,0,p
+0,0,0,1255,244,0,p
+0,0,0,1255,245,0,p
+0,0,0,1255,246,0,p
+0,0,0,1255,247,0,p
+0,0,0,1255,248,0,p
+0,0,0,1255,249,0,p
+0,0,0,1255,250,0,p
+0,0,0,1255,251,0,p
+0,0,0,1255,252,0,p
+0,0,0,1255,253,0,p
+0,0,0,1255,254,0,p
+0,0,0,1255,255,0,p
+0,0,0,1255,256,0,p
+0,0,0,1255,257,0,p
+0,0,0,1255,258,0,p
+0,0,0,1255,259,0,p
+0,0,0,1255,260,0,p
+0,0,0,1255,261,0,p
+0,0,0,1255,262,0,p
+0,0,0,1255,263,0,p
+0,0,0,1255,264,0,p
+0,0,0,1255,265,0,p
+0,0,0,1255,266,0,p
+0,0,0,1255,267,0,p
+0,0,0,1255,268,0,p
+0,0,0,1255,269,0,p
+0,0,0,1255,270,0,p
+0,0,0,1255,271,0,p
+0,0,0,1255,272,0,p
+0,0,0,1255,273,0,p
+0,0,0,1255,274,0,p
+0,0,0,1255,275,0,p
+0,0,0,1255,277,0,p
+0,0,0,1255,278,0,p
+0,0,0,1255,279,0,p
+0,0,0,1255,280,0,p
+0,0,0,1255,281,0,p
+0,0,0,1255,282,0,p
+0,0,0,1255,283,0,p
+0,0,0,1255,284,0,p
+0,0,0,1255,285,0,p
+0,0,0,1255,286,0,p
+0,0,0,1255,287,0,p
+0,0,0,1255,288,0,p
+0,0,0,1255,289,0,p
+0,0,0,1255,290,0,p
+0,0,0,1255,291,0,p
+0,0,0,1255,292,0,p
+0,0,0,1255,293,0,p
+0,0,0,1255,294,0,p
+0,0,0,1255,295,0,p
+0,0,0,1255,296,0,p
+0,0,0,1255,297,0,p
+0,0,0,1255,298,0,p
+0,0,0,1255,299,0,p
+0,0,0,1255,300,0,p
+0,0,0,1255,301,0,p
+0,0,0,1255,302,0,p
+0,0,0,1255,303,0,p
+0,0,0,1255,304,0,p
+0,0,0,1255,305,0,p
+0,0,0,1255,306,0,p
+0,0,0,1255,307,0,p
+0,0,0,1255,308,0,p
+0,0,0,1255,309,0,p
+0,0,0,1255,310,0,p
+0,0,0,1255,311,0,p
+0,0,0,1255,312,0,p
+0,0,0,1255,313,0,p
+0,0,0,1255,314,0,p
+0,0,0,1255,315,0,p
+0,0,0,1255,316,0,p
+0,0,0,1255,317,0,p
+0,0,0,1255,318,0,p
+0,0,0,1255,319,0,p
+0,0,0,1255,330,0,p
+0,0,0,1255,636,0,p
+0,0,0,1255,331,0,p
+0,0,0,1255,333,0,p
+0,0,0,1255,334,0,p
+0,0,0,1255,335,0,p
+0,0,0,1255,336,0,p
+0,0,0,1255,337,0,p
+0,0,0,1255,338,0,p
+0,0,0,1255,332,0,p
+0,0,0,1255,972,0,p
+0,0,0,1255,1268,0,p
+0,0,0,1255,2785,0,p
+0,0,0,1255,339,0,p
+0,0,0,1255,340,0,p
+0,0,0,1255,341,0,p
+0,0,0,1255,342,0,p
+0,0,0,1255,343,0,p
+0,0,0,1255,344,0,p
+0,0,0,1255,345,0,p
+0,0,0,1255,346,0,p
+0,0,0,1255,347,0,p
+0,0,0,1255,348,0,p
+0,0,0,1255,350,0,p
+0,0,0,1255,351,0,p
+0,0,0,1255,842,0,p
+0,0,0,1255,354,0,p
+0,0,0,1255,355,0,p
+0,0,0,1255,356,0,p
+0,0,0,1255,404,0,p
+0,0,0,1255,357,0,p
+0,0,0,1255,358,0,p
+0,0,0,1255,359,0,p
+0,0,0,1255,360,0,p
+0,0,0,1255,377,0,p
+0,0,0,1255,380,0,p
+0,0,0,1255,381,0,p
+0,0,0,1255,382,0,p
+0,0,0,1255,361,0,p
+0,0,0,1255,362,0,p
+0,0,0,1255,363,0,p
+0,0,0,1255,364,0,p
+0,0,0,1255,365,0,p
+0,0,0,1255,366,0,p
+0,0,0,1255,367,0,p
+0,0,0,1255,368,0,p
+0,0,0,1255,369,0,p
+0,0,0,1255,370,0,p
+0,0,0,1255,371,0,p
+0,0,0,1255,372,0,p
+0,0,0,1255,373,0,p
+0,0,0,1255,401,0,p
+0,0,0,1255,406,0,p
+0,0,0,1255,407,0,p
+0,0,0,1255,408,0,p
+0,0,0,1255,409,0,p
+0,0,0,1255,440,0,p
+0,0,0,1255,637,0,p
+0,0,0,1255,441,0,p
+0,0,0,1255,443,0,p
+0,0,0,1255,444,0,p
+0,0,0,1255,445,0,p
+0,0,0,1255,446,0,p
+0,0,0,1255,447,0,p
+0,0,0,1255,448,0,p
+0,0,0,1255,442,0,p
+0,0,0,1255,425,0,p
+0,0,0,1255,438,0,p
+0,0,0,1255,2786,0,p
+0,0,0,1255,449,0,p
+0,0,0,1255,450,0,p
+0,0,0,1255,949,0,p
+0,0,0,1255,451,0,p
+0,0,0,1255,452,0,p
+0,0,0,1255,453,0,p
+0,0,0,1255,454,0,p
+0,0,0,1255,455,0,p
+0,0,0,1255,400,0,p
+0,0,0,1255,456,0,p
+0,0,0,1255,457,0,p
+0,0,0,1255,329,0,p
+0,0,0,1255,398,0,p
+0,0,0,1255,399,0,p
+0,0,0,1255,422,0,p
+0,0,0,1255,6432,0,p
+0,0,0,1255,458,0,p
+0,0,0,1255,459,0,p
+0,0,0,1255,460,0,p
+0,0,0,1255,461,0,p
+0,0,0,1255,462,0,p
+0,0,0,1255,463,0,p
+0,0,0,1255,464,0,p
+0,0,0,1255,465,0,p
+0,0,0,1255,466,0,p
+0,0,0,1255,467,0,p
+0,0,0,1255,468,0,p
+0,0,0,1255,469,0,p
+0,0,0,1255,470,0,p
+0,0,0,1255,471,0,p
+0,0,0,1255,472,0,p
+0,0,0,1255,474,0,p
+0,0,0,1255,475,0,p
+0,0,0,1255,476,0,p
+0,0,0,1255,477,0,p
+0,0,0,1255,478,0,p
+0,0,0,1255,479,0,p
+0,0,0,1255,480,0,p
+0,0,0,1255,481,0,p
+0,0,0,1255,482,0,p
+0,0,0,1255,483,0,p
+0,0,0,1255,652,0,p
+0,0,0,1255,653,0,p
+0,0,0,1255,714,0,p
+0,0,0,1255,754,0,p
+0,0,0,1255,1285,0,p
+0,0,0,1255,1286,0,p
+0,0,0,1255,655,0,p
+0,0,0,1255,656,0,p
+0,0,0,1255,657,0,p
+0,0,0,1255,658,0,p
+0,0,0,1255,659,0,p
+0,0,0,1255,668,0,p
+0,0,0,1255,669,0,p
+0,0,0,1255,676,0,p
+0,0,0,1255,619,0,p
+0,0,0,1255,677,0,p
+0,0,0,1255,678,0,p
+0,0,0,1255,679,0,p
+0,0,0,1255,680,0,p
+0,0,0,1255,681,0,p
+0,0,0,1255,710,0,p
+0,0,0,1255,716,0,p
+0,0,0,1255,717,0,p
+0,0,0,1255,720,0,p
+0,0,0,1255,721,0,p
+0,0,0,1255,722,0,p
+0,0,0,1255,723,0,p
+0,0,0,1255,724,0,p
+0,0,0,1255,725,0,p
+0,0,0,1255,726,0,p
+0,0,0,1255,727,0,p
+0,0,0,1255,728,0,p
+0,0,0,1255,729,0,p
+0,0,0,1255,740,0,p
+0,0,0,1255,741,0,p
+0,0,0,1255,742,0,p
+0,0,0,1255,743,0,p
+0,0,0,1255,745,0,p
+0,0,0,1255,746,0,p
+0,0,0,1255,744,0,p
+0,0,0,1255,390,0,p
+0,0,0,1255,391,0,p
+0,0,0,1255,392,0,p
+0,0,0,1255,393,0,p
+0,0,0,1255,396,0,p
+0,0,0,1255,747,0,p
+0,0,0,1255,750,0,p
+0,0,0,1255,751,0,p
+0,0,0,1255,2091,0,p
+0,0,0,1255,2092,0,p
+0,0,0,1255,378,0,p
+0,0,0,1255,379,0,p
+0,0,0,1255,383,0,p
+0,0,0,1255,384,0,p
+0,0,0,1255,394,0,p
+0,0,0,1255,395,0,p
+0,0,0,1255,515,0,p
+0,0,0,1255,516,0,p
+0,0,0,1255,6012,0,p
+0,0,0,1255,760,0,p
+0,0,0,1255,761,0,p
+0,0,0,1255,762,0,p
+0,0,0,1255,763,0,p
+0,0,0,1255,764,0,p
+0,0,0,1255,765,0,p
+0,0,0,1255,766,0,p
+0,0,0,1255,768,0,p
+0,0,0,1255,769,0,p
+0,0,0,1255,770,0,p
+0,0,0,1255,771,0,p
+0,0,0,1255,774,0,p
+0,0,0,1255,638,0,p
+0,0,0,1255,775,0,p
+0,0,0,1255,777,0,p
+0,0,0,1255,778,0,p
+0,0,0,1255,779,0,p
+0,0,0,1255,780,0,p
+0,0,0,1255,781,0,p
+0,0,0,1255,782,0,p
+0,0,0,1255,776,0,p
+0,0,0,1255,2561,0,p
+0,0,0,1255,772,0,p
+0,0,0,1255,2787,0,p
+0,0,0,1255,784,0,p
+0,0,0,1255,785,0,p
+0,0,0,1255,786,0,p
+0,0,0,1255,787,0,p
+0,0,0,1255,788,0,p
+0,0,0,1255,789,0,p
+0,0,0,1255,817,0,p
+0,0,0,1255,818,0,p
+0,0,0,1255,819,0,p
+0,0,0,1255,838,0,p
+0,0,0,1255,839,0,p
+0,0,0,1255,840,0,p
+0,0,0,1255,841,0,p
+0,0,0,1255,846,0,p
+0,0,0,1255,847,0,p
+0,0,0,1255,848,0,p
+0,0,0,1255,849,0,p
+0,0,0,1255,850,0,p
+0,0,0,1255,851,0,p
+0,0,0,1255,852,0,p
+0,0,0,1255,853,0,p
+0,0,0,1255,854,0,p
+0,0,0,1255,855,0,p
+0,0,0,1255,856,0,p
+0,0,0,1255,857,0,p
+0,0,0,1255,858,0,p
+0,0,0,1255,859,0,p
+0,0,0,1255,860,0,p
+0,0,0,1255,861,0,p
+0,0,0,1255,862,0,p
+0,0,0,1255,863,0,p
+0,0,0,1255,864,0,p
+0,0,0,1255,865,0,p
+0,0,0,1255,866,0,p
+0,0,0,1255,867,0,p
+0,0,0,1255,886,0,p
+0,0,0,1255,887,0,p
+0,0,0,1255,888,0,p
+0,0,0,1255,889,0,p
+0,0,0,1255,890,0,p
+0,0,0,1255,891,0,p
+0,0,0,1255,892,0,p
+0,0,0,1255,893,0,p
+0,0,0,1255,894,0,p
+0,0,0,1255,895,0,p
+0,0,0,1255,896,0,p
+0,0,0,1255,897,0,p
+0,0,0,1255,898,0,p
+0,0,0,1255,899,0,p
+0,0,0,1255,919,0,p
+0,0,0,1255,935,0,p
+0,0,0,1255,940,0,p
+0,0,0,1255,941,0,p
+0,0,0,1255,942,0,p
+0,0,0,1255,943,0,p
+0,0,0,1255,945,0,p
+0,0,0,1255,947,0,p
+0,0,0,1255,944,0,p
+0,0,0,1255,946,0,p
+0,0,0,1255,950,0,p
+0,0,0,1255,951,0,p
+0,0,0,1255,952,0,p
+0,0,0,1255,953,0,p
+0,0,0,1255,954,0,p
+0,0,0,1255,955,0,p
+0,0,0,1255,956,0,p
+0,0,0,1255,957,0,p
+0,0,0,1255,715,0,p
+0,0,0,1255,958,0,p
+0,0,0,1255,828,0,p
+0,0,0,1255,959,0,p
+0,0,0,1255,960,0,p
+0,0,0,1255,961,0,p
+0,0,0,1255,962,0,p
+0,0,0,1255,963,0,p
+0,0,0,1255,964,0,p
+0,0,0,1255,973,0,p
+0,0,0,1255,975,0,p
+0,0,0,1255,976,0,p
+0,0,0,1255,977,0,p
+0,0,0,1255,978,0,p
+0,0,0,1255,979,0,p
+0,0,0,1255,980,0,p
+0,0,0,1255,981,0,p
+0,0,0,1255,982,0,p
+0,0,0,1255,983,0,p
+0,0,0,1255,984,0,p
+0,0,0,1255,985,0,p
+0,0,0,1255,986,0,p
+0,0,0,1255,987,0,p
+0,0,0,1255,988,0,p
+0,0,0,1255,989,0,p
+0,0,0,1255,990,0,p
+0,0,0,1255,991,0,p
+0,0,0,1255,992,0,p
+0,0,0,1255,993,0,p
+0,0,0,1255,994,0,p
+0,0,0,1255,995,0,p
+0,0,0,1255,996,0,p
+0,0,0,1255,997,0,p
+0,0,0,1255,998,0,p
+0,0,0,1255,999,0,p
+0,0,0,1255,748,0,p
+0,0,0,1255,749,0,p
+0,0,0,1255,837,0,p
+0,0,0,1255,948,0,p
+0,0,0,1255,938,0,p
+0,0,0,1255,939,0,p
+0,0,0,1255,1026,0,p
+0,0,0,1255,1029,0,p
+0,0,0,1255,1030,0,p
+0,0,0,1255,1031,0,p
+0,0,0,1255,1032,0,p
+0,0,0,1255,1035,0,p
+0,0,0,1255,1036,0,p
+0,0,0,1255,1037,0,p
+0,0,0,1255,1062,0,p
+0,0,0,1255,1365,0,p
+0,0,0,1255,1044,0,p
+0,0,0,1255,1045,0,p
+0,0,0,1255,1046,0,p
+0,0,0,1255,1047,0,p
+0,0,0,1255,1048,0,p
+0,0,0,1255,1049,0,p
+0,0,0,1255,1050,0,p
+0,0,0,1255,1051,0,p
+0,0,0,1255,1052,0,p
+0,0,0,1255,1053,0,p
+0,0,0,1255,1063,0,p
+0,0,0,1255,1064,0,p
+0,0,0,1255,1078,0,p
+0,0,0,1255,1080,0,p
+0,0,0,1255,1081,0,p
+0,0,0,1255,1084,0,p
+0,0,0,1255,1085,0,p
+0,0,0,1255,1086,0,p
+0,0,0,1255,1087,0,p
+0,0,0,1255,1088,0,p
+0,0,0,1255,1089,0,p
+0,0,0,1255,1090,0,p
+0,0,0,1255,1091,0,p
+0,0,0,1255,1092,0,p
+0,0,0,1255,1102,0,p
+0,0,0,1255,1103,0,p
+0,0,0,1255,1104,0,p
+0,0,0,1255,1105,0,p
+0,0,0,1255,1106,0,p
+0,0,0,1255,1107,0,p
+0,0,0,1255,1138,0,p
+0,0,0,1255,1139,0,p
+0,0,0,1255,1140,0,p
+0,0,0,1255,1141,0,p
+0,0,0,1255,1142,0,p
+0,0,0,1255,1143,0,p
+0,0,0,1255,1144,0,p
+0,0,0,1255,1145,0,p
+0,0,0,1255,1146,0,p
+0,0,0,1255,1147,0,p
+0,0,0,1255,1148,0,p
+0,0,0,1255,1149,0,p
+0,0,0,1255,1150,0,p
+0,0,0,1255,1151,0,p
+0,0,0,1255,1152,0,p
+0,0,0,1255,1153,0,p
+0,0,0,1255,1154,0,p
+0,0,0,1255,1155,0,p
+0,0,0,1255,1156,0,p
+0,0,0,1255,1157,0,p
+0,0,0,1255,1158,0,p
+0,0,0,1255,1159,0,p
+0,0,0,1255,1160,0,p
+0,0,0,1255,1161,0,p
+0,0,0,1255,1162,0,p
+0,0,0,1255,1163,0,p
+0,0,0,1255,1164,0,p
+0,0,0,1255,1165,0,p
+0,0,0,1255,1166,0,p
+0,0,0,1255,1167,0,p
+0,0,0,1255,1168,0,p
+0,0,0,1255,1169,0,p
+0,0,0,1255,1170,0,p
+0,0,0,1255,1171,0,p
+0,0,0,1255,1172,0,p
+0,0,0,1255,1173,0,p
+0,0,0,1255,1174,0,p
+0,0,0,1255,2711,0,p
+0,0,0,1255,1175,0,p
+0,0,0,1255,1295,0,p
+0,0,0,1255,1176,0,p
+0,0,0,1255,1177,0,p
+0,0,0,1255,1178,0,p
+0,0,0,1255,1179,0,p
+0,0,0,1255,1180,0,p
+0,0,0,1255,1181,0,p
+0,0,0,1255,1188,0,p
+0,0,0,1255,1189,0,p
+0,0,0,1255,1190,0,p
+0,0,0,1255,1191,0,p
+0,0,0,1255,1192,0,p
+0,0,0,1255,1193,0,p
+0,0,0,1255,1194,0,p
+0,0,0,1255,1195,0,p
+0,0,0,1255,1196,0,p
+0,0,0,1255,1197,0,p
+0,0,0,1255,1198,0,p
+0,0,0,1255,1199,0,p
+0,0,0,1255,1200,0,p
+0,0,0,1255,1215,0,p
+0,0,0,1255,1216,0,p
+0,0,0,1255,1993,0,p
+0,0,0,1255,1217,0,p
+0,0,0,1255,1218,0,p
+0,0,0,1255,1219,0,p
+0,0,0,1255,2857,0,p
+0,0,0,1255,2804,0,p
+0,0,0,1255,1230,0,p
+0,0,0,1255,1236,0,p
+0,0,0,1255,1237,0,p
+0,0,0,1255,1238,0,p
+0,0,0,1255,1239,0,p
+0,0,0,1255,1240,0,p
+0,0,0,1255,1241,0,p
+0,0,0,1255,1251,0,p
+0,0,0,1255,1253,0,p
+0,0,0,1255,1263,0,p
+0,0,0,1255,1271,0,p
+0,0,0,1255,1272,0,p
+0,0,0,1255,1273,0,p
+0,0,0,1255,1274,0,p
+0,0,0,1255,1275,0,p
+0,0,0,1255,1276,0,p
+0,0,0,1255,1277,0,p
+0,0,0,1255,1278,0,p
+0,0,0,1255,1279,0,p
+0,0,0,1255,1280,0,p
+0,0,0,1255,1281,0,p
+0,0,0,1255,1287,0,p
+0,0,0,1255,1288,0,p
+0,0,0,1255,1289,0,p
+0,0,0,1255,1290,0,p
+0,0,0,1255,1291,0,p
+0,0,0,1255,1292,0,p
+0,0,0,1255,1293,0,p
+0,0,0,1255,1294,0,p
+0,0,0,1255,1265,0,p
+0,0,0,1255,2790,0,p
+0,0,0,1255,2791,0,p
+0,0,0,1255,2792,0,p
+0,0,0,1255,2793,0,p
+0,0,0,1255,2794,0,p
+0,0,0,1255,2795,0,p
+0,0,0,1255,2796,0,p
+0,0,0,1255,1296,0,p
+0,0,0,1255,1297,0,p
+0,0,0,1255,1298,0,p
+0,0,0,1255,1299,0,p
+0,0,0,1255,2647,0,p
+0,0,0,1255,2648,0,p
+0,0,0,1255,2649,0,p
+0,0,0,1255,1300,0,p
+0,0,0,1255,1301,0,p
+0,0,0,1255,1302,0,p
+0,0,0,1255,1303,0,p
+0,0,0,1255,1304,0,p
+0,0,0,1255,1305,0,p
+0,0,0,1255,1306,0,p
+0,0,0,1255,1307,0,p
+0,0,0,1255,1308,0,p
+0,0,0,1255,1309,0,p
+0,0,0,1255,1310,0,p
+0,0,0,1255,1311,0,p
+0,0,0,1255,1312,0,p
+0,0,0,1255,1313,0,p
+0,0,0,1255,1314,0,p
+0,0,0,1255,1315,0,p
+0,0,0,1255,1316,0,p
+0,0,0,1255,1317,0,p
+0,0,0,1255,1318,0,p
+0,0,0,1255,1319,0,p
+0,0,0,1255,1326,0,p
+0,0,0,1255,1339,0,p
+0,0,0,1255,1340,0,p
+0,0,0,1255,1341,0,p
+0,0,0,1255,1342,0,p
+0,0,0,1255,1343,0,p
+0,0,0,1255,1344,0,p
+0,0,0,1255,1345,0,p
+0,0,0,1255,1346,0,p
+0,0,0,1255,1368,0,p
+0,0,0,1255,1347,0,p
+0,0,0,1255,1348,0,p
+0,0,0,1255,1349,0,p
+0,0,0,1255,1350,0,p
+0,0,0,1255,1351,0,p
+0,0,0,1255,1352,0,p
+0,0,0,1255,1353,0,p
+0,0,0,1255,1354,0,p
+0,0,0,1255,1355,0,p
+0,0,0,1255,1356,0,p
+0,0,0,1255,1357,0,p
+0,0,0,1255,1358,0,p
+0,0,0,1255,1359,0,p
+0,0,0,1255,1364,0,p
+0,0,0,1255,1367,0,p
+0,0,0,1255,1369,0,p
+0,0,0,1255,1370,0,p
+0,0,0,1255,1372,0,p
+0,0,0,1255,1373,0,p
+0,0,0,1255,1374,0,p
+0,0,0,1255,1375,0,p
+0,0,0,1255,1377,0,p
+0,0,0,1255,1378,0,p
+0,0,0,1255,1379,0,p
+0,0,0,1255,1380,0,p
+0,0,0,1255,1381,0,p
+0,0,0,1255,1382,0,p
+0,0,0,1255,1383,0,p
+0,0,0,1255,1384,0,p
+0,0,0,1255,1385,0,p
+0,0,0,1255,1386,0,p
+0,0,0,1255,1388,0,p
+0,0,0,1255,1389,0,p
+0,0,0,1255,1390,0,p
+0,0,0,1255,1376,0,p
+0,0,0,1255,1394,0,p
+0,0,0,1255,1395,0,p
+0,0,0,1255,1396,0,p
+0,0,0,1255,1397,0,p
+0,0,0,1255,1398,0,p
+0,0,0,1255,1400,0,p
+0,0,0,1255,1401,0,p
+0,0,0,1255,1402,0,p
+0,0,0,1255,1403,0,p
+0,0,0,1255,1404,0,p
+0,0,0,1255,1405,0,p
+0,0,0,1255,1406,0,p
+0,0,0,1255,1407,0,p
+0,0,0,1255,1408,0,p
+0,0,0,1255,1409,0,p
+0,0,0,1255,1410,0,p
+0,0,0,1255,1411,0,p
+0,0,0,1255,1412,0,p
+0,0,0,1255,1413,0,p
+0,0,0,1255,1414,0,p
+0,0,0,1255,1415,0,p
+0,0,0,1255,1416,0,p
+0,0,0,1255,1417,0,p
+0,0,0,1255,1418,0,p
+0,0,0,1255,1419,0,p
+0,0,0,1255,1421,0,p
+0,0,0,1255,1422,0,p
+0,0,0,1255,1423,0,p
+0,0,0,1255,1424,0,p
+0,0,0,1255,1425,0,p
+0,0,0,1255,1426,0,p
+0,0,0,1255,1428,0,p
+0,0,0,1255,1429,0,p
+0,0,0,1255,1430,0,p
+0,0,0,1255,1431,0,p
+0,0,0,1255,1432,0,p
+0,0,0,1255,1433,0,p
+0,0,0,1255,1434,0,p
+0,0,0,1255,1435,0,p
+0,0,0,1255,1436,0,p
+0,0,0,1255,1437,0,p
+0,0,0,1255,1438,0,p
+0,0,0,1255,1439,0,p
+0,0,0,1255,1440,0,p
+0,0,0,1255,1441,0,p
+0,0,0,1255,1442,0,p
+0,0,0,1255,1443,0,p
+0,0,0,1255,1444,0,p
+0,0,0,1255,1445,0,p
+0,0,0,1255,1446,0,p
+0,0,0,1255,1447,0,p
+0,0,0,1255,1448,0,p
+0,0,0,1255,1449,0,p
+0,0,0,1255,1450,0,p
+0,0,0,1255,1451,0,p
+0,0,0,1255,1452,0,p
+0,0,0,1255,1453,0,p
+0,0,0,1255,1454,0,p
+0,0,0,1255,1455,0,p
+0,0,0,1255,1456,0,p
+0,0,0,1255,1457,0,p
+0,0,0,1255,1458,0,p
+0,0,0,1255,1459,0,p
+0,0,0,1255,1460,0,p
+0,0,0,1255,1461,0,p
+0,0,0,1255,1462,0,p
+0,0,0,1255,1463,0,p
+0,0,0,1255,1464,0,p
+0,0,0,1255,1465,0,p
+0,0,0,1255,1466,0,p
+0,0,0,1255,1467,0,p
+0,0,0,1255,1468,0,p
+0,0,0,1255,1469,0,p
+0,0,0,1255,1470,0,p
+0,0,0,1255,1471,0,p
+0,0,0,1255,1472,0,p
+0,0,0,1255,1473,0,p
+0,0,0,1255,1474,0,p
+0,0,0,1255,1475,0,p
+0,0,0,1255,1476,0,p
+0,0,0,1255,1477,0,p
+0,0,0,1255,1478,0,p
+0,0,0,1255,1479,0,p
+0,0,0,1255,1480,0,p
+0,0,0,1255,1481,0,p
+0,0,0,1255,1482,0,p
+0,0,0,1255,1483,0,p
+0,0,0,1255,1484,0,p
+0,0,0,1255,1485,0,p
+0,0,0,1255,1486,0,p
+0,0,0,1255,1487,0,p
+0,0,0,1255,1488,0,p
+0,0,0,1255,1489,0,p
+0,0,0,1255,1490,0,p
+0,0,0,1255,1491,0,p
+0,0,0,1255,1492,0,p
+0,0,0,1255,1493,0,p
+0,0,0,1255,1494,0,p
+0,0,0,1255,1495,0,p
+0,0,0,1255,1496,0,p
+0,0,0,1255,1497,0,p
+0,0,0,1255,1498,0,p
+0,0,0,1255,1499,0,p
+0,0,0,1255,1530,0,p
+0,0,0,1255,1531,0,p
+0,0,0,1255,1532,0,p
+0,0,0,1255,1533,0,p
+0,0,0,1255,1534,0,p
+0,0,0,1255,1540,0,p
+0,0,0,1255,1541,0,p
+0,0,0,1255,1542,0,p
+0,0,0,1255,1543,0,p
+0,0,0,1255,1544,0,p
+0,0,0,1255,1545,0,p
+0,0,0,1255,1556,0,p
+0,0,0,1255,1564,0,p
+0,0,0,1255,1565,0,p
+0,0,0,1255,1569,0,p
+0,0,0,1255,1570,0,p
+0,0,0,1255,1571,0,p
+0,0,0,1255,1572,0,p
+0,0,0,1255,1574,0,p
+0,0,0,1255,1575,0,p
+0,0,0,1255,1576,0,p
+0,0,0,1255,1765,0,p
+0,0,0,1255,1579,0,p
+0,0,0,1255,1580,0,p
+0,0,0,1255,1581,0,p
+0,0,0,1255,1582,0,p
+0,0,0,1255,1592,0,p
+0,0,0,1255,1593,0,p
+0,0,0,1255,1594,0,p
+0,0,0,1255,1595,0,p
+0,0,0,1255,1596,0,p
+0,0,0,1255,1598,0,p
+0,0,0,1255,1599,0,p
+0,0,0,1255,1600,0,p
+0,0,0,1255,1601,0,p
+0,0,0,1255,1602,0,p
+0,0,0,1255,1603,0,p
+0,0,0,1255,1604,0,p
+0,0,0,1255,1605,0,p
+0,0,0,1255,1606,0,p
+0,0,0,1255,1607,0,p
+0,0,0,1255,1608,0,p
+0,0,0,1255,1609,0,p
+0,0,0,1255,1610,0,p
+0,0,0,1255,1618,0,p
+0,0,0,1255,1620,0,p
+0,0,0,1255,1621,0,p
+0,0,0,1255,1622,0,p
+0,0,0,1255,1623,0,p
+0,0,0,1255,1624,0,p
+0,0,0,1255,1631,0,p
+0,0,0,1255,1632,0,p
+0,0,0,1255,1633,0,p
+0,0,0,1255,1634,0,p
+0,0,0,1255,1635,0,p
+0,0,0,1255,1636,0,p
+0,0,0,1255,1637,0,p
+0,0,0,1255,1656,0,p
+0,0,0,1255,1657,0,p
+0,0,0,1255,1658,0,p
+0,0,0,1255,1659,0,p
+0,0,0,1255,1660,0,p
+0,0,0,1255,1661,0,p
+0,0,0,1255,1689,0,p
+0,0,0,1255,868,0,p
+0,0,0,1255,870,0,p
+0,0,0,1255,871,0,p
+0,0,0,1255,872,0,p
+0,0,0,1255,873,0,p
+0,0,0,1255,874,0,p
+0,0,0,1255,875,0,p
+0,0,0,1255,876,0,p
+0,0,0,1255,877,0,p
+0,0,0,1255,878,0,p
+0,0,0,1255,879,0,p
+0,0,0,1255,880,0,p
+0,0,0,1255,881,0,p
+0,0,0,1255,882,0,p
+0,0,0,1255,883,0,p
+0,0,0,1255,884,0,p
+0,0,0,1255,885,0,p
+0,0,0,1255,936,0,p
+0,0,0,1255,937,0,p
+0,0,0,1255,2087,0,p
+0,0,0,1255,2284,0,p
+0,0,0,1255,2285,0,p
+0,0,0,1255,5018,0,p
+0,0,0,1255,5019,0,p
+0,0,0,1255,5020,0,p
+0,0,0,1255,5021,0,p
+0,0,0,1255,5022,0,p
+0,0,0,1255,5023,0,p
+0,0,0,1255,2088,0,p
+0,0,0,1255,2089,0,p
+0,0,0,1255,2090,0,p
+0,0,0,1255,1039,0,p
+0,0,0,1255,810,0,p
+0,0,0,1255,1717,0,p
+0,0,0,1255,1813,0,p
+0,0,0,1255,1619,0,p
+0,0,0,1255,1264,0,p
+0,0,0,1255,1597,0,p
+0,0,0,1255,1638,0,p
+0,0,0,1255,1639,0,p
+0,0,0,1255,1573,0,p
+0,0,0,1255,1640,0,p
+0,0,0,1255,1641,0,p
+0,0,0,1255,1642,0,p
+0,0,0,1255,1643,0,p
+0,0,0,1255,1662,0,p
+0,0,0,1255,1387,0,p
+0,0,0,1255,1716,0,p
+0,0,0,1255,1665,0,p
+0,0,0,1255,5024,0,p
+0,0,0,1255,5025,0,p
+0,0,0,1255,5027,0,p
+0,0,0,1255,5028,0,p
+0,0,0,1255,1644,0,p
+0,0,0,1255,1645,0,p
+0,0,0,1255,1646,0,p
+0,0,0,1255,1647,0,p
+0,0,0,1255,1648,0,p
+0,0,0,1255,1649,0,p
+0,0,0,1255,1650,0,p
+0,0,0,1255,1651,0,p
+0,0,0,1255,1652,0,p
+0,0,0,1255,1653,0,p
+0,0,0,1255,1654,0,p
+0,0,0,1255,1655,0,p
+0,0,0,1255,1666,0,p
+0,0,0,1255,1667,0,p
+0,0,0,1255,1668,0,p
+0,0,0,1255,1669,0,p
+0,0,0,1255,1670,0,p
+0,0,0,1255,1671,0,p
+0,0,0,1255,1672,0,p
+0,0,0,1255,1673,0,p
+0,0,0,1255,1674,0,p
+0,0,0,1255,1675,0,p
+0,0,0,1255,1676,0,p
+0,0,0,1255,1677,0,p
+0,0,0,1255,1678,0,p
+0,0,0,1255,1679,0,p
+0,0,0,1255,1680,0,p
+0,0,0,1255,1681,0,p
+0,0,0,1255,1682,0,p
+0,0,0,1255,1683,0,p
+0,0,0,1255,1684,0,p
+0,0,0,1255,1685,0,p
+0,0,0,1255,1687,0,p
+0,0,0,1255,1698,0,p
+0,0,0,1255,1699,0,p
+0,0,0,1255,436,0,p
+0,0,0,1255,437,0,p
+0,0,0,1255,752,0,p
+0,0,0,1255,753,0,p
+0,0,0,1255,767,0,p
+0,0,0,1255,830,0,p
+0,0,0,1255,831,0,p
+0,0,0,1255,832,0,p
+0,0,0,1255,833,0,p
+0,0,0,1255,834,0,p
+0,0,0,1255,835,0,p
+0,0,0,1255,836,0,p
+0,0,0,1255,910,0,p
+0,0,0,1255,911,0,p
+0,0,0,1255,1267,0,p
+0,0,0,1255,1427,0,p
+0,0,0,1255,920,0,p
+0,0,0,1255,921,0,p
+0,0,0,1255,922,0,p
+0,0,0,1255,923,0,p
+0,0,0,1255,924,0,p
+0,0,0,1255,925,0,p
+0,0,0,1255,926,0,p
+0,0,0,1255,927,0,p
+0,0,0,1255,928,0,p
+0,0,0,1255,929,0,p
+0,0,0,1255,930,0,p
+0,0,0,1255,598,0,p
+0,0,0,1255,599,0,p
+0,0,0,1255,605,0,p
+0,0,0,1255,635,0,p
+0,0,0,1255,711,0,p
+0,0,0,1255,683,0,p
+0,0,0,1255,696,0,p
+0,0,0,1255,697,0,p
+0,0,0,1255,698,0,p
+0,0,0,1255,699,0,p
+0,0,0,1255,730,0,p
+0,0,0,1255,1362,0,p
+0,0,0,1255,1713,0,p
+0,0,0,1255,1714,0,p
+0,0,0,1255,1715,0,p
+0,0,0,1255,2196,0,p
+0,0,0,1255,2197,0,p
+0,0,0,1255,2198,0,p
+0,0,0,1255,2199,0,p
+0,0,0,1255,2627,0,p
+0,0,0,1255,2628,0,p
+0,0,0,1255,2629,0,p
+0,0,0,1255,2630,0,p
+0,0,0,1255,2631,0,p
+0,0,0,1255,2632,0,p
+0,0,0,1255,2633,0,p
+0,0,0,1255,1686,0,p
+0,0,0,1255,1688,0,p
+0,0,0,1255,1690,0,p
+0,0,0,1255,1691,0,p
+0,0,0,1255,1692,0,p
+0,0,0,1255,1693,0,p
+0,0,0,1255,1696,0,p
+0,0,0,1255,1697,0,p
+0,0,0,1255,1701,0,p
+0,0,0,1255,1702,0,p
+0,0,0,1255,1703,0,p
+0,0,0,1255,1704,0,p
+0,0,0,1255,1705,0,p
+0,0,0,1255,1706,0,p
+0,0,0,1255,1707,0,p
+0,0,0,1255,1708,0,p
+0,0,0,1255,1709,0,p
+0,0,0,1255,1710,0,p
+0,0,0,1255,1711,0,p
+0,0,0,1255,2167,0,p
+0,0,0,1255,1712,0,p
+0,0,0,1255,1718,0,p
+0,0,0,1255,1719,0,p
+0,0,0,1255,1720,0,p
+0,0,0,1255,1721,0,p
+0,0,0,1255,1722,0,p
+0,0,0,1255,1723,0,p
+0,0,0,1255,1724,0,p
+0,0,0,1255,1725,0,p
+0,0,0,1255,1726,0,p
+0,0,0,1255,1727,0,p
+0,0,0,1255,1728,0,p
+0,0,0,1255,1729,0,p
+0,0,0,1255,1730,0,p
+0,0,0,1255,1731,0,p
+0,0,0,1255,1732,0,p
+0,0,0,1255,1733,0,p
+0,0,0,1255,1734,0,p
+0,0,0,1255,1735,0,p
+0,0,0,1255,1736,0,p
+0,0,0,1255,1737,0,p
+0,0,0,1255,1738,0,p
+0,0,0,1255,2169,0,p
+0,0,0,1255,1739,0,p
+0,0,0,1255,1740,0,p
+0,0,0,1255,1741,0,p
+0,0,0,1255,1742,0,p
+0,0,0,1255,1743,0,p
+0,0,0,1255,1744,0,p
+0,0,0,1255,1745,0,p
+0,0,0,1255,1746,0,p
+0,0,0,1255,2170,0,p
+0,0,0,1255,1747,0,p
+0,0,0,1255,1748,0,p
+0,0,0,1255,1749,0,p
+0,0,0,1255,1750,0,p
+0,0,0,1255,1764,0,p
+0,0,0,1255,1004,0,p
+0,0,0,1255,1766,0,p
+0,0,0,1255,1767,0,p
+0,0,0,1255,1769,0,p
+0,0,0,1255,1771,0,p
+0,0,0,1255,1779,0,p
+0,0,0,1255,1781,0,p
+0,0,0,1255,1782,0,p
+0,0,0,1255,1783,0,p
+0,0,0,1255,1770,0,p
+0,0,0,1255,1772,0,p
+0,0,0,1255,1773,0,p
+0,0,0,1255,1774,0,p
+0,0,0,1255,1775,0,p
+0,0,0,1255,1776,0,p
+0,0,0,1255,1777,0,p
+0,0,0,1255,1778,0,p
+0,0,0,1255,1780,0,p
+0,0,0,1255,1768,0,p
+0,0,0,1255,1282,0,p
+0,0,0,1255,1283,0,p
+0,0,0,1255,1798,0,p
+0,0,0,1255,1799,0,p
+0,0,0,1255,1810,0,p
+0,0,0,1255,1811,0,p
+0,0,0,1255,1812,0,p
+0,0,0,1255,1814,0,p
+0,0,0,1255,1815,0,p
+0,0,0,1255,1816,0,p
+0,0,0,1255,1817,0,p
+0,0,0,1255,1818,0,p
+0,0,0,1255,1819,0,p
+0,0,0,1255,1820,0,p
+0,0,0,1255,1821,0,p
+0,0,0,1255,1822,0,p
+0,0,0,1255,1823,0,p
+0,0,0,1255,1824,0,p
+0,0,0,1255,1825,0,p
+0,0,0,1255,1826,0,p
+0,0,0,1255,1827,0,p
+0,0,0,1255,1828,0,p
+0,0,0,1255,1829,0,p
+0,0,0,1255,1830,0,p
+0,0,0,1255,2512,0,p
+0,0,0,1255,1831,0,p
+0,0,0,1255,2513,0,p
+0,0,0,1255,1832,0,p
+0,0,0,1255,1833,0,p
+0,0,0,1255,3102,0,p
+0,0,0,1255,7309,0,p
+0,0,0,1255,3103,0,p
+0,0,0,1255,1834,0,p
+0,0,0,1255,1835,0,p
+0,0,0,1255,1836,0,p
+0,0,0,1255,7306,0,p
+0,0,0,1255,7307,0,p
+0,0,0,1255,7308,0,p
+0,0,0,1255,1837,0,p
+0,0,0,1255,2514,0,p
+0,0,0,1255,1838,0,p
+0,0,0,1255,2596,0,p
+0,0,0,1255,1839,0,p
+0,0,0,1255,1840,0,p
+0,0,0,1255,1841,0,p
+0,0,0,1255,1842,0,p
+0,0,0,1255,7008,0,p
+0,0,0,1255,7009,0,p
+0,0,0,1255,7010,0,p
+0,0,0,1255,1843,0,p
+0,0,0,1255,6038,0,p
+0,0,0,1255,1844,0,p
+0,0,0,1255,1962,0,p
+0,0,0,1255,1963,0,p
+0,0,0,1255,3100,0,p
+0,0,0,1255,6019,0,p
+0,0,0,1255,6020,0,p
+0,0,0,1255,3101,0,p
+0,0,0,1255,1964,0,p
+0,0,0,1255,2805,0,p
+0,0,0,1255,2806,0,p
+0,0,0,1255,2807,0,p
+0,0,0,1255,2808,0,p
+0,0,0,1255,2809,0,p
+0,0,0,1255,2810,0,p
+0,0,0,1255,2811,0,p
+0,0,0,1255,2812,0,p
+0,0,0,1255,2813,0,p
+0,0,0,1255,2814,0,p
+0,0,0,1255,2815,0,p
+0,0,0,1255,2816,0,p
+0,0,0,1255,2817,0,p
+0,0,0,1255,1845,0,p
+0,0,0,1255,1846,0,p
+0,0,0,1255,1847,0,p
+0,0,0,1255,1848,0,p
+0,0,0,1255,1850,0,p
+0,0,0,1255,1851,0,p
+0,0,0,1255,1852,0,p
+0,0,0,1255,1853,0,p
+0,0,0,1255,1854,0,p
+0,0,0,1255,1855,0,p
+0,0,0,1255,1856,0,p
+0,0,0,1255,1857,0,p
+0,0,0,1255,1858,0,p
+0,0,0,1255,1859,0,p
+0,0,0,1255,1860,0,p
+0,0,0,1255,1861,0,p
+0,0,0,1255,1892,0,p
+0,0,0,1255,1893,0,p
+0,0,0,1255,1894,0,p
+0,0,0,1255,1895,0,p
+0,0,0,1255,1896,0,p
+0,0,0,1255,1897,0,p
+0,0,0,1255,1898,0,p
+0,0,0,1255,1899,0,p
+0,0,0,1255,1900,0,p
+0,0,0,1255,1901,0,p
+0,0,0,1255,1902,0,p
+0,0,0,1255,1903,0,p
+0,0,0,1255,1904,0,p
+0,0,0,1255,1905,0,p
+0,0,0,1255,1906,0,p
+0,0,0,1255,1907,0,p
+0,0,0,1255,1908,0,p
+0,0,0,1255,1909,0,p
+0,0,0,1255,1910,0,p
+0,0,0,1255,1911,0,p
+0,0,0,1255,1912,0,p
+0,0,0,1255,1913,0,p
+0,0,0,1255,1914,0,p
+0,0,0,1255,1915,0,p
+0,0,0,1255,1922,0,p
+0,0,0,1255,1923,0,p
+0,0,0,1255,1924,0,p
+0,0,0,1255,1925,0,p
+0,0,0,1255,1926,0,p
+0,0,0,1255,1927,0,p
+0,0,0,1255,1928,0,p
+0,0,0,1255,1929,0,p
+0,0,0,1255,1930,0,p
+0,0,0,1255,1931,0,p
+0,0,0,1255,1932,0,p
+0,0,0,1255,1933,0,p
+0,0,0,1255,1934,0,p
+0,0,0,1255,1935,0,p
+0,0,0,1255,2781,0,p
+0,0,0,1255,2782,0,p
+0,0,0,1255,2783,0,p
+0,0,0,1255,2784,0,p
+0,0,0,1255,1936,0,p
+0,0,0,1255,2026,0,p
+0,0,0,1255,2274,0,p
+0,0,0,1255,1937,0,p
+0,0,0,1255,1938,0,p
+0,0,0,1255,1939,0,p
+0,0,0,1255,1940,0,p
+0,0,0,1255,2853,0,p
+0,0,0,1255,2094,0,p
+0,0,0,1255,1391,0,p
+0,0,0,1255,1392,0,p
+0,0,0,1255,1393,0,p
+0,0,0,1255,1941,0,p
+0,0,0,1255,1942,0,p
+0,0,0,1255,1943,0,p
+0,0,0,1255,1944,0,p
+0,0,0,1255,1945,0,p
+0,0,0,1255,6031,0,p
+0,0,0,1255,6032,0,p
+0,0,0,1255,6033,0,p
+0,0,0,1255,6034,0,p
+0,0,0,1255,6039,0,p
+0,0,0,1255,6042,0,p
+0,0,0,1255,1946,0,p
+0,0,0,1255,1947,0,p
+0,0,0,1255,1948,0,p
+0,0,0,1255,1949,0,p
+0,0,0,1255,1950,0,p
+0,0,0,1255,1951,0,p
+0,0,0,1255,1952,0,p
+0,0,0,1255,1953,0,p
+0,0,0,1255,1954,0,p
+0,0,0,1255,1961,0,p
+0,0,0,1255,1965,0,p
+0,0,0,1255,1966,0,p
+0,0,0,1255,1967,0,p
+0,0,0,1255,1968,0,p
+0,0,0,1255,1969,0,p
+0,0,0,1255,2005,0,p
+0,0,0,1255,2006,0,p
+0,0,0,1255,2007,0,p
+0,0,0,1255,2008,0,p
+0,0,0,1255,2009,0,p
+0,0,0,1255,2010,0,p
+0,0,0,1255,2011,0,p
+0,0,0,1255,2012,0,p
+0,0,0,1255,2013,0,p
+0,0,0,1255,2085,0,p
+0,0,0,1255,2086,0,p
+0,0,0,1255,2014,0,p
+0,0,0,1255,2015,0,p
+0,0,0,1255,2019,0,p
+0,0,0,1255,2020,0,p
+0,0,0,1255,2021,0,p
+0,0,0,1255,2022,0,p
+0,0,0,1255,2023,0,p
+0,0,0,1255,2024,0,p
+0,0,0,1255,2025,0,p
+0,0,0,1255,2027,0,p
+0,0,0,1255,2028,0,p
+0,0,0,1255,2029,0,p
+0,0,0,1255,2030,0,p
+0,0,0,1255,2031,0,p
+0,0,0,1255,2032,0,p
+0,0,0,1255,2033,0,p
+0,0,0,1255,2034,0,p
+0,0,0,1255,2035,0,p
+0,0,0,1255,2036,0,p
+0,0,0,1255,2037,0,p
+0,0,0,1255,2038,0,p
+0,0,0,1255,2041,0,p
+0,0,0,1255,2042,0,p
+0,0,0,1255,2043,0,p
+0,0,0,1255,2044,0,p
+0,0,0,1255,2045,0,p
+0,0,0,1255,2046,0,p
+0,0,0,1255,2047,0,p
+0,0,0,1255,2048,0,p
+0,0,0,1255,2049,0,p
+0,0,0,1255,2052,0,p
+0,0,0,1255,2053,0,p
+0,0,0,1255,2054,0,p
+0,0,0,1255,2055,0,p
+0,0,0,1255,2056,0,p
+0,0,0,1255,2057,0,p
+0,0,0,1255,2058,0,p
+0,0,0,1255,2059,0,p
+0,0,0,1255,2069,0,p
+0,0,0,1255,2070,0,p
+0,0,0,1255,2071,0,p
+0,0,0,1255,2072,0,p
+0,0,0,1255,2073,0,p
+0,0,0,1255,2074,0,p
+0,0,0,1255,2075,0,p
+0,0,0,1255,2076,0,p
+0,0,0,1255,2077,0,p
+0,0,0,1255,2078,0,p
+0,0,0,1255,2084,0,p
+0,0,0,1255,1371,0,p
+0,0,0,1255,1065,0,p
+0,0,0,1255,2079,0,p
+0,0,0,1255,2080,0,p
+0,0,0,1255,2081,0,p
+0,0,0,1255,2082,0,p
+0,0,0,1255,2083,0,p
+0,0,0,1255,2093,0,p
+0,0,0,1255,2854,0,p
+0,0,0,1255,2855,0,p
+0,0,0,1255,2171,0,p
+0,0,0,1255,2172,0,p
+0,0,0,1255,2173,0,p
+0,0,0,1255,2848,0,p
+0,0,0,1255,2849,0,p
+0,0,0,1255,2852,0,p
+0,0,0,1255,2850,0,p
+0,0,0,1255,2851,0,p
+0,0,0,1255,2621,0,p
+0,0,0,1255,2622,0,p
+0,0,0,1255,2623,0,p
+0,0,0,1255,2624,0,p
+0,0,0,1255,2625,0,p
+0,0,0,1255,2626,0,p
+0,0,0,1255,6030,0,p
+0,0,0,1255,6045,0,p
+0,0,0,1255,6046,0,p
+0,0,0,1255,6047,0,p
+0,0,0,1255,6048,0,p
+0,0,0,1255,6049,0,p
+0,0,0,1255,6050,0,p
+0,0,0,1255,6051,0,p
+0,0,0,1255,2100,0,p
+0,0,0,1255,2101,0,p
+0,0,0,1255,2102,0,p
+0,0,0,1255,2103,0,p
+0,0,0,1255,2104,0,p
+0,0,0,1255,2105,0,p
+0,0,0,1255,2106,0,p
+0,0,0,1255,2107,0,p
+0,0,0,1255,2108,0,p
+0,0,0,1255,2109,0,p
+0,0,0,1255,2110,0,p
+0,0,0,1255,2111,0,p
+0,0,0,1255,2112,0,p
+0,0,0,1255,2113,0,p
+0,0,0,1255,2114,0,p
+0,0,0,1255,2115,0,p
+0,0,0,1255,2116,0,p
+0,0,0,1255,2117,0,p
+0,0,0,1255,2118,0,p
+0,0,0,1255,2119,0,p
+0,0,0,1255,2120,0,p
+0,0,0,1255,2121,0,p
+0,0,0,1255,2122,0,p
+0,0,0,1255,2123,0,p
+0,0,0,1255,2124,0,p
+0,0,0,1255,2125,0,p
+0,0,0,1255,2126,0,p
+0,0,0,1255,2127,0,p
+0,0,0,1255,2128,0,p
+0,0,0,1255,2129,0,p
+0,0,0,1255,2130,0,p
+0,0,0,1255,2050,0,p
+0,0,0,1255,2244,0,p
+0,0,0,1255,2797,0,p
+0,0,0,1255,2131,0,p
+0,0,0,1255,2132,0,p
+0,0,0,1255,2133,0,p
+0,0,0,1255,2134,0,p
+0,0,0,1255,2135,0,p
+0,0,0,1255,2136,0,p
+0,0,0,1255,2137,0,p
+0,0,0,1255,2138,0,p
+0,0,0,1255,2139,0,p
+0,0,0,1255,2140,0,p
+0,0,0,1255,2141,0,p
+0,0,0,1255,2142,0,p
+0,0,0,1255,2143,0,p
+0,0,0,1255,2144,0,p
+0,0,0,1255,2145,0,p
+0,0,0,1255,2146,0,p
+0,0,0,1255,2051,0,p
+0,0,0,1255,2245,0,p
+0,0,0,1255,2798,0,p
+0,0,0,1255,2147,0,p
+0,0,0,1255,2803,0,p
+0,0,0,1255,2718,0,p
+0,0,0,1255,2719,0,p
+0,0,0,1255,2720,0,p
+0,0,0,1255,2721,0,p
+0,0,0,1255,2722,0,p
+0,0,0,1255,2723,0,p
+0,0,0,1255,2641,0,p
+0,0,0,1255,2642,0,p
+0,0,0,1255,2643,0,p
+0,0,0,1255,2644,0,p
+0,0,0,1255,2645,0,p
+0,0,0,1255,2646,0,p
+0,0,0,1255,2148,0,p
+0,0,0,1255,2149,0,p
+0,0,0,1255,2150,0,p
+0,0,0,1255,2151,0,p
+0,0,0,1255,2152,0,p
+0,0,0,1255,2153,0,p
+0,0,0,1255,2724,0,p
+0,0,0,1255,2725,0,p
+0,0,0,1255,2726,0,p
+0,0,0,1255,2727,0,p
+0,0,0,1255,2728,0,p
+0,0,0,1255,2729,0,p
+0,0,0,1255,2712,0,p
+0,0,0,1255,2713,0,p
+0,0,0,1255,2714,0,p
+0,0,0,1255,2715,0,p
+0,0,0,1255,2716,0,p
+0,0,0,1255,2717,0,p
+0,0,0,1255,2154,0,p
+0,0,0,1255,2155,0,p
+0,0,0,1255,2156,0,p
+0,0,0,1255,2157,0,p
+0,0,0,1255,2158,0,p
+0,0,0,1255,2159,0,p
+0,0,0,1255,6013,0,p
+0,0,0,1255,2818,0,p
+0,0,0,1255,2819,0,p
+0,0,0,1255,2820,0,p
+0,0,0,1255,2821,0,p
+0,0,0,1255,2822,0,p
+0,0,0,1255,2823,0,p
+0,0,0,1255,2824,0,p
+0,0,0,1255,2825,0,p
+0,0,0,1255,2826,0,p
+0,0,0,1255,2827,0,p
+0,0,0,1255,2828,0,p
+0,0,0,1255,2829,0,p
+0,0,0,1255,2160,0,p
+0,0,0,1255,2161,0,p
+0,0,0,1255,2162,0,p
+0,0,0,1255,2163,0,p
+0,0,0,1255,2164,0,p
+0,0,0,1255,2165,0,p
+0,0,0,1255,2166,0,p
+0,0,0,1255,7000,0,p
+0,0,0,1255,7001,0,p
+0,0,0,1255,7002,0,p
+0,0,0,1255,7003,0,p
+0,0,0,1255,7004,0,p
+0,0,0,1255,7005,0,p
+0,0,0,1255,7006,0,p
+0,0,0,1255,7007,0,p
+0,0,0,1255,7017,0,p
+0,0,0,1255,7018,0,p
+0,0,0,1255,7019,0,p
+0,0,0,1255,7020,0,p
+0,0,0,1255,7021,0,p
+0,0,0,1255,7022,0,p
+0,0,0,1255,7023,0,p
+0,0,0,1255,7024,0,p
+0,0,0,1255,7025,0,p
+0,0,0,1255,7026,0,p
+0,0,0,1255,7027,0,p
+0,0,0,1255,7028,0,p
+0,0,0,1255,7029,0,p
+0,0,0,1255,7030,0,p
+0,0,0,1255,7031,0,p
+0,0,0,1255,7032,0,p
+0,0,0,1255,7033,0,p
+0,0,0,1255,7034,0,p
+0,0,0,1255,7035,0,p
+0,0,0,1255,7036,0,p
+0,0,0,1255,7037,0,p
+0,0,0,1255,7038,0,p
+0,0,0,1255,7039,0,p
+0,0,0,1255,7040,0,p
+0,0,0,1255,7041,0,p
+0,0,0,1255,7042,0,p
+0,0,0,1255,7043,0,p
+0,0,0,1255,7044,0,p
+0,0,0,1255,7045,0,p
+0,0,0,1255,7046,0,p
+0,0,0,1255,7047,0,p
+0,0,0,1255,7232,0,p
+0,0,0,1255,7256,0,p
+0,0,0,1255,7272,0,p
+0,0,0,1255,7288,0,p
+0,0,0,1255,7012,0,p
+0,0,0,1255,7013,0,p
+0,0,0,1255,7014,0,p
+0,0,0,1255,7015,0,p
+0,0,0,1255,7016,0,p
+0,0,0,1255,7063,0,p
+0,0,0,1255,7072,0,p
+0,0,0,1255,7073,0,p
+0,0,0,1255,7048,0,p
+0,0,0,1255,7049,0,p
+0,0,0,1255,7050,0,p
+0,0,0,1255,7051,0,p
+0,0,0,1255,7052,0,p
+0,0,0,1255,7053,0,p
+0,0,0,1255,7054,0,p
+0,0,0,1255,7055,0,p
+0,0,0,1255,7056,0,p
+0,0,0,1255,7057,0,p
+0,0,0,1255,7058,0,p
+0,0,0,1255,7059,0,p
+0,0,0,1255,7060,0,p
+0,0,0,1255,7061,0,p
+0,0,0,1255,7062,0,p
+0,0,0,1255,7064,0,p
+0,0,0,1255,7065,0,p
+0,0,0,1255,7066,0,p
+0,0,0,1255,7067,0,p
+0,0,0,1255,7068,0,p
+0,0,0,1255,7069,0,p
+0,0,0,1255,7070,0,p
+0,0,0,1255,7071,0,p
+0,0,0,1255,7238,0,p
+0,0,0,1255,7258,0,p
+0,0,0,1255,7274,0,p
+0,0,0,1255,7290,0,p
+0,0,0,1255,7675,0,p
+0,0,0,1255,7491,0,p
+0,0,0,1255,7493,0,p
+0,0,0,1255,7495,0,p
+0,0,0,1255,7497,0,p
+0,0,0,1255,7499,0,p
+0,0,0,1255,7501,0,p
+0,0,0,1255,7503,0,p
+0,0,0,1255,7505,0,p
+0,0,0,1255,7507,0,p
+0,0,0,1255,7509,0,p
+0,0,0,1255,7511,0,p
+0,0,0,1255,7513,0,p
+0,0,0,1255,7515,0,p
+0,0,0,1255,7517,0,p
+0,0,0,1255,7519,0,p
+0,0,0,1255,7521,0,p
+0,0,0,1255,7523,0,p
+0,0,0,1255,7525,0,p
+0,0,0,1255,7527,0,p
+0,0,0,1255,7529,0,p
+0,0,0,1255,7531,0,p
+0,0,0,1255,7533,0,p
+0,0,0,1255,7535,0,p
+0,0,0,1255,7537,0,p
+0,0,0,1255,7539,0,p
+0,0,0,1255,7541,0,p
+0,0,0,1255,7543,0,p
+0,0,0,1255,7545,0,p
+0,0,0,1255,7547,0,p
+0,0,0,1255,7549,0,p
+0,0,0,1255,7551,0,p
+0,0,0,1255,7553,0,p
+0,0,0,1255,7555,0,p
+0,0,0,1255,7557,0,p
+0,0,0,1255,7559,0,p
+0,0,0,1255,7561,0,p
+0,0,0,1255,7563,0,p
+0,0,0,1255,7565,0,p
+0,0,0,1255,7567,0,p
+0,0,0,1255,7569,0,p
+0,0,0,1255,7571,0,p
+0,0,0,1255,7573,0,p
+0,0,0,1255,7575,0,p
+0,0,0,1255,7577,0,p
+0,0,0,1255,7579,0,p
+0,0,0,1255,7581,0,p
+0,0,0,1255,7583,0,p
+0,0,0,1255,7585,0,p
+0,0,0,1255,7587,0,p
+0,0,0,1255,7589,0,p
+0,0,0,1255,7591,0,p
+0,0,0,1255,7593,0,p
+0,0,0,1255,7595,0,p
+0,0,0,1255,7597,0,p
+0,0,0,1255,7599,0,p
+0,0,0,1255,7601,0,p
+0,0,0,1255,7603,0,p
+0,0,0,1255,7605,0,p
+0,0,0,1255,7607,0,p
+0,0,0,1255,7609,0,p
+0,0,0,1255,7611,0,p
+0,0,0,1255,7613,0,p
+0,0,0,1255,7615,0,p
+0,0,0,1255,7617,0,p
+0,0,0,1255,7619,0,p
+0,0,0,1255,7621,0,p
+0,0,0,1255,7623,0,p
+0,0,0,1255,7625,0,p
+0,0,0,1255,7627,0,p
+0,0,0,1255,7629,0,p
+0,0,0,1255,7631,0,p
+0,0,0,1255,7633,0,p
+0,0,0,1255,7635,0,p
+0,0,0,1255,7637,0,p
+0,0,0,1255,7639,0,p
+0,0,0,1255,7641,0,p
+0,0,0,1255,7643,0,p
+0,0,0,1255,7645,0,p
+0,0,0,1255,7647,0,p
+0,0,0,1255,7649,0,p
+0,0,0,1255,7651,0,p
+0,0,0,1255,7653,0,p
+0,0,0,1255,7655,0,p
+0,0,0,1255,7657,0,p
+0,0,0,1255,7659,0,p
+0,0,0,1255,7661,0,p
+0,0,0,1255,7663,0,p
+0,0,0,1255,7665,0,p
+0,0,0,1255,7667,0,p
+0,0,0,1255,7669,0,p
+0,0,0,1255,7671,0,p
+0,0,0,1255,7673,0,p
+0,0,0,1255,7211,0,p
+0,0,0,1255,7212,0,p
+0,0,0,1255,7213,0,p
+0,0,0,1255,7226,0,p
+0,0,0,1255,7228,0,p
+0,0,0,1255,7230,0,p
+0,0,0,1255,7250,0,p
+0,0,0,1255,7252,0,p
+0,0,0,1255,7254,0,p
+0,0,0,1255,7266,0,p
+0,0,0,1255,7268,0,p
+0,0,0,1255,7270,0,p
+0,0,0,1255,7011,0,p
+0,0,0,1255,7074,0,p
+0,0,0,1255,7075,0,p
+0,0,0,1255,7310,0,p
+0,0,0,1255,7312,0,p
+0,0,0,1255,7314,0,p
+0,0,0,1255,7316,0,p
+0,0,0,1255,7318,0,p
+0,0,0,1255,7320,0,p
+0,0,0,1255,7322,0,p
+0,0,0,1255,7324,0,p
+0,0,0,1255,7326,0,p
+0,0,0,1255,7328,0,p
+0,0,0,1255,7330,0,p
+0,0,0,1255,7332,0,p
+0,0,0,1255,7334,0,p
+0,0,0,1255,7336,0,p
+0,0,0,1255,7338,0,p
+0,0,0,1255,7340,0,p
+0,0,0,1255,7342,0,p
+0,0,0,1255,7344,0,p
+0,0,0,1255,7346,0,p
+0,0,0,1255,7348,0,p
+0,0,0,1255,7350,0,p
+0,0,0,1255,7352,0,p
+0,0,0,1255,7354,0,p
+0,0,0,1255,7356,0,p
+0,0,0,1255,7358,0,p
+0,0,0,1255,7360,0,p
+0,0,0,1255,7362,0,p
+0,0,0,1255,7364,0,p
+0,0,0,1255,7366,0,p
+0,0,0,1255,7368,0,p
+0,0,0,1255,7370,0,p
+0,0,0,1255,7372,0,p
+0,0,0,1255,7374,0,p
+0,0,0,1255,7376,0,p
+0,0,0,1255,7378,0,p
+0,0,0,1255,7380,0,p
+0,0,0,1255,7382,0,p
+0,0,0,1255,7384,0,p
+0,0,0,1255,7386,0,p
+0,0,0,1255,7388,0,p
+0,0,0,1255,7390,0,p
+0,0,0,1255,7392,0,p
+0,0,0,1255,7394,0,p
+0,0,0,1255,7396,0,p
+0,0,0,1255,7398,0,p
+0,0,0,1255,7400,0,p
+0,0,0,1255,7402,0,p
+0,0,0,1255,7404,0,p
+0,0,0,1255,7406,0,p
+0,0,0,1255,7408,0,p
+0,0,0,1255,7410,0,p
+0,0,0,1255,7412,0,p
+0,0,0,1255,7414,0,p
+0,0,0,1255,7416,0,p
+0,0,0,1255,7418,0,p
+0,0,0,1255,7420,0,p
+0,0,0,1255,7422,0,p
+0,0,0,1255,7424,0,p
+0,0,0,1255,7426,0,p
+0,0,0,1255,7428,0,p
+0,0,0,1255,7430,0,p
+0,0,0,1255,7432,0,p
+0,0,0,1255,7434,0,p
+0,0,0,1255,7436,0,p
+0,0,0,1255,7438,0,p
+0,0,0,1255,7440,0,p
+0,0,0,1255,7442,0,p
+0,0,0,1255,7444,0,p
+0,0,0,1255,7446,0,p
+0,0,0,1255,7448,0,p
+0,0,0,1255,7450,0,p
+0,0,0,1255,7452,0,p
+0,0,0,1255,7454,0,p
+0,0,0,1255,7456,0,p
+0,0,0,1255,7458,0,p
+0,0,0,1255,7460,0,p
+0,0,0,1255,7462,0,p
+0,0,0,1255,7464,0,p
+0,0,0,1255,7466,0,p
+0,0,0,1255,7468,0,p
+0,0,0,1255,7470,0,p
+0,0,0,1255,7472,0,p
+0,0,0,1255,7474,0,p
+0,0,0,1255,7476,0,p
+0,0,0,1255,7478,0,p
+0,0,0,1255,7480,0,p
+0,0,0,1255,7482,0,p
+0,0,0,1255,7484,0,p
+0,0,0,1255,7486,0,p
+0,0,0,1255,7488,0,p
+0,0,0,1255,7214,0,p
+0,0,0,1255,7215,0,p
+0,0,0,1255,7216,0,p
+0,0,0,1255,7220,0,p
+0,0,0,1255,7222,0,p
+0,0,0,1255,7224,0,p
+0,0,0,1255,7244,0,p
+0,0,0,1255,7246,0,p
+0,0,0,1255,7248,0,p
+0,0,0,1255,7260,0,p
+0,0,0,1255,7262,0,p
+0,0,0,1255,7264,0,p
+0,0,0,1255,2174,0,p
+0,0,0,1255,2175,0,p
+0,0,0,1255,2176,0,p
+0,0,0,1255,2177,0,p
+0,0,0,1255,2178,0,p
+0,0,0,1255,2179,0,p
+0,0,0,1255,2180,0,p
+0,0,0,1255,2181,0,p
+0,0,0,1255,2182,0,p
+0,0,0,1255,2183,0,p
+0,0,0,1255,2184,0,p
+0,0,0,1255,2185,0,p
+0,0,0,1255,2186,0,p
+0,0,0,1255,2187,0,p
+0,0,0,1255,2188,0,p
+0,0,0,1255,2189,0,p
+0,0,0,1255,2190,0,p
+0,0,0,1255,2191,0,p
+0,0,0,1255,2192,0,p
+0,0,0,1255,2193,0,p
+0,0,0,1255,2194,0,p
+0,0,0,1255,2195,0,p
+0,0,0,1255,2212,0,p
+0,0,0,1255,2213,0,p
+0,0,0,1255,2214,0,p
+0,0,0,1255,2215,0,p
+0,0,0,1255,2216,0,p
+0,0,0,1255,2217,0,p
+0,0,0,1255,2218,0,p
+0,0,0,1255,2219,0,p
+0,0,0,1255,2220,0,p
+0,0,0,1255,2221,0,p
+0,0,0,1255,1079,0,p
+0,0,0,1255,2246,0,p
+0,0,0,1255,2247,0,p
+0,0,0,1255,2248,0,p
+0,0,0,1255,2250,0,p
+0,0,0,1255,2251,0,p
+0,0,0,1255,2252,0,p
+0,0,0,1255,2253,0,p
+0,0,0,1255,2254,0,p
+0,0,0,1255,2255,0,p
+0,0,0,1255,2256,0,p
+0,0,0,1255,2257,0,p
+0,0,0,1255,2258,0,p
+0,0,0,1255,2259,0,p
+0,0,0,1255,2260,0,p
+0,0,0,1255,2261,0,p
+0,0,0,1255,2262,0,p
+0,0,0,1255,2263,0,p
+0,0,0,1255,2264,0,p
+0,0,0,1255,2265,0,p
+0,0,0,1255,2266,0,p
+0,0,0,1255,2267,0,p
+0,0,0,1255,2268,0,p
+0,0,0,1255,2269,0,p
+0,0,0,1255,2270,0,p
+0,0,0,1255,2271,0,p
+0,0,0,1255,2272,0,p
+0,0,0,1255,2273,0,p
+0,0,0,1255,2390,0,p
+0,0,0,1255,2391,0,p
+0,0,0,1255,2392,0,p
+0,0,0,1255,2393,0,p
+0,0,0,1255,2394,0,p
+0,0,0,1255,2395,0,p
+0,0,0,1255,2705,0,p
+0,0,0,1255,2706,0,p
+0,0,0,1255,2707,0,p
+0,0,0,1255,2708,0,p
+0,0,0,1255,2709,0,p
+0,0,0,1255,2710,0,p
+0,0,0,1255,1269,0,p
+0,0,0,1255,2322,0,p
+0,0,0,1255,2323,0,p
+0,0,0,1255,2324,0,p
+0,0,0,1255,2168,0,p
+0,0,0,1255,2325,0,p
+0,0,0,1255,2289,0,p
+0,0,0,1255,2286,0,p
+0,0,0,1255,2287,0,p
+0,0,0,1255,2288,0,p
+0,0,0,1255,2290,0,p
+0,0,0,1255,2291,0,p
+0,0,0,1255,2292,0,p
+0,0,0,1255,2293,0,p
+0,0,0,1255,2294,0,p
+0,0,0,1255,2295,0,p
+0,0,0,1255,2296,0,p
+0,0,0,1255,2297,0,p
+0,0,0,1255,2298,0,p
+0,0,0,1255,2299,0,p
+0,0,0,1255,2300,0,p
+0,0,0,1255,2301,0,p
+0,0,0,1255,2302,0,p
+0,0,0,1255,2303,0,p
+0,0,0,1255,2304,0,p
+0,0,0,1255,2305,0,p
+0,0,0,1255,2306,0,p
+0,0,0,1255,2307,0,p
+0,0,0,1255,2312,0,p
+0,0,0,1255,2313,0,p
+0,0,0,1255,2398,0,p
+0,0,0,1255,2399,0,p
+0,0,0,1255,2597,0,p
+0,0,0,1255,2598,0,p
+0,0,0,1255,2311,0,p
+0,0,0,1255,2321,0,p
+0,0,0,1255,2338,0,p
+0,0,0,1255,2339,0,p
+0,0,0,1255,2340,0,p
+0,0,0,1255,2341,0,p
+0,0,0,1255,2342,0,p
+0,0,0,1255,2343,0,p
+0,0,0,1255,2344,0,p
+0,0,0,1255,2351,0,p
+0,0,0,1255,2352,0,p
+0,0,0,1255,2353,0,p
+0,0,0,1255,2354,0,p
+0,0,0,1255,2355,0,p
+0,0,0,1255,2356,0,p
+0,0,0,1255,2357,0,p
+0,0,0,1255,2364,0,p
+0,0,0,1255,2365,0,p
+0,0,0,1255,2366,0,p
+0,0,0,1255,2367,0,p
+0,0,0,1255,2368,0,p
+0,0,0,1255,2369,0,p
+0,0,0,1255,2370,0,p
+0,0,0,1255,2377,0,p
+0,0,0,1255,2378,0,p
+0,0,0,1255,2379,0,p
+0,0,0,1255,2380,0,p
+0,0,0,1255,2381,0,p
+0,0,0,1255,2382,0,p
+0,0,0,1255,2383,0,p
+0,0,0,1255,2520,0,p
+0,0,0,1255,2521,0,p
+0,0,0,1255,2522,0,p
+0,0,0,1255,2523,0,p
+0,0,0,1255,2524,0,p
+0,0,0,1255,2525,0,p
+0,0,0,1255,2526,0,p
+0,0,0,1255,2527,0,p
+0,0,0,1255,2528,0,p
+0,0,0,1255,2529,0,p
+0,0,0,1255,2530,0,p
+0,0,0,1255,2531,0,p
+0,0,0,1255,2532,0,p
+0,0,0,1255,2533,0,p
+0,0,0,1255,2400,0,p
+0,0,0,1255,2401,0,p
+0,0,0,1255,2402,0,p
+0,0,0,1255,2403,0,p
+0,0,0,1255,2404,0,p
+0,0,0,1255,2405,0,p
+0,0,0,1255,2406,0,p
+0,0,0,1255,2407,0,p
+0,0,0,1255,2408,0,p
+0,0,0,1255,2409,0,p
+0,0,0,1255,2410,0,p
+0,0,0,1255,2411,0,p
+0,0,0,1255,2412,0,p
+0,0,0,1255,2413,0,p
+0,0,0,1255,2414,0,p
+0,0,0,1255,2415,0,p
+0,0,0,1255,2416,0,p
+0,0,0,1255,2417,0,p
+0,0,0,1255,2418,0,p
+0,0,0,1255,2419,0,p
+0,0,0,1255,2420,0,p
+0,0,0,1255,2421,0,p
+0,0,0,1255,2422,0,p
+0,0,0,1255,2423,0,p
+0,0,0,1255,2424,0,p
+0,0,0,1255,2425,0,p
+0,0,0,1255,2426,0,p
+0,0,0,1255,2427,0,p
+0,0,0,1255,2428,0,p
+0,0,0,1255,2429,0,p
+0,0,0,1255,2430,0,p
+0,0,0,1255,2431,0,p
+0,0,0,1255,2432,0,p
+0,0,0,1255,2433,0,p
+0,0,0,1255,2434,0,p
+0,0,0,1255,2435,0,p
+0,0,0,1255,2436,0,p
+0,0,0,1255,2437,0,p
+0,0,0,1255,2438,0,p
+0,0,0,1255,2439,0,p
+0,0,0,1255,2440,0,p
+0,0,0,1255,2441,0,p
+0,0,0,1255,2442,0,p
+0,0,0,1255,2443,0,p
+0,0,0,1255,2444,0,p
+0,0,0,1255,2445,0,p
+0,0,0,1255,2446,0,p
+0,0,0,1255,2447,0,p
+0,0,0,1255,2448,0,p
+0,0,0,1255,2449,0,p
+0,0,0,1255,2450,0,p
+0,0,0,1255,2451,0,p
+0,0,0,1255,2452,0,p
+0,0,0,1255,2453,0,p
+0,0,0,1255,2454,0,p
+0,0,0,1255,2455,0,p
+0,0,0,1255,2456,0,p
+0,0,0,1255,2457,0,p
+0,0,0,1255,2458,0,p
+0,0,0,1255,2459,0,p
+0,0,0,1255,2460,0,p
+0,0,0,1255,2461,0,p
+0,0,0,1255,2462,0,p
+0,0,0,1255,2463,0,p
+0,0,0,1255,2464,0,p
+0,0,0,1255,2465,0,p
+0,0,0,1255,2466,0,p
+0,0,0,1255,2467,0,p
+0,0,0,1255,2468,0,p
+0,0,0,1255,2469,0,p
+0,0,0,1255,2470,0,p
+0,0,0,1255,2471,0,p
+0,0,0,1255,2472,0,p
+0,0,0,1255,2473,0,p
+0,0,0,1255,2474,0,p
+0,0,0,1255,2475,0,p
+0,0,0,1255,2476,0,p
+0,0,0,1255,2477,0,p
+0,0,0,1255,2478,0,p
+0,0,0,1255,2479,0,p
+0,0,0,1255,2480,0,p
+0,0,0,1255,2481,0,p
+0,0,0,1255,2482,0,p
+0,0,0,1255,2483,0,p
+0,0,0,1255,2484,0,p
+0,0,0,1255,2485,0,p
+0,0,0,1255,2486,0,p
+0,0,0,1255,2487,0,p
+0,0,0,1255,2488,0,p
+0,0,0,1255,2489,0,p
+0,0,0,1255,2490,0,p
+0,0,0,1255,2491,0,p
+0,0,0,1255,2492,0,p
+0,0,0,1255,2493,0,p
+0,0,0,1255,2494,0,p
+0,0,0,1255,2495,0,p
+0,0,0,1255,2496,0,p
+0,0,0,1255,2497,0,p
+0,0,0,1255,2498,0,p
+0,0,0,1255,2499,0,p
+0,0,0,1255,2500,0,p
+0,0,0,1255,2501,0,p
+0,0,0,1255,2502,0,p
+0,0,0,1255,2503,0,p
+0,0,0,1255,2504,0,p
+0,0,0,1255,2505,0,p
+0,0,0,1255,2506,0,p
+0,0,0,1255,2507,0,p
+0,0,0,1255,2508,0,p
+0,0,0,1255,2509,0,p
+0,0,0,1255,2510,0,p
+0,0,0,1255,2511,0,p
+0,0,0,1255,2599,0,p
+0,0,0,1255,2856,0,p
+0,0,0,1255,1066,0,p
+0,0,0,1255,1067,0,p
+0,0,0,1255,1068,0,p
+0,0,0,1255,1069,0,p
+0,0,0,1255,2515,0,p
+0,0,0,1255,2516,0,p
+0,0,0,1255,2517,0,p
+0,0,0,1255,2518,0,p
+0,0,0,1255,2519,0,p
+0,0,0,1255,2236,0,p
+0,0,0,1255,2237,0,p
+0,0,0,1255,2238,0,p
+0,0,0,1255,2239,0,p
+0,0,0,1255,2240,0,p
+0,0,0,1255,2241,0,p
+0,0,0,1255,2242,0,p
+0,0,0,1255,2243,0,p
+0,0,0,1255,2546,0,p
+0,0,0,1255,2547,0,p
+0,0,0,1255,2548,0,p
+0,0,0,1255,2549,0,p
+0,0,0,1255,2550,0,p
+0,0,0,1255,2556,0,p
+0,0,0,1255,2557,0,p
+0,0,0,1255,2558,0,p
+0,0,0,1255,2559,0,p
+0,0,0,1255,2560,0,p
+0,0,0,1255,2562,0,p
+0,0,0,1255,2563,0,p
+0,0,0,1255,2564,0,p
+0,0,0,1255,2565,0,p
+0,0,0,1255,2566,0,p
+0,0,0,1255,2567,0,p
+0,0,0,1255,2568,0,p
+0,0,0,1255,2569,0,p
+0,0,0,1255,2587,0,p
+0,0,0,1255,2588,0,p
+0,0,0,1255,2578,0,p
+0,0,0,1255,2579,0,p
+0,0,0,1255,2580,0,p
+0,0,0,1255,2581,0,p
+0,0,0,1255,2582,0,p
+0,0,0,1255,2583,0,p
+0,0,0,1255,2584,0,p
+0,0,0,1255,2585,0,p
+0,0,0,1255,2586,0,p
+0,0,0,1255,2591,0,p
+0,0,0,1255,2592,0,p
+0,0,0,1255,2730,0,p
+0,0,0,1255,2731,0,p
+0,0,0,1255,2732,0,p
+0,0,0,1255,2733,0,p
+0,0,0,1255,2734,0,p
+0,0,0,1255,2735,0,p
+0,0,0,1255,2736,0,p
+0,0,0,1255,2737,0,p
+0,0,0,1255,2738,0,p
+0,0,0,1255,2739,0,p
+0,0,0,1255,2740,0,p
+0,0,0,1255,2741,0,p
+0,0,0,1255,2788,0,p
+0,0,0,1255,3200,0,p
+0,0,0,1255,3201,0,p
+0,0,0,1255,3202,0,p
+0,0,0,1255,3203,0,p
+0,0,0,1255,3204,0,p
+0,0,0,1255,3205,0,p
+0,0,0,1255,3206,0,p
+0,0,0,1255,3208,0,p
+0,0,0,1255,3209,0,p
+0,0,0,1255,3210,0,p
+0,0,0,1255,3211,0,p
+0,0,0,1255,3212,0,p
+0,0,0,1255,3213,0,p
+0,0,0,1255,3214,0,p
+0,0,0,1255,3215,0,p
+0,0,0,1255,3216,0,p
+0,0,0,1255,3217,0,p
+0,0,0,1255,3218,0,p
+0,0,0,1255,3219,0,p
+0,0,0,1255,3225,0,p
+0,0,0,1255,3226,0,p
+0,0,0,1255,3227,0,p
+0,0,0,1255,3228,0,p
+0,0,0,1255,3229,0,p
+0,0,0,1255,3230,0,p
+0,0,0,1255,3240,0,p
+0,0,0,1255,3252,0,p
+0,0,0,1255,3253,0,p
+0,0,0,1255,3254,0,p
+0,0,0,1255,3255,0,p
+0,0,0,1255,3256,0,p
+0,0,0,1255,3257,0,p
+0,0,0,1255,3258,0,p
+0,0,0,1255,3259,0,p
+0,0,0,1255,3260,0,p
+0,0,0,1255,3261,0,p
+0,0,0,1255,3262,0,p
+0,0,0,1255,6003,0,p
+0,0,0,1255,6004,0,p
+0,0,0,1255,6005,0,p
+0,0,0,1255,6006,0,p
+0,0,0,1255,6007,0,p
+0,0,0,1255,6008,0,p
+0,0,0,1255,3104,0,p
+0,0,0,1255,6009,0,p
+0,0,0,1255,6010,0,p
+0,0,0,1255,3111,0,p
+0,0,0,1255,6011,0,p
+0,0,0,1255,6015,0,p
+0,0,0,1255,3105,0,p
+0,0,0,1255,6016,0,p
+0,0,0,1255,6017,0,p
+0,0,0,1255,3110,0,p
+0,0,0,1255,6018,0,p
+0,0,0,1255,6014,0,p
+0,0,0,1255,6021,0,p
+0,0,0,1255,6022,0,p
+0,0,0,1255,6023,0,p
+0,0,0,1255,6035,0,p
+0,0,0,1255,6036,0,p
+0,0,0,1255,6037,0,p
+0,0,0,1255,6043,0,p
+0,0,0,1255,6044,0,p
+0,0,0,1255,7100,0,p
+0,0,0,1255,7101,0,p
+0,0,0,1255,7102,0,p
+0,0,0,1255,7490,0,p
+0,0,0,1255,7492,0,p
+0,0,0,1255,7494,0,p
+0,0,0,1255,7496,0,p
+0,0,0,1255,7498,0,p
+0,0,0,1255,7500,0,p
+0,0,0,1255,7502,0,p
+0,0,0,1255,7504,0,p
+0,0,0,1255,7506,0,p
+0,0,0,1255,7508,0,p
+0,0,0,1255,7510,0,p
+0,0,0,1255,7512,0,p
+0,0,0,1255,7514,0,p
+0,0,0,1255,7516,0,p
+0,0,0,1255,7518,0,p
+0,0,0,1255,7520,0,p
+0,0,0,1255,7522,0,p
+0,0,0,1255,7524,0,p
+0,0,0,1255,7526,0,p
+0,0,0,1255,7528,0,p
+0,0,0,1255,7530,0,p
+0,0,0,1255,7532,0,p
+0,0,0,1255,7534,0,p
+0,0,0,1255,7536,0,p
+0,0,0,1255,7538,0,p
+0,0,0,1255,7540,0,p
+0,0,0,1255,7542,0,p
+0,0,0,1255,7544,0,p
+0,0,0,1255,7546,0,p
+0,0,0,1255,7548,0,p
+0,0,0,1255,7550,0,p
+0,0,0,1255,7552,0,p
+0,0,0,1255,7554,0,p
+0,0,0,1255,7556,0,p
+0,0,0,1255,7558,0,p
+0,0,0,1255,7560,0,p
+0,0,0,1255,7562,0,p
+0,0,0,1255,7564,0,p
+0,0,0,1255,7566,0,p
+0,0,0,1255,7568,0,p
+0,0,0,1255,7570,0,p
+0,0,0,1255,7572,0,p
+0,0,0,1255,7574,0,p
+0,0,0,1255,7576,0,p
+0,0,0,1255,7578,0,p
+0,0,0,1255,7580,0,p
+0,0,0,1255,7582,0,p
+0,0,0,1255,7584,0,p
+0,0,0,1255,7586,0,p
+0,0,0,1255,7588,0,p
+0,0,0,1255,7590,0,p
+0,0,0,1255,7592,0,p
+0,0,0,1255,7594,0,p
+0,0,0,1255,7596,0,p
+0,0,0,1255,7598,0,p
+0,0,0,1255,7600,0,p
+0,0,0,1255,7602,0,p
+0,0,0,1255,7604,0,p
+0,0,0,1255,7606,0,p
+0,0,0,1255,7608,0,p
+0,0,0,1255,7610,0,p
+0,0,0,1255,7612,0,p
+0,0,0,1255,7614,0,p
+0,0,0,1255,7616,0,p
+0,0,0,1255,7618,0,p
+0,0,0,1255,7620,0,p
+0,0,0,1255,7622,0,p
+0,0,0,1255,7624,0,p
+0,0,0,1255,7626,0,p
+0,0,0,1255,7628,0,p
+0,0,0,1255,7630,0,p
+0,0,0,1255,7632,0,p
+0,0,0,1255,7634,0,p
+0,0,0,1255,7636,0,p
+0,0,0,1255,7638,0,p
+0,0,0,1255,7640,0,p
+0,0,0,1255,7642,0,p
+0,0,0,1255,7644,0,p
+0,0,0,1255,7646,0,p
+0,0,0,1255,7648,0,p
+0,0,0,1255,7650,0,p
+0,0,0,1255,7652,0,p
+0,0,0,1255,7654,0,p
+0,0,0,1255,7656,0,p
+0,0,0,1255,7658,0,p
+0,0,0,1255,7660,0,p
+0,0,0,1255,7662,0,p
+0,0,0,1255,7664,0,p
+0,0,0,1255,7666,0,p
+0,0,0,1255,7668,0,p
+0,0,0,1255,7670,0,p
+0,0,0,1255,7672,0,p
+0,0,0,1255,7674,0,p
+0,0,0,1255,7208,0,p
+0,0,0,1255,7209,0,p
+0,0,0,1255,7210,0,p
+0,0,0,1255,7227,0,p
+0,0,0,1255,7229,0,p
+0,0,0,1255,7231,0,p
+0,0,0,1255,7251,0,p
+0,0,0,1255,7253,0,p
+0,0,0,1255,7255,0,p
+0,0,0,1255,7267,0,p
+0,0,0,1255,7269,0,p
+0,0,0,1255,7271,0,p
+0,0,0,1255,7106,0,p
+0,0,0,1255,7104,0,p
+0,0,0,1255,7105,0,p
+0,0,0,1255,7311,0,p
+0,0,0,1255,7313,0,p
+0,0,0,1255,7315,0,p
+0,0,0,1255,7317,0,p
+0,0,0,1255,7319,0,p
+0,0,0,1255,7321,0,p
+0,0,0,1255,7323,0,p
+0,0,0,1255,7325,0,p
+0,0,0,1255,7327,0,p
+0,0,0,1255,7329,0,p
+0,0,0,1255,7331,0,p
+0,0,0,1255,7333,0,p
+0,0,0,1255,7335,0,p
+0,0,0,1255,7337,0,p
+0,0,0,1255,7339,0,p
+0,0,0,1255,7341,0,p
+0,0,0,1255,7343,0,p
+0,0,0,1255,7345,0,p
+0,0,0,1255,7347,0,p
+0,0,0,1255,7349,0,p
+0,0,0,1255,7351,0,p
+0,0,0,1255,7353,0,p
+0,0,0,1255,7355,0,p
+0,0,0,1255,7357,0,p
+0,0,0,1255,7359,0,p
+0,0,0,1255,7361,0,p
+0,0,0,1255,7363,0,p
+0,0,0,1255,7365,0,p
+0,0,0,1255,7367,0,p
+0,0,0,1255,7369,0,p
+0,0,0,1255,7371,0,p
+0,0,0,1255,7373,0,p
+0,0,0,1255,7375,0,p
+0,0,0,1255,7377,0,p
+0,0,0,1255,7379,0,p
+0,0,0,1255,7381,0,p
+0,0,0,1255,7383,0,p
+0,0,0,1255,7385,0,p
+0,0,0,1255,7387,0,p
+0,0,0,1255,7389,0,p
+0,0,0,1255,7391,0,p
+0,0,0,1255,7393,0,p
+0,0,0,1255,7395,0,p
+0,0,0,1255,7397,0,p
+0,0,0,1255,7399,0,p
+0,0,0,1255,7401,0,p
+0,0,0,1255,7403,0,p
+0,0,0,1255,7405,0,p
+0,0,0,1255,7407,0,p
+0,0,0,1255,7409,0,p
+0,0,0,1255,7411,0,p
+0,0,0,1255,7413,0,p
+0,0,0,1255,7415,0,p
+0,0,0,1255,7417,0,p
+0,0,0,1255,7419,0,p
+0,0,0,1255,7421,0,p
+0,0,0,1255,7423,0,p
+0,0,0,1255,7425,0,p
+0,0,0,1255,7427,0,p
+0,0,0,1255,7429,0,p
+0,0,0,1255,7431,0,p
+0,0,0,1255,7433,0,p
+0,0,0,1255,7435,0,p
+0,0,0,1255,7437,0,p
+0,0,0,1255,7439,0,p
+0,0,0,1255,7441,0,p
+0,0,0,1255,7443,0,p
+0,0,0,1255,7445,0,p
+0,0,0,1255,7447,0,p
+0,0,0,1255,7449,0,p
+0,0,0,1255,7451,0,p
+0,0,0,1255,7453,0,p
+0,0,0,1255,7455,0,p
+0,0,0,1255,7457,0,p
+0,0,0,1255,7459,0,p
+0,0,0,1255,7461,0,p
+0,0,0,1255,7463,0,p
+0,0,0,1255,7465,0,p
+0,0,0,1255,7467,0,p
+0,0,0,1255,7469,0,p
+0,0,0,1255,7471,0,p
+0,0,0,1255,7473,0,p
+0,0,0,1255,7475,0,p
+0,0,0,1255,7477,0,p
+0,0,0,1255,7479,0,p
+0,0,0,1255,7481,0,p
+0,0,0,1255,7483,0,p
+0,0,0,1255,7485,0,p
+0,0,0,1255,7487,0,p
+0,0,0,1255,7489,0,p
+0,0,0,1255,7217,0,p
+0,0,0,1255,7218,0,p
+0,0,0,1255,7219,0,p
+0,0,0,1255,7221,0,p
+0,0,0,1255,7223,0,p
+0,0,0,1255,7225,0,p
+0,0,0,1255,7245,0,p
+0,0,0,1255,7247,0,p
+0,0,0,1255,7249,0,p
+0,0,0,1255,7261,0,p
+0,0,0,1255,7263,0,p
+0,0,0,1255,7265,0,p
+0,0,0,1255,7111,0,p
+0,0,0,1255,7112,0,p
+0,0,0,1255,7113,0,p
+0,0,0,1255,7114,0,p
+0,0,0,1255,7115,0,p
+0,0,0,1255,7116,0,p
+0,0,0,1255,7117,0,p
+0,0,0,1255,7118,0,p
+0,0,0,1255,7119,0,p
+0,0,0,1255,7120,0,p
+0,0,0,1255,7121,0,p
+0,0,0,1255,7122,0,p
+0,0,0,1255,7123,0,p
+0,0,0,1255,7124,0,p
+0,0,0,1255,7125,0,p
+0,0,0,1255,7126,0,p
+0,0,0,1255,7127,0,p
+0,0,0,1255,7128,0,p
+0,0,0,1255,7129,0,p
+0,0,0,1255,7130,0,p
+0,0,0,1255,7131,0,p
+0,0,0,1255,7132,0,p
+0,0,0,1255,7133,0,p
+0,0,0,1255,7134,0,p
+0,0,0,1255,7135,0,p
+0,0,0,1255,7136,0,p
+0,0,0,1255,7137,0,p
+0,0,0,1255,7138,0,p
+0,0,0,1255,7139,0,p
+0,0,0,1255,7140,0,p
+0,0,0,1255,7141,0,p
+0,0,0,1255,7233,0,p
+0,0,0,1255,7257,0,p
+0,0,0,1255,7273,0,p
+0,0,0,1255,7289,0,p
+0,0,0,1255,7103,0,p
+0,0,0,1255,7107,0,p
+0,0,0,1255,7108,0,p
+0,0,0,1255,7109,0,p
+0,0,0,1255,7110,0,p
+0,0,0,1255,7165,0,p
+0,0,0,1255,7166,0,p
+0,0,0,1255,7167,0,p
+0,0,0,1255,7168,0,p
+0,0,0,1255,7142,0,p
+0,0,0,1255,7143,0,p
+0,0,0,1255,7144,0,p
+0,0,0,1255,7145,0,p
+0,0,0,1255,7146,0,p
+0,0,0,1255,7147,0,p
+0,0,0,1255,7148,0,p
+0,0,0,1255,7149,0,p
+0,0,0,1255,7150,0,p
+0,0,0,1255,7151,0,p
+0,0,0,1255,7152,0,p
+0,0,0,1255,7153,0,p
+0,0,0,1255,7154,0,p
+0,0,0,1255,7155,0,p
+0,0,0,1255,7157,0,p
+0,0,0,1255,7158,0,p
+0,0,0,1255,7159,0,p
+0,0,0,1255,7160,0,p
+0,0,0,1255,7161,0,p
+0,0,0,1255,7162,0,p
+0,0,0,1255,7163,0,p
+0,0,0,1255,7164,0,p
+0,0,0,1255,7239,0,p
+0,0,0,1255,7259,0,p
+0,0,0,1255,7275,0,p
+0,0,0,1255,7291,0,p
+0,0,0,1255,7204,0,p
+0,0,0,1255,7205,0,p
+0,0,0,1255,7206,0,p
+0,0,0,1255,7207,0,p
+0,0,0,1255,7303,0,p
+0,0,0,1255,7304,0,p
+0,0,0,1255,7305,0,p
+0,0,0,1255,7169,0,p
+0,0,0,1255,7170,0,p
+0,0,0,1255,7171,0,p
+0,0,0,1255,7172,0,p
+0,0,0,1255,7173,0,p
+0,0,0,1255,7174,0,p
+0,0,0,1255,2743,0,p
+0,0,0,1255,2744,0,p
+0,0,0,1255,2747,0,p
+0,0,0,1255,2748,0,p
+0,0,0,1255,2749,0,p
+0,0,0,1255,2880,0,p
+0,0,0,1255,2881,0,p
+0,0,0,1255,2882,0,p
+0,0,0,1255,2883,0,p
+0,0,0,1255,2884,0,p
+0,0,0,1255,2885,0,p
+0,0,0,1255,2886,0,p
+0,0,0,1255,2887,0,p
+0,0,0,1255,2888,0,p
+0,0,0,1255,2889,0,p
+0,0,0,1255,2890,0,p
+0,0,0,1255,2891,0,p
+0,0,0,1255,2892,0,p
+0,0,0,1255,3050,0,p
+0,0,0,1255,3051,0,p
+0,0,0,1255,3001,0,p
+0,0,0,1255,3002,0,p
+0,0,0,1255,3003,0,p
+0,0,0,1255,3004,0,p
+0,0,0,1255,3005,0,p
+0,0,0,1255,3006,0,p
+0,0,0,1255,3007,0,p
+0,0,0,1255,3008,0,p
+0,0,0,1255,3009,0,p
+0,0,0,1255,3010,0,p
+0,0,0,1255,3011,0,p
+0,0,0,1255,9999,0,p
+0,0,0,1247,16,0,p
+0,0,0,1247,17,0,p
+0,0,0,1247,18,0,p
+0,0,0,1247,19,0,p
+0,0,0,1247,20,0,p
+0,0,0,1247,21,0,p
+0,0,0,1247,22,0,p
+0,0,0,1247,23,0,p
+0,0,0,1247,24,0,p
+0,0,0,1247,25,0,p
+0,0,0,1247,26,0,p
+0,0,0,1247,27,0,p
+0,0,0,1247,28,0,p
+0,0,0,1247,29,0,p
+0,0,0,1247,30,0,p
+0,0,0,1247,71,0,p
+0,0,0,1247,75,0,p
+0,0,0,1247,81,0,p
+0,0,0,1247,83,0,p
+0,0,0,1247,210,0,p
+0,0,0,1247,600,0,p
+0,0,0,1247,601,0,p
+0,0,0,1247,602,0,p
+0,0,0,1247,603,0,p
+0,0,0,1247,604,0,p
+0,0,0,1247,628,0,p
+0,0,0,1247,629,0,p
+0,0,0,1247,700,0,p
+0,0,0,1247,701,0,p
+0,0,0,1247,702,0,p
+0,0,0,1247,703,0,p
+0,0,0,1247,704,0,p
+0,0,0,1247,705,0,p
+0,0,0,1247,718,0,p
+0,0,0,1247,719,0,p
+0,0,0,1247,790,0,p
+0,0,0,1247,791,0,p
+0,0,0,1247,829,0,p
+0,0,0,1247,869,0,p
+0,0,0,1247,650,0,p
+0,0,0,1247,1000,0,p
+0,0,0,1247,1001,0,p
+0,0,0,1247,1002,0,p
+0,0,0,1247,1003,0,p
+0,0,0,1247,1005,0,p
+0,0,0,1247,1006,0,p
+0,0,0,1247,1007,0,p
+0,0,0,1247,1008,0,p
+0,0,0,1247,1009,0,p
+0,0,0,1247,1028,0,p
+0,0,0,1247,1010,0,p
+0,0,0,1247,1011,0,p
+0,0,0,1247,1012,0,p
+0,0,0,1247,1013,0,p
+0,0,0,1247,1014,0,p
+0,0,0,1247,1015,0,p
+0,0,0,1247,1016,0,p
+0,0,0,1247,1017,0,p
+0,0,0,1247,1018,0,p
+0,0,0,1247,1019,0,p
+0,0,0,1247,1020,0,p
+0,0,0,1247,1021,0,p
+0,0,0,1247,1022,0,p
+0,0,0,1247,1023,0,p
+0,0,0,1247,1024,0,p
+0,0,0,1247,1025,0,p
+0,0,0,1247,1027,0,p
+0,0,0,1247,1033,0,p
+0,0,0,1247,1034,0,p
+0,0,0,1247,1040,0,p
+0,0,0,1247,1041,0,p
+0,0,0,1247,651,0,p
+0,0,0,1247,1042,0,p
+0,0,0,1247,1043,0,p
+0,0,0,1247,1082,0,p
+0,0,0,1247,1083,0,p
+0,0,0,1247,1114,0,p
+0,0,0,1247,1115,0,p
+0,0,0,1247,1182,0,p
+0,0,0,1247,1183,0,p
+0,0,0,1247,1184,0,p
+0,0,0,1247,1185,0,p
+0,0,0,1247,1186,0,p
+0,0,0,1247,1187,0,p
+0,0,0,1247,1231,0,p
+0,0,0,1247,1266,0,p
+0,0,0,1247,1270,0,p
+0,0,0,1247,1560,0,p
+0,0,0,1247,1561,0,p
+0,0,0,1247,1562,0,p
+0,0,0,1247,1563,0,p
+0,0,0,1247,1700,0,p
+0,0,0,1247,1790,0,p
+0,0,0,1247,2201,0,p
+0,0,0,1247,2202,0,p
+0,0,0,1247,2203,0,p
+0,0,0,1247,2204,0,p
+0,0,0,1247,2205,0,p
+0,0,0,1247,2206,0,p
+0,0,0,1247,2207,0,p
+0,0,0,1247,2208,0,p
+0,0,0,1247,2209,0,p
+0,0,0,1247,2210,0,p
+0,0,0,1247,2211,0,p
+0,0,0,1247,3251,0,p
+0,0,0,1247,2249,0,p
+0,0,0,1247,2275,0,p
+0,0,0,1247,2276,0,p
+0,0,0,1247,2277,0,p
+0,0,0,1247,2278,0,p
+0,0,0,1247,2279,0,p
+0,0,0,1247,2280,0,p
+0,0,0,1247,2281,0,p
+0,0,0,1247,2282,0,p
+0,0,0,1247,2283,0,p
+0,0,0,1247,6433,0,p
+0,0,0,1247,6434,0,p
+0,0,0,1247,6436,0,p
+0,0,0,1247,6437,0,p
+0,0,0,1247,10000,0,p
+0,0,0,1247,10001,0,p
+0,0,0,1247,10002,0,p
+0,0,0,1247,10003,0,p
+0,0,0,1247,10004,0,p
+0,0,0,1247,10005,0,p
+0,0,0,1247,10006,0,p
+0,0,0,1247,10007,0,p
+0,0,0,1247,10008,0,p
+0,0,0,1247,10009,0,p
+0,0,0,1247,10010,0,p
+0,0,0,1247,10011,0,p
+0,0,0,1247,10012,0,p
+0,0,0,1247,10013,0,p
+0,0,0,1247,10014,0,p
+0,0,0,1247,10015,0,p
+0,0,0,1247,10016,0,p
+0,0,0,1247,10017,0,p
+0,0,0,1247,10018,0,p
+0,0,0,1247,10276,0,p
+0,0,0,1247,10277,0,p
+0,0,0,1247,10278,0,p
+0,0,0,1247,10279,0,p
+0,0,0,1247,10280,0,p
+0,0,0,1247,10281,0,p
+0,0,0,1247,10282,0,p
+0,0,0,1247,10283,0,p
+0,0,0,1247,10284,0,p
+0,0,0,1247,10285,0,p
+0,0,0,1247,10286,0,p
+0,0,0,1247,10287,0,p
+0,0,0,1247,10288,0,p
+0,0,0,1247,10289,0,p
+0,0,0,1247,10290,0,p
+0,0,0,1247,10291,0,p
+0,0,0,1247,10292,0,p
+0,0,0,1247,10293,0,p
+0,0,0,1247,10294,0,p
+0,0,0,1247,10295,0,p
+0,0,0,1247,10296,0,p
+0,0,0,1247,10297,0,p
+0,0,0,1247,10298,0,p
+0,0,0,1247,10299,0,p
+0,0,0,1247,10300,0,p
+0,0,0,1247,10301,0,p
+0,0,0,1247,10302,0,p
+0,0,0,1247,10303,0,p
+0,0,0,1247,10304,0,p
+0,0,0,1247,10305,0,p
+0,0,0,2605,10019,0,p
+0,0,0,2605,10020,0,p
+0,0,0,2605,10021,0,p
+0,0,0,2605,10022,0,p
+0,0,0,2605,10023,0,p
+0,0,0,2605,10024,0,p
+0,0,0,2605,10025,0,p
+0,0,0,2605,10026,0,p
+0,0,0,2605,10027,0,p
+0,0,0,2605,10028,0,p
+0,0,0,2605,10029,0,p
+0,0,0,2605,10030,0,p
+0,0,0,2605,10031,0,p
+0,0,0,2605,10032,0,p
+0,0,0,2605,10033,0,p
+0,0,0,2605,10034,0,p
+0,0,0,2605,10035,0,p
+0,0,0,2605,10036,0,p
+0,0,0,2605,10037,0,p
+0,0,0,2605,10038,0,p
+0,0,0,2605,10039,0,p
+0,0,0,2605,10040,0,p
+0,0,0,2605,10041,0,p
+0,0,0,2605,10042,0,p
+0,0,0,2605,10043,0,p
+0,0,0,2605,10044,0,p
+0,0,0,2605,10045,0,p
+0,0,0,2605,10046,0,p
+0,0,0,2605,10047,0,p
+0,0,0,2605,10048,0,p
+0,0,0,2605,10049,0,p
+0,0,0,2605,10050,0,p
+0,0,0,2605,10051,0,p
+0,0,0,2605,10052,0,p
+0,0,0,2605,10053,0,p
+0,0,0,2605,10054,0,p
+0,0,0,2605,10055,0,p
+0,0,0,2605,10056,0,p
+0,0,0,2605,10057,0,p
+0,0,0,2605,10058,0,p
+0,0,0,2605,10059,0,p
+0,0,0,2605,10060,0,p
+0,0,0,2605,10061,0,p
+0,0,0,2605,10062,0,p
+0,0,0,2605,10063,0,p
+0,0,0,2605,10064,0,p
+0,0,0,2605,10065,0,p
+0,0,0,2605,10066,0,p
+0,0,0,2605,10067,0,p
+0,0,0,2605,10068,0,p
+0,0,0,2605,10069,0,p
+0,0,0,2605,10070,0,p
+0,0,0,2605,10071,0,p
+0,0,0,2605,10072,0,p
+0,0,0,2605,10073,0,p
+0,0,0,2605,10074,0,p
+0,0,0,2605,10075,0,p
+0,0,0,2605,10076,0,p
+0,0,0,2605,10077,0,p
+0,0,0,2605,10078,0,p
+0,0,0,2605,10079,0,p
+0,0,0,2605,10080,0,p
+0,0,0,2605,10081,0,p
+0,0,0,2605,10082,0,p
+0,0,0,2605,10083,0,p
+0,0,0,2605,10084,0,p
+0,0,0,2605,10085,0,p
+0,0,0,2605,10086,0,p
+0,0,0,2605,10087,0,p
+0,0,0,2605,10088,0,p
+0,0,0,2605,10089,0,p
+0,0,0,2605,10090,0,p
+0,0,0,2605,10091,0,p
+0,0,0,2605,10092,0,p
+0,0,0,2605,10093,0,p
+0,0,0,2605,10094,0,p
+0,0,0,2605,10095,0,p
+0,0,0,2605,10096,0,p
+0,0,0,2605,10097,0,p
+0,0,0,2605,10098,0,p
+0,0,0,2605,10099,0,p
+0,0,0,2605,10100,0,p
+0,0,0,2605,10101,0,p
+0,0,0,2605,10102,0,p
+0,0,0,2605,10103,0,p
+0,0,0,2605,10104,0,p
+0,0,0,2605,10105,0,p
+0,0,0,2605,10106,0,p
+0,0,0,2605,10107,0,p
+0,0,0,2605,10108,0,p
+0,0,0,2605,10109,0,p
+0,0,0,2605,10110,0,p
+0,0,0,2605,10111,0,p
+0,0,0,2605,10112,0,p
+0,0,0,2605,10113,0,p
+0,0,0,2605,10114,0,p
+0,0,0,2605,10115,0,p
+0,0,0,2605,10116,0,p
+0,0,0,2605,10117,0,p
+0,0,0,2605,10118,0,p
+0,0,0,2605,10119,0,p
+0,0,0,2605,10120,0,p
+0,0,0,2605,10121,0,p
+0,0,0,2605,10122,0,p
+0,0,0,2605,10123,0,p
+0,0,0,2605,10124,0,p
+0,0,0,2605,10125,0,p
+0,0,0,2605,10126,0,p
+0,0,0,2605,10127,0,p
+0,0,0,2605,10128,0,p
+0,0,0,2605,10129,0,p
+0,0,0,2605,10130,0,p
+0,0,0,2605,10131,0,p
+0,0,0,2605,10132,0,p
+0,0,0,2605,10133,0,p
+0,0,0,2605,10134,0,p
+0,0,0,2605,10135,0,p
+0,0,0,2605,10136,0,p
+0,0,0,2605,10137,0,p
+0,0,0,2605,10138,0,p
+0,0,0,2605,10139,0,p
+0,0,0,2605,10140,0,p
+0,0,0,2605,10141,0,p
+0,0,0,2605,10142,0,p
+0,0,0,2605,10143,0,p
+0,0,0,2605,10144,0,p
+0,0,0,2605,10145,0,p
+0,0,0,2605,10146,0,p
+0,0,0,2605,10147,0,p
+0,0,0,2605,10148,0,p
+0,0,0,2605,10149,0,p
+0,0,0,2605,10150,0,p
+0,0,0,2605,10151,0,p
+0,0,0,2605,10152,0,p
+0,0,0,2605,10153,0,p
+0,0,0,2605,10154,0,p
+0,0,0,2605,10155,0,p
+0,0,0,2605,10156,0,p
+0,0,0,2605,10157,0,p
+0,0,0,2605,10158,0,p
+0,0,0,2605,10159,0,p
+0,0,0,2605,10160,0,p
+0,0,0,2605,10161,0,p
+0,0,0,2605,10162,0,p
+0,0,0,2605,10163,0,p
+0,0,0,2605,10164,0,p
+0,0,0,2605,10165,0,p
+0,0,0,2605,10166,0,p
+0,0,0,2605,10167,0,p
+0,0,0,2605,10168,0,p
+0,0,0,2605,10169,0,p
+0,0,0,2605,10170,0,p
+0,0,0,2605,10171,0,p
+0,0,0,2605,10172,0,p
+0,0,0,2605,10173,0,p
+0,0,0,2605,10174,0,p
+0,0,0,2605,10175,0,p
+0,0,0,2605,10176,0,p
+0,0,0,2605,10177,0,p
+0,0,0,2605,10178,0,p
+0,0,0,2605,10179,0,p
+0,0,0,2605,10180,0,p
+0,0,0,2605,10181,0,p
+0,0,0,2605,10182,0,p
+0,0,0,2605,10183,0,p
+0,0,0,2605,10184,0,p
+0,0,0,2605,10185,0,p
+0,0,0,2605,10186,0,p
+0,0,0,2605,10187,0,p
+0,0,0,2605,10188,0,p
+0,0,0,2605,10189,0,p
+0,0,0,2605,10190,0,p
+0,0,0,2605,10191,0,p
+0,0,0,2605,10192,0,p
+0,0,0,2605,10193,0,p
+0,0,0,2605,10194,0,p
+0,0,0,2605,10195,0,p
+0,0,0,2605,10196,0,p
+0,0,0,2605,10197,0,p
+0,0,0,2605,10198,0,p
+0,0,0,2605,10199,0,p
+0,0,0,2605,10200,0,p
+0,0,0,2605,10201,0,p
+0,0,0,2605,10202,0,p
+0,0,0,2605,10203,0,p
+0,0,0,2605,10204,0,p
+0,0,0,2605,10205,0,p
+0,0,0,2605,10206,0,p
+0,0,0,2605,10207,0,p
+0,0,0,2605,10208,0,p
+0,0,0,2605,10209,0,p
+0,0,0,2605,10210,0,p
+0,0,0,2605,10211,0,p
+0,0,0,2605,10212,0,p
+0,0,0,2605,10213,0,p
+0,0,0,2605,10214,0,p
+0,0,0,2605,10215,0,p
+0,0,0,2605,10216,0,p
+0,0,0,2605,10217,0,p
+0,0,0,2605,10218,0,p
+0,0,0,2605,10219,0,p
+0,0,0,2605,10220,0,p
+0,0,0,2605,10221,0,p
+0,0,0,2605,10222,0,p
+0,0,0,2605,10223,0,p
+0,0,0,2605,10224,0,p
+0,0,0,2605,10225,0,p
+0,0,0,2605,10226,0,p
+0,0,0,2605,10227,0,p
+0,0,0,2605,10228,0,p
+0,0,0,2605,10229,0,p
+0,0,0,2605,10230,0,p
+0,0,0,2605,10231,0,p
+0,0,0,2605,10232,0,p
+0,0,0,2605,10233,0,p
+0,0,0,2605,10234,0,p
+0,0,0,2605,10235,0,p
+0,0,0,2605,10236,0,p
+0,0,0,2605,10237,0,p
+0,0,0,2605,10238,0,p
+0,0,0,2605,10239,0,p
+0,0,0,2605,10240,0,p
+0,0,0,2605,10241,0,p
+0,0,0,2605,10242,0,p
+0,0,0,2605,10243,0,p
+0,0,0,2605,10244,0,p
+0,0,0,2605,10245,0,p
+0,0,0,2605,10246,0,p
+0,0,0,2605,10247,0,p
+0,0,0,2605,10248,0,p
+0,0,0,2605,10249,0,p
+0,0,0,2605,10250,0,p
+0,0,0,2605,10251,0,p
+0,0,0,2605,10252,0,p
+0,0,0,2605,10253,0,p
+0,0,0,2605,10254,0,p
+0,0,0,2605,10255,0,p
+0,0,0,2605,10256,0,p
+0,0,0,2605,10257,0,p
+0,0,0,2605,10258,0,p
+0,0,0,2605,10259,0,p
+0,0,0,2605,10260,0,p
+0,0,0,2605,10261,0,p
+0,0,0,2605,10262,0,p
+0,0,0,2605,10263,0,p
+0,0,0,2605,10264,0,p
+0,0,0,2605,10265,0,p
+0,0,0,2605,10266,0,p
+0,0,0,2605,10267,0,p
+0,0,0,2605,10268,0,p
+0,0,0,2605,10269,0,p
+0,0,0,2605,10270,0,p
+0,0,0,2605,10271,0,p
+0,0,0,2605,10272,0,p
+0,0,0,2605,10273,0,p
+0,0,0,2605,10274,0,p
+0,0,0,2605,10275,0,p
+0,0,0,2612,12,0,p
+0,0,0,2612,13,0,p
+0,0,0,2612,14,0,p
+0,0,0,2617,15,0,p
+0,0,0,2617,36,0,p
+0,0,0,2617,37,0,p
+0,0,0,2617,76,0,p
+0,0,0,2617,80,0,p
+0,0,0,2617,82,0,p
+0,0,0,2617,58,0,p
+0,0,0,2617,59,0,p
+0,0,0,2617,85,0,p
+0,0,0,2617,91,0,p
+0,0,0,2617,1694,0,p
+0,0,0,2617,1695,0,p
+0,0,0,2617,92,0,p
+0,0,0,2617,93,0,p
+0,0,0,2617,94,0,p
+0,0,0,2617,95,0,p
+0,0,0,2617,96,0,p
+0,0,0,2617,97,0,p
+0,0,0,2617,98,0,p
+0,0,0,2617,349,0,p
+0,0,0,2617,374,0,p
+0,0,0,2617,375,0,p
+0,0,0,2617,352,0,p
+0,0,0,2617,353,0,p
+0,0,0,2617,388,0,p
+0,0,0,2617,389,0,p
+0,0,0,2617,385,0,p
+0,0,0,2617,386,0,p
+0,0,0,2617,387,0,p
+0,0,0,2617,402,0,p
+0,0,0,2617,2799,0,p
+0,0,0,2617,2800,0,p
+0,0,0,2617,2801,0,p
+0,0,0,2617,2802,0,p
+0,0,0,2617,410,0,p
+0,0,0,2617,411,0,p
+0,0,0,2617,412,0,p
+0,0,0,2617,413,0,p
+0,0,0,2617,414,0,p
+0,0,0,2617,415,0,p
+0,0,0,2617,416,0,p
+0,0,0,2617,417,0,p
+0,0,0,2617,418,0,p
+0,0,0,2617,419,0,p
+0,0,0,2617,420,0,p
+0,0,0,2617,430,0,p
+0,0,0,2617,439,0,p
+0,0,0,2617,473,0,p
+0,0,0,2617,484,0,p
+0,0,0,2617,485,0,p
+0,0,0,2617,486,0,p
+0,0,0,2617,487,0,p
+0,0,0,2617,488,0,p
+0,0,0,2617,489,0,p
+0,0,0,2617,490,0,p
+0,0,0,2617,491,0,p
+0,0,0,2617,492,0,p
+0,0,0,2617,493,0,p
+0,0,0,2617,494,0,p
+0,0,0,2617,495,0,p
+0,0,0,2617,496,0,p
+0,0,0,2617,497,0,p
+0,0,0,2617,498,0,p
+0,0,0,2617,499,0,p
+0,0,0,2617,500,0,p
+0,0,0,2617,501,0,p
+0,0,0,2617,502,0,p
+0,0,0,2617,503,0,p
+0,0,0,2617,504,0,p
+0,0,0,2617,505,0,p
+0,0,0,2617,506,0,p
+0,0,0,2617,507,0,p
+0,0,0,2617,508,0,p
+0,0,0,2617,509,0,p
+0,0,0,2617,510,0,p
+0,0,0,2617,511,0,p
+0,0,0,2617,512,0,p
+0,0,0,2617,513,0,p
+0,0,0,2617,514,0,p
+0,0,0,2617,517,0,p
+0,0,0,2617,518,0,p
+0,0,0,2617,519,0,p
+0,0,0,2617,520,0,p
+0,0,0,2617,521,0,p
+0,0,0,2617,522,0,p
+0,0,0,2617,523,0,p
+0,0,0,2617,524,0,p
+0,0,0,2617,525,0,p
+0,0,0,2617,526,0,p
+0,0,0,2617,527,0,p
+0,0,0,2617,528,0,p
+0,0,0,2617,529,0,p
+0,0,0,2617,530,0,p
+0,0,0,2617,531,0,p
+0,0,0,2617,532,0,p
+0,0,0,2617,533,0,p
+0,0,0,2617,534,0,p
+0,0,0,2617,535,0,p
+0,0,0,2617,536,0,p
+0,0,0,2617,537,0,p
+0,0,0,2617,538,0,p
+0,0,0,2617,539,0,p
+0,0,0,2617,540,0,p
+0,0,0,2617,541,0,p
+0,0,0,2617,542,0,p
+0,0,0,2617,543,0,p
+0,0,0,2617,544,0,p
+0,0,0,2617,545,0,p
+0,0,0,2617,546,0,p
+0,0,0,2617,547,0,p
+0,0,0,2617,548,0,p
+0,0,0,2617,549,0,p
+0,0,0,2617,550,0,p
+0,0,0,2617,551,0,p
+0,0,0,2617,552,0,p
+0,0,0,2617,553,0,p
+0,0,0,2617,554,0,p
+0,0,0,2617,555,0,p
+0,0,0,2617,556,0,p
+0,0,0,2617,557,0,p
+0,0,0,2617,558,0,p
+0,0,0,2617,559,0,p
+0,0,0,2617,560,0,p
+0,0,0,2617,561,0,p
+0,0,0,2617,562,0,p
+0,0,0,2617,563,0,p
+0,0,0,2617,564,0,p
+0,0,0,2617,565,0,p
+0,0,0,2617,566,0,p
+0,0,0,2617,567,0,p
+0,0,0,2617,568,0,p
+0,0,0,2617,569,0,p
+0,0,0,2617,570,0,p
+0,0,0,2617,571,0,p
+0,0,0,2617,572,0,p
+0,0,0,2617,573,0,p
+0,0,0,2617,574,0,p
+0,0,0,2617,575,0,p
+0,0,0,2617,576,0,p
+0,0,0,2617,577,0,p
+0,0,0,2617,578,0,p
+0,0,0,2617,579,0,p
+0,0,0,2617,580,0,p
+0,0,0,2617,581,0,p
+0,0,0,2617,582,0,p
+0,0,0,2617,583,0,p
+0,0,0,2617,584,0,p
+0,0,0,2617,585,0,p
+0,0,0,2617,586,0,p
+0,0,0,2617,587,0,p
+0,0,0,2617,588,0,p
+0,0,0,2617,589,0,p
+0,0,0,2617,590,0,p
+0,0,0,2617,591,0,p
+0,0,0,2617,592,0,p
+0,0,0,2617,593,0,p
+0,0,0,2617,594,0,p
+0,0,0,2617,595,0,p
+0,0,0,2617,596,0,p
+0,0,0,2617,597,0,p
+0,0,0,2617,1284,0,p
+0,0,0,2617,606,0,p
+0,0,0,2617,607,0,p
+0,0,0,2617,608,0,p
+0,0,0,2617,609,0,p
+0,0,0,2617,610,0,p
+0,0,0,2617,611,0,p
+0,0,0,2617,612,0,p
+0,0,0,2617,644,0,p
+0,0,0,2617,645,0,p
+0,0,0,2617,646,0,p
+0,0,0,2617,647,0,p
+0,0,0,2617,648,0,p
+0,0,0,2617,649,0,p
+0,0,0,2617,613,0,p
+0,0,0,2617,614,0,p
+0,0,0,2617,615,0,p
+0,0,0,2617,616,0,p
+0,0,0,2617,617,0,p
+0,0,0,2617,618,0,p
+0,0,0,2617,620,0,p
+0,0,0,2617,621,0,p
+0,0,0,2617,622,0,p
+0,0,0,2617,623,0,p
+0,0,0,2617,624,0,p
+0,0,0,2617,625,0,p
+0,0,0,2617,626,0,p
+0,0,0,2617,627,0,p
+0,0,0,2617,630,0,p
+0,0,0,2617,631,0,p
+0,0,0,2617,632,0,p
+0,0,0,2617,633,0,p
+0,0,0,2617,634,0,p
+0,0,0,2617,639,0,p
+0,0,0,2617,640,0,p
+0,0,0,2617,641,0,p
+0,0,0,2617,642,0,p
+0,0,0,2617,643,0,p
+0,0,0,2617,654,0,p
+0,0,0,2617,660,0,p
+0,0,0,2617,661,0,p
+0,0,0,2617,662,0,p
+0,0,0,2617,663,0,p
+0,0,0,2617,664,0,p
+0,0,0,2617,665,0,p
+0,0,0,2617,666,0,p
+0,0,0,2617,667,0,p
+0,0,0,2617,670,0,p
+0,0,0,2617,671,0,p
+0,0,0,2617,672,0,p
+0,0,0,2617,673,0,p
+0,0,0,2617,674,0,p
+0,0,0,2617,675,0,p
+0,0,0,2617,682,0,p
+0,0,0,2617,684,0,p
+0,0,0,2617,685,0,p
+0,0,0,2617,686,0,p
+0,0,0,2617,687,0,p
+0,0,0,2617,688,0,p
+0,0,0,2617,689,0,p
+0,0,0,2617,690,0,p
+0,0,0,2617,691,0,p
+0,0,0,2617,692,0,p
+0,0,0,2617,693,0,p
+0,0,0,2617,694,0,p
+0,0,0,2617,695,0,p
+0,0,0,2617,706,0,p
+0,0,0,2617,707,0,p
+0,0,0,2617,708,0,p
+0,0,0,2617,709,0,p
+0,0,0,2617,712,0,p
+0,0,0,2617,713,0,p
+0,0,0,2617,731,0,p
+0,0,0,2617,732,0,p
+0,0,0,2617,733,0,p
+0,0,0,2617,734,0,p
+0,0,0,2617,735,0,p
+0,0,0,2617,736,0,p
+0,0,0,2617,737,0,p
+0,0,0,2617,738,0,p
+0,0,0,2617,739,0,p
+0,0,0,2617,755,0,p
+0,0,0,2617,756,0,p
+0,0,0,2617,757,0,p
+0,0,0,2617,758,0,p
+0,0,0,2617,759,0,p
+0,0,0,2617,773,0,p
+0,0,0,2617,792,0,p
+0,0,0,2617,793,0,p
+0,0,0,2617,794,0,p
+0,0,0,2617,795,0,p
+0,0,0,2617,796,0,p
+0,0,0,2617,797,0,p
+0,0,0,2617,798,0,p
+0,0,0,2617,799,0,p
+0,0,0,2617,800,0,p
+0,0,0,2617,801,0,p
+0,0,0,2617,802,0,p
+0,0,0,2617,803,0,p
+0,0,0,2617,804,0,p
+0,0,0,2617,805,0,p
+0,0,0,2617,806,0,p
+0,0,0,2617,807,0,p
+0,0,0,2617,808,0,p
+0,0,0,2617,809,0,p
+0,0,0,2617,811,0,p
+0,0,0,2617,812,0,p
+0,0,0,2617,813,0,p
+0,0,0,2617,814,0,p
+0,0,0,2617,815,0,p
+0,0,0,2617,816,0,p
+0,0,0,2617,843,0,p
+0,0,0,2617,844,0,p
+0,0,0,2617,845,0,p
+0,0,0,2617,900,0,p
+0,0,0,2617,901,0,p
+0,0,0,2617,902,0,p
+0,0,0,2617,903,0,p
+0,0,0,2617,904,0,p
+0,0,0,2617,905,0,p
+0,0,0,2617,906,0,p
+0,0,0,2617,907,0,p
+0,0,0,2617,908,0,p
+0,0,0,2617,909,0,p
+0,0,0,2617,912,0,p
+0,0,0,2617,913,0,p
+0,0,0,2617,914,0,p
+0,0,0,2617,915,0,p
+0,0,0,2617,916,0,p
+0,0,0,2617,917,0,p
+0,0,0,2617,918,0,p
+0,0,0,2617,965,0,p
+0,0,0,2617,966,0,p
+0,0,0,2617,967,0,p
+0,0,0,2617,968,0,p
+0,0,0,2617,974,0,p
+0,0,0,2617,969,0,p
+0,0,0,2617,970,0,p
+0,0,0,2617,971,0,p
+0,0,0,2617,1054,0,p
+0,0,0,2617,1055,0,p
+0,0,0,2617,1056,0,p
+0,0,0,2617,1057,0,p
+0,0,0,2617,1058,0,p
+0,0,0,2617,1059,0,p
+0,0,0,2617,1060,0,p
+0,0,0,2617,1061,0,p
+0,0,0,2617,1070,0,p
+0,0,0,2617,1071,0,p
+0,0,0,2617,1072,0,p
+0,0,0,2617,1073,0,p
+0,0,0,2617,1074,0,p
+0,0,0,2617,1075,0,p
+0,0,0,2617,1076,0,p
+0,0,0,2617,1077,0,p
+0,0,0,2617,1093,0,p
+0,0,0,2617,1094,0,p
+0,0,0,2617,1095,0,p
+0,0,0,2617,1096,0,p
+0,0,0,2617,1097,0,p
+0,0,0,2617,1098,0,p
+0,0,0,2617,1099,0,p
+0,0,0,2617,1100,0,p
+0,0,0,2617,1101,0,p
+0,0,0,2617,1108,0,p
+0,0,0,2617,1109,0,p
+0,0,0,2617,1110,0,p
+0,0,0,2617,1111,0,p
+0,0,0,2617,1112,0,p
+0,0,0,2617,1113,0,p
+0,0,0,2617,1550,0,p
+0,0,0,2617,1551,0,p
+0,0,0,2617,1552,0,p
+0,0,0,2617,1553,0,p
+0,0,0,2617,1554,0,p
+0,0,0,2617,1555,0,p
+0,0,0,2617,1116,0,p
+0,0,0,2617,1117,0,p
+0,0,0,2617,1118,0,p
+0,0,0,2617,1119,0,p
+0,0,0,2617,1120,0,p
+0,0,0,2617,1121,0,p
+0,0,0,2617,1122,0,p
+0,0,0,2617,1123,0,p
+0,0,0,2617,1124,0,p
+0,0,0,2617,1125,0,p
+0,0,0,2617,1126,0,p
+0,0,0,2617,1127,0,p
+0,0,0,2617,1128,0,p
+0,0,0,2617,1129,0,p
+0,0,0,2617,1130,0,p
+0,0,0,2617,1131,0,p
+0,0,0,2617,1132,0,p
+0,0,0,2617,1133,0,p
+0,0,0,2617,1134,0,p
+0,0,0,2617,1135,0,p
+0,0,0,2617,1207,0,p
+0,0,0,2617,1208,0,p
+0,0,0,2617,1209,0,p
+0,0,0,2617,1210,0,p
+0,0,0,2617,1211,0,p
+0,0,0,2617,1212,0,p
+0,0,0,2617,1226,0,p
+0,0,0,2617,1227,0,p
+0,0,0,2617,1228,0,p
+0,0,0,2617,1229,0,p
+0,0,0,2617,1234,0,p
+0,0,0,2617,1235,0,p
+0,0,0,2617,1320,0,p
+0,0,0,2617,1321,0,p
+0,0,0,2617,1322,0,p
+0,0,0,2617,1323,0,p
+0,0,0,2617,1324,0,p
+0,0,0,2617,1325,0,p
+0,0,0,2617,1327,0,p
+0,0,0,2617,1328,0,p
+0,0,0,2617,1329,0,p
+0,0,0,2617,1330,0,p
+0,0,0,2617,1331,0,p
+0,0,0,2617,1332,0,p
+0,0,0,2617,1333,0,p
+0,0,0,2617,1334,0,p
+0,0,0,2617,1335,0,p
+0,0,0,2617,1336,0,p
+0,0,0,2617,1337,0,p
+0,0,0,2617,1338,0,p
+0,0,0,2617,1360,0,p
+0,0,0,2617,1361,0,p
+0,0,0,2617,1363,0,p
+0,0,0,2617,1366,0,p
+0,0,0,2617,1399,0,p
+0,0,0,2617,1420,0,p
+0,0,0,2617,1500,0,p
+0,0,0,2617,1501,0,p
+0,0,0,2617,1502,0,p
+0,0,0,2617,1503,0,p
+0,0,0,2617,1504,0,p
+0,0,0,2617,1505,0,p
+0,0,0,2617,1506,0,p
+0,0,0,2617,1507,0,p
+0,0,0,2617,1508,0,p
+0,0,0,2617,1509,0,p
+0,0,0,2617,1510,0,p
+0,0,0,2617,1511,0,p
+0,0,0,2617,1512,0,p
+0,0,0,2617,1513,0,p
+0,0,0,2617,1514,0,p
+0,0,0,2617,1515,0,p
+0,0,0,2617,1516,0,p
+0,0,0,2617,1517,0,p
+0,0,0,2617,1518,0,p
+0,0,0,2617,1519,0,p
+0,0,0,2617,1520,0,p
+0,0,0,2617,1521,0,p
+0,0,0,2617,1522,0,p
+0,0,0,2617,1523,0,p
+0,0,0,2617,1524,0,p
+0,0,0,2617,1525,0,p
+0,0,0,2617,1526,0,p
+0,0,0,2617,1527,0,p
+0,0,0,2617,1528,0,p
+0,0,0,2617,1529,0,p
+0,0,0,2617,1535,0,p
+0,0,0,2617,1536,0,p
+0,0,0,2617,1537,0,p
+0,0,0,2617,1538,0,p
+0,0,0,2617,1539,0,p
+0,0,0,2617,1546,0,p
+0,0,0,2617,1547,0,p
+0,0,0,2617,1548,0,p
+0,0,0,2617,1549,0,p
+0,0,0,2617,1557,0,p
+0,0,0,2617,1558,0,p
+0,0,0,2617,1559,0,p
+0,0,0,2617,1566,0,p
+0,0,0,2617,1567,0,p
+0,0,0,2617,1568,0,p
+0,0,0,2617,1577,0,p
+0,0,0,2617,1578,0,p
+0,0,0,2617,1583,0,p
+0,0,0,2617,1584,0,p
+0,0,0,2617,1585,0,p
+0,0,0,2617,1586,0,p
+0,0,0,2617,1587,0,p
+0,0,0,2617,1588,0,p
+0,0,0,2617,1589,0,p
+0,0,0,2617,1590,0,p
+0,0,0,2617,1591,0,p
+0,0,0,2617,1611,0,p
+0,0,0,2617,1612,0,p
+0,0,0,2617,1613,0,p
+0,0,0,2617,1614,0,p
+0,0,0,2617,1615,0,p
+0,0,0,2617,1616,0,p
+0,0,0,2617,1617,0,p
+0,0,0,2617,1220,0,p
+0,0,0,2617,1221,0,p
+0,0,0,2617,1222,0,p
+0,0,0,2617,1223,0,p
+0,0,0,2617,1224,0,p
+0,0,0,2617,1225,0,p
+0,0,0,2617,1201,0,p
+0,0,0,2617,1202,0,p
+0,0,0,2617,1203,0,p
+0,0,0,2617,1204,0,p
+0,0,0,2617,1205,0,p
+0,0,0,2617,1206,0,p
+0,0,0,2617,931,0,p
+0,0,0,2617,932,0,p
+0,0,0,2617,933,0,p
+0,0,0,2617,934,0,p
+0,0,0,2617,2634,0,p
+0,0,0,2617,2635,0,p
+0,0,0,2617,2636,0,p
+0,0,0,2617,2637,0,p
+0,0,0,2617,2638,0,p
+0,0,0,2617,2639,0,p
+0,0,0,2617,2640,0,p
+0,0,0,2617,1625,0,p
+0,0,0,2617,1626,0,p
+0,0,0,2617,1627,0,p
+0,0,0,2617,1628,0,p
+0,0,0,2617,1629,0,p
+0,0,0,2617,1630,0,p
+0,0,0,2617,1751,0,p
+0,0,0,2617,1752,0,p
+0,0,0,2617,1753,0,p
+0,0,0,2617,1754,0,p
+0,0,0,2617,1755,0,p
+0,0,0,2617,1756,0,p
+0,0,0,2617,1757,0,p
+0,0,0,2617,1758,0,p
+0,0,0,2617,1759,0,p
+0,0,0,2617,1760,0,p
+0,0,0,2617,1761,0,p
+0,0,0,2617,1762,0,p
+0,0,0,2617,1038,0,p
+0,0,0,2617,1763,0,p
+0,0,0,2617,1784,0,p
+0,0,0,2617,1785,0,p
+0,0,0,2617,1786,0,p
+0,0,0,2617,1787,0,p
+0,0,0,2617,1788,0,p
+0,0,0,2617,1789,0,p
+0,0,0,2617,1791,0,p
+0,0,0,2617,1792,0,p
+0,0,0,2617,1793,0,p
+0,0,0,2617,1794,0,p
+0,0,0,2617,1795,0,p
+0,0,0,2617,1796,0,p
+0,0,0,2617,1797,0,p
+0,0,0,2617,1800,0,p
+0,0,0,2617,1801,0,p
+0,0,0,2617,1802,0,p
+0,0,0,2617,1803,0,p
+0,0,0,2617,1804,0,p
+0,0,0,2617,1805,0,p
+0,0,0,2617,1806,0,p
+0,0,0,2617,1807,0,p
+0,0,0,2617,1808,0,p
+0,0,0,2617,1809,0,p
+0,0,0,2617,1849,0,p
+0,0,0,2617,1862,0,p
+0,0,0,2617,1863,0,p
+0,0,0,2617,1864,0,p
+0,0,0,2617,1865,0,p
+0,0,0,2617,1866,0,p
+0,0,0,2617,1867,0,p
+0,0,0,2617,1868,0,p
+0,0,0,2617,1869,0,p
+0,0,0,2617,1870,0,p
+0,0,0,2617,1871,0,p
+0,0,0,2617,1872,0,p
+0,0,0,2617,1873,0,p
+0,0,0,2617,1874,0,p
+0,0,0,2617,1875,0,p
+0,0,0,2617,1876,0,p
+0,0,0,2617,1877,0,p
+0,0,0,2617,1878,0,p
+0,0,0,2617,1879,0,p
+0,0,0,2617,1880,0,p
+0,0,0,2617,1881,0,p
+0,0,0,2617,1882,0,p
+0,0,0,2617,1883,0,p
+0,0,0,2617,1884,0,p
+0,0,0,2617,1885,0,p
+0,0,0,2617,1886,0,p
+0,0,0,2617,1887,0,p
+0,0,0,2617,1888,0,p
+0,0,0,2617,1889,0,p
+0,0,0,2617,1890,0,p
+0,0,0,2617,1891,0,p
+0,0,0,2617,1916,0,p
+0,0,0,2617,1917,0,p
+0,0,0,2617,1918,0,p
+0,0,0,2617,1919,0,p
+0,0,0,2617,1920,0,p
+0,0,0,2617,1921,0,p
+0,0,0,2617,1955,0,p
+0,0,0,2617,1956,0,p
+0,0,0,2617,1957,0,p
+0,0,0,2617,1958,0,p
+0,0,0,2617,1959,0,p
+0,0,0,2617,1960,0,p
+0,0,0,2617,2016,0,p
+0,0,0,2617,2017,0,p
+0,0,0,2617,2018,0,p
+0,0,0,2617,2060,0,p
+0,0,0,2617,2061,0,p
+0,0,0,2617,2062,0,p
+0,0,0,2617,2063,0,p
+0,0,0,2617,2064,0,p
+0,0,0,2617,2065,0,p
+0,0,0,2617,2066,0,p
+0,0,0,2617,2067,0,p
+0,0,0,2617,2068,0,p
+0,0,0,2617,2314,0,p
+0,0,0,2617,2315,0,p
+0,0,0,2617,2316,0,p
+0,0,0,2617,2317,0,p
+0,0,0,2617,2318,0,p
+0,0,0,2617,2319,0,p
+0,0,0,2617,2326,0,p
+0,0,0,2617,2327,0,p
+0,0,0,2617,2328,0,p
+0,0,0,2617,2329,0,p
+0,0,0,2617,2330,0,p
+0,0,0,2617,2331,0,p
+0,0,0,2617,2332,0,p
+0,0,0,2617,2333,0,p
+0,0,0,2617,2334,0,p
+0,0,0,2617,2335,0,p
+0,0,0,2617,2336,0,p
+0,0,0,2617,2337,0,p
+0,0,0,2617,2345,0,p
+0,0,0,2617,2346,0,p
+0,0,0,2617,2347,0,p
+0,0,0,2617,2348,0,p
+0,0,0,2617,2349,0,p
+0,0,0,2617,2350,0,p
+0,0,0,2617,2358,0,p
+0,0,0,2617,2359,0,p
+0,0,0,2617,2360,0,p
+0,0,0,2617,2361,0,p
+0,0,0,2617,2362,0,p
+0,0,0,2617,2363,0,p
+0,0,0,2617,2371,0,p
+0,0,0,2617,2372,0,p
+0,0,0,2617,2373,0,p
+0,0,0,2617,2374,0,p
+0,0,0,2617,2375,0,p
+0,0,0,2617,2376,0,p
+0,0,0,2617,2384,0,p
+0,0,0,2617,2385,0,p
+0,0,0,2617,2386,0,p
+0,0,0,2617,2387,0,p
+0,0,0,2617,2388,0,p
+0,0,0,2617,2389,0,p
+0,0,0,2617,2534,0,p
+0,0,0,2617,2535,0,p
+0,0,0,2617,2536,0,p
+0,0,0,2617,2537,0,p
+0,0,0,2617,2538,0,p
+0,0,0,2617,2539,0,p
+0,0,0,2617,2540,0,p
+0,0,0,2617,2541,0,p
+0,0,0,2617,2542,0,p
+0,0,0,2617,2543,0,p
+0,0,0,2617,2544,0,p
+0,0,0,2617,2545,0,p
+0,0,0,2617,2551,0,p
+0,0,0,2617,2552,0,p
+0,0,0,2617,2553,0,p
+0,0,0,2617,2554,0,p
+0,0,0,2617,2555,0,p
+0,0,0,2617,2570,0,p
+0,0,0,2617,2571,0,p
+0,0,0,2617,2572,0,p
+0,0,0,2617,2573,0,p
+0,0,0,2617,2574,0,p
+0,0,0,2617,2575,0,p
+0,0,0,2617,2576,0,p
+0,0,0,2617,2577,0,p
+0,0,0,2617,2589,0,p
+0,0,0,2617,2590,0,p
+0,0,0,2617,2750,0,p
+0,0,0,2617,2751,0,p
+0,0,0,2617,2752,0,p
+0,0,0,2617,2860,0,p
+0,0,0,2617,2861,0,p
+0,0,0,2617,2862,0,p
+0,0,0,2617,2863,0,p
+0,0,0,2617,2864,0,p
+0,0,0,2617,2865,0,p
+0,0,0,2617,2866,0,p
+0,0,0,2617,2867,0,p
+0,0,0,2617,2868,0,p
+0,0,0,2617,2869,0,p
+0,0,0,2617,2870,0,p
+0,0,0,2617,2871,0,p
+0,0,0,2617,2872,0,p
+0,0,0,2617,2873,0,p
+0,0,0,2617,2874,0,p
+0,0,0,2617,2875,0,p
+0,0,0,2617,2876,0,p
+0,0,0,2617,2877,0,p
+0,0,0,2616,421,0,p
+0,0,0,2616,397,0,p
+0,0,0,2616,423,0,p
+0,0,0,2616,424,0,p
+0,0,0,2616,426,0,p
+0,0,0,2616,427,0,p
+0,0,0,2616,428,0,p
+0,0,0,2616,429,0,p
+0,0,0,2616,431,0,p
+0,0,0,2616,432,0,p
+0,0,0,2616,433,0,p
+0,0,0,2616,434,0,p
+0,0,0,2616,435,0,p
+0,0,0,2616,1970,0,p
+0,0,0,2616,1971,0,p
+0,0,0,2616,1972,0,p
+0,0,0,2616,1973,0,p
+0,0,0,2616,1974,0,p
+0,0,0,2616,1975,0,p
+0,0,0,2616,1976,0,p
+0,0,0,2616,1977,0,p
+0,0,0,2616,1978,0,p
+0,0,0,2616,1979,0,p
+0,0,0,2616,1980,0,p
+0,0,0,2616,1981,0,p
+0,0,0,2616,1982,0,p
+0,0,0,2616,1983,0,p
+0,0,0,2616,1984,0,p
+0,0,0,2616,1985,0,p
+0,0,0,2616,1986,0,p
+0,0,0,2616,1987,0,p
+0,0,0,2616,1988,0,p
+0,0,0,2616,7676,0,p
+0,0,0,2616,1989,0,p
+0,0,0,2616,1990,0,p
+0,0,0,2616,1991,0,p
+0,0,0,2616,1992,0,p
+0,0,0,2616,1994,0,p
+0,0,0,2616,1995,0,p
+0,0,0,2616,1996,0,p
+0,0,0,2616,1997,0,p
+0,0,0,2616,1998,0,p
+0,0,0,2616,1999,0,p
+0,0,0,2616,2000,0,p
+0,0,0,2616,2001,0,p
+0,0,0,2616,2002,0,p
+0,0,0,2616,2003,0,p
+0,0,0,2616,2004,0,p
+0,0,0,2616,2039,0,p
+0,0,0,2616,2040,0,p
+0,0,0,2616,2095,0,p
+0,0,0,2616,2096,0,p
+0,0,0,2616,2097,0,p
+0,0,0,2616,2098,0,p
+0,0,0,2616,2099,0,p
+0,0,0,2616,2222,0,p
+0,0,0,2616,2223,0,p
+0,0,0,2616,2224,0,p
+0,0,0,2616,2789,0,p
+0,0,0,2616,2225,0,p
+0,0,0,2616,2226,0,p
+0,0,0,2616,2227,0,p
+0,0,0,2616,2228,0,p
+0,0,0,2616,2229,0,p
+0,0,0,2616,2230,0,p
+0,0,0,2616,2231,0,p
+0,0,0,2616,2232,0,p
+0,0,0,2616,2233,0,p
+0,0,0,2616,2234,0,p
+0,0,0,2616,2235,0,p
+0,0,0,2616,2593,0,p
+0,0,0,2616,2594,0,p
+0,0,0,2616,2595,0,p
+0,0,0,2616,2745,0,p
+0,0,0,2616,2746,0,p
+0,0,0,2616,2753,0,p
+0,0,0,2616,2754,0,p
+0,0,0,2616,2755,0,p
+0,0,0,2616,2756,0,p
+0,0,0,2616,2757,0,p
+0,0,0,2616,2758,0,p
+0,0,0,2616,2759,0,p
+0,0,0,2616,2760,0,p
+0,0,0,2616,2761,0,p
+0,0,0,2616,2762,0,p
+0,0,0,2616,2763,0,p
+0,0,0,2616,2764,0,p
+0,0,0,2616,2765,0,p
+0,0,0,2616,2766,0,p
+0,0,0,2616,2767,0,p
+0,0,0,2616,2768,0,p
+0,0,0,2616,2769,0,p
+0,0,0,2616,2770,0,p
+0,0,0,2616,2771,0,p
+0,0,0,2616,2772,0,p
+0,0,0,2616,2773,0,p
+0,0,0,2616,2774,0,p
+0,0,0,2616,2775,0,p
+0,0,0,2616,2776,0,p
+0,0,0,2616,2777,0,p
+0,0,0,2616,2778,0,p
+0,0,0,2616,2779,0,p
+0,0,0,2616,2780,0,p
+0,0,0,2616,3014,0,p
+0,0,0,2616,3015,0,p
+0,0,0,2616,3016,0,p
+0,0,0,2616,3017,0,p
+0,0,0,2616,3018,0,p
+0,0,0,2616,3019,0,p
+0,0,0,2616,3020,0,p
+0,0,0,2616,3021,0,p
+0,0,0,2616,3022,0,p
+0,0,0,2616,3023,0,p
+0,0,0,2616,3024,0,p
+0,0,0,2616,3025,0,p
+0,0,0,2616,3026,0,p
+0,0,0,2616,3027,0,p
+0,0,0,2616,3028,0,p
+0,0,0,2616,3029,0,p
+0,0,0,2616,3030,0,p
+0,0,0,2616,3031,0,p
+0,0,0,2616,3032,0,p
+0,0,0,2616,3033,0,p
+0,0,0,2616,3034,0,p
+0,0,0,2616,3035,0,p
+0,0,0,2616,3036,0,p
+0,0,0,2616,3037,0,p
+0,0,0,2616,3038,0,p
+0,0,0,2616,3039,0,p
+0,0,0,2616,3040,0,p
+0,0,0,2616,3041,0,p
+0,0,0,2616,3042,0,p
+0,0,0,2616,3043,0,p
+0,0,0,2616,3044,0,p
+0,0,0,2616,3045,0,p
+0,0,0,2616,3046,0,p
+0,0,0,2616,3047,0,p
+0,0,0,2616,3048,0,p
+0,0,0,2620,10306,0,p
+0,0,0,2620,10307,0,p
+0,0,0,2620,10308,0,p
+0,0,0,2615,11,0,p
+0,0,0,2615,99,0,p
+0,0,0,2615,3012,0,p
+0,0,0,2615,6104,0,p
+1247,10310,0,1259,10309,0,i
+2618,10311,0,1259,10309,0,i
+2618,10311,0,1259,10309,0,n
+1247,10313,0,1259,10312,0,i
+2618,10314,0,1259,10312,0,i
+2618,10314,0,1259,10312,0,n
+1247,10316,0,1259,10315,0,i
+2618,10317,0,1259,10315,0,i
+2618,10317,0,1259,10315,0,n
+1247,10319,0,1259,10318,0,i
+2618,10320,0,1259,10318,0,i
+2618,10320,0,1259,10312,1,n
+2618,10320,0,1259,10312,2,n
+2618,10320,0,1259,10312,3,n
+2618,10320,0,1259,10312,4,n
+2618,10320,0,1259,10312,5,n
+2618,10320,0,1259,10312,7,n
+2618,10320,0,1259,10312,8,n
+2618,10320,0,1259,10318,0,n
+1247,10322,0,1259,10321,0,i
+2618,10323,0,1259,10321,0,i
+2618,10323,0,1259,10321,0,n
+1247,10325,0,1259,10324,0,i
+2618,10326,0,1259,10324,0,i
+2618,10326,0,1259,10324,0,n
+1247,10328,0,1259,10327,0,i
+2618,10329,0,1259,10327,0,i
+2618,10329,0,1259,10327,0,n
+1247,10331,0,1259,10330,0,i
+2618,10332,0,1259,10330,0,i
+2618,10332,0,1259,10330,0,n
+1247,10334,0,1259,10333,0,i
+2618,10335,0,1259,10333,0,i
+2618,10335,0,1259,10333,0,n
+1247,10337,0,1259,10336,0,i
+2618,10338,0,1259,10336,0,i
+2618,10338,0,1259,10336,0,n
+1247,10340,0,1259,10339,0,i
+2618,10341,0,1259,10339,0,i
+2618,10341,0,1259,10339,0,n
+1247,10343,0,1259,10342,0,i
+2618,10344,0,1259,10342,0,i
+2618,10344,0,1259,10342,0,n
+1247,10346,0,1259,10345,0,i
+2618,10347,0,1259,10345,0,i
+2618,10347,0,1259,10345,0,n
+1247,10349,0,1259,10348,0,i
+2618,10350,0,1259,10348,0,i
+2618,10350,0,1259,10348,0,n
+2618,10351,0,1259,10348,0,a
+2618,10351,0,1259,10348,1,n
+2618,10351,0,1259,10348,2,n
+2618,10351,0,1259,10348,1,n
+2618,10352,0,1259,10348,0,a
+2618,10352,0,1259,10348,0,n
+1247,10354,0,1259,10353,0,i
+2618,10355,0,1259,10353,0,i
+2618,10355,0,1259,10353,0,n
+1247,10357,0,1259,10356,0,i
+2618,10358,0,1259,10356,0,i
+2618,10358,0,1259,10356,0,n
+1247,10360,0,1259,10359,0,i
+2618,10361,0,1259,10359,0,i
+2618,10361,0,1259,10359,0,n
+1247,10363,0,1259,10362,0,i
+2618,10364,0,1259,10362,0,i
+2618,10364,0,1259,10359,1,n
+2618,10364,0,1259,10359,2,n
+2618,10364,0,1259,10359,3,n
+2618,10364,0,1259,10359,4,n
+2618,10364,0,1259,10359,5,n
+2618,10364,0,1259,10359,6,n
+2618,10364,0,1259,10359,7,n
+2618,10364,0,1259,10359,8,n
+2618,10364,0,1259,10359,9,n
+2618,10364,0,1259,10359,10,n
+2618,10364,0,1259,10359,11,n
+2618,10364,0,1259,10359,12,n
+2618,10364,0,1259,10359,13,n
+2618,10364,0,1259,10359,14,n
+2618,10364,0,1259,10362,0,n
+1247,10366,0,1259,10365,0,i
+2618,10367,0,1259,10365,0,i
+2618,10367,0,1259,10359,1,n
+2618,10367,0,1259,10359,2,n
+2618,10367,0,1259,10359,3,n
+2618,10367,0,1259,10359,4,n
+2618,10367,0,1259,10359,5,n
+2618,10367,0,1259,10359,6,n
+2618,10367,0,1259,10359,7,n
+2618,10367,0,1259,10359,8,n
+2618,10367,0,1259,10359,9,n
+2618,10367,0,1259,10359,10,n
+2618,10367,0,1259,10359,11,n
+2618,10367,0,1259,10359,12,n
+2618,10367,0,1259,10359,13,n
+2618,10367,0,1259,10359,14,n
+2618,10367,0,1259,10365,0,n
+1247,10369,0,1259,10368,0,i
+2618,10370,0,1259,10368,0,i
+2618,10370,0,1259,10368,0,n
+1247,10372,0,1259,10371,0,i
+2618,10373,0,1259,10371,0,i
+2618,10373,0,1259,10368,1,n
+2618,10373,0,1259,10368,2,n
+2618,10373,0,1259,10368,3,n
+2618,10373,0,1259,10368,4,n
+2618,10373,0,1259,10368,5,n
+2618,10373,0,1259,10368,6,n
+2618,10373,0,1259,10368,7,n
+2618,10373,0,1259,10368,8,n
+2618,10373,0,1259,10368,9,n
+2618,10373,0,1259,10368,10,n
+2618,10373,0,1259,10368,11,n
+2618,10373,0,1259,10371,0,n
+1247,10375,0,1259,10374,0,i
+2618,10376,0,1259,10374,0,i
+2618,10376,0,1259,10368,1,n
+2618,10376,0,1259,10368,2,n
+2618,10376,0,1259,10368,3,n
+2618,10376,0,1259,10368,4,n
+2618,10376,0,1259,10368,5,n
+2618,10376,0,1259,10368,6,n
+2618,10376,0,1259,10368,7,n
+2618,10376,0,1259,10368,8,n
+2618,10376,0,1259,10368,9,n
+2618,10376,0,1259,10368,10,n
+2618,10376,0,1259,10368,11,n
+2618,10376,0,1259,10374,0,n
+1247,10378,0,1259,10377,0,i
+2618,10379,0,1259,10377,0,i
+2618,10379,0,1259,10377,0,n
+1247,10381,0,1259,10380,0,i
+2618,10382,0,1259,10380,0,i
+2618,10382,0,1259,10377,1,n
+2618,10382,0,1259,10377,2,n
+2618,10382,0,1259,10377,3,n
+2618,10382,0,1259,10377,4,n
+2618,10382,0,1259,10377,5,n
+2618,10382,0,1259,10377,6,n
+2618,10382,0,1259,10377,7,n
+2618,10382,0,1259,10377,8,n
+2618,10382,0,1259,10380,0,n
+1247,10384,0,1259,10383,0,i
+2618,10385,0,1259,10383,0,i
+2618,10385,0,1259,10377,1,n
+2618,10385,0,1259,10377,2,n
+2618,10385,0,1259,10377,3,n
+2618,10385,0,1259,10377,4,n
+2618,10385,0,1259,10377,5,n
+2618,10385,0,1259,10377,6,n
+2618,10385,0,1259,10377,7,n
+2618,10385,0,1259,10377,8,n
+2618,10385,0,1259,10383,0,n
+1247,10387,0,1259,10386,0,i
+2618,10388,0,1259,10386,0,i
+2618,10388,0,1259,10386,0,n
+1247,10390,0,1259,10389,0,i
+2618,10391,0,1259,10389,0,i
+2618,10391,0,1259,10386,1,n
+2618,10391,0,1259,10386,2,n
+2618,10391,0,1259,10386,3,n
+2618,10391,0,1259,10386,4,n
+2618,10391,0,1259,10386,5,n
+2618,10391,0,1259,10386,6,n
+2618,10391,0,1259,10386,7,n
+2618,10391,0,1259,10389,0,n
+1247,10393,0,1259,10392,0,i
+2618,10394,0,1259,10392,0,i
+2618,10394,0,1259,10386,1,n
+2618,10394,0,1259,10386,2,n
+2618,10394,0,1259,10386,3,n
+2618,10394,0,1259,10386,4,n
+2618,10394,0,1259,10386,5,n
+2618,10394,0,1259,10386,6,n
+2618,10394,0,1259,10386,7,n
+2618,10394,0,1259,10392,0,n
+1247,10396,0,1259,10395,0,i
+2618,10397,0,1259,10395,0,i
+2618,10397,0,1259,10395,0,n
+1247,10399,0,1259,10398,0,i
+2618,10400,0,1259,10398,0,i
+2618,10400,0,1259,10395,1,n
+2618,10400,0,1259,10395,2,n
+2618,10400,0,1259,10395,3,n
+2618,10400,0,1259,10395,4,n
+2618,10400,0,1259,10395,5,n
+2618,10400,0,1259,10398,0,n
+1247,10402,0,1259,10401,0,i
+2618,10403,0,1259,10401,0,i
+2618,10403,0,1259,10395,1,n
+2618,10403,0,1259,10395,2,n
+2618,10403,0,1259,10395,3,n
+2618,10403,0,1259,10395,4,n
+2618,10403,0,1259,10395,5,n
+2618,10403,0,1259,10401,0,n
+1247,10405,0,1259,10404,0,i
+2618,10406,0,1259,10404,0,i
+2618,10406,0,1259,10404,0,n
+1247,10408,0,1259,10407,0,i
+2618,10409,0,1259,10407,0,i
+2618,10409,0,1259,10407,0,n
+1247,10411,0,1259,10410,0,i
+2618,10412,0,1259,10410,0,i
+2618,10412,0,1259,10410,0,n
+1247,10414,0,1259,10413,0,i
+2618,10415,0,1259,10413,0,i
+2618,10415,0,1259,10413,0,n
+1247,10417,0,1259,10416,0,i
+2618,10418,0,1259,10416,0,i
+2618,10418,0,1259,10416,0,n
+1247,10420,0,1259,10419,0,i
+2618,10421,0,1259,10419,0,i
+2618,10421,0,1259,10419,0,n
+1247,10423,0,1259,10422,0,i
+2618,10424,0,1259,10422,0,i
+2618,10424,0,1259,10422,0,n
+1247,10426,0,1259,10425,0,i
+2618,10427,0,1259,10425,0,i
+2618,10427,0,1259,10425,0,n
+1259,10735,6,1247,10676,0,n
+1259,10735,7,1247,10675,0,n
+1259,10735,8,1247,10675,0,n
+1259,10735,0,2615,10659,0,n
+2618,10737,0,1259,10735,0,i
+2618,10737,0,1247,10675,0,n
+2618,10737,0,1247,10676,0,n
+2618,10737,0,1259,10723,1,n
+2618,10737,0,1259,10735,0,n
+1247,10739,0,1259,10738,0,i
+1259,10738,1,1247,10676,0,n
+1259,10738,2,1247,10676,0,n
+2607,10440,0,1255,10439,0,n
+2607,10442,0,1255,10441,0,n
+2607,10444,0,1255,10443,0,n
+2607,10446,0,1255,10445,0,n
+2607,10448,0,1255,10447,0,n
+2607,10450,0,1255,10449,0,n
+2607,10452,0,1255,10451,0,n
+2607,10454,0,1255,10453,0,n
+2607,10456,0,1255,10455,0,n
+2607,10458,0,1255,10457,0,n
+2607,10460,0,1255,10459,0,n
+2607,10462,0,1255,10461,0,n
+2607,10464,0,1255,10463,0,n
+2607,10466,0,1255,10465,0,

<TRUNCATED>


[24/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_description32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_description32.data b/src/test/regress/data/upgrade33/pg_description32.data
new file mode 100644
index 0000000..4eff332
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_description32.data
@@ -0,0 +1,1861 @@
+objoid,classoid,objsubid,description
+1242,1255,0,I/O
+1243,1255,0,I/O
+1244,1255,0,I/O
+31,1255,0,I/O
+1245,1255,0,I/O
+33,1255,0,I/O
+34,1255,0,I/O
+35,1255,0,I/O
+38,1255,0,I/O
+39,1255,0,I/O
+40,1255,0,I/O
+41,1255,0,I/O
+42,1255,0,I/O
+43,1255,0,I/O
+44,1255,0,I/O
+45,1255,0,I/O
+46,1255,0,I/O
+47,1255,0,I/O
+48,1255,0,I/O
+49,1255,0,I/O
+50,1255,0,I/O
+51,1255,0,I/O
+52,1255,0,I/O
+53,1255,0,I/O
+54,1255,0,I/O
+55,1255,0,I/O
+56,1255,0,less-than
+57,1255,0,greater-than
+60,1255,0,equal
+61,1255,0,equal
+62,1255,0,equal
+63,1255,0,equal
+64,1255,0,less-than
+65,1255,0,equal
+66,1255,0,less-than
+67,1255,0,equal
+68,1255,0,equal
+69,1255,0,equal
+70,1255,0,not equal
+1246,1255,0,less-than
+72,1255,0,less-than-or-equal
+73,1255,0,greater-than
+74,1255,0,greater-than-or-equal
+77,1255,0,convert char to int4
+78,1255,0,convert int4 to char
+79,1255,0,"matches regex., case-sensitive"
+1252,1255,0,"does not match regex., case-sensitive"
+1254,1255,0,"matches regex., case-sensitive"
+1256,1255,0,"does not match regex., case-sensitive"
+1257,1255,0,length
+1258,1255,0,concatenate
+84,1255,0,not equal
+89,1255,0,PostgreSQL version string
+101,1255,0,restriction selectivity of = and related operators
+102,1255,0,restriction selectivity of <> and related operators
+103,1255,0,restriction selectivity of < and related operators on scalar datatypes
+104,1255,0,restriction selectivity of > and related operators on scalar datatypes
+105,1255,0,join selectivity of = and related operators
+106,1255,0,join selectivity of <> and related operators
+107,1255,0,join selectivity of < and related operators on scalar datatypes
+108,1255,0,join selectivity of > and related operators on scalar datatypes
+109,1255,0,I/O
+110,1255,0,I/O
+112,1255,0,convert int4 to text
+113,1255,0,convert int2 to text
+114,1255,0,convert oid to text
+115,1255,0,is above (allows touching)
+116,1255,0,is below (allows touching)
+117,1255,0,I/O
+118,1255,0,I/O
+119,1255,0,I/O
+120,1255,0,I/O
+121,1255,0,I/O
+122,1255,0,I/O
+123,1255,0,I/O
+124,1255,0,I/O
+125,1255,0,overlaps
+126,1255,0,greater-than-or-equal by area
+127,1255,0,greater-than by area
+128,1255,0,equal by area
+129,1255,0,less-than by area
+130,1255,0,less-than-or-equal by area
+131,1255,0,is above
+132,1255,0,is left of
+133,1255,0,is right of
+134,1255,0,is below
+135,1255,0,same as?
+136,1255,0,point inside box?
+137,1255,0,"point within closed path, or point on open path"
+138,1255,0,center of
+139,1255,0,restriction selectivity for area-comparison operators
+140,1255,0,join selectivity for area-comparison operators
+141,1255,0,multiply
+144,1255,0,not equal
+145,1255,0,not equal
+146,1255,0,greater-than
+147,1255,0,greater-than
+148,1255,0,less-than-or-equal
+149,1255,0,less-than-or-equal
+150,1255,0,greater-than-or-equal
+151,1255,0,greater-than-or-equal
+152,1255,0,multiply
+153,1255,0,divide
+154,1255,0,divide
+155,1255,0,modulus
+156,1255,0,modulus
+157,1255,0,not equal
+158,1255,0,equal
+159,1255,0,equal
+160,1255,0,less-than
+161,1255,0,less-than
+162,1255,0,greater-than
+163,1255,0,greater-than
+164,1255,0,not equal
+165,1255,0,not equal
+166,1255,0,less-than-or-equal
+167,1255,0,less-than-or-equal
+168,1255,0,greater-than-or-equal
+169,1255,0,greater-than-or-equal
+170,1255,0,multiply
+171,1255,0,multiply
+172,1255,0,divide
+173,1255,0,divide
+174,1255,0,modulus
+175,1255,0,modulus
+176,1255,0,add
+177,1255,0,add
+178,1255,0,add
+179,1255,0,add
+180,1255,0,subtract
+181,1255,0,subtract
+182,1255,0,subtract
+183,1255,0,subtract
+184,1255,0,equal
+185,1255,0,not equal
+186,1255,0,same as?
+187,1255,0,contains?
+188,1255,0,is left of
+189,1255,0,overlaps or is left of
+190,1255,0,overlaps or is right of
+191,1255,0,is right of
+192,1255,0,is contained by?
+200,1255,0,I/O
+201,1255,0,I/O
+202,1255,0,multiply
+203,1255,0,divide
+204,1255,0,add
+205,1255,0,subtract
+206,1255,0,negate
+207,1255,0,absolute value
+208,1255,0,aggregate transition function
+6024,1255,0,aggregate inverse transition function
+3106,1255,0,aggregate transition function
+3107,1255,0,aggregate inverse transition function
+209,1255,0,larger of two
+211,1255,0,smaller of two
+212,1255,0,negate
+213,1255,0,negate
+214,1255,0,I/O
+215,1255,0,I/O
+216,1255,0,multiply
+217,1255,0,divide
+218,1255,0,add
+219,1255,0,subtract
+220,1255,0,negate
+221,1255,0,absolute value
+222,1255,0,aggregate transition function
+6025,1255,0,aggregate inverse transition function
+3108,1255,0,aggregate transition function
+3109,1255,0,aggregate inverse transition function
+223,1255,0,larger of two
+224,1255,0,smaller of two
+225,1255,0,center of
+226,1255,0,center of
+227,1255,0,center of
+228,1255,0,round to nearest integer
+229,1255,0,truncate to integer
+2308,1255,0,smallest integer >= value
+2320,1255,0,smallest integer >= value
+2309,1255,0,largest integer <= value
+2310,1255,0,sign of value
+230,1255,0,square root
+231,1255,0,cube root
+232,1255,0,exponentiation (x^y)
+233,1255,0,natural exponential (e^x)
+234,1255,0,natural logarithm
+235,1255,0,convert int2 to float8
+236,1255,0,convert int2 to float4
+237,1255,0,convert float8 to int2
+238,1255,0,convert float4 to int2
+239,1255,0,distance between
+240,1255,0,I/O
+241,1255,0,I/O
+242,1255,0,I/O
+243,1255,0,I/O
+244,1255,0,add
+245,1255,0,subtract
+246,1255,0,I/O
+247,1255,0,I/O
+248,1255,0,abstime in tinterval
+249,1255,0,tinterval to reltime
+250,1255,0,Current date and time (abstime)
+251,1255,0,equal
+252,1255,0,not equal
+253,1255,0,less-than
+254,1255,0,greater-than
+255,1255,0,less-than-or-equal
+256,1255,0,greater-than-or-equal
+257,1255,0,equal
+258,1255,0,not equal
+259,1255,0,less-than
+260,1255,0,greater-than
+261,1255,0,less-than-or-equal
+262,1255,0,greater-than-or-equal
+263,1255,0,same as?
+264,1255,0,contains?
+265,1255,0,overlaps
+266,1255,0,length equal
+267,1255,0,length not equal to
+268,1255,0,length less-than
+269,1255,0,length greater-than
+270,1255,0,length less-than-or-equal
+271,1255,0,length greater-than-or-equal
+272,1255,0,start of interval
+273,1255,0,end of interval
+274,1255,0,Current date and time - increments during transactions
+275,1255,0,finite abstime?
+277,1255,0,intersect?
+278,1255,0,intersect?
+279,1255,0,multiply
+280,1255,0,divide
+281,1255,0,add
+282,1255,0,subtract
+283,1255,0,multiply
+284,1255,0,divide
+285,1255,0,add
+286,1255,0,subtract
+287,1255,0,equal
+288,1255,0,not equal
+289,1255,0,less-than
+290,1255,0,less-than-or-equal
+291,1255,0,greater-than
+292,1255,0,greater-than-or-equal
+293,1255,0,equal
+294,1255,0,not equal
+295,1255,0,less-than
+296,1255,0,less-than-or-equal
+297,1255,0,greater-than
+298,1255,0,greater-than-or-equal
+299,1255,0,equal
+300,1255,0,not equal
+301,1255,0,less-than
+302,1255,0,less-than-or-equal
+303,1255,0,greater-than
+304,1255,0,greater-than-or-equal
+305,1255,0,equal
+306,1255,0,not equal
+307,1255,0,less-than
+308,1255,0,less-than-or-equal
+309,1255,0,greater-than
+310,1255,0,greater-than-or-equal
+311,1255,0,convert float4 to float8
+312,1255,0,convert float8 to float4
+313,1255,0,convert int2 to int4
+314,1255,0,convert int4 to int2
+315,1255,0,equal
+316,1255,0,convert int4 to float8
+317,1255,0,convert float8 to int4
+318,1255,0,convert int4 to float4
+319,1255,0,convert float4 to int4
+330,1255,0,btree(internal)
+636,1255,0,btree(internal)
+331,1255,0,btree(internal)
+333,1255,0,btree(internal)
+334,1255,0,btree(internal)
+335,1255,0,btree(internal)
+336,1255,0,btree(internal)
+337,1255,0,btree(internal)
+338,1255,0,btree(internal)
+332,1255,0,btree(internal)
+972,1255,0,btree(internal)
+1268,1255,0,btree(internal)
+2785,1255,0,btree(internal)
+339,1255,0,same as?
+340,1255,0,contains?
+341,1255,0,is left of
+342,1255,0,overlaps or is left of
+343,1255,0,overlaps or is right of
+344,1255,0,is right of
+345,1255,0,is contained by?
+346,1255,0,overlaps
+347,1255,0,I/O
+348,1255,0,I/O
+350,1255,0,btree less-equal-greater
+351,1255,0,btree less-equal-greater
+842,1255,0,btree less-equal-greater
+354,1255,0,btree less-equal-greater
+355,1255,0,btree less-equal-greater
+356,1255,0,btree less-equal-greater
+404,1255,0,btree less-equal-greater
+357,1255,0,btree less-equal-greater
+358,1255,0,btree less-equal-greater
+359,1255,0,btree less-equal-greater
+360,1255,0,btree less-equal-greater
+377,1255,0,btree less-equal-greater
+380,1255,0,btree less-equal-greater
+381,1255,0,btree less-equal-greater
+382,1255,0,btree less-equal-greater
+361,1255,0,distance between
+362,1255,0,intersection point
+363,1255,0,distance between
+364,1255,0,distance between point and box
+365,1255,0,distance between segment and box
+366,1255,0,closest point on line segment
+367,1255,0,closest point on box
+368,1255,0,closest point to line segment on box
+369,1255,0,point contained in segment?
+370,1255,0,distance between paths
+371,1255,0,distance between point and path
+372,1255,0,lseg contained in box?
+373,1255,0,intersect?
+401,1255,0,convert char(n) to text
+406,1255,0,convert name to text
+407,1255,0,convert text to name
+408,1255,0,convert name to char(n)
+409,1255,0,convert char(n) to name
+440,1255,0,hash(internal)
+637,1255,0,hash(internal)
+441,1255,0,hash(internal)
+443,1255,0,hash(internal)
+444,1255,0,hash(internal)
+445,1255,0,hash(internal)
+446,1255,0,hash(internal)
+447,1255,0,hash(internal)
+448,1255,0,hash(internal)
+442,1255,0,hash(internal)
+425,1255,0,hash(internal)
+438,1255,0,hash(internal)
+2786,1255,0,hash(internal)
+449,1255,0,hash
+450,1255,0,hash
+949,1255,0,hash
+451,1255,0,hash
+452,1255,0,hash
+453,1255,0,hash
+454,1255,0,hash
+455,1255,0,hash
+400,1255,0,hash
+456,1255,0,hash any varlena type
+457,1255,0,hash
+329,1255,0,hash
+398,1255,0,hash
+399,1255,0,hash
+422,1255,0,hash
+6432,1255,0,hash
+458,1255,0,larger of two
+459,1255,0,smaller of two
+460,1255,0,I/O
+461,1255,0,I/O
+462,1255,0,negate
+463,1255,0,add
+464,1255,0,subtract
+465,1255,0,multiply
+466,1255,0,divide
+467,1255,0,equal
+468,1255,0,not equal
+469,1255,0,less-than
+470,1255,0,greater-than
+471,1255,0,less-than-or-equal
+472,1255,0,greater-than-or-equal
+474,1255,0,equal
+475,1255,0,not equal
+476,1255,0,less-than
+477,1255,0,greater-than
+478,1255,0,less-than-or-equal
+479,1255,0,greater-than-or-equal
+480,1255,0,convert int8 to int4
+481,1255,0,convert int4 to int8
+482,1255,0,convert int8 to float8
+483,1255,0,convert float8 to int8
+652,1255,0,convert int8 to float4
+653,1255,0,convert float4 to int8
+714,1255,0,convert int8 to int2
+754,1255,0,convert int2 to int8
+1285,1255,0,not in
+1286,1255,0,not in
+655,1255,0,less-than
+656,1255,0,less-than-or-equal
+657,1255,0,greater-than
+658,1255,0,greater-than-or-equal
+659,1255,0,not equal
+668,1255,0,adjust char() to typmod length
+669,1255,0,adjust varchar() to typmod length
+676,1255,0,convert to tinterval
+619,1255,0,not equal
+677,1255,0,less-than
+678,1255,0,less-than-or-equal
+679,1255,0,equal
+680,1255,0,greater-than-or-equal
+681,1255,0,greater-than
+710,1255,0,deprecated -- use current_user
+716,1255,0,less-than
+717,1255,0,less-than-or-equal
+720,1255,0,octet length
+721,1255,0,get byte
+722,1255,0,set byte
+723,1255,0,get bit
+724,1255,0,set bit
+725,1255,0,distance between point and line
+726,1255,0,distance between line and box
+727,1255,0,distance between lseg and line
+728,1255,0,distance between
+729,1255,0,distance between
+740,1255,0,less-than
+741,1255,0,less-than-or-equal
+742,1255,0,greater-than
+743,1255,0,greater-than-or-equal
+745,1255,0,current user name
+746,1255,0,session user name
+744,1255,0,array equal
+390,1255,0,array not equal
+391,1255,0,array less than
+392,1255,0,array greater than
+393,1255,0,array less than or equal
+396,1255,0,array greater than or equal
+747,1255,0,array dimensions
+750,1255,0,I/O
+751,1255,0,I/O
+2091,1255,0,array lower dimension
+2092,1255,0,array upper dimension
+378,1255,0,append element onto end of array
+379,1255,0,prepend element onto front of array
+383,1255,0,concatenate two arrays
+384,1255,0,coerce array to another array type
+394,1255,0,split delimited text into text[]
+395,1255,0,"concatenate array elements, using delimiter, into text"
+515,1255,0,larger of two
+516,1255,0,smaller of two
+6012,1255,0,itemwise add two integer arrays
+760,1255,0,I/O
+761,1255,0,I/O
+762,1255,0,storage manager
+763,1255,0,storage manager
+764,1255,0,large object import
+765,1255,0,large object export
+766,1255,0,increment
+768,1255,0,larger of two
+769,1255,0,smaller of two
+770,1255,0,larger of two
+771,1255,0,smaller of two
+774,1255,0,gist(internal)
+638,1255,0,gist(internal)
+775,1255,0,gist(internal)
+777,1255,0,gist(internal)
+778,1255,0,gist(internal)
+779,1255,0,gist(internal)
+780,1255,0,gist(internal)
+781,1255,0,gist(internal)
+782,1255,0,gist(internal)
+776,1255,0,gist(internal)
+2561,1255,0,gist(internal)
+772,1255,0,gist(internal)
+2787,1255,0,gist(internal)
+784,1255,0,equal
+785,1255,0,not equal
+786,1255,0,less-than
+787,1255,0,greater-than
+788,1255,0,less-than-or-equal
+789,1255,0,greater-than-or-equal
+817,1255,0,convert text to oid
+818,1255,0,convert text to int2
+819,1255,0,convert text to int4
+838,1255,0,convert text to float8
+839,1255,0,convert text to float4
+840,1255,0,convert float8 to text
+841,1255,0,convert float4 to text
+846,1255,0,multiply
+847,1255,0,divide
+848,1255,0,multiply
+849,1255,0,return position of substring
+850,1255,0,matches LIKE expression
+851,1255,0,does not match LIKE expression
+852,1255,0,equal
+853,1255,0,not equal
+854,1255,0,less-than
+855,1255,0,greater-than
+856,1255,0,less-than-or-equal
+857,1255,0,greater-than-or-equal
+858,1255,0,matches LIKE expression
+859,1255,0,does not match LIKE expression
+860,1255,0,convert char to char()
+861,1255,0,returns the current database
+862,1255,0,multiply
+863,1255,0,multiply
+864,1255,0,multiply
+865,1255,0,divide
+866,1255,0,multiply
+867,1255,0,divide
+886,1255,0,I/O
+887,1255,0,I/O
+888,1255,0,equal
+889,1255,0,not equal
+890,1255,0,less-than
+891,1255,0,less-than-or-equal
+892,1255,0,greater-than
+893,1255,0,greater-than-or-equal
+894,1255,0,add
+895,1255,0,subtract
+896,1255,0,multiply
+897,1255,0,divide
+898,1255,0,larger of two
+899,1255,0,smaller of two
+919,1255,0,multiply
+935,1255,0,output amount as words
+940,1255,0,modulus
+941,1255,0,modulus
+942,1255,0,modulus
+943,1255,0,modulus
+945,1255,0,modulus
+947,1255,0,modulus
+944,1255,0,convert text to char
+946,1255,0,convert char to text
+950,1255,0,bool is true (not false or unknown)
+951,1255,0,bool is false (not true or unknown)
+952,1255,0,large object open
+953,1255,0,large object close
+954,1255,0,large object read
+955,1255,0,large object write
+956,1255,0,large object seek
+957,1255,0,large object create
+715,1255,0,large object create
+958,1255,0,large object position
+959,1255,0,point on line?
+960,1255,0,lseg on line?
+961,1255,0,closest point on line
+962,1255,0,closest point to line segment on line
+963,1255,0,closest point to line on box
+964,1255,0,large object unlink(delete)
+973,1255,0,intersect?
+975,1255,0,box area
+976,1255,0,box width
+977,1255,0,box height
+978,1255,0,distance between boxes
+979,1255,0,area of a closed path
+980,1255,0,box intersection (another box)
+981,1255,0,box diagonal
+982,1255,0,less-than
+983,1255,0,greater-than
+984,1255,0,equal
+985,1255,0,less-than-or-equal
+986,1255,0,greater-than-or-equal
+987,1255,0,sum of path segment lengths
+988,1255,0,not equal
+989,1255,0,vertically aligned?
+990,1255,0,horizontally aligned?
+991,1255,0,distance between
+992,1255,0,slope between points
+993,1255,0,convert points to line segment
+994,1255,0,intersect?
+995,1255,0,parallel?
+996,1255,0,perpendicular?
+997,1255,0,vertical?
+998,1255,0,horizontal?
+999,1255,0,equal
+748,1255,0,convert text to date
+749,1255,0,convert date to text
+837,1255,0,convert text to time
+948,1255,0,convert time to text
+938,1255,0,convert text to timetz
+939,1255,0,convert timetz to text
+1026,1255,0,adjust timestamp to new time zone
+1029,1255,0,(internal)
+1030,1255,0,(internal)
+1031,1255,0,I/O
+1032,1255,0,I/O
+1035,1255,0,add/update ACL item
+1036,1255,0,remove ACL item
+1037,1255,0,ACL contains item?
+1062,1255,0,equality operator for ACL items
+1365,1255,0,make ACL item
+1044,1255,0,I/O
+1045,1255,0,I/O
+1046,1255,0,I/O
+1047,1255,0,I/O
+1048,1255,0,equal
+1049,1255,0,less-than
+1050,1255,0,less-than-or-equal
+1051,1255,0,greater-than
+1052,1255,0,greater-than-or-equal
+1053,1255,0,not equal
+1063,1255,0,larger of two
+1064,1255,0,smaller of two
+1078,1255,0,less-equal-greater
+1080,1255,0,hash
+1081,1255,0,format a type oid and atttypmod to canonical SQL
+1084,1255,0,I/O
+1085,1255,0,I/O
+1086,1255,0,equal
+1087,1255,0,less-than
+1088,1255,0,less-than-or-equal
+1089,1255,0,greater-than
+1090,1255,0,greater-than-or-equal
+1091,1255,0,not equal
+1092,1255,0,less-equal-greater
+1102,1255,0,less-than
+1103,1255,0,less-than-or-equal
+1104,1255,0,greater-than
+1105,1255,0,greater-than-or-equal
+1106,1255,0,not equal
+1107,1255,0,less-equal-greater
+1138,1255,0,larger of two
+1139,1255,0,smaller of two
+1140,1255,0,subtract
+1141,1255,0,add
+1142,1255,0,subtract
+1143,1255,0,I/O
+1144,1255,0,I/O
+1145,1255,0,equal
+1146,1255,0,add
+1147,1255,0,subtract
+1148,1255,0,multiply
+1149,1255,0,divide
+1150,1255,0,I/O
+1151,1255,0,I/O
+1152,1255,0,equal
+1153,1255,0,not equal
+1154,1255,0,less-than
+1155,1255,0,less-than-or-equal
+1156,1255,0,greater-than-or-equal
+1157,1255,0,greater-than
+1158,1255,0,convert UNIX epoch to timestamptz
+1159,1255,0,adjust timestamp to new time zone
+1160,1255,0,I/O
+1161,1255,0,I/O
+1162,1255,0,equal
+1163,1255,0,not equal
+1164,1255,0,less-than
+1165,1255,0,less-than-or-equal
+1166,1255,0,greater-than-or-equal
+1167,1255,0,greater-than
+1168,1255,0,subtract
+1169,1255,0,add
+1170,1255,0,subtract
+1171,1255,0,extract field from timestamp with time zone
+1172,1255,0,extract field from interval
+1173,1255,0,convert abstime to timestamp with time zone
+1174,1255,0,convert date to timestamp with time zone
+2711,1255,0,promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months
+1175,1255,0,promote groups of 24 hours to numbers of days
+1295,1255,0,promote groups of 30 days to numbers of months
+1176,1255,0,convert date and time to timestamp with time zone
+1177,1255,0,convert reltime to interval
+1178,1255,0,convert timestamp with time zone to date
+1179,1255,0,convert abstime to date
+1180,1255,0,convert timestamp with time zone to abstime
+1181,1255,0,"age of a transaction ID, in transactions before current transaction"
+1188,1255,0,subtract
+1189,1255,0,plus
+1190,1255,0,minus
+1191,1255,0,convert text to timestamp with time zone
+1192,1255,0,convert timestamp with time zone to text
+1193,1255,0,convert interval to text
+1194,1255,0,convert interval to reltime
+1195,1255,0,smaller of two
+1196,1255,0,larger of two
+1197,1255,0,smaller of two
+1198,1255,0,larger of two
+1199,1255,0,date difference preserving months and years
+1200,1255,0,adjust interval precision
+1215,1255,0,get description for object id and catalog name
+1216,1255,0,get description for table column
+1993,1255,0,get description for object id and shared catalog name
+1217,1255,0,truncate timestamp with time zone to specified units
+1218,1255,0,truncate interval to specified units
+1219,1255,0,increment
+2804,1255,0,"increment, ignores second argument"
+1230,1255,0,absolute value
+1236,1255,0,larger of two
+1237,1255,0,smaller of two
+1238,1255,0,"matches regex., case-insensitive"
+1239,1255,0,"does not match regex., case-insensitive"
+1240,1255,0,"matches regex., case-insensitive"
+1241,1255,0,"does not match regex., case-insensitive"
+1251,1255,0,absolute value
+1253,1255,0,absolute value
+1263,1255,0,convert text to interval
+1271,1255,0,SQL92 interval comparison
+1272,1255,0,convert date and time to timestamp
+1273,1255,0,extract field from time with time zone
+1274,1255,0,add
+1275,1255,0,subtract
+1276,1255,0,multiply
+1277,1255,0,divide
+1278,1255,0,add
+1279,1255,0,subtract
+1280,1255,0,multiply
+1281,1255,0,divide
+1287,1255,0,convert int8 to oid
+1288,1255,0,convert oid to int8
+1289,1255,0,convert int8 to text
+1290,1255,0,convert text to int8
+1291,1255,0,adjust any array to new element typmod
+1292,1255,0,equal
+1293,1255,0,latest tid of a tuple
+1294,1255,0,latest tid of a tuple
+1265,1255,0,not equal
+2790,1255,0,greater-than
+2791,1255,0,less-than
+2792,1255,0,greater-than-or-equal
+2793,1255,0,less-than-or-equal
+2794,1255,0,btree less-equal-greater
+2795,1255,0,larger of two
+2796,1255,0,smaller of two
+1296,1255,0,convert time and date to timestamp
+1297,1255,0,convert date and time with time zone to timestamp with time zone
+1298,1255,0,convert time with time zone and date to timestamp with time zone
+1299,1255,0,current transaction time
+2647,1255,0,current transaction time
+2648,1255,0,current statement time
+2649,1255,0,current clock time
+1300,1255,0,restriction selectivity for position-comparison operators
+1301,1255,0,join selectivity for position-comparison operators
+1302,1255,0,restriction selectivity for containment comparison operators
+1303,1255,0,join selectivity for containment comparison operators
+1304,1255,0,SQL92 interval comparison
+1305,1255,0,SQL92 interval comparison
+1306,1255,0,SQL92 interval comparison
+1307,1255,0,SQL92 interval comparison
+1308,1255,0,SQL92 interval comparison
+1309,1255,0,SQL92 interval comparison
+1310,1255,0,SQL92 interval comparison
+1311,1255,0,SQL92 interval comparison
+1312,1255,0,I/O
+1313,1255,0,I/O
+1314,1255,0,less-equal-greater
+1315,1255,0,less-equal-greater
+1316,1255,0,convert timestamp to time
+1317,1255,0,length
+1318,1255,0,character length
+1319,1255,0,equal
+1326,1255,0,divide
+1339,1255,0,base 10 logarithm
+1340,1255,0,base 10 logarithm
+1341,1255,0,natural logarithm
+1342,1255,0,round to nearest integer
+1343,1255,0,truncate to integer
+1344,1255,0,square root
+1345,1255,0,cube root
+1346,1255,0,exponentiation
+1368,1255,0,exponentiation
+1347,1255,0,exponential
+1348,1255,0,get description for object id (deprecated)
+1349,1255,0,print type names of oidvector field
+1350,1255,0,I/O
+1351,1255,0,I/O
+1352,1255,0,equal
+1353,1255,0,not equal
+1354,1255,0,less-than
+1355,1255,0,less-than-or-equal
+1356,1255,0,greater-than-or-equal
+1357,1255,0,greater-than
+1358,1255,0,less-equal-greater
+1359,1255,0,convert date and time with time zone to timestamp with time zone
+1364,1255,0,convert abstime to time
+1367,1255,0,character length
+1369,1255,0,character length
+1370,1255,0,convert time to interval
+1372,1255,0,character length
+1373,1255,0,coerce array to another type and adjust element typmod
+1374,1255,0,octet length
+1375,1255,0,octet length
+1377,1255,0,larger of two
+1378,1255,0,smaller of two
+1379,1255,0,larger of two
+1380,1255,0,smaller of two
+1381,1255,0,character length
+1382,1255,0,extract field from abstime
+1383,1255,0,extract field from reltime
+1384,1255,0,extract field from date
+1385,1255,0,extract field from time
+1386,1255,0,date difference from today preserving months and years
+1388,1255,0,convert timestamptz to timetz
+1389,1255,0,finite timestamp?
+1390,1255,0,finite interval?
+1376,1255,0,factorial
+1394,1255,0,absolute value
+1395,1255,0,absolute value
+1396,1255,0,absolute value
+1397,1255,0,absolute value
+1398,1255,0,absolute value
+1400,1255,0,convert varchar to name
+1401,1255,0,convert name to varchar
+1402,1255,0,current schema name
+1403,1255,0,current schema search list
+1404,1255,0,substitute portion of string
+1405,1255,0,substitute portion of string
+1406,1255,0,vertically aligned?
+1407,1255,0,horizontally aligned?
+1408,1255,0,parallel?
+1409,1255,0,perpendicular?
+1410,1255,0,vertical?
+1411,1255,0,horizontal?
+1412,1255,0,parallel?
+1413,1255,0,perpendicular?
+1414,1255,0,vertical?
+1415,1255,0,horizontal?
+1416,1255,0,center of
+1417,1255,0,"bool is not true (ie, false or unknown)"
+1418,1255,0,"bool is not false (ie, true or unknown)"
+1419,1255,0,convert interval to time
+1421,1255,0,convert points to box
+1422,1255,0,add point to box (translate)
+1423,1255,0,subtract point from box (translate)
+1424,1255,0,multiply box by point (scale)
+1425,1255,0,divide box by point (scale)
+1426,1255,0,path contains point?
+1428,1255,0,polygon contains point?
+1429,1255,0,point contained in polygon?
+1430,1255,0,path closed?
+1431,1255,0,path open?
+1432,1255,0,number of points in path
+1433,1255,0,close path
+1434,1255,0,open path
+1435,1255,0,concatenate open paths
+1436,1255,0,add (translate path)
+1437,1255,0,subtract (translate path)
+1438,1255,0,multiply (rotate/scale path)
+1439,1255,0,divide (rotate/scale path)
+1440,1255,0,"convert x, y to point"
+1441,1255,0,add points (translate)
+1442,1255,0,subtract points (translate)
+1443,1255,0,multiply points (scale/rotate)
+1444,1255,0,divide points (scale/rotate)
+1445,1255,0,number of points in polygon
+1446,1255,0,convert polygon to bounding box
+1447,1255,0,convert polygon to path
+1448,1255,0,convert box to polygon
+1449,1255,0,convert path to polygon
+1450,1255,0,I/O
+1451,1255,0,I/O
+1452,1255,0,same as?
+1453,1255,0,contains?
+1454,1255,0,is left of
+1455,1255,0,overlaps or is left of
+1456,1255,0,overlaps or is right of
+1457,1255,0,is right of
+1458,1255,0,is contained by?
+1459,1255,0,overlaps
+1460,1255,0,is below
+1461,1255,0,is above
+1462,1255,0,equal by area
+1463,1255,0,not equal by area
+1464,1255,0,less-than by area
+1465,1255,0,greater-than by area
+1466,1255,0,less-than-or-equal by area
+1467,1255,0,greater-than-or-equal by area
+1468,1255,0,area of circle
+1469,1255,0,diameter of circle
+1470,1255,0,radius of circle
+1471,1255,0,distance between
+1472,1255,0,center of
+1473,1255,0,convert point and radius to circle
+1474,1255,0,convert polygon to circle
+1475,1255,0,convert vertex count and circle to polygon
+1476,1255,0,distance between point and circle
+1477,1255,0,circle contains point?
+1478,1255,0,point contained in circle?
+1479,1255,0,convert box to circle
+1480,1255,0,convert circle to box
+1481,1255,0,convert to tinterval
+1482,1255,0,not equal
+1483,1255,0,less-than by length
+1484,1255,0,less-than-or-equal by length
+1485,1255,0,greater-than by length
+1486,1255,0,greater-than-or-equal by length
+1487,1255,0,distance between endpoints
+1488,1255,0,closest point to line on line segment
+1489,1255,0,closest point to line segment on line segment
+1490,1255,0,I/O
+1491,1255,0,I/O
+1492,1255,0,lines equal?
+1493,1255,0,line from points
+1494,1255,0,intersection point
+1495,1255,0,intersect?
+1496,1255,0,parallel?
+1497,1255,0,perpendicular?
+1498,1255,0,vertical?
+1499,1255,0,horizontal?
+1530,1255,0,distance between endpoints
+1531,1255,0,sum of path segments
+1532,1255,0,center of
+1533,1255,0,center of
+1534,1255,0,center of
+1540,1255,0,center of
+1541,1255,0,diagonal of
+1542,1255,0,center of
+1543,1255,0,center of
+1544,1255,0,convert circle to 12-vertex polygon
+1545,1255,0,number of points in path
+1556,1255,0,number of points in polygon
+1564,1255,0,I/O
+1565,1255,0,I/O
+1569,1255,0,matches LIKE expression
+1570,1255,0,does not match LIKE expression
+1571,1255,0,matches LIKE expression
+1572,1255,0,does not match LIKE expression
+1574,1255,0,sequence next value
+1575,1255,0,sequence current value
+1576,1255,0,set sequence value
+1765,1255,0,set sequence value and iscalled status
+1579,1255,0,I/O
+1580,1255,0,I/O
+1581,1255,0,equal
+1582,1255,0,not equal
+1592,1255,0,greater than or equal
+1593,1255,0,greater than
+1594,1255,0,less than or equal
+1595,1255,0,less than
+1596,1255,0,compare
+1598,1255,0,random value
+1599,1255,0,set random seed
+1600,1255,0,arcsine
+1601,1255,0,arccosine
+1602,1255,0,arctangent
+1603,1255,0,"arctangent, two arguments"
+1604,1255,0,sine
+1605,1255,0,cosine
+1606,1255,0,tangent
+1607,1255,0,cotangent
+1608,1255,0,radians to degrees
+1609,1255,0,degrees to radians
+1610,1255,0,PI
+1618,1255,0,multiply interval
+1620,1255,0,convert first char to int4
+1621,1255,0,convert int4 to char
+1622,1255,0,replicate string int4 times
+1623,1255,0,convert SQL99 regexp pattern to POSIX style
+1631,1255,0,matches LIKE expression
+1632,1255,0,does not match LIKE expression
+1633,1255,0,"matches LIKE expression, case-insensitive"
+1634,1255,0,"does not match LIKE expression, case-insensitive"
+1635,1255,0,"matches LIKE expression, case-insensitive"
+1636,1255,0,"does not match LIKE expression, case-insensitive"
+1637,1255,0,convert LIKE pattern to use backslash escapes
+1656,1255,0,"matches regex., case-insensitive"
+1657,1255,0,"does not match regex., case-insensitive"
+1658,1255,0,"matches regex., case-sensitive"
+1659,1255,0,"does not match regex., case-sensitive"
+1660,1255,0,"matches LIKE expression, case-insensitive"
+1661,1255,0,"does not match LIKE expression, case-insensitive"
+1689,1255,0,update flat-file copy of a shared catalog
+868,1255,0,find position of substring
+870,1255,0,lowercase
+871,1255,0,uppercase
+872,1255,0,capitalize each word
+873,1255,0,left-pad string to length
+874,1255,0,right-pad string to length
+875,1255,0,trim selected characters from left end of string
+876,1255,0,trim selected characters from right end of string
+877,1255,0,return portion of string
+878,1255,0,map a set of character appearing in string
+879,1255,0,left-pad string to length
+880,1255,0,right-pad string to length
+881,1255,0,trim spaces from left end of string
+882,1255,0,trim spaces from right end of string
+883,1255,0,return portion of string
+884,1255,0,trim selected characters from both ends of string
+885,1255,0,trim spaces from both ends of string
+936,1255,0,return portion of string
+937,1255,0,return portion of string
+2087,1255,0,replace all occurrences of old_substr with new_substr in string
+2284,1255,0,replace text using regexp
+2285,1255,0,replace text using regexp
+5018,1255,0,return all match groups for regexp
+5019,1255,0,return all match groups for regexp
+5020,1255,0,split string by pattern
+5021,1255,0,split string by pattern
+5022,1255,0,split string by pattern
+5023,1255,0,split string by pattern
+2088,1255,0,split string by field_sep and return field_num
+2089,1255,0,convert int4 number to hex
+2090,1255,0,convert int8 number to hex
+1039,1255,0,encoding name of current database
+810,1255,0,encoding name of current database
+1717,1255,0,convert string with specified destination encoding name
+1813,1255,0,convert string with specified encoding names
+1619,1255,0,convert string with specified conversion name
+1264,1255,0,convert encoding name to encoding id
+1597,1255,0,convert encoding id to encoding name
+1638,1255,0,greater-than
+1639,1255,0,greater-than-or-equal
+1573,1255,0,source text of a rule
+1640,1255,0,select statement of a view
+1641,1255,0,select statement of a view
+1642,1255,0,role name by OID (with fallback)
+1643,1255,0,index description
+1662,1255,0,trigger description
+1387,1255,0,constraint description
+1716,1255,0,deparse an encoded expression
+1665,1255,0,name of sequence for a serial column
+5025,1255,0,partition configuration for a given relation
+5028,1255,0,partition configuration for a given rule
+1644,1255,0,referential integrity FOREIGN KEY ... REFERENCES
+1645,1255,0,referential integrity FOREIGN KEY ... REFERENCES
+1646,1255,0,referential integrity ON DELETE CASCADE
+1647,1255,0,referential integrity ON UPDATE CASCADE
+1648,1255,0,referential integrity ON DELETE RESTRICT
+1649,1255,0,referential integrity ON UPDATE RESTRICT
+1650,1255,0,referential integrity ON DELETE SET NULL
+1651,1255,0,referential integrity ON UPDATE SET NULL
+1652,1255,0,referential integrity ON DELETE SET DEFAULT
+1653,1255,0,referential integrity ON UPDATE SET DEFAULT
+1654,1255,0,referential integrity ON DELETE NO ACTION
+1655,1255,0,referential integrity ON UPDATE NO ACTION
+1666,1255,0,equal
+1667,1255,0,not equal
+1668,1255,0,greater than or equal
+1669,1255,0,greater than
+1670,1255,0,less than or equal
+1671,1255,0,less than
+1672,1255,0,compare
+1673,1255,0,bitwise and
+1674,1255,0,bitwise or
+1675,1255,0,bitwise exclusive or
+1676,1255,0,bitwise not
+1677,1255,0,bitwise left shift
+1678,1255,0,bitwise right shift
+1679,1255,0,bitwise concatenation
+1680,1255,0,return portion of bitstring
+1681,1255,0,bitstring length
+1682,1255,0,octet length
+1683,1255,0,int4 to bitstring
+1684,1255,0,bitstring to int4
+1685,1255,0,adjust bit() to typmod length
+1687,1255,0,adjust varbit() to typmod length
+1698,1255,0,return position of sub-bitstring
+1699,1255,0,return portion of bitstring
+436,1255,0,I/O
+437,1255,0,I/O
+752,1255,0,MAC address to text
+753,1255,0,MAC manufacturer fields
+767,1255,0,text to MAC address
+830,1255,0,equal
+831,1255,0,less-than
+832,1255,0,less-than-or-equal
+833,1255,0,greater-than
+834,1255,0,greater-than-or-equal
+835,1255,0,not equal
+836,1255,0,less-equal-greater
+910,1255,0,I/O
+911,1255,0,I/O
+1267,1255,0,I/O
+1427,1255,0,I/O
+920,1255,0,equal
+921,1255,0,less-than
+922,1255,0,less-than-or-equal
+923,1255,0,greater-than
+924,1255,0,greater-than-or-equal
+925,1255,0,not equal
+926,1255,0,less-equal-greater
+927,1255,0,is-subnet
+928,1255,0,is-subnet-or-equal
+929,1255,0,is-supernet
+930,1255,0,is-supernet-or-equal
+598,1255,0,abbreviated display of inet value
+599,1255,0,abbreviated display of cidr value
+605,1255,0,change netmask of inet
+635,1255,0,change netmask of cidr
+711,1255,0,"address family (4 for IPv4, 6 for IPv6)"
+683,1255,0,network part of address
+696,1255,0,netmask of address
+697,1255,0,netmask length
+698,1255,0,broadcast address of network
+699,1255,0,show address octets only
+730,1255,0,show all parts of inet/cidr value
+1362,1255,0,hostmask of address
+1713,1255,0,text to inet
+1714,1255,0,text to cidr
+1715,1255,0,coerce inet to cidr
+2196,1255,0,inet address of the client
+2197,1255,0,client's port number for this connection
+2198,1255,0,inet address of the server
+2199,1255,0,server's port number for this connection
+2627,1255,0,bitwise not
+2628,1255,0,bitwise and
+2629,1255,0,bitwise or
+2630,1255,0,add integer to inet value
+2631,1255,0,add integer to inet value
+2632,1255,0,subtract integer from inet value
+2633,1255,0,subtract inet values
+1686,1255,0,(internal)
+1688,1255,0,(internal)
+1690,1255,0,minus
+1691,1255,0,less-than-or-equal
+1692,1255,0,greater-than-or-equal
+1693,1255,0,btree less-equal-greater
+1696,1255,0,hash
+1697,1255,0,hash
+1701,1255,0,I/O
+1702,1255,0,I/O
+1703,1255,0,adjust numeric to typmod precision/scale
+1704,1255,0,absolute value
+1705,1255,0,absolute value
+1706,1255,0,sign of value
+1707,1255,0,value rounded to 'scale'
+1708,1255,0,value rounded to 'scale' of zero
+1709,1255,0,value truncated to 'scale'
+1710,1255,0,value truncated to 'scale' of zero
+1711,1255,0,smallest integer >= value
+2167,1255,0,smallest integer >= value
+1712,1255,0,largest integer <= value
+1718,1255,0,equal
+1719,1255,0,not equal
+1720,1255,0,greater-than
+1721,1255,0,greater-than-or-equal
+1722,1255,0,less-than
+1723,1255,0,less-than-or-equal
+1724,1255,0,add
+1725,1255,0,subtract
+1726,1255,0,multiply
+1727,1255,0,divide
+1728,1255,0,modulus
+1729,1255,0,modulus
+1730,1255,0,square root
+1731,1255,0,square root
+1732,1255,0,e raised to the power of n
+1733,1255,0,e raised to the power of n
+1734,1255,0,natural logarithm of n
+1735,1255,0,natural logarithm of n
+1736,1255,0,logarithm base m of n
+1737,1255,0,logarithm base m of n
+1738,1255,0,m raised to the power of n
+2169,1255,0,m raised to the power of n
+1739,1255,0,m raised to the power of n
+1740,1255,0,(internal)
+1741,1255,0,logarithm base 10 of n
+1742,1255,0,(internal)
+1743,1255,0,(internal)
+1744,1255,0,(internal)
+1745,1255,0,(internal)
+1746,1255,0,(internal)
+2170,1255,0,bucket number of operand in equidepth histogram
+1747,1255,0,plus
+1748,1255,0,minus
+1749,1255,0,plus
+1750,1255,0,minus
+1764,1255,0,increment by one
+1004,1255,0,increment by one
+1766,1255,0,smaller of two numbers
+1767,1255,0,larger of two numbers
+1769,1255,0,compare two numbers
+1771,1255,0,negate
+1779,1255,0,(internal)
+1781,1255,0,(internal)
+1782,1255,0,(internal)
+1783,1255,0,(internal)
+1770,1255,0,format timestamp with time zone to text
+1772,1255,0,format numeric to text
+1773,1255,0,format int4 to text
+1774,1255,0,format int8 to text
+1775,1255,0,format float4 to text
+1776,1255,0,format float8 to text
+1777,1255,0,convert text to numeric
+1778,1255,0,convert text to timestamp with time zone
+1780,1255,0,convert text to date
+1768,1255,0,format interval to text
+1282,1255,0,quote an identifier for usage in a querystring
+1283,1255,0,quote a literal for usage in a querystring
+1798,1255,0,I/O
+1799,1255,0,I/O
+1810,1255,0,length in bits
+1811,1255,0,length in bits
+1812,1255,0,length in bits
+1814,1255,0,restriction selectivity of ILIKE
+1815,1255,0,restriction selectivity of NOT ILIKE
+1816,1255,0,join selectivity of ILIKE
+1817,1255,0,join selectivity of NOT ILIKE
+1818,1255,0,restriction selectivity of regex match
+1819,1255,0,restriction selectivity of LIKE
+1820,1255,0,restriction selectivity of case-insensitive regex match
+1821,1255,0,restriction selectivity of regex non-match
+1822,1255,0,restriction selectivity of NOT LIKE
+1823,1255,0,restriction selectivity of case-insensitive regex non-match
+1824,1255,0,join selectivity of regex match
+1825,1255,0,join selectivity of LIKE
+1826,1255,0,join selectivity of case-insensitive regex match
+1827,1255,0,join selectivity of regex non-match
+1828,1255,0,join selectivity of NOT LIKE
+1829,1255,0,join selectivity of case-insensitive regex non-match
+1830,1255,0,AVG aggregate final function
+2512,1255,0,VAR_POP aggregate final function
+1831,1255,0,VAR_SAMP aggregate final function
+2513,1255,0,STDDEV_POP aggregate final function
+1832,1255,0,STDDEV_SAMP aggregate final function
+1833,1255,0,aggregate transition function
+3102,1255,0,aggregate transition function
+7309,1255,0,aggregate inverse transition function
+3103,1255,0,aggregate inverse transition function
+1834,1255,0,aggregate transition function
+1835,1255,0,aggregate transition function
+1836,1255,0,aggregate transition function
+7306,1255,0,aggregate inverse transition function
+7307,1255,0,aggregate inverse transition function
+7308,1255,0,aggregate inverse transition function
+1837,1255,0,AVG aggregate final function
+2514,1255,0,VAR_POP aggregate final function
+1838,1255,0,VAR_SAMP aggregate final function
+2596,1255,0,STDDEV_POP aggregate final function
+1839,1255,0,STDDEV_SAMP aggregate final function
+1840,1255,0,SUM(int2) transition function
+1841,1255,0,SUM(int4) transition function
+1842,1255,0,SUM(int8) transition function
+7008,1255,0,SUM(int2) inverse transition function
+7009,1255,0,SUM(int4) inverse transition function
+7010,1255,0,SUM(int8) inverse transition function
+1843,1255,0,aggregate transition function
+6038,1255,0,aggregate inverse transition function
+1844,1255,0,AVG aggregate final function
+1962,1255,0,AVG(int2) transition function
+1963,1255,0,AVG(int4) transition function
+3100,1255,0,AVG(int8) transition function
+6019,1255,0,AVG(int2) transition function
+6020,1255,0,AVG(int4) transition function
+3101,1255,0,AVG(int8) transition function
+1964,1255,0,AVG(int) aggregate final function
+2805,1255,0,"REGR_COUNT(double, double) transition function"
+2806,1255,0,"REGR_...(double, double) transition function"
+2807,1255,0,"REGR_SXX(double, double) aggregate final function"
+2808,1255,0,"REGR_SYY(double, double) aggregate final function"
+2809,1255,0,"REGR_SXY(double, double) aggregate final function"
+2810,1255,0,"REGR_AVGX(double, double) aggregate final function"
+2811,1255,0,"REGR_AVGY(double, double) aggregate final function"
+2812,1255,0,"REGR_R2(double, double) aggregate final function"
+2813,1255,0,"REGR_SLOPE(double, double) aggregate final function"
+2814,1255,0,"REGR_INTERCEPT(double, double) aggregate final function"
+2815,1255,0,"COVAR_POP(double, double) aggregate final function"
+2816,1255,0,"COVAR_SAMP(double, double) aggregate final function"
+2817,1255,0,"CORR(double, double) aggregate final function"
+1845,1255,0,encode text from DB encoding to ASCII text
+1846,1255,0,encode text from encoding to ASCII text
+1847,1255,0,encode text from encoding to ASCII text
+1848,1255,0,plus
+1850,1255,0,equal
+1851,1255,0,not equal
+1852,1255,0,less-than
+1853,1255,0,greater-than
+1854,1255,0,less-than-or-equal
+1855,1255,0,greater-than-or-equal
+1856,1255,0,equal
+1857,1255,0,not equal
+1858,1255,0,less-than
+1859,1255,0,greater-than
+1860,1255,0,less-than-or-equal
+1861,1255,0,greater-than-or-equal
+1892,1255,0,bitwise and
+1893,1255,0,bitwise or
+1894,1255,0,bitwise xor
+1895,1255,0,bitwise not
+1896,1255,0,bitwise shift left
+1897,1255,0,bitwise shift right
+1898,1255,0,bitwise and
+1899,1255,0,bitwise or
+1900,1255,0,bitwise xor
+1901,1255,0,bitwise not
+1902,1255,0,bitwise shift left
+1903,1255,0,bitwise shift right
+1904,1255,0,bitwise and
+1905,1255,0,bitwise or
+1906,1255,0,bitwise xor
+1907,1255,0,bitwise not
+1908,1255,0,bitwise shift left
+1909,1255,0,bitwise shift right
+1910,1255,0,unary plus
+1911,1255,0,unary plus
+1912,1255,0,unary plus
+1913,1255,0,unary plus
+1914,1255,0,unary plus
+1915,1255,0,unary plus
+1922,1255,0,"user privilege on relation by username, rel name"
+1923,1255,0,"user privilege on relation by username, rel oid"
+1924,1255,0,"user privilege on relation by user oid, rel name"
+1925,1255,0,"user privilege on relation by user oid, rel oid"
+1926,1255,0,current user privilege on relation by rel name
+1927,1255,0,current user privilege on relation by rel oid
+1928,1255,0,Statistics: Number of scans done for table/index
+1929,1255,0,Statistics: Number of tuples read by seqscan
+1930,1255,0,Statistics: Number of tuples fetched by idxscan
+1931,1255,0,Statistics: Number of tuples inserted
+1932,1255,0,Statistics: Number of tuples updated
+1933,1255,0,Statistics: Number of tuples deleted
+1934,1255,0,Statistics: Number of blocks fetched
+1935,1255,0,Statistics: Number of blocks found in cache
+2781,1255,0,Statistics: Last manual vacuum time for a table
+2782,1255,0,Statistics: Last auto vacuum time for a table
+2783,1255,0,Statistics: Last manual analyze time for a table
+2784,1255,0,Statistics: Last auto analyze time for a table
+1936,1255,0,Statistics: Currently active backend IDs
+2026,1255,0,Statistics: Current backend PID
+2274,1255,0,Statistics: Reset collected statistics
+1937,1255,0,Statistics: PID of backend
+1938,1255,0,Statistics: Database ID of backend
+1939,1255,0,Statistics: User ID of backend
+1940,1255,0,Statistics: Current query of backend
+2853,1255,0,Statistics: Is backend currently waiting for a lock
+2094,1255,0,Statistics: Start time for current query of backend
+1391,1255,0,Statistics: Start time for current backend session
+1392,1255,0,Statistics: Address of client connected to backend
+1393,1255,0,Statistics: Port number of client connected to backend
+1941,1255,0,Statistics: Number of backends in database
+1942,1255,0,Statistics: Transactions committed
+1943,1255,0,Statistics: Transactions rolled back
+1944,1255,0,Statistics: Blocks fetched for database
+1945,1255,0,Statistics: Blocks found in cache for database
+6031,1255,0,Statistics: Number of queries that executed in queue
+6032,1255,0,Statistics: Number of queries that waited in queue
+6033,1255,0,Statistics:  Elapsed seconds for queries that executed in queue
+6034,1255,0,Statistics:  Elapsed seconds for queries that waited in queue
+6039,1255,0,Statistics: Greenplum session id of backend
+6042,1255,0,change priority of all the backends for a given session id
+1946,1255,0,Convert bytea value into some ascii-only text string
+1947,1255,0,Convert ascii-encoded text string into bytea value
+1948,1255,0,equal
+1949,1255,0,less-than
+1950,1255,0,less-than-or-equal
+1951,1255,0,greater-than
+1952,1255,0,greater-than-or-equal
+1953,1255,0,not equal
+1954,1255,0,less-equal-greater
+1961,1255,0,adjust timestamp precision
+1965,1255,0,larger of two
+1966,1255,0,smaller of two
+1967,1255,0,adjust timestamptz precision
+1968,1255,0,adjust time precision
+1969,1255,0,adjust time with time zone precision
+2005,1255,0,matches LIKE expression
+2006,1255,0,does not match LIKE expression
+2007,1255,0,matches LIKE expression
+2008,1255,0,does not match LIKE expression
+2009,1255,0,convert LIKE pattern to use backslash escapes
+2010,1255,0,octet length
+2011,1255,0,concatenate
+2012,1255,0,return portion of string
+2013,1255,0,return portion of string
+2085,1255,0,return portion of string
+2086,1255,0,return portion of string
+2014,1255,0,return position of substring
+2015,1255,0,trim both ends of string
+2019,1255,0,convert timestamptz to time
+2020,1255,0,truncate timestamp to specified units
+2021,1255,0,extract field from timestamp
+2022,1255,0,convert text to timestamp
+2023,1255,0,convert abstime to timestamp
+2024,1255,0,convert date to timestamp
+2025,1255,0,convert date and time to timestamp
+2027,1255,0,convert timestamp with time zone to timestamp
+2028,1255,0,convert timestamp to timestamp with time zone
+2029,1255,0,convert timestamp to date
+2030,1255,0,convert timestamp to abstime
+2031,1255,0,subtract
+2032,1255,0,plus
+2033,1255,0,minus
+2034,1255,0,convert timestamp to text
+2035,1255,0,smaller of two
+2036,1255,0,larger of two
+2037,1255,0,adjust time with time zone to new zone
+2038,1255,0,adjust time with time zone to new zone
+2041,1255,0,SQL92 interval comparison
+2042,1255,0,SQL92 interval comparison
+2043,1255,0,SQL92 interval comparison
+2044,1255,0,SQL92 interval comparison
+2045,1255,0,less-equal-greater
+2046,1255,0,convert time with time zone to time
+2047,1255,0,convert time to timetz
+2048,1255,0,finite timestamp?
+2049,1255,0,format timestamp to text
+2052,1255,0,equal
+2053,1255,0,not equal
+2054,1255,0,less-than
+2055,1255,0,less-than-or-equal
+2056,1255,0,greater-than-or-equal
+2057,1255,0,greater-than
+2058,1255,0,date difference preserving months and years
+2059,1255,0,date difference from today preserving months and years
+2069,1255,0,adjust timestamp to new time zone
+2070,1255,0,adjust timestamp to new time zone
+2071,1255,0,add
+2072,1255,0,subtract
+2073,1255,0,extracts text matching regular expression
+2074,1255,0,extracts text matching SQL99 regular expression
+2075,1255,0,int8 to bitstring
+2076,1255,0,bitstring to int8
+2077,1255,0,SHOW X as a function
+2078,1255,0,SET X as a function
+2084,1255,0,SHOW ALL as a function
+1371,1255,0,view system lock information
+1065,1255,0,view two-phase transactions
+2079,1255,0,is table visible in search path?
+2080,1255,0,is type visible in search path?
+2081,1255,0,is function visible in search path?
+2082,1255,0,is operator visible in search path?
+2083,1255,0,is opclass visible in search path?
+2093,1255,0,is conversion visible in search path?
+2854,1255,0,"get OID of current session's temp schema, if any"
+2855,1255,0,is schema another session's temp schema?
+2171,1255,0,Cancel a server process' current query
+2172,1255,0,Prepare for taking an online backup
+2173,1255,0,Finish taking an online backup
+2848,1255,0,Switch to new xlog file
+2849,1255,0,current xlog write location
+2852,1255,0,current xlog insert location
+2850,1255,0,"xlog filename and byte offset, given an xlog location"
+2851,1255,0,"xlog filename, given an xlog location"
+2621,1255,0,Reload configuration files
+2622,1255,0,Rotate log file
+2623,1255,0,Return file information
+2624,1255,0,Read text from a file
+2625,1255,0,List all files in a directory
+2626,1255,0,Sleep for the specified time in seconds
+6030,1255,0,Return resource queue information
+2212,1255,0,I/O
+2213,1255,0,I/O
+2214,1255,0,I/O
+2215,1255,0,I/O
+2216,1255,0,I/O
+2217,1255,0,I/O
+2218,1255,0,I/O
+2219,1255,0,I/O
+2220,1255,0,I/O
+2221,1255,0,I/O
+1079,1255,0,convert text to regclass
+2246,1255,0,(internal)
+2247,1255,0,(internal)
+2248,1255,0,(internal)
+2250,1255,0,"user privilege on database by username, database name"
+2251,1255,0,"user privilege on database by username, database oid"
+2252,1255,0,"user privilege on database by user oid, database name"
+2253,1255,0,"user privilege on database by user oid, database oid"
+2254,1255,0,current user privilege on database by database name
+2255,1255,0,current user privilege on database by database oid
+2256,1255,0,"user privilege on function by username, function name"
+2257,1255,0,"user privilege on function by username, function oid"
+2258,1255,0,"user privilege on function by user oid, function name"
+2259,1255,0,"user privilege on function by user oid, function oid"
+2260,1255,0,current user privilege on function by function name
+2261,1255,0,current user privilege on function by function oid
+2262,1255,0,"user privilege on language by username, language name"
+2263,1255,0,"user privilege on language by username, language oid"
+2264,1255,0,"user privilege on language by user oid, language name"
+2265,1255,0,"user privilege on language by user oid, language oid"
+2266,1255,0,current user privilege on language by language name
+2267,1255,0,current user privilege on language by language oid
+2268,1255,0,"user privilege on schema by username, schema name"
+2269,1255,0,"user privilege on schema by username, schema oid"
+2270,1255,0,"user privilege on schema by user oid, schema name"
+2271,1255,0,"user privilege on schema by user oid, schema oid"
+2272,1255,0,current user privilege on schema by schema name
+2273,1255,0,current user privilege on schema by schema oid
+2390,1255,0,"user privilege on tablespace by username, tablespace name"
+2391,1255,0,"user privilege on tablespace by username, tablespace oid"
+2392,1255,0,"user privilege on tablespace by user oid, tablespace name"
+2393,1255,0,"user privilege on tablespace by user oid, tablespace oid"
+2394,1255,0,current user privilege on tablespace by tablespace name
+2395,1255,0,current user privilege on tablespace by tablespace oid
+2705,1255,0,"user privilege on role by username, role name"
+2706,1255,0,"user privilege on role by username, role oid"
+2707,1255,0,"user privilege on role by user oid, role name"
+2708,1255,0,"user privilege on role by user oid, role oid"
+2709,1255,0,current user privilege on role by role name
+2710,1255,0,current user privilege on role by role oid
+1269,1255,0,"bytes required to store the value, perhaps with compression"
+2322,1255,0,Calculate total disk space usage for the specified tablespace
+2323,1255,0,Calculate total disk space usage for the specified tablespace
+2324,1255,0,Calculate total disk space usage for the specified database
+2168,1255,0,Calculate total disk space usage for the specified database
+2325,1255,0,Calculate disk space usage for the specified table or index
+2289,1255,0,Calculate disk space usage for the specified table or index
+2286,1255,0,Calculate total disk space usage for the specified table and associated indexes and toast tables
+2287,1255,0,Calculate total disk space usage for the specified table and associated indexes and toast tables
+2288,1255,0,Convert a long int to a human readable text using size units
+2290,1255,0,I/O
+2291,1255,0,I/O
+2292,1255,0,I/O
+2293,1255,0,I/O
+2294,1255,0,I/O
+2295,1255,0,I/O
+2296,1255,0,I/O
+2297,1255,0,I/O
+2298,1255,0,I/O
+2299,1255,0,I/O
+2300,1255,0,I/O
+2301,1255,0,I/O
+2302,1255,0,I/O
+2303,1255,0,I/O
+2304,1255,0,I/O
+2305,1255,0,I/O
+2306,1255,0,I/O
+2307,1255,0,I/O
+2312,1255,0,I/O
+2313,1255,0,I/O
+2398,1255,0,I/O
+2399,1255,0,I/O
+2597,1255,0,I/O
+2598,1255,0,I/O
+2311,1255,0,calculates md5 hash
+2321,1255,0,calculates md5 hash
+2338,1255,0,less-than
+2339,1255,0,less-than-or-equal
+2340,1255,0,equal
+2341,1255,0,greater-than
+2342,1255,0,greater-than-or-equal
+2343,1255,0,not equal
+2344,1255,0,less-equal-greater
+2351,1255,0,less-than
+2352,1255,0,less-than-or-equal
+2353,1255,0,equal
+2354,1255,0,greater-than
+2355,1255,0,greater-than-or-equal
+2356,1255,0,not equal
+2357,1255,0,less-equal-greater
+2364,1255,0,less-than
+2365,1255,0,less-than-or-equal
+2366,1255,0,equal
+2367,1255,0,greater-than
+2368,1255,0,greater-than-or-equal
+2369,1255,0,not equal
+2370,1255,0,less-equal-greater
+2377,1255,0,less-than
+2378,1255,0,less-than-or-equal
+2379,1255,0,equal
+2380,1255,0,greater-than
+2381,1255,0,greater-than-or-equal
+2382,1255,0,not equal
+2383,1255,0,less-equal-greater
+2520,1255,0,less-than
+2521,1255,0,less-than-or-equal
+2522,1255,0,equal
+2523,1255,0,greater-than
+2524,1255,0,greater-than-or-equal
+2525,1255,0,not equal
+2526,1255,0,less-equal-greater
+2527,1255,0,less-than
+2528,1255,0,less-than-or-equal
+2529,1255,0,equal
+2530,1255,0,greater-than
+2531,1255,0,greater-than-or-equal
+2532,1255,0,not equal
+2533,1255,0,less-equal-greater
+2400,1255,0,I/O
+2401,1255,0,I/O
+2402,1255,0,I/O
+2403,1255,0,I/O
+2404,1255,0,I/O
+2405,1255,0,I/O
+2406,1255,0,I/O
+2407,1255,0,I/O
+2408,1255,0,I/O
+2409,1255,0,I/O
+2410,1255,0,I/O
+2411,1255,0,I/O
+2412,1255,0,I/O
+2413,1255,0,I/O
+2414,1255,0,I/O
+2415,1255,0,I/O
+2416,1255,0,I/O
+2417,1255,0,I/O
+2418,1255,0,I/O
+2419,1255,0,I/O
+2420,1255,0,I/O
+2421,1255,0,I/O
+2422,1255,0,I/O
+2423,1255,0,I/O
+2424,1255,0,I/O
+2425,1255,0,I/O
+2426,1255,0,I/O
+2427,1255,0,I/O
+2428,1255,0,I/O
+2429,1255,0,I/O
+2430,1255,0,I/O
+2431,1255,0,I/O
+2432,1255,0,I/O
+2433,1255,0,I/O
+2434,1255,0,I/O
+2435,1255,0,I/O
+2436,1255,0,I/O
+2437,1255,0,I/O
+2438,1255,0,I/O
+2439,1255,0,I/O
+2440,1255,0,I/O
+2441,1255,0,I/O
+2442,1255,0,I/O
+2443,1255,0,I/O
+2444,1255,0,I/O
+2445,1255,0,I/O
+2446,1255,0,I/O
+2447,1255,0,I/O
+2448,1255,0,I/O
+2449,1255,0,I/O
+2450,1255,0,I/O
+2451,1255,0,I/O
+2452,1255,0,I/O
+2453,1255,0,I/O
+2454,1255,0,I/O
+2455,1255,0,I/O
+2456,1255,0,I/O
+2457,1255,0,I/O
+2458,1255,0,I/O
+2459,1255,0,I/O
+2460,1255,0,I/O
+2461,1255,0,I/O
+2462,1255,0,I/O
+2463,1255,0,I/O
+2464,1255,0,I/O
+2465,1255,0,I/O
+2466,1255,0,I/O
+2467,1255,0,I/O
+2468,1255,0,I/O
+2469,1255,0,I/O
+2470,1255,0,I/O
+2471,1255,0,I/O
+2472,1255,0,I/O
+2473,1255,0,I/O
+2474,1255,0,I/O
+2475,1255,0,I/O
+2476,1255,0,I/O
+2477,1255,0,I/O
+2478,1255,0,I/O
+2479,1255,0,I/O
+2480,1255,0,I/O
+2481,1255,0,I/O
+2482,1255,0,I/O
+2483,1255,0,I/O
+2484,1255,0,I/O
+2485,1255,0,I/O
+2486,1255,0,I/O
+2487,1255,0,I/O
+2488,1255,0,I/O
+2489,1255,0,I/O
+2490,1255,0,I/O
+2491,1255,0,I/O
+2492,1255,0,I/O
+2493,1255,0,I/O
+2494,1255,0,I/O
+2495,1255,0,I/O
+2496,1255,0,I/O
+2497,1255,0,I/O
+2498,1255,0,I/O
+2499,1255,0,I/O
+2500,1255,0,I/O
+2501,1255,0,I/O
+2502,1255,0,I/O
+2503,1255,0,I/O
+2504,1255,0,source text of a rule with pretty-print option
+2505,1255,0,select statement of a view with pretty-print option
+2506,1255,0,select statement of a view with pretty-print option
+2507,1255,0,index description (full create statement or single expression) with pretty-print option
+2508,1255,0,constraint description with pretty-print option
+2509,1255,0,deparse an encoded expression with pretty-print option
+2510,1255,0,get the prepared statements for this session
+2511,1255,0,get the open cursors for this session
+2599,1255,0,get the available time zone abbreviations
+2856,1255,0,get the available time zone names
+1066,1255,0,non-persistent series generator
+1067,1255,0,non-persistent series generator
+1068,1255,0,non-persistent series generator
+1069,1255,0,non-persistent series generator
+2515,1255,0,boolean-and aggregate transition function
+2516,1255,0,boolean-or aggregate transition function
+2517,1255,0,boolean-and aggregate
+2518,1255,0,boolean-or aggregate
+2519,1255,0,boolean-and aggregate
+2236,1255,0,bitwise-and smallint aggregate
+2237,1255,0,bitwise-or smallint aggregate
+2238,1255,0,bitwise-and integer aggregate
+2239,1255,0,bitwise-or integer aggregate
+2240,1255,0,bitwise-and bigint aggregate
+2241,1255,0,bitwise-or bigint aggregate
+2242,1255,0,bitwise-and bit aggregate
+2243,1255,0,bitwise-or bit aggregate
+2556,1255,0,returns database oids in a tablespace
+2557,1255,0,convert int4 to boolean
+2558,1255,0,convert boolean to int4
+2559,1255,0,current value from last used sequence
+2560,1255,0,postmaster start time
+2562,1255,0,is below
+2563,1255,0,overlaps or is below
+2564,1255,0,overlaps or is above
+2565,1255,0,is above
+2566,1255,0,is below
+2567,1255,0,overlaps or is below
+2568,1255,0,overlaps or is above
+2569,1255,0,is above
+2587,1255,0,overlaps or is below
+2588,1255,0,overlaps or is above
+2578,1255,0,GiST support
+2579,1255,0,GiST support
+2580,1255,0,GiST support
+2581,1255,0,GiST support
+2582,1255,0,GiST support
+2583,1255,0,GiST support
+2584,1255,0,GiST support
+2585,1255,0,GiST support
+2586,1255,0,GiST support
+2591,1255,0,GiST support
+2592,1255,0,GiST support
+2730,1255,0,gin(internal)
+2731,1255,0,gin(internal)
+2732,1255,0,gin(internal)
+2733,1255,0,gin(internal)
+2734,1255,0,gin(internal)
+2735,1255,0,gin(internal)
+2736,1255,0,gin(internal)
+2737,1255,0,gin(internal)
+2738,1255,0,gin(internal)
+2739,1255,0,gin(internal)
+2740,1255,0,gin(internal)
+2741,1255,0,gin(internal)
+2788,1255,0,gin(internal)
+3200,1255,0,transpose a two dimensional matrix
+3201,1255,0,perform matrix multiplication on two matrices
+3202,1255,0,perform matrix multiplication on two matrices
+3203,1255,0,perform matrix multiplication on two matrices
+3204,1255,0,perform matrix multiplication on two matrices
+3205,1255,0,multiply a matrix by a scalar value
+3206,1255,0,multiply a matrix by a scalar value
+3208,1255,0,perform matrix addition on two conformable matrices
+3209,1255,0,perform matrix addition on two conformable matrices
+3210,1255,0,perform matrix addition on two conformable matrices
+3211,1255,0,perform matrix addition on two conformable matrices
+3212,1255,0,perform matrix addition on two conformable matrices
+3213,1255,0,perform matrix addition on two conformable matrices
+3214,1255,0,perform matrix addition on two conformable matrices
+3215,1255,0,perform matrix addition on two conformable matrices
+6003,1255,0,launch mpp backup on outboard Postgres instances
+6004,1255,0,launch mpp restore on outboard Postgres instances
+6005,1255,0,read mpp backup file on outboard Postgres instances
+6006,1255,0,write mpp backup file on outboard Postgres instances
+6007,1255,0,view mpp pgdatabase state
+6008,1255,0,aggregate preliminary function
+3104,1255,0,aggregate preliminary function
+6009,1255,0,aggregate preliminary function
+6010,1255,0,aggregate preliminary function
+3111,1255,0,aggregate preliminary function
+6011,1255,0,aggregate preliminary function
+6015,1255,0,aggregate inverse preliminary function
+3105,1255,0,aggregate inverse preliminary function
+6016,1255,0,aggregate preliminary function
+3110,1255,0,aggregate inverse preliminary function
+6018,1255,0,aggregate preliminary function
+6021,1255,0,convert tid to int8
+6022,1255,0,segment executing function
+6023,1255,0,Highest oid used so far
+6035,1255,0,view mpp distributed transaction state
+6036,1255,0,Highest distributed transaction id used so far
+6037,1255,0,Current distributed transaction id
+6043,1255,0,view logged local transaction status
+6044,1255,0,view logged distributed transaction status
+7100,1255,0,window immediate function
+7101,1255,0,window immediate function
+7102,1255,0,window immediate function
+7204,1255,0,window preliminary function
+7205,1255,0,window preliminary function
+7206,1255,0,window preliminary function
+7207,1255,0,window preliminary function
+7303,1255,0,window final function
+7304,1255,0,window final function
+7305,1255,0,window final function
+7156,1255,0,append only tables utility function
+2743,1255,0,GIN array support
+2744,1255,0,GIN array support
+2747,1255,0,overlaps
+2748,1255,0,contains
+2749,1255,0,is contained by
+2880,1255,0,obtain exclusive advisory lock
+2881,1255,0,obtain shared advisory lock
+2882,1255,0,obtain exclusive advisory lock if available
+2883,1255,0,obtain shared advisory lock if available
+2884,1255,0,release exclusive advisory lock
+2885,1255,0,release shared advisory lock
+2886,1255,0,obtain exclusive advisory lock
+2887,1255,0,obtain shared advisory lock
+2888,1255,0,obtain exclusive advisory lock if available
+2889,1255,0,obtain shared advisory lock if available
+2890,1255,0,release exclusive advisory lock
+2891,1255,0,release shared advisory lock
+2892,1255,0,release all advisory locks
+3050,1255,0,bitmap(internal)
+3051,1255,0,bitmap(internal)
+3001,1255,0,bitmap(internal)
+3002,1255,0,bitmap(internal)
+3003,1255,0,bitmap(internal)
+3004,1255,0,bitmap(internal)
+3005,1255,0,bitmap(internal)
+3006,1255,0,bitmap(internal)
+3007,1255,0,bitmap(internal)
+3008,1255,0,bitmap(internal)
+3010,1255,0,bitmap(internal)
+3011,1255,0,btree(internal)
+16,1247,0,"boolean, 'true'/'false'"
+17,1247,0,"variable-length string, binary values escaped"
+18,1247,0,single character
+19,1247,0,63-character type for storing system identifiers
+20,1247,0,"~18 digit integer, 8-byte storage"
+21,1247,0,"-32 thousand to 32 thousand, 2-byte storage"
+22,1247,0,"array of int2, used in system tables"
+23,1247,0,"-2 billion to 2 billion integer, 4-byte storage"
+24,1247,0,registered procedure
+25,1247,0,"variable-length string, no limit specified"
+26,1247,0,"object identifier(oid), maximum 4 billion"
+27,1247,0,"(Block, offset), physical location of tuple"
+28,1247,0,transaction id
+29,1247,0,"command identifier type, sequence in transaction id"
+30,1247,0,"array of oids, used in system tables"
+210,1247,0,storage manager
+600,1247,0,"geometric point '(x, y)'"
+601,1247,0,"geometric line segment '(pt1,pt2)'"
+602,1247,0,"geometric path '(pt1,...)'"
+603,1247,0,"geometric box '(lower left,upper right)'"
+604,1247,0,"geometric polygon '(pt1,...)'"
+628,1247,0,geometric line (not implemented)'
+700,1247,0,"single-precision floating point number, 4-byte storage"
+701,1247,0,"double-precision floating point number, 8-byte storage"
+702,1247,0,"absolute, limited-range date and time (Unix system time)"
+703,1247,0,"relative, limited-range time interval (Unix delta time)"
+704,1247,0,"(abstime,abstime), time interval"
+718,1247,0,"geometric circle '(center,radius)'"
+790,1247,0,"monetary amounts, $d,ddd.cc"
+829,1247,0,"XX:XX:XX:XX:XX:XX, MAC address"
+869,1247,0,"IP address/netmask, host address, netmask optional"
+650,1247,0,"network IP address/netmask, network address"
+1033,1247,0,access control list
+1042,1247,0,"char(length), blank-padded string, fixed storage length"
+1043,1247,0,"varchar(length), non-blank-padded string, variable storage length"
+1082,1247,0,ANSI SQL date
+1083,1247,0,"hh:mm:ss, ANSI SQL time"
+1114,1247,0,date and time
+1184,1247,0,date and time with time zone
+1186,1247,0,"@ <number> <units>, time interval"
+1266,1247,0,"hh:mm:ss, ANSI SQL time"
+1560,1247,0,fixed-length bit string
+1562,1247,0,variable-length bit string
+1700,1247,0,"numeric(precision, decimal), arbitrary precision number"
+1790,1247,0,reference cursor (portal name)
+2202,1247,0,registered procedure (with args)
+2203,1247,0,registered operator
+2204,1247,0,registered operator (with args)
+2205,1247,0,registered class
+2206,1247,0,registered type
+403,2601,0,b-tree index access method
+405,2601,0,hash index access method
+783,2601,0,GiST index access method
+2742,2601,0,GIN index access method
+3013,2601,0,bitmap index access method
+12,2612,0,Built-in functions
+13,2612,0,Dynamically-loaded C functions
+14,2612,0,SQL-language functions
+11,2615,0,System catalog schema
+99,2615,0,Reserved schema for TOAST tables
+3012,2615,0,Reserved schema for internal relations of bitmap indexes
+2200,2615,0,Standard public schema
+6104,2615,0,Reserved schema for Append Only segment list and eof tables

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_index32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_index32.data b/src/test/regress/data/upgrade33/pg_index32.data
new file mode 100644
index 0000000..dd5f3b1
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_index32.data
@@ -0,0 +1,93 @@
+indexrelid,indrelid,indnatts,indisunique,indisprimary,indisclustered,indisvalid,indkey,indclass,indexprs,indpred
+2831,2830,2,t,t,f,t,1 2,1989 1978,,
+2833,2832,2,t,t,f,t,1 2,1989 1978,,
+2835,2834,2,t,t,f,t,1 2,1989 1978,,
+2837,2836,2,t,t,f,t,1 2,1989 1978,,
+2839,2838,2,t,t,f,t,1 2,1989 1978,,
+2841,2840,2,t,t,f,t,1 2,1989 1978,,
+2843,2842,2,t,t,f,t,1 2,1989 1978,,
+2845,2844,2,t,t,f,t,1 2,1989 1978,,
+2847,2846,2,t,t,f,t,1 2,1989 1978,,
+2650,2600,1,t,f,f,t,1,1989,,
+2651,2601,1,t,f,f,t,1,1986,,
+2652,2601,1,t,f,f,t,-2,1989,,
+2653,2602,3,t,f,f,t,1 2 3,1989 1989 1976,,
+2654,2602,2,t,f,f,t,5 1,1989 1989,,
+2655,2603,3,t,f,f,t,1 2 3,1989 1989 1976,,
+2656,2604,2,t,f,f,t,1 2,1989 1976,,
+2657,2604,1,t,f,f,t,-2,1989,,
+2658,1249,2,t,f,f,t,1 2,1989 1986,,
+2659,1249,2,t,f,f,t,1 6,1989 1976,,
+2676,1260,1,t,f,f,t,1,1986,,
+2677,1260,1,t,f,f,t,-2,1989,,
+2694,1261,2,t,f,f,t,1 2,1989 1989,,
+2695,1261,2,t,f,f,t,2 1,1989 1989,,
+6027,6026,1,t,f,f,t,-2,1989,,
+6028,6026,1,t,f,f,t,1,1986,,
+6041,6040,1,t,f,f,t,1,1989,,
+1250,1248,1,t,f,f,t,1,1989,,
+2660,2605,1,t,f,f,t,-2,1989,,
+2661,2605,2,t,f,f,t,1 2,1989 1989,,
+2662,1259,1,t,f,f,t,-2,1989,,
+2663,1259,2,t,f,f,t,1 2,1986 1989,,
+6029,1260,1,f,f,f,t,12,1989,,
+2664,2606,2,f,f,f,t,1 2,1986 1989,,
+2665,2606,1,f,f,f,t,6,1989,,
+2666,2606,1,f,f,f,t,7,1989,,
+2667,2606,1,t,f,f,t,-2,1989,,
+2668,2607,4,t,f,f,t,2 4 5 -2,1989 1978 1978 1989,,
+2669,2607,2,t,f,f,t,1 2,1986 1989,,
+2670,2607,1,t,f,f,t,-2,1989,,
+2671,1262,1,t,f,f,t,1,1986,,
+2672,1262,1,t,f,f,t,-2,1989,,
+2673,2608,3,f,f,f,t,1 2 3,1989 1989 1978,,
+2674,2608,3,f,f,f,t,4 5 6,1989 1989 1978,,
+2675,2609,3,t,f,f,t,1 2 3,1989 1989 1978,,
+2397,2396,2,t,f,f,t,1 2,1989 1989,,
+2678,2610,1,f,f,f,t,2,1989,,
+2679,2610,1,t,f,f,t,1,1989,,
+2680,2611,2,t,f,f,t,1 3,1989 1978,,
+2681,2612,1,t,f,f,t,1,1986,,
+2682,2612,1,t,f,f,t,-2,1989,,
+2683,2613,2,t,f,f,t,1 2,1989 1978,,
+2684,2615,1,t,f,f,t,1,1986,,
+2685,2615,1,t,f,f,t,-2,1989,,
+2686,2616,3,t,f,f,t,1 2 3,1989 1986 1989,,
+2687,2616,1,t,f,f,t,-2,1989,,
+2688,2617,1,t,f,f,t,-2,1989,,
+2689,2617,4,t,f,f,t,1 6 7 2,1986 1989 1989 1989,,
+1137,1136,1,t,f,f,t,1,1986,,
+2690,1255,1,t,f,f,t,-2,1989,,
+2691,1255,3,t,f,f,t,1 13 2,1986 1991 1989,,
+2692,2618,1,t,f,f,t,-2,1989,,
+2693,2618,2,t,f,f,t,2 1,1989 1986,,
+1232,1214,3,f,f,f,t,1 2 3,1989 1989 1989,,
+1233,1214,2,f,f,f,t,4 5,1989 1989,,
+2696,2619,2,t,f,f,t,1 2,1989 1976,,
+2697,1213,1,t,f,f,t,-2,1989,,
+2698,1213,1,t,f,f,t,1,1986,,
+2699,2620,1,f,f,f,t,7,1986,,
+2700,2620,1,f,f,f,t,8,1989,,
+2701,2620,2,t,f,f,t,1 2,1989 1986,,
+2702,2620,1,t,f,f,t,-2,1989,,
+2703,1247,1,t,f,f,t,-2,1989,,
+2704,1247,2,t,f,f,t,1 2,1986 1989,,
+6101,5000,2,t,f,f,t,1 2,1976 424,,
+6102,5000,1,t,f,f,t,3,1976,,
+6103,5002,1,t,f,f,t,1,1989,,
+5005,5004,1,t,f,f,t,1,1989,,
+5007,6105,1,t,f,f,t,1,1989,,
+5012,5010,1,t,f,f,t,-2,1989,,
+5017,5010,3,f,f,f,t,1 3 4,1989 1976 424,,
+5013,5010,1,f,f,f,t,1,1989,,
+5014,5011,1,t,f,f,t,-2,1989,,
+5015,5011,3,f,f,f,t,2 3 6,1989 1989 1976,,
+5016,5011,1,f,f,f,t,2,1989,,
+5026,5011,3,f,f,f,t,1 3 6,1989 1989 1976,,
+10749,10747,2,t,t,f,t,1 2,1989 1978,,
+10754,10752,2,t,t,f,t,1 2,1989 1978,,
+10759,10757,2,t,t,f,t,1 2,1989 1978,,
+10764,10762,2,t,t,f,t,1 2,1989 1978,,
+10769,10767,2,t,t,f,t,1 2,1989 1978,,
+10774,10772,2,t,t,f,t,1 2,1989 1978,,
+10779,10777,2,t,t,f,t,1 2,1989 1978,,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_namespace32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_namespace32.data.in b/src/test/regress/data/upgrade33/pg_namespace32.data.in
new file mode 100644
index 0000000..7df61cb
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_namespace32.data.in
@@ -0,0 +1,7 @@
+oid,nspname,nspowner,nspacl
+99,pg_toast,10,
+3012,pg_bitmapindex,10,
+6104,pg_aoseg,10,
+11,pg_catalog,10,"{@gpcurusername@=UC/@gpcurusername@,=U/@gpcurusername@}"
+2200,public,10,"{@gpcurusername@=UC/@gpcurusername@,=UC/@gpcurusername@}"
+10643,information_schema,10,"{@gpcurusername@=UC/@gpcurusername@,=U/@gpcurusername@}"


[21/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_shdepend32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_shdepend32.data b/src/test/regress/data/upgrade33/pg_shdepend32.data
new file mode 100644
index 0000000..b9064d7
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_shdepend32.data
@@ -0,0 +1,2 @@
+dbid,classid,objid,refclassid,refobjid,deptype
+0,0,0,1260,10,p

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_shdescription32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_shdescription32.data b/src/test/regress/data/upgrade33/pg_shdescription32.data
new file mode 100644
index 0000000..ec60abd
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_shdescription32.data
@@ -0,0 +1,2 @@
+objoid,classoid,description
+1,1262,Default template database

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_type32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_type32.data b/src/test/regress/data/upgrade33/pg_type32.data
new file mode 100755
index 0000000..d859d7f
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_type32.data
@@ -0,0 +1,265 @@
+typname,typnamespace,typowner,typlen,typbyval,typtype,typisdefined,typdelim,typrelid,typelem,typinput,typoutput,typreceive,typsend,typanalyze,typalign,typstorage,typnotnull,typbasetype,typtypmod,typndims,typdefaultbin,typdefault
+16,bool,11,10,1,t,b,t,",",0,0,boolin,boolout,boolrecv,boolsend,-,c,p,f,0,-1,0,,
+17,bytea,11,10,-1,f,b,t,",",0,0,byteain,byteaout,bytearecv,byteasend,-,i,x,f,0,-1,0,,
+18,char,11,10,1,t,b,t,",",0,0,charin,charout,charrecv,charsend,-,c,p,f,0,-1,0,,
+19,name,11,10,64,f,b,t,",",0,18,namein,nameout,namerecv,namesend,-,i,p,f,0,-1,0,,
+20,int8,11,10,8,t,b,t,",",0,0,int8in,int8out,int8recv,int8send,-,d,p,f,0,-1,0,,
+21,int2,11,10,2,t,b,t,",",0,0,int2in,int2out,int2recv,int2send,-,s,p,f,0,-1,0,,
+22,int2vector,11,10,-1,f,b,t,",",0,21,int2vectorin,int2vectorout,int2vectorrecv,int2vectorsend,-,i,p,f,0,-1,0,,
+23,int4,11,10,4,t,b,t,",",0,0,int4in,int4out,int4recv,int4send,-,i,p,f,0,-1,0,,
+24,regproc,11,10,4,t,b,t,",",0,0,regprocin,regprocout,regprocrecv,regprocsend,-,i,p,f,0,-1,0,,
+25,text,11,10,-1,f,b,t,",",0,0,textin,textout,textrecv,textsend,-,i,x,f,0,-1,0,,
+26,oid,11,10,4,t,b,t,",",0,0,oidin,oidout,oidrecv,oidsend,-,i,p,f,0,-1,0,,
+27,tid,11,10,6,f,b,t,",",0,0,tidin,tidout,tidrecv,tidsend,-,s,p,f,0,-1,0,,
+28,xid,11,10,4,t,b,t,",",0,0,xidin,xidout,xidrecv,xidsend,-,i,p,f,0,-1,0,,
+29,cid,11,10,4,t,b,t,",",0,0,cidin,cidout,cidrecv,cidsend,-,i,p,f,0,-1,0,,
+30,oidvector,11,10,-1,f,b,t,",",0,26,oidvectorin,oidvectorout,oidvectorrecv,oidvectorsend,-,i,p,f,0,-1,0,,
+71,pg_type,11,10,-1,f,c,t,",",1247,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+75,pg_attribute,11,10,-1,f,c,t,",",1249,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+81,pg_proc,11,10,-1,f,c,t,",",1255,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+83,pg_class,11,10,-1,f,c,t,",",1259,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+210,smgr,11,10,2,t,b,t,",",0,0,smgrin,smgrout,-,-,-,s,p,f,0,-1,0,,
+600,point,11,10,16,f,b,t,",",0,701,point_in,point_out,point_recv,point_send,-,d,p,f,0,-1,0,,
+601,lseg,11,10,32,f,b,t,",",0,600,lseg_in,lseg_out,lseg_recv,lseg_send,-,d,p,f,0,-1,0,,
+602,path,11,10,-1,f,b,t,",",0,0,path_in,path_out,path_recv,path_send,-,d,x,f,0,-1,0,,
+603,box,11,10,32,f,b,t,;,0,600,box_in,box_out,box_recv,box_send,-,d,p,f,0,-1,0,,
+604,polygon,11,10,-1,f,b,t,",",0,0,poly_in,poly_out,poly_recv,poly_send,-,d,x,f,0,-1,0,,
+628,line,11,10,32,f,b,t,",",0,701,line_in,line_out,line_recv,line_send,-,d,p,f,0,-1,0,,
+629,_line,11,10,-1,f,b,t,",",0,628,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+700,float4,11,10,4,t,b,t,",",0,0,float4in,float4out,float4recv,float4send,-,i,p,f,0,-1,0,,
+701,float8,11,10,8,t,b,t,",",0,0,float8in,float8out,float8recv,float8send,-,d,p,f,0,-1,0,,
+702,abstime,11,10,4,t,b,t,",",0,0,abstimein,abstimeout,abstimerecv,abstimesend,-,i,p,f,0,-1,0,,
+703,reltime,11,10,4,t,b,t,",",0,0,reltimein,reltimeout,reltimerecv,reltimesend,-,i,p,f,0,-1,0,,
+704,tinterval,11,10,12,f,b,t,",",0,0,tintervalin,tintervalout,tintervalrecv,tintervalsend,-,i,p,f,0,-1,0,,
+705,unknown,11,10,-2,f,b,t,",",0,0,unknownin,unknownout,unknownrecv,unknownsend,-,c,p,f,0,-1,0,,
+718,circle,11,10,24,f,b,t,",",0,0,circle_in,circle_out,circle_recv,circle_send,-,d,p,f,0,-1,0,,
+719,_circle,11,10,-1,f,b,t,",",0,718,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+790,money,11,10,4,f,b,t,",",0,0,cash_in,cash_out,cash_recv,cash_send,-,i,p,f,0,-1,0,,
+791,_money,11,10,-1,f,b,t,",",0,790,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+829,macaddr,11,10,6,f,b,t,",",0,0,macaddr_in,macaddr_out,macaddr_recv,macaddr_send,-,i,p,f,0,-1,0,,
+869,inet,11,10,-1,f,b,t,",",0,0,inet_in,inet_out,inet_recv,inet_send,-,i,p,f,0,-1,0,,
+650,cidr,11,10,-1,f,b,t,",",0,0,cidr_in,cidr_out,cidr_recv,cidr_send,-,i,p,f,0,-1,0,,
+1000,_bool,11,10,-1,f,b,t,",",0,16,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1001,_bytea,11,10,-1,f,b,t,",",0,17,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1002,_char,11,10,-1,f,b,t,",",0,18,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1003,_name,11,10,-1,f,b,t,",",0,19,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1005,_int2,11,10,-1,f,b,t,",",0,21,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1006,_int2vector,11,10,-1,f,b,t,",",0,22,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1007,_int4,11,10,-1,f,b,t,",",0,23,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1008,_regproc,11,10,-1,f,b,t,",",0,24,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1009,_text,11,10,-1,f,b,t,",",0,25,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1028,_oid,11,10,-1,f,b,t,",",0,26,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1010,_tid,11,10,-1,f,b,t,",",0,27,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1011,_xid,11,10,-1,f,b,t,",",0,28,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1012,_cid,11,10,-1,f,b,t,",",0,29,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1013,_oidvector,11,10,-1,f,b,t,",",0,30,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1014,_bpchar,11,10,-1,f,b,t,",",0,1042,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1015,_varchar,11,10,-1,f,b,t,",",0,1043,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1016,_int8,11,10,-1,f,b,t,",",0,20,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1017,_point,11,10,-1,f,b,t,",",0,600,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1018,_lseg,11,10,-1,f,b,t,",",0,601,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1019,_path,11,10,-1,f,b,t,",",0,602,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1020,_box,11,10,-1,f,b,t,;,0,603,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1021,_float4,11,10,-1,f,b,t,",",0,700,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1022,_float8,11,10,-1,f,b,t,",",0,701,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1023,_abstime,11,10,-1,f,b,t,",",0,702,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1024,_reltime,11,10,-1,f,b,t,",",0,703,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1025,_tinterval,11,10,-1,f,b,t,",",0,704,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1027,_polygon,11,10,-1,f,b,t,",",0,604,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1033,aclitem,11,10,12,f,b,t,",",0,0,aclitemin,aclitemout,-,-,-,i,p,f,0,-1,0,,
+1034,_aclitem,11,10,-1,f,b,t,",",0,1033,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1040,_macaddr,11,10,-1,f,b,t,",",0,829,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1041,_inet,11,10,-1,f,b,t,",",0,869,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+651,_cidr,11,10,-1,f,b,t,",",0,650,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1042,bpchar,11,10,-1,f,b,t,",",0,0,bpcharin,bpcharout,bpcharrecv,bpcharsend,-,i,x,f,0,-1,0,,
+1043,varchar,11,10,-1,f,b,t,",",0,0,varcharin,varcharout,varcharrecv,varcharsend,-,i,x,f,0,-1,0,,
+1082,date,11,10,4,t,b,t,",",0,0,date_in,date_out,date_recv,date_send,-,i,p,f,0,-1,0,,
+1083,time,11,10,8,t,b,t,",",0,0,time_in,time_out,time_recv,time_send,-,d,p,f,0,-1,0,,
+1114,timestamp,11,10,8,t,b,t,",",0,0,timestamp_in,timestamp_out,timestamp_recv,timestamp_send,-,d,p,f,0,-1,0,,
+1115,_timestamp,11,10,-1,f,b,t,",",0,1114,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1182,_date,11,10,-1,f,b,t,",",0,1082,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1183,_time,11,10,-1,f,b,t,",",0,1083,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1184,timestamptz,11,10,8,t,b,t,",",0,0,timestamptz_in,timestamptz_out,timestamptz_recv,timestamptz_send,-,d,p,f,0,-1,0,,
+1185,_timestamptz,11,10,-1,f,b,t,",",0,1184,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1186,interval,11,10,16,f,b,t,",",0,0,interval_in,interval_out,interval_recv,interval_send,-,d,p,f,0,-1,0,,
+1187,_interval,11,10,-1,f,b,t,",",0,1186,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1231,_numeric,11,10,-1,f,b,t,",",0,1700,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1266,timetz,11,10,12,f,b,t,",",0,0,timetz_in,timetz_out,timetz_recv,timetz_send,-,d,p,f,0,-1,0,,
+1270,_timetz,11,10,-1,f,b,t,",",0,1266,array_in,array_out,array_recv,array_send,-,d,x,f,0,-1,0,,
+1560,bit,11,10,-1,f,b,t,",",0,0,bit_in,bit_out,bit_recv,bit_send,-,i,x,f,0,-1,0,,
+1561,_bit,11,10,-1,f,b,t,",",0,1560,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1562,varbit,11,10,-1,f,b,t,",",0,0,varbit_in,varbit_out,varbit_recv,varbit_send,-,i,x,f,0,-1,0,,
+1563,_varbit,11,10,-1,f,b,t,",",0,1562,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+1700,numeric,11,10,-1,f,b,t,",",0,0,numeric_in,numeric_out,numeric_recv,numeric_send,-,i,m,f,0,-1,0,,
+1790,refcursor,11,10,-1,f,b,t,",",0,0,textin,textout,textrecv,textsend,-,i,x,f,0,-1,0,,
+2201,_refcursor,11,10,-1,f,b,t,",",0,1790,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2202,regprocedure,11,10,4,t,b,t,",",0,0,regprocedurein,regprocedureout,regprocedurerecv,regproceduresend,-,i,p,f,0,-1,0,,
+2203,regoper,11,10,4,t,b,t,",",0,0,regoperin,regoperout,regoperrecv,regopersend,-,i,p,f,0,-1,0,,
+2204,regoperator,11,10,4,t,b,t,",",0,0,regoperatorin,regoperatorout,regoperatorrecv,regoperatorsend,-,i,p,f,0,-1,0,,
+2205,regclass,11,10,4,t,b,t,",",0,0,regclassin,regclassout,regclassrecv,regclasssend,-,i,p,f,0,-1,0,,
+2206,regtype,11,10,4,t,b,t,",",0,0,regtypein,regtypeout,regtyperecv,regtypesend,-,i,p,f,0,-1,0,,
+2207,_regprocedure,11,10,-1,f,b,t,",",0,2202,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2208,_regoper,11,10,-1,f,b,t,",",0,2203,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2209,_regoperator,11,10,-1,f,b,t,",",0,2204,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2210,_regclass,11,10,-1,f,b,t,",",0,2205,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+2211,_regtype,11,10,-1,f,b,t,",",0,2206,array_in,array_out,array_recv,array_send,-,i,x,f,0,-1,0,,
+3251,nb_classification,11,10,-1,f,c,t,",",3250,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+2249,record,11,10,-1,f,p,t,",",0,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+2275,cstring,11,10,-2,f,p,t,",",0,0,cstring_in,cstring_out,cstring_recv,cstring_send,-,c,p,f,0,-1,0,,
+2276,any,11,10,4,t,p,t,",",0,0,any_in,any_out,-,-,-,i,p,f,0,-1,0,,
+2277,anyarray,11,10,-1,f,p,t,",",0,0,anyarray_in,anyarray_out,anyarray_recv,anyarray_send,-,d,x,f,0,-1,0,,
+2278,void,11,10,4,t,p,t,",",0,0,void_in,void_out,-,-,-,i,p,f,0,-1,0,,
+2279,trigger,11,10,4,t,p,t,",",0,0,trigger_in,trigger_out,-,-,-,i,p,f,0,-1,0,,
+2280,language_handler,11,10,4,t,p,t,",",0,0,language_handler_in,language_handler_out,-,-,-,i,p,f,0,-1,0,,
+2281,internal,11,10,4,t,p,t,",",0,0,internal_in,internal_out,-,-,-,i,p,f,0,-1,0,,
+2282,opaque,11,10,4,t,p,t,",",0,0,opaque_in,opaque_out,-,-,-,i,p,f,0,-1,0,,
+2283,anyelement,11,10,4,t,p,t,",",0,0,anyelement_in,anyelement_out,-,-,-,i,p,f,0,-1,0,,
+10000,pg_autovacuum,11,10,-1,f,c,t,",",1248,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10001,pg_attrdef,11,10,-1,f,c,t,",",2604,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10002,pg_constraint,11,10,-1,f,c,t,",",2606,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10003,pg_inherits,11,10,-1,f,c,t,",",2611,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10004,pg_index,11,10,-1,f,c,t,",",2610,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10005,pg_operator,11,10,-1,f,c,t,",",2617,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10006,pg_opclass,11,10,-1,f,c,t,",",2616,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10007,pg_am,11,10,-1,f,c,t,",",2601,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10008,pg_amop,11,10,-1,f,c,t,",",2602,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10009,pg_amproc,11,10,-1,f,c,t,",",2603,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10010,pg_language,11,10,-1,f,c,t,",",2612,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10011,pg_largeobject,11,10,-1,f,c,t,",",2613,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10012,pg_aggregate,11,10,-1,f,c,t,",",2600,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10013,pg_statistic,11,10,-1,f,c,t,",",2619,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10014,pg_rewrite,11,10,-1,f,c,t,",",2618,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10015,pg_trigger,11,10,-1,f,c,t,",",2620,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10016,pg_listener,11,10,-1,f,c,t,",",2614,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10017,pg_description,11,10,-1,f,c,t,",",2609,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10018,pg_cast,11,10,-1,f,c,t,",",2605,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10276,pg_namespace,11,10,-1,f,c,t,",",2615,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10277,pg_conversion,11,10,-1,f,c,t,",",2607,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10278,pg_depend,11,10,-1,f,c,t,",",2608,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10279,pg_database,11,10,-1,f,c,t,",",1262,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10280,pg_tablespace,11,10,-1,f,c,t,",",1213,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10281,pg_pltemplate,11,10,-1,f,c,t,",",1136,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10282,pg_authid,11,10,-1,f,c,t,",",1260,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10283,pg_auth_members,11,10,-1,f,c,t,",",1261,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10284,pg_shdepend,11,10,-1,f,c,t,",",1214,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10285,pg_shdescription,11,10,-1,f,c,t,",",2396,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10286,pg_resqueue,11,10,-1,f,c,t,",",6026,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10287,gp_configuration,11,10,-1,f,c,t,",",5000,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10288,gp_id,11,10,-1,f,c,t,",",5001,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10289,gp_distribution_policy,11,10,-1,f,c,t,",",5002,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10290,gp_version_at_initdb,11,10,-1,f,c,t,",",5003,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10291,pg_window,11,10,-1,f,c,t,",",5004,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10292,pg_exttable,11,10,-1,f,c,t,",",6040,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10293,pg_appendonly,11,10,-1,f,c,t,",",6105,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10294,gp_master_mirroring,11,10,-1,f,c,t,",",5008,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10295,pg_partition,11,10,-1,f,c,t,",",5010,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10296,pg_partition_rule,11,10,-1,f,c,t,",",5011,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10297,pg_toast_2604,99,10,-1,f,c,t,",",2830,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10298,pg_toast_2606,99,10,-1,f,c,t,",",2832,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10299,pg_toast_2609,99,10,-1,f,c,t,",",2834,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10300,pg_toast_1255,99,10,-1,f,c,t,",",2836,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10301,pg_toast_2618,99,10,-1,f,c,t,",",2838,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10302,pg_toast_2619,99,10,-1,f,c,t,",",2840,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10303,pg_toast_1260,99,10,-1,f,c,t,",",2842,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10304,pg_toast_1262,99,10,-1,f,c,t,",",2844,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10305,pg_toast_2396,99,10,-1,f,c,t,",",2846,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10310,pg_roles,11,10,-1,f,c,t,",",10309,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10313,pg_shadow,11,10,-1,f,c,t,",",10312,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10316,pg_group,11,10,-1,f,c,t,",",10315,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10319,pg_user,11,10,-1,f,c,t,",",10318,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10322,pg_rules,11,10,-1,f,c,t,",",10321,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10325,pg_views,11,10,-1,f,c,t,",",10324,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10328,pg_tables,11,10,-1,f,c,t,",",10327,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10331,pg_indexes,11,10,-1,f,c,t,",",10330,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10334,pg_stats,11,10,-1,f,c,t,",",10333,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10337,pg_locks,11,10,-1,f,c,t,",",10336,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10340,pg_cursors,11,10,-1,f,c,t,",",10339,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10343,pg_prepared_xacts,11,10,-1,f,c,t,",",10342,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10346,pg_prepared_statements,11,10,-1,f,c,t,",",10345,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10349,pg_settings,11,10,-1,f,c,t,",",10348,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10354,pg_timezone_abbrevs,11,10,-1,f,c,t,",",10353,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10357,pg_timezone_names,11,10,-1,f,c,t,",",10356,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10360,pg_stat_all_tables,11,10,-1,f,c,t,",",10359,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10363,pg_stat_sys_tables,11,10,-1,f,c,t,",",10362,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10366,pg_stat_user_tables,11,10,-1,f,c,t,",",10365,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10369,pg_statio_all_tables,11,10,-1,f,c,t,",",10368,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10372,pg_statio_sys_tables,11,10,-1,f,c,t,",",10371,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10375,pg_statio_user_tables,11,10,-1,f,c,t,",",10374,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10378,pg_stat_all_indexes,11,10,-1,f,c,t,",",10377,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10381,pg_stat_sys_indexes,11,10,-1,f,c,t,",",10380,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10384,pg_stat_user_indexes,11,10,-1,f,c,t,",",10383,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10387,pg_statio_all_indexes,11,10,-1,f,c,t,",",10386,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10390,pg_statio_sys_indexes,11,10,-1,f,c,t,",",10389,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10393,pg_statio_user_indexes,11,10,-1,f,c,t,",",10392,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10396,pg_statio_all_sequences,11,10,-1,f,c,t,",",10395,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10399,pg_statio_sys_sequences,11,10,-1,f,c,t,",",10398,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10402,pg_statio_user_sequences,11,10,-1,f,c,t,",",10401,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10405,pg_stat_activity,11,10,-1,f,c,t,",",10404,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10408,pg_stat_database,11,10,-1,f,c,t,",",10407,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10411,pg_stat_resqueues,11,10,-1,f,c,t,",",10410,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10414,pg_resqueue_status,11,10,-1,f,c,t,",",10413,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10417,pg_max_external_files,11,10,-1,f,c,t,",",10416,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10420,pg_partitions,11,10,-1,f,c,t,",",10419,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10423,pg_partition_columns,11,10,-1,f,c,t,",",10422,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10426,pg_partition_templates,11,10,-1,f,c,t,",",10425,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10657,cardinal_number,10643,10,4,t,d,t,",",0,0,domain_in,int4out,domain_recv,int4send,-,i,p,f,23,-1,0,,
+10659,character_data,10643,10,-1,f,d,t,",",0,0,domain_in,varcharout,domain_recv,varcharsend,-,i,x,f,1043,-1,0,,
+10660,sql_identifier,10643,10,-1,f,d,t,",",0,0,domain_in,varcharout,domain_recv,varcharsend,-,i,x,f,1043,-1,0,,
+10662,information_schema_catalog_name,10643,10,-1,f,c,t,",",10661,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10664,time_stamp,10643,10,8,t,d,t,",",0,0,domain_in,timestamptz_out,domain_recv,timestamptz_send,-,d,p,f,1184,2,0,{FUNCEXPR :funcid 1967 :funcresulttype 1184 :funcretset false :funcformat 1 :args ({FUNCEXPR :funcid 1191 :funcresulttype 1184 :funcretset false :funcformat 2 :args ({CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 7 [ 0 0 0 7 110 111 119 ]})} {CONST :consttype 23 :constlen 4 :constbyval true :constisnull false :constvalue 4 [ 2 0 0 0 0 0 0 0 ]})},('now'::text)::timestamp(2) with time zone
+10666,applicable_roles,10643,10,-1,f,c,t,",",10665,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10669,administrable_role_authorizations,10643,10,-1,f,c,t,",",10668,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10672,attributes,10643,10,-1,f,c,t,",",10671,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10675,check_constraint_routine_usage,10643,10,-1,f,c,t,",",10674,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10678,check_constraints,10643,10,-1,f,c,t,",",10677,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10681,column_domain_usage,10643,10,-1,f,c,t,",",10680,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10684,column_privileges,10643,10,-1,f,c,t,",",10683,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10687,column_udt_usage,10643,10,-1,f,c,t,",",10686,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10690,columns,10643,10,-1,f,c,t,",",10689,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10693,constraint_column_usage,10643,10,-1,f,c,t,",",10692,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10696,constraint_table_usage,10643,10,-1,f,c,t,",",10695,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10699,domain_constraints,10643,10,-1,f,c,t,",",10698,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10702,domain_udt_usage,10643,10,-1,f,c,t,",",10701,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10705,domains,10643,10,-1,f,c,t,",",10704,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10708,enabled_roles,10643,10,-1,f,c,t,",",10707,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10711,key_column_usage,10643,10,-1,f,c,t,",",10710,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10714,parameters,10643,10,-1,f,c,t,",",10713,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10717,referential_constraints,10643,10,-1,f,c,t,",",10716,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10720,role_column_grants,10643,10,-1,f,c,t,",",10719,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10723,role_routine_grants,10643,10,-1,f,c,t,",",10722,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10726,role_table_grants,10643,10,-1,f,c,t,",",10725,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10729,role_usage_grants,10643,10,-1,f,c,t,",",10728,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10732,routine_privileges,10643,10,-1,f,c,t,",",10731,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10735,routines,10643,10,-1,f,c,t,",",10734,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10738,schemata,10643,10,-1,f,c,t,",",10737,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10741,sequences,10643,10,-1,f,c,t,",",10740,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10744,sql_features,10643,10,-1,f,c,t,",",10743,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10746,pg_toast_10743,99,10,-1,f,c,t,",",10745,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10749,sql_implementation_info,10643,10,-1,f,c,t,",",10748,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10751,pg_toast_10748,99,10,-1,f,c,t,",",10750,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10754,sql_languages,10643,10,-1,f,c,t,",",10753,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10756,pg_toast_10753,99,10,-1,f,c,t,",",10755,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10759,sql_packages,10643,10,-1,f,c,t,",",10758,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10761,pg_toast_10758,99,10,-1,f,c,t,",",10760,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10764,sql_parts,10643,10,-1,f,c,t,",",10763,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10766,pg_toast_10763,99,10,-1,f,c,t,",",10765,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10769,sql_sizing,10643,10,-1,f,c,t,",",10768,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10771,pg_toast_10768,99,10,-1,f,c,t,",",10770,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10774,sql_sizing_profiles,10643,10,-1,f,c,t,",",10773,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10776,pg_toast_10773,99,10,-1,f,c,t,",",10775,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10779,table_constraints,10643,10,-1,f,c,t,",",10778,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10782,table_privileges,10643,10,-1,f,c,t,",",10781,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10785,tables,10643,10,-1,f,c,t,",",10784,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10788,triggered_update_columns,10643,10,-1,f,c,t,",",10787,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10791,triggers,10643,10,-1,f,c,t,",",10790,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10794,usage_privileges,10643,10,-1,f,c,t,",",10793,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10797,view_column_usage,10643,10,-1,f,c,t,",",10796,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10800,view_routine_usage,10643,10,-1,f,c,t,",",10799,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10803,view_table_usage,10643,10,-1,f,c,t,",",10802,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10806,views,10643,10,-1,f,c,t,",",10805,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10809,data_type_privileges,10643,10,-1,f,c,t,",",10808,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10812,element_types,10643,10,-1,f,c,t,",",10811,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10815,gp_pgdatabase,11,10,-1,f,c,t,",",10814,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10818,gp_distributed_xacts,11,10,-1,f,c,t,",",10817,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10821,gp_transaction_log,11,10,-1,f,c,t,",",10820,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,
+10824,gp_distributed_log,11,10,-1,f,c,t,",",10823,0,record_in,record_out,record_recv,record_send,-,d,x,f,0,-1,0,,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_conversion32.sql.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_conversion32.sql.in b/src/test/regress/data/upgrade33/upg2_conversion32.sql.in
new file mode 100644
index 0000000..f424483
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_conversion32.sql.in
@@ -0,0 +1,259 @@
+update @gpupgradeschemaname@.pg_conversion set conforencoding = conforencoding + 1 where conforencoding >= 34;
+update @gpupgradeschemaname@.pg_conversion set contoencoding = contoencoding + 1 where contoencoding >= 34;
+update @gpupgradeschemaname@.pg_conversion set conforencoding = 40 where conforencoding = 5;
+update @gpupgradeschemaname@.pg_conversion set contoencoding = 40 where contoencoding = 5;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.euc_jis_2004_to_shift_jis_2004 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/euc_jis_2004_and_shift_jis_2004', 'euc_jis_2004_to_shift_jis_2004' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.shift_jis_2004_to_euc_jis_2004 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/euc_jis_2004_and_shift_jis_2004', 'shift_jis_2004_to_euc_jis_2004' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.utf8_to_shift_jis_2004 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_shift_jis_2004', 'utf8_to_shift_jis_2004' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.shift_jis_2004_to_utf8 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_shift_jis_2004', 'shift_jis_2004_to_utf8' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.utf8_to_euc_jis_2004 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_euc_jis_2004', 'utf8_to_euc_jis_2004' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.euc_jis_2004_to_utf8 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_euc_jis_2004', 'euc_jis_2004_to_utf8' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.utf8_to_koi8u (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_cyrillic', 'utf8_to_koi8u' LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION @gpupgradeschemaname@.koi8u_to_utf8 (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/utf8_and_cyrillic', 'koi8u_to_utf8' LANGUAGE C STRICT;
+
+insert into @gpupgradeschemaname@.pg_conversion values('euc_jis_2004_to_shift_jis_2004', '11', '10', '5', '41', 'euc_jis_2004_to_shift_jis_2004', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('euc_jis_2004_to_utf8', '11', '10', '5', '6', 'euc_jis_2004_to_utf8', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('koi8_u_to_utf8', '11', '10', '34', '6', 'koi8u_to_utf8', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('utf8_to_koi8_u', '11', '10', '6', '34', 'utf8_to_koi8u', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('shift_jis_2004_to_utf8', '11', '10', '41', '6', 'shift_jis_2004_to_utf8', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('shift_jis_2004_to_euc_jis_2004', '11', '10', '41', '5', 'shift_jis_2004_to_euc_jis_2004', 't'); 
+insert into @gpupgradeschemaname@.pg_conversion values('utf8_to_euc_jis_2004', '11', '10', '6', '5', 'utf8_to_euc_jis_2004', 't');
+insert into @gpupgradeschemaname@.pg_conversion values('utf8_to_shift_jis_2004', '11', '10', '6', '41', 'utf8_to_shift_jis_2004', 't');
+
+insert into @gpupgradeschemaname@.pg_depend select 2607, oid, 0, 1255, conproc, 0, 'n' from pg_catalog.pg_conversion where conname in('euc_jis_2004_to_shift_jis_2004', 'euc_jis_2004_to_utf8', 'koi8_u_to_utf8', 'utf8_to_koi8_u', 'shift_jis_2004_to_utf8', 'shift_jis_2004_to_euc_jis_2004', 'utf8_to_euc_jis_2004', 'utf8_to_shift_jis_2004');
+
+-- these fill fail during regression testing but succeed for the upgrade
+
+update @gpupgradeschemaname@.gp_version_at_initdb SET productversion = substring(version(), 'Greenplum Database ([^)]*)');
+
+COMMENT ON FUNCTION @gpupgradeschemaname@.ascii_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SQL_ASCII to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_ascii(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to SQL_ASCII';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8r_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8R to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_koi8r(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to KOI8R';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for ISO-8859-5 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_iso(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to ISO-8859-5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1251_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1251 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_win1251(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to WIN1251';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win866_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN866 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_win866(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to WIN866';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8r_to_win1251(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8R to WIN1251';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1251_to_koi8r(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1251 to KOI8R';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8r_to_win866(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8R to WIN866';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win866_to_koi8r(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN866 to KOI8R';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win866_to_win1251(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN866 to WIN1251';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1251_to_win866(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1251 to WIN866';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso_to_koi8r(integer, integer, cstring, internal, integer)  IS 'internal conversion function for ISO-8859-5 to KOI8R';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8r_to_iso(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8R to ISO-8859-5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso_to_win1251(integer, integer, cstring, internal, integer)  IS 'internal conversion function for ISO-8859-5 to WIN1251';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1251_to_iso(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1251 to ISO-8859-5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso_to_win866(integer, integer, cstring, internal, integer)  IS 'internal conversion function for ISO-8859-5 to WIN866';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win866_to_iso(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN866 to ISO-8859-5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_cn_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_CN to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_euc_cn(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to EUC_CN';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_jp_to_sjis(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_JP to SJIS';
+COMMENT ON FUNCTION @gpupgradeschemaname@.sjis_to_euc_jp(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SJIS to EUC_JP';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_jp_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_JP to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.sjis_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SJIS to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_euc_jp(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to EUC_JP';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_sjis(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to SJIS';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_kr_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_KR to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_euc_kr(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to EUC_KR';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_tw_to_big5(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_TW to BIG5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.big5_to_euc_tw(integer, integer, cstring, internal, integer)  IS 'internal conversion function for BIG5 to EUC_TW';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_tw_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_TW to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.big5_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for BIG5 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_euc_tw(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to EUC_TW';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_big5(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to BIG5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.latin2_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN2 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_latin2(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to LATIN2';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1250_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1250 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_win1250(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to WIN1250';
+COMMENT ON FUNCTION @gpupgradeschemaname@.latin2_to_win1250(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN2 to WIN1250';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win1250_to_latin2(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1250 to LATIN2';
+COMMENT ON FUNCTION @gpupgradeschemaname@.latin1_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN1 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_latin1(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to LATIN1';
+COMMENT ON FUNCTION @gpupgradeschemaname@.latin3_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN3 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_latin3(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to LATIN3';
+COMMENT ON FUNCTION @gpupgradeschemaname@.latin4_to_mic(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN4 to MULE_INTERNAL';
+COMMENT ON FUNCTION @gpupgradeschemaname@.mic_to_latin4(integer, integer, cstring, internal, integer)  IS 'internal conversion function for MULE_INTERNAL to LATIN4';
+COMMENT ON FUNCTION @gpupgradeschemaname@.ascii_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SQL_ASCII to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_ascii(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to SQL_ASCII';
+COMMENT ON FUNCTION @gpupgradeschemaname@.big5_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for BIG5 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_big5(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to BIG5';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_koi8r(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to KOI8R';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8r_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8R to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_koi8u(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to KOI8U';
+COMMENT ON FUNCTION @gpupgradeschemaname@.koi8u_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for KOI8U to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_win(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to WIN1258';
+COMMENT ON FUNCTION @gpupgradeschemaname@.win_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for WIN1258 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_cn_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_CN to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_euc_cn(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to EUC_CN';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_jp_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_JP to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_euc_jp(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to EUC_JP';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_kr_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_KR to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_euc_kr(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to EUC_KR';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_tw_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_TW to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_euc_tw(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to EUC_TW';
+COMMENT ON FUNCTION @gpupgradeschemaname@.gb18030_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for GB18030 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_gb18030(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to GB18030';
+COMMENT ON FUNCTION @gpupgradeschemaname@.gbk_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for GBK to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_gbk(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to GBK';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_iso8859(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to ISO-8859-8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso8859_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for ISO-8859-8 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.iso8859_1_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for LATIN1 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_iso8859_1(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to LATIN1';
+COMMENT ON FUNCTION @gpupgradeschemaname@.johab_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for JOHAB to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_johab(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to JOHAB';
+COMMENT ON FUNCTION @gpupgradeschemaname@.sjis_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SJIS to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_sjis(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to SJIS';
+COMMENT ON FUNCTION @gpupgradeschemaname@.uhc_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UHC to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_uhc(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to UHC';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_jis_2004_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_JIS_2004 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_euc_jis_2004(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to EUC_JIS_2004';
+COMMENT ON FUNCTION @gpupgradeschemaname@.shift_jis_2004_to_utf8(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SHIFT_JIS_2004 to UTF8';
+COMMENT ON FUNCTION @gpupgradeschemaname@.utf8_to_shift_jis_2004(integer, integer, cstring, internal, integer)  IS 'internal conversion function for UTF8 to SHIFT_JIS_2004';
+COMMENT ON FUNCTION @gpupgradeschemaname@.euc_jis_2004_to_shift_jis_2004(integer, integer, cstring, internal, integer)  IS 'internal conversion function for EUC_JIS_2004 to SHIFT_JIS_2004';
+COMMENT ON FUNCTION @gpupgradeschemaname@.shift_jis_2004_to_euc_jis_2004(integer, integer, cstring, internal, integer)  IS 'internal conversion function for SHIFT_JIS_2004 to EUC_JIS_2004';
+
+COMMENT ON CONVERSION @gpupgradeschemaname@.ascii_to_mic IS 'conversion for SQL_ASCII to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_ascii IS 'conversion for MULE_INTERNAL to SQL_ASCII';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_r_to_mic IS 'conversion for KOI8R to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_koi8_r IS 'conversion for MULE_INTERNAL to KOI8R';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_5_to_mic IS 'conversion for ISO-8859-5 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_iso_8859_5 IS 'conversion for MULE_INTERNAL to ISO-8859-5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1251_to_mic IS 'conversion for WIN1251 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_windows_1251 IS 'conversion for MULE_INTERNAL to WIN1251';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_866_to_mic IS 'conversion for WIN866 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_windows_866 IS 'conversion for MULE_INTERNAL to WIN866';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_r_to_windows_1251 IS 'conversion for KOI8R to WIN1251';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1251_to_koi8_r IS 'conversion for WIN1251 to KOI8R';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_r_to_windows_866 IS 'conversion for KOI8R to WIN866';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_866_to_koi8_r IS 'conversion for WIN866 to KOI8R';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_866_to_windows_1251 IS 'conversion for WIN866 to WIN1251';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1251_to_windows_866 IS 'conversion for WIN1251 to WIN866';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_5_to_koi8_r IS 'conversion for ISO-8859-5 to KOI8R';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_r_to_iso_8859_5 IS 'conversion for KOI8R to ISO-8859-5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_5_to_windows_1251 IS 'conversion for ISO-8859-5 to WIN1251';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1251_to_iso_8859_5 IS 'conversion for WIN1251 to ISO-8859-5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_5_to_windows_866 IS 'conversion for ISO-8859-5 to WIN866';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_866_to_iso_8859_5 IS 'conversion for WIN866 to ISO-8859-5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_cn_to_mic IS 'conversion for EUC_CN to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_euc_cn IS 'conversion for MULE_INTERNAL to EUC_CN';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_jp_to_sjis IS 'conversion for EUC_JP to SJIS';
+COMMENT ON CONVERSION @gpupgradeschemaname@.sjis_to_euc_jp IS 'conversion for SJIS to EUC_JP';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_jp_to_mic IS 'conversion for EUC_JP to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.sjis_to_mic IS 'conversion for SJIS to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_euc_jp IS 'conversion for MULE_INTERNAL to EUC_JP';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_sjis IS 'conversion for MULE_INTERNAL to SJIS';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_kr_to_mic IS 'conversion for EUC_KR to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_euc_kr IS 'conversion for MULE_INTERNAL to EUC_KR';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_tw_to_big5 IS 'conversion for EUC_TW to BIG5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.big5_to_euc_tw IS 'conversion for BIG5 to EUC_TW';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_tw_to_mic IS 'conversion for EUC_TW to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.big5_to_mic IS 'conversion for BIG5 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_euc_tw IS 'conversion for MULE_INTERNAL to EUC_TW';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_big5 IS 'conversion for MULE_INTERNAL to BIG5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_2_to_mic IS 'conversion for LATIN2 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_iso_8859_2 IS 'conversion for MULE_INTERNAL to LATIN2';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1250_to_mic IS 'conversion for WIN1250 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_windows_1250 IS 'conversion for MULE_INTERNAL to WIN1250';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_2_to_windows_1250 IS 'conversion for LATIN2 to WIN1250';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1250_to_iso_8859_2 IS 'conversion for WIN1250 to LATIN2';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_1_to_mic IS 'conversion for LATIN1 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_iso_8859_1 IS 'conversion for MULE_INTERNAL to LATIN1';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_3_to_mic IS 'conversion for LATIN3 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_iso_8859_3 IS 'conversion for MULE_INTERNAL to LATIN3';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_4_to_mic IS 'conversion for LATIN4 to MULE_INTERNAL';
+COMMENT ON CONVERSION @gpupgradeschemaname@.mic_to_iso_8859_4 IS 'conversion for MULE_INTERNAL to LATIN4';
+COMMENT ON CONVERSION @gpupgradeschemaname@.ascii_to_utf8 IS 'conversion for SQL_ASCII to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_ascii IS 'conversion for UTF8 to SQL_ASCII';
+COMMENT ON CONVERSION @gpupgradeschemaname@.big5_to_utf8 IS 'conversion for BIG5 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_big5 IS 'conversion for UTF8 to BIG5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_koi8_r IS 'conversion for UTF8 to KOI8R';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_r_to_utf8 IS 'conversion for KOI8R to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_koi8_u IS 'conversion for UTF8 to KOI8U';
+COMMENT ON CONVERSION @gpupgradeschemaname@.koi8_u_to_utf8 IS 'conversion for KOI8U to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1258 IS 'conversion for UTF8 to WIN1258';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1257 IS 'conversion for UTF8 to WIN1257';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1256 IS 'conversion for UTF8 to WIN1256';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1255 IS 'conversion for UTF8 to WIN1255';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1254 IS 'conversion for UTF8 to WIN1254';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1253 IS 'conversion for UTF8 to WIN1253';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1252 IS 'conversion for UTF8 to WIN1252';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1251 IS 'conversion for UTF8 to WIN1251';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_1250 IS 'conversion for UTF8 to WIN1250';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_874 IS 'conversion for UTF8 to WIN874';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_windows_866 IS 'conversion for UTF8 to WIN866';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1258_to_utf8 IS 'conversion for WIN1258 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1257_to_utf8 IS 'conversion for WIN1257 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1256_to_utf8 IS 'conversion for WIN1256 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1255_to_utf8 IS 'conversion for WIN1255 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1254_to_utf8 IS 'conversion for WIN1254 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1253_to_utf8 IS 'conversion for WIN1253 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1252_to_utf8 IS 'conversion for WIN1252 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1251_to_utf8 IS 'conversion for WIN1251 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_1250_to_utf8 IS 'conversion for WIN1250 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_874_to_utf8 IS 'conversion for WIN874 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.windows_866_to_utf8 IS 'conversion for WIN866 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_cn_to_utf8 IS 'conversion for EUC_CN to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_euc_cn IS 'conversion for UTF8 to EUC_CN';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_jp_to_utf8 IS 'conversion for EUC_JP to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_euc_jp IS 'conversion for UTF8 to EUC_JP';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_kr_to_utf8 IS 'conversion for EUC_KR to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_euc_kr IS 'conversion for UTF8 to EUC_KR';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_tw_to_utf8 IS 'conversion for EUC_TW to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_euc_tw IS 'conversion for UTF8 to EUC_TW';
+COMMENT ON CONVERSION @gpupgradeschemaname@.gb18030_to_utf8 IS 'conversion for GB18030 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_gb18030 IS 'conversion for UTF8 to GB18030';
+COMMENT ON CONVERSION @gpupgradeschemaname@.gbk_to_utf8 IS 'conversion for GBK to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_gbk IS 'conversion for UTF8 to GBK';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_8 IS 'conversion for UTF8 to ISO-8859-8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_7 IS 'conversion for UTF8 to ISO-8859-7';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_6 IS 'conversion for UTF8 to ISO-8859-6';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_5 IS 'conversion for UTF8 to ISO-8859-5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_16 IS 'conversion for UTF8 to LATIN10';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_15 IS 'conversion for UTF8 to LATIN9';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_14 IS 'conversion for UTF8 to LATIN8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_13 IS 'conversion for UTF8 to LATIN7';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_10 IS 'conversion for UTF8 to LATIN6';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_9 IS 'conversion for UTF8 to LATIN5';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_4 IS 'conversion for UTF8 to LATIN4';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_3 IS 'conversion for UTF8 to LATIN3';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_2 IS 'conversion for UTF8 to LATIN2';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_8_to_utf8 IS 'conversion for ISO-8859-8 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_7_to_utf8 IS 'conversion for ISO-8859-7 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_6_to_utf8 IS 'conversion for ISO-8859-6 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_5_to_utf8 IS 'conversion for ISO-8859-5 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_16_to_utf8 IS 'conversion for LATIN10 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_15_to_utf8 IS 'conversion for LATIN9 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_14_to_utf8 IS 'conversion for LATIN8 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_13_to_utf8 IS 'conversion for LATIN7 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_10_to_utf8 IS 'conversion for LATIN6 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_9_to_utf8 IS 'conversion for LATIN5 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_4_to_utf8 IS 'conversion for LATIN4 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_3_to_utf8 IS 'conversion for LATIN3 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_2_to_utf8 IS 'conversion for LATIN2 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.iso_8859_1_to_utf8 IS 'conversion for LATIN1 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_iso_8859_1 IS 'conversion for UTF8 to LATIN1';
+COMMENT ON CONVERSION @gpupgradeschemaname@.johab_to_utf8 IS 'conversion for JOHAB to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_johab IS 'conversion for UTF8 to JOHAB';
+COMMENT ON CONVERSION @gpupgradeschemaname@.sjis_to_utf8 IS 'conversion for SJIS to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_sjis IS 'conversion for UTF8 to SJIS';
+COMMENT ON CONVERSION @gpupgradeschemaname@.uhc_to_utf8 IS 'conversion for UHC to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_uhc IS 'conversion for UTF8 to UHC';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_jis_2004_to_utf8 IS 'conversion for EUC_JIS_2004 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_euc_jis_2004 IS 'conversion for UTF8 to EUC_JIS_2004';
+COMMENT ON CONVERSION @gpupgradeschemaname@.shift_jis_2004_to_utf8 IS 'conversion for SHIFT_JIS_2004 to UTF8';
+COMMENT ON CONVERSION @gpupgradeschemaname@.utf8_to_shift_jis_2004 IS 'conversion for UTF8 to SHIFT_JIS_2004';
+COMMENT ON CONVERSION @gpupgradeschemaname@.euc_jis_2004_to_shift_jis_2004 IS 'conversion for EUC_JIS_2004 to SHIFT_JIS_2004';
+COMMENT ON CONVERSION @gpupgradeschemaname@.shift_jis_2004_to_euc_jis_2004 IS 'conversion for SHIFT_JIS_2004 to EUC_JIS_2004';
+
+update @gpinfoschemaname@.sql_implementation_info set character_value='08.02.0013' where implementation_info_id=18;
+
+-- MPP-5788 - delete pg_depend entries between aggregates and functions that don't exist
+delete from @gpupgradeschemaname@.pg_depend d using @gpupgradeschemaname@.pg_proc p where (p.oid = d.objid) and p.proisagg and (d.refclassid = 'pg_proc'::regclass) and (d.refobjid not in (select oid from pg_proc));
+
+-- MPP-4008, MPP-6155 - Fix owners and dependency information for user defined types
+-- Both updates should update zero rows in the upg2 test
+update @gpupgradeschemaname@.pg_class set relowner=typowner from @gpupgradeschemaname@.pg_type t where relkind='c' and t.oid=reltype;
+update @gpupgradeschemaname@.pg_depend set classid='pg_type'::regclass, objid=reltype from @gpupgradeschemaname@.pg_class where refclassid='pg_namespace'::regclass and objid=oid and relkind='c';

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_attribute_toadd32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_attribute_toadd32.data.in b/src/test/regress/data/upgrade33/upg2_pg_attribute_toadd32.data.in
new file mode 100644
index 0000000..e2ed207
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_attribute_toadd32.data.in
@@ -0,0 +1,46 @@
+attrelid|attname|atttypid|attstattarget|attlen|attnum|attndims|attcacheoff|atttypmod|attbyval|attstorage|attalign|attnotnull|atthasdef|attisdropped|attislocal|attinhcount
+5006|time|1184|-1|8|1|0|-1|-1|t|p|d|t|f|f|t|0
+5006|dbid|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+5006|desc|25|-1|-1|3|0|-1|-1|f|x|i|f|f|f|t|0
+5006|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5006|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5006|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5006|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5006|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5006|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5006|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5029|dbid|21|-1|2|1|0|-1|-1|t|p|s|t|f|f|t|0
+5029|interfaceid|21|-1|2|2|0|-1|-1|t|p|s|t|f|f|t|0
+5029|priority|21|-1|2|3|0|-1|-1|t|p|s|t|f|f|t|0
+5029|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5029|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5029|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5029|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5029|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5029|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5029|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+5030|interfaceid|21|-1|2|1|0|-1|-1|t|p|s|t|f|f|t|0
+5030|address|19|-1|64|2|0|-1|-1|f|p|i|t|f|f|t|0
+5030|status|21|-1|2|3|0|-1|-1|t|p|s|t|f|f|t|0
+5030|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+5030|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+5030|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+5030|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+5030|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+5030|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+5030|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6108|dbid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6109|interfaceid|21|-1|2|1|0|-1|-1|t|p|s|f|f|f|t|0
+6110|gp_segment_id|23|0|4|-8|0|-1|-1|t|p|i|t|f|f|t|0
+6110|tableoid|26|0|4|-7|0|-1|-1|t|p|i|t|f|f|t|0
+6110|cmax|29|0|4|-6|0|-1|-1|t|p|i|t|f|f|t|0
+6110|xmax|28|0|4|-5|0|-1|-1|t|p|i|t|f|f|t|0
+6110|cmin|29|0|4|-4|0|-1|-1|t|p|i|t|f|f|t|0
+6110|xmin|28|0|4|-3|0|-1|-1|t|p|i|t|f|f|t|0
+6110|ctid|27|0|6|-1|0|-1|-1|f|p|s|t|f|f|t|0
+6110|relid|26|-1|4|1|0|-1|-1|t|p|i|t|f|f|t|0
+6110|changenum|23|-1|4|2|0|-1|-1|t|p|i|t|f|f|t|0
+6110|segfilenums|1007|-1|-1|3|1|-1|-1|f|x|i|f|f|f|t|0
+6110|highwaterrownums|17|-1|-1|4|0|-1|-1|f|x|i|f|f|f|t|0
+5031|relid|26|-1|4|1|0|-1|-1|t|p|i|f|f|f|t|0
+5031|changenum|23|-1|4|2|0|-1|-1|t|p|i|f|f|f|t|0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_class_toadd32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_class_toadd32.data.in b/src/test/regress/data/upgrade33/upg2_pg_class_toadd32.data.in
new file mode 100644
index 0000000..83787ba
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_class_toadd32.data.in
@@ -0,0 +1,8 @@
+relname|relnamespace|reltype|relowner|relam|relfilenode|reltablespace|relpages|reltuples|reltoastrelid|reltoastidxid|relaosegrelid|relaosegidxid|relhasindex|relisshared|relkind|relstorage|relnatts|relchecks|reltriggers|relukeys|relfkeys|relrefs|relhasoids|relhaspkey|relhasrules|relhassubclass|relfrozenxid|relacl|reloptions
+5006|gp_configuration_history|11|6434|10|0|5006|1664|0|0|0|0|0|0|f|t|r|h|3|0|0|0|0|0|f|f|f|f|607|{=r/@gpcurusername@}|\N
+5029|gp_db_interfaces|11|6436|10|0|5029|1664|0|0|0|0|0|0|t|t|r|h|3|0|0|0|0|0|f|f|f|f|607|{=r/@gpcurusername@}|\N
+5030|gp_interfaces|11|6433|10|0|5030|1664|0|0|0|0|0|0|t|t|r|h|3|0|0|0|0|0|f|f|f|f|607|{=r/@gpcurusername@}|\N
+6108|gp_db_interfaces_dbid_index|11|0|10|403|6108|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6109|gp_interfaces_interface_index|11|0|10|403|6109|1664|1|0|0|0|0|0|f|t|i|h|1|0|0|0|0|0|f|f|f|f|0|\N|\N
+6110|pg_appendonly_alter_column|11|6437|10|0|6110|0|0|0|0|0|0|0|t|f|r|h|4|0|0|0|0|0|f|f|f|f|877|{=r/@gpcurusername@}|\N
+5031|pg_appendonly_alter_column_relid_index|11|0|10|403|5031|0|1|0|0|0|0|0|f|f|i|h|2|0|0|0|0|0|f|f|f|f|0|\N|\N

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_depend_toadd32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_depend_toadd32.data b/src/test/regress/data/upgrade33/upg2_pg_depend_toadd32.data
new file mode 100644
index 0000000..bf7a269
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_depend_toadd32.data
@@ -0,0 +1,27 @@
+classid|objid|objsubid|refclassid|refobjid|refobjsubid|deptype
+0|0|0|1247|6433|0|p
+0|0|0|1247|6434|0|p
+0|0|0|1247|6436|0|p
+0|0|0|1247|6437|0|p
+0|0|0|1255|828|0|p
+0|0|0|1255|6045|0|p
+0|0|0|1255|6046|0|p
+0|0|0|1255|6047|0|p
+0|0|0|1255|6048|0|p
+0|0|0|1255|6049|0|p
+0|0|0|1255|6050|0|p
+0|0|0|1255|6051|0|p
+0|0|0|1255|7169|0|p
+0|0|0|1255|7170|0|p
+0|0|0|1255|7171|0|p
+0|0|0|1255|7172|0|p
+0|0|0|1255|7173|0|p
+0|0|0|1255|7174|0|p
+0|0|0|1259|5006|0|p
+0|0|0|1259|5029|0|p
+0|0|0|1259|5030|0|p
+0|0|0|1259|6108|0|p
+0|0|0|1259|6109|0|p
+0|0|0|1259|6110|0|p
+0|0|0|1259|5031|0|p
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_description_toadd32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_description_toadd32.data b/src/test/regress/data/upgrade33/upg2_pg_description_toadd32.data
new file mode 100644
index 0000000..e5aafab
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_description_toadd32.data
@@ -0,0 +1,15 @@
+objoid|classoid|objsubid|description
+828|1255|0|truncate large object
+6045|1255|0|Read text from a file
+6046|1255|0|Rotate log file
+6047|1255|0|Write text to a file
+6048|1255|0|Rename a file
+6049|1255|0|Delete (unlink) a file
+6050|1255|0|ls the log dir
+6051|1255|0|Get the length of a file (via stat)
+7169|1255|0|show append only table tuple distribution across segment databases
+7170|1255|0|show append only table tuple distribution across segment databases
+7171|1255|0|show append only table compression ratio
+7172|1255|0|show append only table compression ratio
+7173|1255|0|append only tables utility function
+7174|1255|0|append only tables utility function

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_index_toadd32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_index_toadd32.data.in b/src/test/regress/data/upgrade33/upg2_pg_index_toadd32.data.in
new file mode 100644
index 0000000..0ecee5e
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_index_toadd32.data.in
@@ -0,0 +1,5 @@
+indexrelid|indrelid|indnatts|indisunique|indisprimary|indisclustered|indisvalid|indkey|indclass|indexprs|indpred
+6108|5029|1|f|f|f|t|1|1976|\N|\N
+6109|5030|1|t|f|f|t|1|1976|\N|\N
+5031|6110|2|t|f|f|t|1 2|1989 1978|\N|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_namespace_toadd32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_namespace_toadd32.data b/src/test/regress/data/upgrade33/upg2_pg_namespace_toadd32.data
new file mode 100644
index 0000000..3e4a33e
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_namespace_toadd32.data
@@ -0,0 +1 @@
+oid|nspname|nspowner|nspacl

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_proc_toadd32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_proc_toadd32.data b/src/test/regress/data/upgrade33/upg2_pg_proc_toadd32.data
new file mode 100644
index 0000000..3c47a78
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_proc_toadd32.data
@@ -0,0 +1,15 @@
+oid|proname|pronamespace|proowner|prolang|proisagg|prosecdef|proisstrict|proretset|provolatile|pronargs|prorettype|proiswin|proargtypes|proallargtypes|proargmodes|proargnames|prosrc|probin|proacl
+6045|pg_file_read|11|10|12|f|f|t|f|v|3|25|f|25 20 20|\N|\N|\N|pg_read_file|-|\N
+6046|pg_logfile_rotate|11|10|12|f|f|t|f|v|0|16|f||\N|\N|\N|pg_rotate_logfile|-|\N
+6047|pg_file_write|11|10|12|f|f|t|f|v|3|20|f|25 25 16|\N|\N|\N|pg_file_write|-|\N
+6048|pg_file_rename|11|10|12|f|f|f|f|v|3|16|f|25 25 25|\N|\N|\N|pg_file_rename|-|\N
+6049|pg_file_unlink|11|10|12|f|f|t|f|v|1|16|f|25|\N|\N|\N|pg_file_unlink|-|\N
+6050|pg_logdir_ls|11|10|12|f|f|t|t|v|0|2249|f||\N|\N|\N|pg_logdir_ls|-|\N
+6051|pg_file_length|11|10|12|f|f|t|f|v|1|20|f|25|\N|\N|\N|pg_file_length|-|\N
+7169|get_ao_distribution|11|10|12|f|f|f|t|v|1|2249|f|26|{26,23,701}|{i,o,o}|{reloid,segmentid,tupcount}|get_ao_distribution_oid|-|\N
+7170|get_ao_distribution|11|10|12|f|f|f|t|v|1|2249|f|25|{25,23,701}|{i,o,o}|{relname,segmentid,tupcount}|get_ao_distribution_name|-|\N
+7171|get_ao_compression_ratio|11|10|12|f|f|f|f|v|1|701|f|26|\N|\N|\N|get_ao_compression_ratio_oid|-|\N
+7172|get_ao_compression_ratio|11|10|12|f|f|f|f|v|1|701|f|25|\N|\N|\N|get_ao_compression_ratio_name|-|\N
+828|lo_truncate|11|10|12|f|f|t|f|v|2|23|f|23 23|\N|\N|\N|lo_truncate|-|\N
+7173|gp_update_ao_master_stats|11|10|12|f|f|f|f|v|1|701|f|26|\N|\N|\N|gp_update_ao_master_stats_oid|-|\N
+7174|gp_update_ao_master_stats|11|10|12|f|f|f|f|v|1|701|f|25|\N|\N|\N|gp_update_ao_master_stats_name|-|\N

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/upg2_pg_type_toadd32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/upg2_pg_type_toadd32.data.in b/src/test/regress/data/upgrade33/upg2_pg_type_toadd32.data.in
new file mode 100644
index 0000000..2173616
--- /dev/null
+++ b/src/test/regress/data/upgrade33/upg2_pg_type_toadd32.data.in
@@ -0,0 +1,6 @@
+oid|typname|typnamespace|typowner|typlen|typbyval|typtype|typisdefined|typdelim|typrelid|typelem|typinput|typoutput|typreceive|typsend|typanalyze|typalign|typstorage|typnotnull|typbasetype|typtypmod|typndims|typdefaultbin|typdefault
+6434|gp_configuration_history|11|10|-1|f|c|t|,|5006|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6436|gp_db_interfaces|11|10|-1|f|c|t|,|5029|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6433|gp_interfaces|11|10|-1|f|c|t|,|5030|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+6437|pg_appendonly_alter_column|11|10|-1|f|c|t|,|6110|0|record_in|record_out|record_recv|record_send|-|d|x|f|0|-1|0|\N|\N
+\.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_aggregate33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_aggregate33.data b/src/test/regress/data/upgrade34/pg_aggregate33.data
new file mode 100644
index 0000000..38e4cdf
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_aggregate33.data
@@ -0,0 +1,126 @@
+aggfnoid,aggtransfn,agginvtransfn,aggprelimfn,agginvprelimfn,aggfinalfn,aggsortop,aggtranstype,agginitval
+2100,3100,3101,6009,6016,1964,0,17,""
+2101,1963,6020,6009,6016,1964,0,17,""
+2102,1962,6019,6009,6016,1964,0,17,""
+2103,3102,3103,3104,3105,1837,0,17,""
+2104,3106,3107,3111,3110,1830,0,17,""
+2105,3108,3109,3111,3110,1830,0,17,""
+2106,1843,6038,6011,6018,1844,0,1187,"{0 second,0 second}"
+2107,1842,7010,1724,1725,0,0,1700,
+2108,1841,7009,463,464,0,0,20,
+2109,1840,7008,463,464,0,0,20,
+2110,204,205,204,205,0,0,700,
+2111,218,219,218,219,0,0,701,
+2112,894,895,894,895,0,0,790,
+2113,1169,1170,1169,1170,0,0,1186,
+2114,1724,1725,1724,1725,0,0,1700,
+2115,1236,0,1236,0,0,413,20,
+2116,768,0,768,0,0,521,23,
+2117,770,0,770,0,0,520,21,
+2118,1965,0,1965,0,0,610,26,
+2119,209,0,209,0,0,623,700,
+2120,223,0,223,0,0,674,701,
+2121,768,0,768,0,0,563,702,
+2122,1138,0,1138,0,0,1097,1082,
+2123,1377,0,1377,0,0,1112,1083,
+2124,1379,0,1379,0,0,1554,1266,
+2125,898,0,898,0,0,903,790,
+2126,2036,0,2036,0,0,2064,1114,
+2127,1196,0,1196,0,0,1324,1184,
+2128,1198,0,1198,0,0,1334,1186,
+2129,458,0,458,0,0,666,25,
+2130,1767,0,1767,0,0,1756,1700,
+2050,515,0,515,0,0,1073,2277,
+2244,1063,0,1063,0,0,1060,1042,
+2797,2795,0,2795,0,0,2800,27,
+2131,1237,0,1237,0,0,412,20,
+2132,769,0,769,0,0,97,23,
+2133,771,0,771,0,0,95,21,
+2134,1966,0,1966,0,0,609,26,
+2135,211,0,211,0,0,622,700,
+2136,224,0,224,0,0,672,701,
+2137,769,0,769,0,0,562,702,
+2138,1139,0,1139,0,0,1095,1082,
+2139,1378,0,1378,0,0,1110,1083,
+2140,1380,0,1380,0,0,1552,1266,
+2141,899,0,899,0,0,902,790,
+2142,2035,0,2035,0,0,2062,1114,
+2143,1195,0,1195,0,0,1322,1184,
+2144,1197,0,1197,0,0,1332,1186,
+2145,459,0,459,0,0,664,25,
+2146,1766,0,1766,0,0,1754,1700,
+2051,516,0,516,0,0,1072,2277,
+2245,1064,0,1064,0,0,1058,1042,
+2798,2796,0,2796,0,0,2799,27,
+2147,2804,0,463,464,0,0,20,0
+2803,1219,2857,463,464,0,0,20,0
+2718,1836,7308,6008,6015,2514,0,1231,"{0,0,0}"
+2719,1835,7307,6008,6015,2514,0,1231,"{0,0,0}"
+2720,1834,7306,6008,6015,2514,0,1231,"{0,0,0}"
+2721,208,6024,6010,6017,2512,0,1022,"{0,0,0}"
+2722,222,6025,6010,6017,2512,0,1022,"{0,0,0}"
+2723,1833,7309,6008,6015,2514,0,1231,"{0,0,0}"
+2641,1836,7308,6008,6015,1838,0,1231,"{0,0,0}"
+2642,1835,7307,6008,6015,1838,0,1231,"{0,0,0}"
+2643,1834,7306,6008,6015,1838,0,1231,"{0,0,0}"
+2644,208,6024,6010,6017,1831,0,1022,"{0,0,0}"
+2645,222,6025,6010,6017,1831,0,1022,"{0,0,0}"
+2646,1833,7309,6008,6015,1838,0,1231,"{0,0,0}"
+2148,1836,7308,6008,6015,1838,0,1231,"{0,0,0}"
+2149,1835,7307,6008,6015,1838,0,1231,"{0,0,0}"
+2150,1834,7306,6008,6015,1838,0,1231,"{0,0,0}"
+2151,208,6024,6010,6017,1831,0,1022,"{0,0,0}"
+2152,222,6025,6010,6017,1831,0,1022,"{0,0,0}"
+2153,1833,7309,6008,6015,1838,0,1231,"{0,0,0}"
+2724,1836,7308,6008,6015,2596,0,1231,"{0,0,0}"
+2725,1835,7307,6008,6015,2596,0,1231,"{0,0,0}"
+2726,1834,7306,6008,6015,2596,0,1231,"{0,0,0}"
+2727,208,6024,6010,6017,2513,0,1022,"{0,0,0}"
+2728,222,6025,6010,6017,2513,0,1022,"{0,0,0}"
+2729,1833,7309,6008,6015,2596,0,1231,"{0,0,0}"
+2712,1836,7308,6008,6015,1839,0,1231,"{0,0,0}"
+2713,1835,7307,6008,6015,1839,0,1231,"{0,0,0}"
+2714,1834,7306,6008,6015,1839,0,1231,"{0,0,0}"
+2715,208,6024,6010,6017,1832,0,1022,"{0,0,0}"
+2716,222,6025,6010,6017,1832,0,1022,"{0,0,0}"
+2717,1833,7309,6008,6015,1839,0,1231,"{0,0,0}"
+2154,1836,7308,6008,6015,1839,0,1231,"{0,0,0}"
+2155,1835,7307,6008,6015,1839,0,1231,"{0,0,0}"
+2156,1834,7306,6008,6015,1839,0,1231,"{0,0,0}"
+2157,208,6024,6010,6017,1832,0,1022,"{0,0,0}"
+2158,222,6025,6010,6017,1832,0,1022,"{0,0,0}"
+2159,1833,7309,6008,6015,1839,0,1231,"{0,0,0}"
+2818,2805,0,463,0,0,0,20,0
+2819,2806,0,6014,0,2807,0,1022,"{0,0,0,0,0,0}"
+2820,2806,0,6014,0,2808,0,1022,"{0,0,0,0,0,0}"
+2821,2806,0,6014,0,2809,0,1022,"{0,0,0,0,0,0}"
+2822,2806,0,6014,0,2810,0,1022,"{0,0,0,0,0,0}"
+2823,2806,0,6014,0,2811,0,1022,"{0,0,0,0,0,0}"
+2824,2806,0,6014,0,2812,0,1022,"{0,0,0,0,0,0}"
+2825,2806,0,6014,0,2813,0,1022,"{0,0,0,0,0,0}"
+2826,2806,0,6014,0,2814,0,1022,"{0,0,0,0,0,0}"
+2827,2806,0,6014,0,2815,0,1022,"{0,0,0,0,0,0}"
+2828,2806,0,6014,0,2816,0,1022,"{0,0,0,0,0,0}"
+2829,2806,0,6014,0,2817,0,1022,"{0,0,0,0,0,0}"
+2517,2515,0,2515,0,0,0,16,
+2518,2516,0,2516,0,0,0,16,
+2519,2515,0,2515,0,0,0,16,
+2236,1892,0,1892,0,0,0,21,
+2237,1893,0,1893,0,0,0,21,
+2238,1898,0,1898,0,0,0,23,
+2239,1899,0,1899,0,0,0,23,
+2240,1904,0,1904,0,0,0,20,
+2241,1905,0,1905,0,0,0,20,
+2242,1673,0,1673,0,0,0,1560,
+2243,1674,0,1674,0,0,0,1560,
+6013,6012,0,6012,0,0,0,1007,{}
+3216,3212,0,3214,0,0,0,1016,
+3217,3213,0,3214,0,0,0,1016,
+3218,3214,0,3214,0,0,0,1016,
+3219,3215,0,3215,0,0,0,1022,
+3226,3225,0,3214,0,0,0,1007,
+3228,3227,0,3214,0,0,0,1016,
+3230,3229,0,3215,0,0,0,1022,
+3255,3252,0,3253,0,3254,0,3251,
+3261,3257,0,3258,0,3259,0,1022,{0}
+3262,3257,0,3258,0,3260,0,1022,{0}


[31/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/gperf.init
----------------------------------------------------------------------
diff --git a/src/backend/access/index/gperf.init b/src/backend/access/index/gperf.init
new file mode 100644
index 0000000..bc00f47
--- /dev/null
+++ b/src/backend/access/index/gperf.init
@@ -0,0 +1,4038 @@
+%{
+/* 
+   WARNING: DO NOT MODIFY THIS FILE: 
+   Generated by /Users/yjin/hawq_main/src/include/catalog/calico.pl version 55
+   on Mon Aug 24 22:07:54 2015
+
+ARGV: \-meta\ \/Users\/yjin\/hawq_main\/gpMgmt\/bin\/gppylib\/data\/2\.0\.json\ \-uniqdef\ uniqdef\.json\ \-basedef\ basedef\.json\ \-gperf\ gperf\.init\ \-infiles\ caql\.files
+
+*/
+
+/*-------------------------------------------------------------------------
+ *
+ * catquery.c
+ *	  general catalog table access methods (internal api)
+ *
+ * Copyright (c) 2011,2012,2013 Greenplum inc
+ *
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include <math.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "access/genam.h"
+#include "access/heapam.h"
+#include "access/relscan.h"
+#include "access/transam.h"
+
+#include "catalog/caqlparse.h"
+#include "catalog/catalog.h"
+#include "catalog/catquery.h"
+#include "catalog/indexing.h"
+#include "catalog/pg_aggregate.h"
+#include "catalog/pg_amop.h"
+#include "catalog/pg_amproc.h"
+#include "catalog/pg_appendonly_alter_column.h"
+#include "catalog/pg_attrdef.h"
+#include "catalog/pg_auth_members.h"
+#include "catalog/pg_authid.h"
+#include "catalog/pg_autovacuum.h"
+#include "catalog/pg_cast.h"
+#include "catalog/pg_class.h"
+#include "catalog/pg_constraint.h"
+#include "catalog/pg_conversion.h"
+#include "catalog/pg_database.h"
+#include "catalog/pg_depend.h"
+#include "catalog/pg_description.h"
+#include "catalog/pg_extprotocol.h"
+#include "catalog/pg_exttable.h"
+#include "catalog/pg_filespace.h"
+#include "catalog/pg_filespace_entry.h"
+#include "catalog/pg_inherits.h"
+#include "catalog/pg_language.h"
+#include "catalog/pg_largeobject.h"
+#include "catalog/pg_listener.h"
+#include "catalog/pg_namespace.h"
+#include "catalog/pg_opclass.h"
+#include "catalog/pg_operator.h"
+#include "catalog/pg_partition.h"
+#include "catalog/pg_partition_rule.h"
+#include "catalog/pg_pltemplate.h"
+#include "catalog/pg_proc.h"
+#include "catalog/pg_resqueue.h"
+#include "catalog/pg_rewrite.h"
+#include "catalog/pg_shdepend.h"
+#include "catalog/pg_shdescription.h"
+#include "catalog/pg_statistic.h"
+#include "catalog/pg_tablespace.h"
+#include "catalog/pg_trigger.h"
+#include "catalog/pg_user_mapping.h"
+#include "catalog/pg_window.h"
+#include "catalog/pg_tidycat.h"
+
+#include "catalog/gp_configuration.h"
+#include "catalog/gp_configuration.h"
+#include "catalog/gp_segment_config.h"
+#include "catalog/gp_san_config.h"
+
+#include "catalog/gp_fastsequence.h"
+
+#include "catalog/gp_master_mirroring.h"
+#include "catalog/gp_persistent.h"
+#include "catalog/gp_global_sequence.h"
+#include "catalog/gp_id.h"
+#include "catalog/gp_version.h"
+#include "catalog/toasting.h"
+#include "catalog/gp_policy.h"
+
+#include "miscadmin.h"
+#include "storage/fd.h"
+#include "utils/fmgroids.h"
+#include "utils/relcache.h"
+#include "utils/lsyscache.h"
+#include "utils/syscache.h"
+
+#include "utils/acl.h"
+#include "utils/builtins.h"
+#include "utils/inval.h"
+
+#include "cdb/cdbpersistenttablespace.h"
+#include "cdb/cdbvars.h"
+
+
+
+
+
+/* ----------------------------------------------------------------
+ * cq_lookup()
+ * cq_lookup() defines a hash cookie for every cql() declaration.  The
+ * cookie associates the caql string with a "base query" function
+ * [caql_basic_fn_#()] that constructs the scan for the query.
+ * caql_switch() dispatches on the cookie to the base query function.
+ * ----------------------------------------------------------------
+*/
+
+#ifdef NOT_USED
+
+%}
+struct caql_hash_cookie
+{
+	const char *name;       /* caql string */
+	int uniqquery_code;     /* corresponding unique query */
+	int basequery_code;     /* corresponding base query */
+	int bDelete;            /* query performs DELETE */
+	int bCount;             /* SELECT COUNT(*) (or DELETE) */
+	int bUpdate;            /* SELECT ... FOR UPDATE */
+	int bInsert;            /* INSERT INTO  */
+	AttrNumber attnum;      /* column number (or 0 if no column specified) */
+};
+%%
+"SELECT 1", 1, 1, 0, 0, 0, 0, foo
+%%
+#endif /* NOT_USED */
+
+
+/* NOTE: caql_iud_switch locking removed */
+#define caql_iud_switch(pctx, isiud, oldtup, newtup, dontWait) 
+
+
+
+bool
+is_builtin_object(cqContext *pCtx, HeapTuple tuple)
+{
+	Oid result = InvalidOid;
+
+	if (!HeapTupleIsValid(tuple))
+		return true;
+
+	if (tuple->t_data->t_infomask & HEAP_HASOID)
+		result = HeapTupleGetOid(tuple);
+	else
+	{
+		switch(pCtx->cq_relationId)
+		{
+			case GpPolicyRelationId:
+				result = (Oid) ((FormData_gp_policy *) GETSTRUCT(tuple))->localoid;
+				break;
+			case FastSequenceRelationId:
+				result = (Oid) ((Form_gp_fastsequence) GETSTRUCT(tuple))->objid;
+				break;
+			case AggregateRelationId:
+				result = (Oid) ((Form_pg_aggregate) GETSTRUCT(tuple))->aggfnoid;
+				break;
+			case AccessMethodOperatorRelationId:
+				result = (Oid) ((Form_pg_amop) GETSTRUCT(tuple))->amopclaid;
+				break;
+			case AccessMethodProcedureRelationId:
+				result = (Oid) ((Form_pg_amproc) GETSTRUCT(tuple))->amopclaid;
+				break;
+			case AppendOnlyRelationId:
+				result = (Oid) ((Form_pg_appendonly) GETSTRUCT(tuple))->relid;
+				break;
+			case AttrDefaultRelationId:
+				result = (Oid) ((Form_pg_attrdef) GETSTRUCT(tuple))->adrelid;
+				break;
+			case AttributeRelationId:
+				result = (Oid) ((Form_pg_attribute) GETSTRUCT(tuple))->attrelid;
+				break;
+			case AttributeEncodingRelationId:
+				result = (Oid) ((Form_pg_attribute_encoding) GETSTRUCT(tuple))->attrelid;
+				break;
+			case AuthMemRelationId:
+				result = (Oid) ((Form_pg_auth_members) GETSTRUCT(tuple))->roleid;
+				break;
+			case AuthTimeConstraintRelationId:
+				result = (Oid) ((Form_pg_auth_time_constraint) GETSTRUCT(tuple))->authid;
+				break;
+			case DependRelationId:
+				result = (Oid) ((Form_pg_depend) GETSTRUCT(tuple))->objid;
+				break;
+			case DescriptionRelationId:
+				result = (Oid) ((Form_pg_description) GETSTRUCT(tuple))->objoid;
+				break;
+			case ExtTableRelationId:
+				result = (Oid) ((Form_pg_exttable) GETSTRUCT(tuple))->reloid;
+				break;
+			case FileSpaceEntryRelationId:
+				result = (Oid) ((Form_pg_filespace_entry) GETSTRUCT(tuple))->fsefsoid;
+				break;
+			case IndexRelationId:
+				result = (Oid) ((Form_pg_index) GETSTRUCT(tuple))->indexrelid;
+				break;
+			case InheritsRelationId:
+				result = (Oid) ((Form_pg_inherits) GETSTRUCT(tuple))->inhrelid;
+				break;
+			case PartitionEncodingRelationId:
+				result = (Oid) ((Form_pg_partition_encoding) GETSTRUCT(tuple))->parencoid;
+				break;
+			case PLTemplateRelationId:
+				{
+					char *name_str = pstrdup(NameStr(((Form_pg_pltemplate) GETSTRUCT(tuple))->tmplname));
+					if ((strcmp(name_str, "plpgsql") != 0) ||
+						(strcmp(name_str, "c") != 0) ||
+						(strcmp(name_str, "sql") != 0) ||
+						(strcmp(name_str, "internal") != 0))
+						result = InvalidOid;
+					break;
+				}
+			case TriggerRelationId:
+				result = (Oid) ((Form_pg_trigger) GETSTRUCT(tuple))->tgrelid;
+				break;
+			case RewriteRelationId:
+				result = (Oid) ((Form_pg_rewrite) GETSTRUCT(tuple))->ev_class;
+				break;
+			case ProcCallbackRelationId:
+				result = (Oid) ((Form_pg_proc_callback) GETSTRUCT(tuple))->profnoid;
+				break;
+			case SharedDependRelationId:
+				result = (Oid) ((Form_pg_shdepend) GETSTRUCT(tuple))->objid;
+				break;
+			case SharedDescriptionRelationId:
+				result = (Oid) ((Form_pg_shdescription) GETSTRUCT(tuple))->objoid;
+				break;
+			case StatLastOpRelationId:
+				result = (Oid) ((Form_pg_statlastop) GETSTRUCT(tuple))->objid;
+				break;
+			case StatLastShOpRelationId:
+				result = (Oid) ((Form_pg_statlastshop) GETSTRUCT(tuple))->objid;
+				break;
+			case StatisticRelationId:
+				result = (Oid) ((Form_pg_statistic) GETSTRUCT(tuple))->starelid;
+				break;
+			case TypeEncodingRelationId:
+				result = (Oid) ((Form_pg_type_encoding) GETSTRUCT(tuple))->typid;
+				break;
+			case WindowRelationId:
+				result = (Oid) ((Form_pg_window) GETSTRUCT(tuple))->winfnoid;
+				break;
+
+			default:
+				return false;
+		}
+	}
+	if (result > FirstNormalObjectId)
+		return false;
+
+	return true;
+}
+
+
+
+
+
+/* XXX XXX: temp fix for gp_distro reference in getoid_plus */
+typedef FormData_gp_policy *Form_gp_distribution_policy;
+
+/* ----------------------------------------------------------------
+ * caql_getoid_plus()
+ * Return an oid column from the first tuple and end the scan.
+ * Note: this works for regproc columns as well, but you should cast
+ * the output as RegProcedure.
+ * ----------------------------------------------------------------
+ */
+Oid caql_getoid_plus(cqContext *pCtx0, int *pFetchcount,
+					 bool *pbIsNull, cq_list *pcql)
+{
+	const char*				 caql_str = pcql->caqlStr;
+	const char*				 filenam  = pcql->filename;
+	int						 lineno	  = pcql->lineno;
+	struct caql_hash_cookie	*pchn	  = cq_lookup(caql_str, strlen(caql_str), pcql);
+	cqContext				*pCtx;
+	cqContext				 cqc;
+	HeapTuple				 tuple;
+	Relation				 rel;
+	Oid						 result	  = InvalidOid;
+
+	if (NULL == pchn)
+		elog(ERROR, "invalid caql string: %s\nfile: %s, line %d", 
+			 caql_str, filenam, lineno);
+
+	Assert(!pchn->bInsert); /* INSERT not allowed */
+
+	/* use the provided context, or provide a clean local ctx  */
+	if (pCtx0)
+		pCtx = pCtx0;
+	else
+		pCtx = cqclr(&cqc);
+
+	pCtx = caql_switch(pchn, pCtx, pcql);
+	/* NOTE: caql_switch frees the pcql */
+	rel  = pCtx->cq_heap_rel;
+
+	if (pFetchcount) *pFetchcount = 0;
+	if (pbIsNull) *pbIsNull = true;
+
+	/* use the SysCache */
+	if (pCtx->cq_usesyscache)
+	{
+		tuple = SearchSysCacheKeyArray(pCtx->cq_cacheId, 
+									   pCtx->cq_NumKeys, 
+									   pCtx->cq_cacheKeys);
+	}
+	else
+	{
+		tuple = systable_getnext(pCtx->cq_sysScan);
+	}
+
+	disable_catalog_check(pCtx, tuple);
+	if (HeapTupleIsValid(tuple))
+	{
+		if (pFetchcount) *pFetchcount = 1;
+		
+		/* if attnum not set, (InvalidAttrNumber == 0)
+		 * use tuple oid, else extract oid from column 
+		 * (includes ObjectIdAttributeNumber == -2) 
+		 */
+		if (pchn->attnum <= InvalidAttrNumber) 
+		{
+			if (pbIsNull) *pbIsNull = false;
+			result = HeapTupleGetOid(tuple);
+		}
+		else /* find oid column */
+		{
+			
+			switch(pCtx->cq_relationId)
+			{
+				
+				case GpPolicyRelationId: /* gp_distribution_policy */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* localoid */
+							result = (Oid) 
+								((Form_gp_distribution_policy) 
+								 GETSTRUCT(tuple))->localoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end gp_distribution_policy */
+					break;
+				
+				case FastSequenceRelationId: /* gp_fastsequence */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* objid */
+							result = (Oid) 
+								((Form_gp_fastsequence) 
+								 GETSTRUCT(tuple))->objid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end gp_fastsequence */
+					break;
+				
+				case AggregateRelationId: /* pg_aggregate */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* aggfnoid */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggfnoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* aggtransfn */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggtransfn;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* agginvtransfn */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->agginvtransfn;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* aggprelimfn */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggprelimfn;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* agginvprelimfn */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->agginvprelimfn;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* aggfinalfn */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggfinalfn;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* aggsortop */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggsortop;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* aggtranstype */
+							result = (Oid) 
+								((Form_pg_aggregate) 
+								 GETSTRUCT(tuple))->aggtranstype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_aggregate */
+					break;
+				
+				case AccessMethodRelationId: /* pg_am */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 12: /* aminsert */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->aminsert;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 13: /* ambeginscan */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->ambeginscan;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 14: /* amgettuple */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amgettuple;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 15: /* amgetmulti */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amgetmulti;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 16: /* amrescan */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amrescan;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 17: /* amendscan */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amendscan;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 18: /* ammarkpos */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->ammarkpos;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 19: /* amrestrpos */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amrestrpos;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 20: /* ambuild */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->ambuild;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 21: /* ambulkdelete */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->ambulkdelete;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 22: /* amvacuumcleanup */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amvacuumcleanup;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 23: /* amcostestimate */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amcostestimate;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 24: /* amoptions */
+							result = (Oid) 
+								((Form_pg_am) 
+								 GETSTRUCT(tuple))->amoptions;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_am */
+					break;
+				
+				case AccessMethodOperatorRelationId: /* pg_amop */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* amopclaid */
+							result = (Oid) 
+								((Form_pg_amop) 
+								 GETSTRUCT(tuple))->amopclaid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* amopsubtype */
+							result = (Oid) 
+								((Form_pg_amop) 
+								 GETSTRUCT(tuple))->amopsubtype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* amopopr */
+							result = (Oid) 
+								((Form_pg_amop) 
+								 GETSTRUCT(tuple))->amopopr;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_amop */
+					break;
+				
+				case AccessMethodProcedureRelationId: /* pg_amproc */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* amopclaid */
+							result = (Oid) 
+								((Form_pg_amproc) 
+								 GETSTRUCT(tuple))->amopclaid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* amprocsubtype */
+							result = (Oid) 
+								((Form_pg_amproc) 
+								 GETSTRUCT(tuple))->amprocsubtype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* amproc */
+							result = (Oid) 
+								((Form_pg_amproc) 
+								 GETSTRUCT(tuple))->amproc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_amproc */
+					break;
+				
+				case AppendOnlyRelationId: /* pg_appendonly */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* relid */
+							result = (Oid) 
+								((Form_pg_appendonly) 
+								 GETSTRUCT(tuple))->relid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* segrelid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 10, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 11: /* segidxid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 11, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 12: /* blkdirrelid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 12, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 13: /* blkdiridxid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 13, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_appendonly */
+					break;
+				
+				case AttrDefaultRelationId: /* pg_attrdef */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* adrelid */
+							result = (Oid) 
+								((Form_pg_attrdef) 
+								 GETSTRUCT(tuple))->adrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_attrdef */
+					break;
+				
+				case AttributeRelationId: /* pg_attribute */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* attrelid */
+							result = (Oid) 
+								((Form_pg_attribute) 
+								 GETSTRUCT(tuple))->attrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* atttypid */
+							result = (Oid) 
+								((Form_pg_attribute) 
+								 GETSTRUCT(tuple))->atttypid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_attribute */
+					break;
+				
+				case AttributeEncodingRelationId: /* pg_attribute_encoding */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* attrelid */
+							result = (Oid) 
+								((Form_pg_attribute_encoding) 
+								 GETSTRUCT(tuple))->attrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_attribute_encoding */
+					break;
+				
+				case AuthMemRelationId: /* pg_auth_members */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* roleid */
+							result = (Oid) 
+								((Form_pg_auth_members) 
+								 GETSTRUCT(tuple))->roleid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* member */
+							result = (Oid) 
+								((Form_pg_auth_members) 
+								 GETSTRUCT(tuple))->member;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* grantor */
+							result = (Oid) 
+								((Form_pg_auth_members) 
+								 GETSTRUCT(tuple))->grantor;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_auth_members */
+					break;
+				
+				case AuthTimeConstraintRelationId: /* pg_auth_time_constraint */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* authid */
+							result = (Oid) 
+								((Form_pg_auth_time_constraint) 
+								 GETSTRUCT(tuple))->authid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_auth_time_constraint */
+					break;
+				
+				case AuthIdRelationId: /* pg_authid */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 12: /* rolresqueue */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 12, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_authid */
+					break;
+				
+				case CastRelationId: /* pg_cast */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* castsource */
+							result = (Oid) 
+								((Form_pg_cast) 
+								 GETSTRUCT(tuple))->castsource;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* casttarget */
+							result = (Oid) 
+								((Form_pg_cast) 
+								 GETSTRUCT(tuple))->casttarget;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* castfunc */
+							result = (Oid) 
+								((Form_pg_cast) 
+								 GETSTRUCT(tuple))->castfunc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_cast */
+					break;
+				
+				case RelationRelationId: /* pg_class */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* relnamespace */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relnamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* reltype */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->reltype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* relowner */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* relam */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relam;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* relfilenode */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relfilenode;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* reltablespace */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->reltablespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* reltoastrelid */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->reltoastrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 11: /* reltoastidxid */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->reltoastidxid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 12: /* relaosegrelid */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relaosegrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 13: /* relaosegidxid */
+							result = (Oid) 
+								((Form_pg_class) 
+								 GETSTRUCT(tuple))->relaosegidxid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_class */
+					break;
+				
+				case CompressionRelationId: /* pg_compression */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* compconstructor */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compconstructor;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* compdestructor */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compdestructor;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* compcompressor */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compcompressor;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* compdecompressor */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compdecompressor;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* compvalidator */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compvalidator;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* compowner */
+							result = (Oid) 
+								((Form_pg_compression) 
+								 GETSTRUCT(tuple))->compowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_compression */
+					break;
+				
+				case ConstraintRelationId: /* pg_constraint */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* connamespace */
+							result = (Oid) 
+								((Form_pg_constraint) 
+								 GETSTRUCT(tuple))->connamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* conrelid */
+							result = (Oid) 
+								((Form_pg_constraint) 
+								 GETSTRUCT(tuple))->conrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* contypid */
+							result = (Oid) 
+								((Form_pg_constraint) 
+								 GETSTRUCT(tuple))->contypid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* confrelid */
+							result = (Oid) 
+								((Form_pg_constraint) 
+								 GETSTRUCT(tuple))->confrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_constraint */
+					break;
+				
+				case ConversionRelationId: /* pg_conversion */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* connamespace */
+							result = (Oid) 
+								((Form_pg_conversion) 
+								 GETSTRUCT(tuple))->connamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* conowner */
+							result = (Oid) 
+								((Form_pg_conversion) 
+								 GETSTRUCT(tuple))->conowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* conproc */
+							result = (Oid) 
+								((Form_pg_conversion) 
+								 GETSTRUCT(tuple))->conproc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_conversion */
+					break;
+				
+				case DatabaseRelationId: /* pg_database */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* datdba */
+							result = (Oid) 
+								((Form_pg_database) 
+								 GETSTRUCT(tuple))->datdba;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* datlastsysoid */
+							result = (Oid) 
+								((Form_pg_database) 
+								 GETSTRUCT(tuple))->datlastsysoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 9: /* dattablespace */
+							result = (Oid) 
+								((Form_pg_database) 
+								 GETSTRUCT(tuple))->dattablespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* dat2tablespace */
+							result = (Oid) 
+								((Form_pg_database) 
+								 GETSTRUCT(tuple))->dat2tablespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_database */
+					break;
+				
+				case DependRelationId: /* pg_depend */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* classid */
+							result = (Oid) 
+								((Form_pg_depend) 
+								 GETSTRUCT(tuple))->classid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* objid */
+							result = (Oid) 
+								((Form_pg_depend) 
+								 GETSTRUCT(tuple))->objid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* refclassid */
+							result = (Oid) 
+								((Form_pg_depend) 
+								 GETSTRUCT(tuple))->refclassid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* refobjid */
+							result = (Oid) 
+								((Form_pg_depend) 
+								 GETSTRUCT(tuple))->refobjid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_depend */
+					break;
+				
+				case DescriptionRelationId: /* pg_description */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* objoid */
+							result = (Oid) 
+								((Form_pg_description) 
+								 GETSTRUCT(tuple))->objoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* classoid */
+							result = (Oid) 
+								((Form_pg_description) 
+								 GETSTRUCT(tuple))->classoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_description */
+					break;
+				
+				case ExtprotocolRelationId: /* pg_extprotocol */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* ptcreadfn */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 2, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 3: /* ptcwritefn */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 3, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 4: /* ptcvalidatorfn */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 4, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+						
+						case 5: /* ptcowner */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 5, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_extprotocol */
+					break;
+				
+				case ExtTableRelationId: /* pg_exttable */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* reloid */
+							result = (Oid) 
+								((Form_pg_exttable) 
+								 GETSTRUCT(tuple))->reloid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* fmterrtbl */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 8, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_exttable */
+					break;
+				
+				case FileSpaceRelationId: /* pg_filespace */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* fsowner */
+							result = (Oid) 
+								((Form_pg_filespace) 
+								 GETSTRUCT(tuple))->fsowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* fsfsys */
+							result = (Oid) 
+								((Form_pg_filespace) 
+								 GETSTRUCT(tuple))->fsfsys;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_filespace */
+					break;
+				
+				case FileSpaceEntryRelationId: /* pg_filespace_entry */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* fsefsoid */
+							result = (Oid) 
+								((Form_pg_filespace_entry) 
+								 GETSTRUCT(tuple))->fsefsoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_filespace_entry */
+					break;
+				
+				case ForeignDataWrapperRelationId: /* pg_foreign_data_wrapper */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* fdwowner */
+							result = (Oid) 
+								((Form_pg_foreign_data_wrapper) 
+								 GETSTRUCT(tuple))->fdwowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* fdwvalidator */
+							result = (Oid) 
+								((Form_pg_foreign_data_wrapper) 
+								 GETSTRUCT(tuple))->fdwvalidator;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_foreign_data_wrapper */
+					break;
+				
+				case ForeignServerRelationId: /* pg_foreign_server */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* srvowner */
+							result = (Oid) 
+								((Form_pg_foreign_server) 
+								 GETSTRUCT(tuple))->srvowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* srvfdw */
+							result = (Oid) 
+								((Form_pg_foreign_server) 
+								 GETSTRUCT(tuple))->srvfdw;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_foreign_server */
+					break;
+				
+				case ForeignTableRelationId: /* pg_foreign_table */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* reloid */
+							result = (Oid) 
+								((Form_pg_foreign_table) 
+								 GETSTRUCT(tuple))->reloid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* server */
+							result = (Oid) 
+								((Form_pg_foreign_table) 
+								 GETSTRUCT(tuple))->server;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_foreign_table */
+					break;
+				
+				case IndexRelationId: /* pg_index */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* indexrelid */
+							result = (Oid) 
+								((Form_pg_index) 
+								 GETSTRUCT(tuple))->indexrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* indrelid */
+							result = (Oid) 
+								((Form_pg_index) 
+								 GETSTRUCT(tuple))->indrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_index */
+					break;
+				
+				case InheritsRelationId: /* pg_inherits */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* inhrelid */
+							result = (Oid) 
+								((Form_pg_inherits) 
+								 GETSTRUCT(tuple))->inhrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* inhparent */
+							result = (Oid) 
+								((Form_pg_inherits) 
+								 GETSTRUCT(tuple))->inhparent;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_inherits */
+					break;
+				
+				case LanguageRelationId: /* pg_language */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 4: /* lanplcallfoid */
+							result = (Oid) 
+								((Form_pg_language) 
+								 GETSTRUCT(tuple))->lanplcallfoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* lanvalidator */
+							result = (Oid) 
+								((Form_pg_language) 
+								 GETSTRUCT(tuple))->lanvalidator;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_language */
+					break;
+				
+				case LargeObjectRelationId: /* pg_largeobject */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* loid */
+							result = (Oid) 
+								((Form_pg_largeobject) 
+								 GETSTRUCT(tuple))->loid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_largeobject */
+					break;
+				
+				case NamespaceRelationId: /* pg_namespace */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* nspowner */
+							result = (Oid) 
+								((Form_pg_namespace) 
+								 GETSTRUCT(tuple))->nspowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* nspdboid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 4, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_namespace */
+					break;
+				
+				case OperatorClassRelationId: /* pg_opclass */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* opcamid */
+							result = (Oid) 
+								((Form_pg_opclass) 
+								 GETSTRUCT(tuple))->opcamid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* opcnamespace */
+							result = (Oid) 
+								((Form_pg_opclass) 
+								 GETSTRUCT(tuple))->opcnamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* opcowner */
+							result = (Oid) 
+								((Form_pg_opclass) 
+								 GETSTRUCT(tuple))->opcowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* opcintype */
+							result = (Oid) 
+								((Form_pg_opclass) 
+								 GETSTRUCT(tuple))->opcintype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* opckeytype */
+							result = (Oid) 
+								((Form_pg_opclass) 
+								 GETSTRUCT(tuple))->opckeytype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_opclass */
+					break;
+				
+				case OperatorRelationId: /* pg_operator */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* oprnamespace */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprnamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* oprowner */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* oprleft */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprleft;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* oprright */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprright;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* oprresult */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprresult;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 9: /* oprcom */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprcom;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* oprnegate */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprnegate;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 11: /* oprlsortop */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprlsortop;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 12: /* oprrsortop */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprrsortop;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 13: /* oprltcmpop */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprltcmpop;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 14: /* oprgtcmpop */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprgtcmpop;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 15: /* oprcode */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprcode;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 16: /* oprrest */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprrest;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 17: /* oprjoin */
+							result = (Oid) 
+								((Form_pg_operator) 
+								 GETSTRUCT(tuple))->oprjoin;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_operator */
+					break;
+				
+				case PartitionRelationId: /* pg_partition */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* parrelid */
+							result = (Oid) 
+								((Form_pg_partition) 
+								 GETSTRUCT(tuple))->parrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_partition */
+					break;
+				
+				case PartitionEncodingRelationId: /* pg_partition_encoding */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* parencoid */
+							result = (Oid) 
+								((Form_pg_partition_encoding) 
+								 GETSTRUCT(tuple))->parencoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_partition_encoding */
+					break;
+				
+				case PartitionRuleRelationId: /* pg_partition_rule */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* paroid */
+							result = (Oid) 
+								((Form_pg_partition_rule) 
+								 GETSTRUCT(tuple))->paroid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* parchildrelid */
+							result = (Oid) 
+								((Form_pg_partition_rule) 
+								 GETSTRUCT(tuple))->parchildrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* parparentrule */
+							result = (Oid) 
+								((Form_pg_partition_rule) 
+								 GETSTRUCT(tuple))->parparentrule;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 14: /* partemplatespace */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 14, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_partition_rule */
+					break;
+				
+				case ProcedureRelationId: /* pg_proc */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* pronamespace */
+							result = (Oid) 
+								((Form_pg_proc) 
+								 GETSTRUCT(tuple))->pronamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* proowner */
+							result = (Oid) 
+								((Form_pg_proc) 
+								 GETSTRUCT(tuple))->proowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* prolang */
+							result = (Oid) 
+								((Form_pg_proc) 
+								 GETSTRUCT(tuple))->prolang;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 11: /* prorettype */
+							result = (Oid) 
+								((Form_pg_proc) 
+								 GETSTRUCT(tuple))->prorettype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_proc */
+					break;
+				
+				case ProcCallbackRelationId: /* pg_proc_callback */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* profnoid */
+							result = (Oid) 
+								((Form_pg_proc_callback) 
+								 GETSTRUCT(tuple))->profnoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* procallback */
+							result = (Oid) 
+								((Form_pg_proc_callback) 
+								 GETSTRUCT(tuple))->procallback;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_proc_callback */
+					break;
+				
+				case ResQueueRelationId: /* pg_resqueue */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* rsq_parent */
+							result = (Oid) 
+								((Form_pg_resqueue) 
+								 GETSTRUCT(tuple))->rsq_parent;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_resqueue */
+					break;
+				
+				case ResQueueCapabilityRelationId: /* pg_resqueuecapability */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* resqueueid */
+							result = (Oid) 
+								((Form_pg_resqueuecapability) 
+								 GETSTRUCT(tuple))->resqueueid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_resqueuecapability */
+					break;
+				
+				case RewriteRelationId: /* pg_rewrite */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* ev_class */
+							result = (Oid) 
+								((Form_pg_rewrite) 
+								 GETSTRUCT(tuple))->ev_class;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_rewrite */
+					break;
+				
+				case SharedDependRelationId: /* pg_shdepend */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* dbid */
+							result = (Oid) 
+								((Form_pg_shdepend) 
+								 GETSTRUCT(tuple))->dbid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* classid */
+							result = (Oid) 
+								((Form_pg_shdepend) 
+								 GETSTRUCT(tuple))->classid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* objid */
+							result = (Oid) 
+								((Form_pg_shdepend) 
+								 GETSTRUCT(tuple))->objid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* refclassid */
+							result = (Oid) 
+								((Form_pg_shdepend) 
+								 GETSTRUCT(tuple))->refclassid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 5: /* refobjid */
+							result = (Oid) 
+								((Form_pg_shdepend) 
+								 GETSTRUCT(tuple))->refobjid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_shdepend */
+					break;
+				
+				case SharedDescriptionRelationId: /* pg_shdescription */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* objoid */
+							result = (Oid) 
+								((Form_pg_shdescription) 
+								 GETSTRUCT(tuple))->objoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* classoid */
+							result = (Oid) 
+								((Form_pg_shdescription) 
+								 GETSTRUCT(tuple))->classoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_shdescription */
+					break;
+				
+				case StatLastOpRelationId: /* pg_stat_last_operation */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* classid */
+							result = (Oid) 
+								((Form_pg_statlastop) 
+								 GETSTRUCT(tuple))->classid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* objid */
+							result = (Oid) 
+								((Form_pg_statlastop) 
+								 GETSTRUCT(tuple))->objid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* stasysid */
+							result = (Oid) 
+								((Form_pg_statlastop) 
+								 GETSTRUCT(tuple))->stasysid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_stat_last_operation */
+					break;
+				
+				case StatLastShOpRelationId: /* pg_stat_last_shoperation */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* classid */
+							result = (Oid) 
+								((Form_pg_statlastshop) 
+								 GETSTRUCT(tuple))->classid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* objid */
+							result = (Oid) 
+								((Form_pg_statlastshop) 
+								 GETSTRUCT(tuple))->objid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 4: /* stasysid */
+							result = (Oid) 
+								((Form_pg_statlastshop) 
+								 GETSTRUCT(tuple))->stasysid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_stat_last_shoperation */
+					break;
+				
+				case StatisticRelationId: /* pg_statistic */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* starelid */
+							result = (Oid) 
+								((Form_pg_statistic) 
+								 GETSTRUCT(tuple))->starelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* staop1 */
+							result = (Oid) 
+								((Form_pg_statistic) 
+								 GETSTRUCT(tuple))->staop1;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 11: /* staop2 */
+							result = (Oid) 
+								((Form_pg_statistic) 
+								 GETSTRUCT(tuple))->staop2;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 12: /* staop3 */
+							result = (Oid) 
+								((Form_pg_statistic) 
+								 GETSTRUCT(tuple))->staop3;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 13: /* staop4 */
+							result = (Oid) 
+								((Form_pg_statistic) 
+								 GETSTRUCT(tuple))->staop4;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_statistic */
+					break;
+				
+				case TableSpaceRelationId: /* pg_tablespace */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* spcowner */
+							result = (Oid) 
+								((Form_pg_tablespace) 
+								 GETSTRUCT(tuple))->spcowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* spcfsoid */
+						{
+							bool		isnull;
+							Datum		d = 
+								caql_getattr_internal(pCtx, tuple, 7, &isnull);
+						
+							if (!isnull)
+								result = DatumGetObjectId(d);
+						
+							if (pbIsNull) *pbIsNull = isnull;
+						}
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_tablespace */
+					break;
+				
+				case TriggerRelationId: /* pg_trigger */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* tgrelid */
+							result = (Oid) 
+								((Form_pg_trigger) 
+								 GETSTRUCT(tuple))->tgrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* tgfoid */
+							result = (Oid) 
+								((Form_pg_trigger) 
+								 GETSTRUCT(tuple))->tgfoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* tgconstrrelid */
+							result = (Oid) 
+								((Form_pg_trigger) 
+								 GETSTRUCT(tuple))->tgconstrrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_trigger */
+					break;
+				
+				case TypeRelationId: /* pg_type */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 2: /* typnamespace */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typnamespace;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 3: /* typowner */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typowner;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 9: /* typrelid */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typrelid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 10: /* typelem */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typelem;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 11: /* typinput */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typinput;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 12: /* typoutput */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typoutput;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 13: /* typreceive */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typreceive;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 14: /* typsend */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typsend;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 15: /* typanalyze */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typanalyze;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 19: /* typbasetype */
+							result = (Oid) 
+								((Form_pg_type) 
+								 GETSTRUCT(tuple))->typbasetype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_type */
+					break;
+				
+				case TypeEncodingRelationId: /* pg_type_encoding */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* typid */
+							result = (Oid) 
+								((Form_pg_type_encoding) 
+								 GETSTRUCT(tuple))->typid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_type_encoding */
+					break;
+				
+				case UserMappingRelationId: /* pg_user_mapping */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* umuser */
+							result = (Oid) 
+								((Form_pg_user_mapping) 
+								 GETSTRUCT(tuple))->umuser;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 2: /* umserver */
+							result = (Oid) 
+								((Form_pg_user_mapping) 
+								 GETSTRUCT(tuple))->umserver;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_user_mapping */
+					break;
+				
+				case WindowRelationId: /* pg_window */
+				{
+					switch(pchn->attnum)
+					{
+						
+						case 1: /* winfnoid */
+							result = (Oid) 
+								((Form_pg_window) 
+								 GETSTRUCT(tuple))->winfnoid;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 6: /* winfunc */
+							result = (Oid) 
+								((Form_pg_window) 
+								 GETSTRUCT(tuple))->winfunc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 7: /* winprefunc */
+							result = (Oid) 
+								((Form_pg_window) 
+								 GETSTRUCT(tuple))->winprefunc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 8: /* winpretype */
+							result = (Oid) 
+								((Form_pg_window) 
+								 GETSTRUCT(tuple))->winpretype;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+						
+						case 9: /* winfinfunc */
+							result = (Oid) 
+								((Form_pg_window) 
+								 GETSTRUCT(tuple))->winfinfunc;
+							if (pbIsNull) *pbIsNull = false;
+							break;
+				
+					  default:
+						elog(ERROR, "column not an oid: %s\nfile: %s, line %d", 
+							 caql_str, filenam, lineno);
+					}
+				} /* end pg_window */
+					break;
+			
+			  default:
+				elog(ERROR, "could not get column for relation: %s\nfile: %s, line %d", 
+					 caql_str, filenam, lineno);
+			}
+
+		}
+	} /* end HeapTupleIsValid */
+
+	if (pCtx->cq_usesyscache)
+	{  
+		if (HeapTupleIsValid(tuple))
+			ReleaseSysCache(tuple);
+	}
+	else
+	{	
+		if (pFetchcount && HeapTupleIsValid(tuple))
+		{				
+			if (HeapTupleIsValid(systable_getnext(pCtx->cq_sysScan)))
+			{
+				*pFetchcount = 2;	
+			}
+		}
+		systable_endscan(pCtx->cq_sysScan); 
+	}		
+	caql_heapclose(pCtx);
+
+	return (result);
+} /* end caql_getoid_plus */
+
+/* ----------------------------------------------------------------
+ * caql_getoid_only()
+ * Return the oid of the first tuple and end the scan
+ * If pbOnly is not NULL, return TRUE if a second tuple is not found,
+ * else return FALSE
+ * ----------------------------------------------------------------
+ */
+Oid caql_getoid_only(cqContext *pCtx0, bool *pbOnly, cq_list *pcql)
+{
+	const char*				 caql_str = pcql->caqlStr;
+	const char*				 filenam  = pcql->filename;
+	int						 lineno	  = pcql->lineno;
+	struct caql_hash_cookie	*pchn	  = cq_lookup(caql_str, strlen(caql_str), pcql);
+	cqContext				*pCtx;
+	cqContext				 cqc;
+	HeapTuple				 tuple;
+	Relation				 rel;
+	Oid						 result = InvalidOid;
+
+	if (NULL == pchn)
+		elog(ERROR, "invalid caql string: %s\nfile: %s, line %d", 
+			 caql_str, filenam, lineno);
+
+	Assert(!pchn->bInsert); /* INSERT not allowed */
+
+	/* use the provided context, or provide a clean local ctx  */
+	if (pCtx0)
+		pCtx = pCtx0;
+	else
+		pCtx = cqclr(&cqc);
+
+	pCtx = caql_switch(pchn, pCtx, pcql);
+	/* NOTE: caql_switch frees the pcql */
+	rel  = pCtx->cq_heap_rel;
+
+	if (pbOnly) *pbOnly = true;
+
+	/* use the SysCache */
+	if (pCtx->cq_usesyscache)
+	{
+		tuple = SearchSysCacheKeyArray(pCtx->cq_cacheId, 
+									   pCtx->cq_NumKeys, 
+									   pCtx->cq_cacheKeys);
+
+		disable_catalog_check(pCtx, tuple);
+
+		if (HeapTupleIsValid(tuple))
+		{
+			result = HeapTupleGetOid(tuple);
+			ReleaseSysCache(tuple);
+			/* only one */
+		}
+		caql_heapclose(pCtx);
+
+		return (result);
+	}
+
+	if (HeapTupleIsValid(tuple = systable_getnext(pCtx->cq_sysScan)))
+	{
+		disable_catalog_check(pCtx, tuple);
+
+		result = HeapTupleGetOid(tuple);
+
+		if (pbOnly)
+		{
+			*pbOnly = 
+				!(HeapTupleIsValid(tuple = 
+								   systable_getnext(pCtx->cq_sysScan)));
+		}
+	}
+	systable_endscan(pCtx->cq_sysScan); 
+	caql_heapclose(pCtx);
+	return (result);
+}
+
+/* ----------------------------------------------------------------
+ * caql_getcstring_plus()
+ * Return a cstring column from the first tuple and end the scan.
+ * ----------------------------------------------------------------
+ */
+char *caql_getcstring_plus(cqContext *pCtx0, int *pFetchcount,
+						   bool *pbIsNull, cq_list *pcql)
+{
+	const char*				 caql_str = pcql->caqlStr;
+	const char*				 filenam  = pcql->filename;
+	int						 lineno	  = pcql->lineno;
+	struct caql_hash_cookie	*pchn	  = cq_lookup(caql_str, strlen(caql_str), pcql);
+	cqContext				*pCtx;
+	cqContext				 cqc;
+	HeapTuple				 tuple;
+	Relation				 rel;
+	char					*result = NULL;
+
+	if (NULL == pchn)
+		elog(ERROR, "invalid caql string: %s\nfile: %s, line %d", 
+			 caql_str, filenam, lineno);
+
+	Assert(!pchn->bInsert); /* INSERT not allowed */
+
+	/* use the provided context, or provide a clean local ctx  */
+	if (pCtx0)
+		pCtx = pCtx0;
+	else
+		pCtx = cqclr(&cqc);
+
+	pCtx = caql_switch(pchn, pCtx, pcql);
+	/* NOTE: caql_switch frees the pcql */
+	rel  = pCtx->cq_heap_rel;
+
+	if (pFetchcount) *pFetchcount = 0;
+	if (pbIsNull) *pbIsNull = true;
+
+	/* use the SysCache */
+	if (pCtx->cq_usesyscache)
+	{
+		tuple = SearchSysCacheKeyArray(pCtx->cq_cacheId, 
+									   pCtx->cq_NumKeys, 
+									   pCtx->cq_cacheKeys);
+	}
+	else
+	{
+		tuple = systable_getnext(pCtx->cq_sysScan);
+	}
+
+	disable_catalog_check(pCtx, tuple);
+
+	if (HeapTupleIsValid(tuple))
+	{
+		if (pFetchcount) *pFetchcount = 1;
+		
+		switch(pCtx->cq_relationId)
+		{
+			
+			case GpSegmentConfigRelationId: /* gp_segment_configuration */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 5: /* hostname */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 6: /* address */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 6, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end gp_segment_configuration */
+				break;
+			
+			case AggregateRelationId: /* pg_aggregate */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 9: /* agginitval */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 9, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_aggregate */
+				break;
+			
+			case AccessMethodRelationId: /* pg_am */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* amname */
+						result = pstrdup(
+							NameStr(((Form_pg_am) 
+									 GETSTRUCT(tuple))->amname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_am */
+				break;
+			
+			case AppendOnlyRelationId: /* pg_appendonly */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 8: /* compresstype */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 8, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_appendonly */
+				break;
+			
+			case AttrDefaultRelationId: /* pg_attrdef */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 3: /* adbin */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 4: /* adsrc */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_attrdef */
+				break;
+			
+			case AttributeRelationId: /* pg_attribute */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 2: /* attname */
+						result = pstrdup(
+							NameStr(((Form_pg_attribute) 
+									 GETSTRUCT(tuple))->attname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_attribute */
+				break;
+			
+			case AttributeEncodingRelationId: /* pg_attribute_encoding */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 3: /* attoptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_attribute_encoding */
+				break;
+			
+			case AuthIdRelationId: /* pg_authid */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* rolname */
+						result = pstrdup(
+							NameStr(((Form_pg_authid) 
+									 GETSTRUCT(tuple))->rolname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 9: /* rolpassword */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 9, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 11: /* rolconfig */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 11, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_authid */
+				break;
+			
+			case RelationRelationId: /* pg_class */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* relname */
+						result = pstrdup(
+							NameStr(((Form_pg_class) 
+									 GETSTRUCT(tuple))->relname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 30: /* reloptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 30, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_class */
+				break;
+			
+			case CompressionRelationId: /* pg_compression */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* compname */
+						result = pstrdup(
+							NameStr(((Form_pg_compression) 
+									 GETSTRUCT(tuple))->compname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_compression */
+				break;
+			
+			case ConstraintRelationId: /* pg_constraint */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* conname */
+						result = pstrdup(
+							NameStr(((Form_pg_constraint) 
+									 GETSTRUCT(tuple))->conname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 14: /* conbin */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 14, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 15: /* consrc */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 15, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_constraint */
+				break;
+			
+			case ConversionRelationId: /* pg_conversion */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* conname */
+						result = pstrdup(
+							NameStr(((Form_pg_conversion) 
+									 GETSTRUCT(tuple))->conname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_conversion */
+				break;
+			
+			case DatabaseRelationId: /* pg_database */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* datname */
+						result = pstrdup(
+							NameStr(((Form_pg_database) 
+									 GETSTRUCT(tuple))->datname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 11: /* datconfig */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 11, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_database */
+				break;
+			
+			case DescriptionRelationId: /* pg_description */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 4: /* description */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_description */
+				break;
+			
+			case ExtprotocolRelationId: /* pg_extprotocol */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* ptcname */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 1, &isnull);
+					
+						if (!isnull)
+							result = pstrdup(
+								NameStr(*(DatumGetName(d))));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_extprotocol */
+				break;
+			
+			case ExtTableRelationId: /* pg_exttable */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 2: /* location */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 2, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 4: /* fmtopts */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 5: /* command */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_exttable */
+				break;
+			
+			case FileSpaceRelationId: /* pg_filespace */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* fsname */
+						result = pstrdup(
+							NameStr(((Form_pg_filespace) 
+									 GETSTRUCT(tuple))->fsname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_filespace */
+				break;
+			
+			case FileSpaceEntryRelationId: /* pg_filespace_entry */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 3: /* fselocation */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_filespace_entry */
+				break;
+			
+			case ForeignDataWrapperRelationId: /* pg_foreign_data_wrapper */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* fdwname */
+						result = pstrdup(
+							NameStr(((Form_pg_foreign_data_wrapper) 
+									 GETSTRUCT(tuple))->fdwname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 5: /* fdwoptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_foreign_data_wrapper */
+				break;
+			
+			case ForeignServerRelationId: /* pg_foreign_server */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* srvname */
+						result = pstrdup(
+							NameStr(((Form_pg_foreign_server) 
+									 GETSTRUCT(tuple))->srvname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 4: /* srvtype */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 5: /* srvversion */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 7: /* srvoptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 7, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_foreign_server */
+				break;
+			
+			case ForeignTableRelationId: /* pg_foreign_table */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 3: /* tbloptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_foreign_table */
+				break;
+			
+			case IndexRelationId: /* pg_index */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 10: /* indexprs */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 10, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 11: /* indpred */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 11, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_index */
+				break;
+			
+			case LanguageRelationId: /* pg_language */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* lanname */
+						result = pstrdup(
+							NameStr(((Form_pg_language) 
+									 GETSTRUCT(tuple))->lanname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_language */
+				break;
+			
+			case NamespaceRelationId: /* pg_namespace */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* nspname */
+						result = pstrdup(
+							NameStr(((Form_pg_namespace) 
+									 GETSTRUCT(tuple))->nspname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_namespace */
+				break;
+			
+			case OperatorClassRelationId: /* pg_opclass */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 2: /* opcname */
+						result = pstrdup(
+							NameStr(((Form_pg_opclass) 
+									 GETSTRUCT(tuple))->opcname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_opclass */
+				break;
+			
+			case OperatorRelationId: /* pg_operator */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* oprname */
+						result = pstrdup(
+							NameStr(((Form_pg_operator) 
+									 GETSTRUCT(tuple))->oprname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_operator */
+				break;
+			
+			case PartitionEncodingRelationId: /* pg_partition_encoding */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 3: /* parencattoptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_partition_encoding */
+				break;
+			
+			case PartitionRuleRelationId: /* pg_partition_rule */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 4: /* parname */
+						result = pstrdup(
+							NameStr(((Form_pg_partition_rule) 
+									 GETSTRUCT(tuple))->parname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 9: /* parrangestart */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 9, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 10: /* parrangeend */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 10, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 11: /* parrangeevery */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 11, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 12: /* parlistvalues */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 12, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 13: /* parreloptions */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 13, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_partition_rule */
+				break;
+			
+			case PLTemplateRelationId: /* pg_pltemplate */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* tmplname */
+						result = pstrdup(
+							NameStr(((Form_pg_pltemplate) 
+									 GETSTRUCT(tuple))->tmplname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 3: /* tmplhandler */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 3, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 4: /* tmplvalidator */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 5: /* tmpllibrary */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_pltemplate */
+				break;
+			
+			case ProcedureRelationId: /* pg_proc */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* proname */
+						result = pstrdup(
+							NameStr(((Form_pg_proc) 
+									 GETSTRUCT(tuple))->proname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 16: /* proargnames */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 16, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 17: /* prosrc */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 17, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+			
+				  default:
+					elog(ERROR, "column not a cstring: %s\nfile: %s, line %d", 
+						 caql_str, filenam, lineno);
+				}
+			} /* end pg_proc */
+				break;
+			
+			case ResQueueRelationId: /* pg_resqueue */
+			{
+				switch(pchn->attnum)
+				{
+					
+					case 1: /* rsqname */
+						result = pstrdup(
+							NameStr(((Form_pg_resqueue) 
+									 GETSTRUCT(tuple))->rsqname));
+						if (pbIsNull) *pbIsNull = false;
+						break;
+					
+					case 4: /* rsq_memory_limit_cluster */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 4, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 5: /* rsq_core_limit_cluster */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 5, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 7: /* rsq_allocation_policy */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 7, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+					
+						if (pbIsNull) *pbIsNull = isnull;
+					}
+						break;
+					
+					case 8: /* rsq_seg_resource_quota */
+					{
+						bool		isnull;
+						Datum		d = 
+							caql_getattr_internal(pCtx, tuple, 8, &isnull);
+					
+						if (!isnull)
+							result = DatumGetCString(
+								DirectFunctionCall1(textout, d));
+			

<TRUNCATED>


[29/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
----------------------------------------------------------------------
diff --git a/src/backend/utils/mb/Unicode/UCS_to_BIG5.pl b/src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
new file mode 100755
index 0000000..8b9612f
--- /dev/null
+++ b/src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
@@ -0,0 +1,177 @@
+#! /usr/bin/perl
+#
+# Copyright (c) 2001-2009, PostgreSQL Global Development Group
+#
+# $PostgreSQL: pgsql/src/backend/utils/mb/Unicode/UCS_to_BIG5.pl,v 1.9 2009/03/18 16:26:18 heikki Exp $
+#
+# Generate UTF-8 <--> BIG5 conversion tables from
+# map files provided by Unicode organization.
+# Unfortunately it is prohibited by the organization
+# to distribute the map files. So if you try to use this script,
+# you have to obtain the map files from the organization's ftp site.
+# ftp://www.unicode.org/Public/MAPPINGS/
+#
+# Our "big5" comes from BIG5.TXT, with the addition of the characters
+# in the range 0xf9d6-0xf9dc from CP950.TXT.
+#
+# BIG5.TXT format:
+#		 BIG5 code in hex
+#		 UCS-2 code in hex
+#		 # and Unicode name (not used in this script)
+#
+# CP950.TXT format:
+#		 CP950 code in hex
+#		 UCS-2 code in hex
+#		 # and Unicode name (not used in this script)
+
+
+require "ucs2utf.pl";
+
+
+#
+# first, generate UTF8 --> BIG5 table
+#
+$in_file = "BIG5.TXT";
+
+open( FILE, $in_file ) || die( "cannot open $in_file" );
+
+reset 'array';
+
+while( <FILE> ){
+	chop;
+	if( /^#/ ){
+		next;
+	}
+	( $c, $u, $rest ) = split;
+	$ucs = hex($u);
+	$code = hex($c);
+	if( $code >= 0x80 && $ucs >= 0x0080){
+		$utf = &ucs2utf($ucs);
+		if( $array{ $utf } ne "" ){
+			printf STDERR "Warning: duplicate UTF8: %04x\n",$ucs;
+			next;
+		}
+		$count++;
+		$array{ $utf } = $code;
+	}
+}
+close( FILE );
+
+$in_file = "CP950.TXT";
+
+open( FILE, $in_file ) || die( "cannot open $in_file" );
+
+while( <FILE> ){
+	chop;
+	if( /^#/ ){
+		next;
+	}
+	( $c, $u, $rest ) = split;
+	$ucs = hex($u);
+	$code = hex($c);
+
+	# Pick only the ETEN extended characters in the range 0xf9d6 - 0xf9dc
+	# from CP950.TXT
+	if( $code >= 0x80 && $ucs >= 0x0080 &&
+	    $code >= 0xf9d6 && $code <= 0xf9dc ){
+		$utf = &ucs2utf($ucs);
+		if( $array{ $utf } ne "" ){
+			printf STDERR "Warning: duplicate UTF8: %04x\n",$ucs;
+			next;
+		}
+		$count++;
+		$array{ $utf } = $code;
+	}
+}
+close( FILE );
+
+$file = lc("utf8_to_big5.map");
+open( FILE, "> $file" ) || die( "cannot open $file" );
+print FILE "static pg_utf_to_local ULmapBIG5[ $count ] = {\n";
+
+for $index ( sort {$a <=> $b} keys( %array ) ){
+	$code = $array{ $index };
+	$count--;
+	if( $count == 0 ){
+		printf FILE "  {0x%04x, 0x%04x}\n", $index, $code;
+	} else {
+		printf FILE "  {0x%04x, 0x%04x},\n", $index, $code;
+	}
+}
+
+print FILE "};\n";
+close(FILE);
+
+#
+# then generate BIG5 --> UTF8 table
+#
+$in_file = "BIG5.TXT";
+
+open( FILE, $in_file ) || die( "cannot open $in_file" );
+
+reset 'array';
+
+while( <FILE> ){
+	chop;
+	if( /^#/ ){
+		next;
+	}
+	( $c, $u, $rest ) = split;
+	$ucs = hex($u);
+	$code = hex($c);
+	if( $code >= 0x80 && $ucs >= 0x0080){
+		$utf = &ucs2utf($ucs);
+		if( $array{ $utf } ne "" ){
+			printf STDERR "Warning: duplicate UTF8: %04x\n",$ucs;
+			next;
+		}
+		$count++;
+		$array{ $code } = $utf;
+	}
+}
+close( FILE );
+
+$in_file = "CP950.TXT";
+
+open( FILE, $in_file ) || die( "cannot open $in_file" );
+
+while( <FILE> ){
+	chop;
+	if( /^#/ ){
+		next;
+	}
+	( $c, $u, $rest ) = split;
+	$ucs = hex($u);
+	$code = hex($c);
+
+	# Pick only the ETEN extended characters in the range 0xf9d6 - 0xf9dc
+	# from CP950.TXT
+	if( $code >= 0x80 && $ucs >= 0x0080 &&
+	    $code >= 0xf9d6 && $code <= 0xf9dc ){
+		$utf = &ucs2utf($ucs);
+		if( $array{ $utf } ne "" ){
+			printf STDERR "Warning: duplicate UTF8: %04x\n",$ucs;
+			next;
+		}
+		$count++;
+		$array{ $code } = $utf;
+	}
+}
+close( FILE );
+
+$file = lc("big5_to_utf8.map");
+open( FILE, "> $file" ) || die( "cannot open $file" );
+print FILE "static pg_local_to_utf LUmapBIG5[ $count ] = {\n";
+for $index ( sort {$a <=> $b} keys( %array ) ){
+	$utf = $array{ $index };
+	$count--;
+	if( $count == 0 ){
+		printf FILE "  {0x%04x, 0x%04x}\n", $index, $utf;
+	} else {
+		printf FILE "  {0x%04x, 0x%04x},\n", $index, $utf;
+	}
+}
+
+print FILE "};\n";
+close(FILE);
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/api.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/api.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/api.Plo
new file mode 100644
index 0000000..e3acc69
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/api.Plo
@@ -0,0 +1,95 @@
+api.lo api.o: api.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/dumper.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/dumper.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/dumper.Plo
new file mode 100644
index 0000000..ef4b2c5
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/dumper.Plo
@@ -0,0 +1,95 @@
+dumper.lo dumper.o: dumper.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/emitter.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/emitter.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/emitter.Plo
new file mode 100644
index 0000000..2b335e3
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/emitter.Plo
@@ -0,0 +1,96 @@
+emitter.lo emitter.o: emitter.c yaml_private.h ../config.h \
+  ../include/yaml.h /usr/include/stdlib.h /usr/include/available.h \
+  /usr/include/_types.h /usr/include/sys/_types.h \
+  /usr/include/sys/cdefs.h /usr/include/machine/_types.h \
+  /usr/include/i386/_types.h /usr/include/sys/wait.h \
+  /usr/include/sys/signal.h /usr/include/sys/appleapiopts.h \
+  /usr/include/machine/signal.h /usr/include/i386/signal.h \
+  /usr/include/i386/_structs.h /usr/include/sys/_structs.h \
+  /usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
+  /usr/include/sys/resource.h /usr/include/machine/endian.h \
+  /usr/include/i386/endian.h /usr/include/sys/_endian.h \
+  /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/loader.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/loader.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/loader.Plo
new file mode 100644
index 0000000..75fddfc
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/loader.Plo
@@ -0,0 +1,95 @@
+loader.lo loader.o: loader.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/parser.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/parser.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/parser.Plo
new file mode 100644
index 0000000..40c92dd
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/parser.Plo
@@ -0,0 +1,95 @@
+parser.lo parser.o: parser.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/reader.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/reader.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/reader.Plo
new file mode 100644
index 0000000..88190d2
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/reader.Plo
@@ -0,0 +1,95 @@
+reader.lo reader.o: reader.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/scanner.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/scanner.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/scanner.Plo
new file mode 100644
index 0000000..6477168
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/scanner.Plo
@@ -0,0 +1,96 @@
+scanner.lo scanner.o: scanner.c yaml_private.h ../config.h \
+  ../include/yaml.h /usr/include/stdlib.h /usr/include/available.h \
+  /usr/include/_types.h /usr/include/sys/_types.h \
+  /usr/include/sys/cdefs.h /usr/include/machine/_types.h \
+  /usr/include/i386/_types.h /usr/include/sys/wait.h \
+  /usr/include/sys/signal.h /usr/include/sys/appleapiopts.h \
+  /usr/include/machine/signal.h /usr/include/i386/signal.h \
+  /usr/include/i386/_structs.h /usr/include/sys/_structs.h \
+  /usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
+  /usr/include/sys/resource.h /usr/include/machine/endian.h \
+  /usr/include/i386/endian.h /usr/include/sys/_endian.h \
+  /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/writer.Plo
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/writer.Plo b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/writer.Plo
new file mode 100644
index 0000000..376630e
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/src/.deps/writer.Plo
@@ -0,0 +1,95 @@
+writer.lo writer.o: writer.c yaml_private.h ../config.h ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
+  /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
+  /usr/include/limits.h /usr/include/machine/limits.h \
+  /usr/include/i386/limits.h /usr/include/i386/_limits.h \
+  /usr/include/sys/syslimits.h
+
+yaml_private.h:
+
+../config.h:
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
+
+/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/machine/limits.h:
+
+/usr/include/i386/limits.h:
+
+/usr/include/i386/_limits.h:
+
+/usr/include/sys/syslimits.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor-alt.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor-alt.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor-alt.Po
new file mode 100644
index 0000000..5911967
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor-alt.Po
@@ -0,0 +1,71 @@
+example-deconstructor-alt.o example-deconstructor-alt.o:  \
+ example-deconstructor-alt.c ../include/yaml.h /usr/include/stdlib.h \
+  /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor.Po
new file mode 100644
index 0000000..5bb7d45
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-deconstructor.Po
@@ -0,0 +1,71 @@
+example-deconstructor.o example-deconstructor.o: example-deconstructor.c \
+  ../include/yaml.h /usr/include/stdlib.h /usr/include/available.h \
+  /usr/include/_types.h /usr/include/sys/_types.h \
+  /usr/include/sys/cdefs.h /usr/include/machine/_types.h \
+  /usr/include/i386/_types.h /usr/include/sys/wait.h \
+  /usr/include/sys/signal.h /usr/include/sys/appleapiopts.h \
+  /usr/include/machine/signal.h /usr/include/i386/signal.h \
+  /usr/include/i386/_structs.h /usr/include/sys/_structs.h \
+  /usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
+  /usr/include/sys/resource.h /usr/include/machine/endian.h \
+  /usr/include/i386/endian.h /usr/include/sys/_endian.h \
+  /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter-alt.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter-alt.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter-alt.Po
new file mode 100644
index 0000000..be2a19c
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter-alt.Po
@@ -0,0 +1,71 @@
+example-reformatter-alt.o example-reformatter-alt.o:  \
+ example-reformatter-alt.c ../include/yaml.h /usr/include/stdlib.h \
+  /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter.Po
new file mode 100644
index 0000000..8e586be
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/example-reformatter.Po
@@ -0,0 +1,71 @@
+example-reformatter.o example-reformatter.o: example-reformatter.c \
+  ../include/yaml.h /usr/include/stdlib.h /usr/include/available.h \
+  /usr/include/_types.h /usr/include/sys/_types.h \
+  /usr/include/sys/cdefs.h /usr/include/machine/_types.h \
+  /usr/include/i386/_types.h /usr/include/sys/wait.h \
+  /usr/include/sys/signal.h /usr/include/sys/appleapiopts.h \
+  /usr/include/machine/signal.h /usr/include/i386/signal.h \
+  /usr/include/i386/_structs.h /usr/include/sys/_structs.h \
+  /usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
+  /usr/include/sys/resource.h /usr/include/machine/endian.h \
+  /usr/include/i386/endian.h /usr/include/sys/_endian.h \
+  /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-dumper.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-dumper.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-dumper.Po
new file mode 100644
index 0000000..51ffd2e
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-dumper.Po
@@ -0,0 +1,72 @@
+run-dumper.o run-dumper.o: run-dumper.c ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-emitter.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-emitter.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-emitter.Po
new file mode 100644
index 0000000..f8828da
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-emitter.Po
@@ -0,0 +1,72 @@
+run-emitter.o run-emitter.o: run-emitter.c ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-loader.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-loader.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-loader.Po
new file mode 100644
index 0000000..ecbf6ef
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-loader.Po
@@ -0,0 +1,72 @@
+run-loader.o run-loader.o: run-loader.c ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-parser.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-parser.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-parser.Po
new file mode 100644
index 0000000..b5b9ba2
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-parser.Po
@@ -0,0 +1,72 @@
+run-parser.o run-parser.o: run-parser.c ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-scanner.Po
----------------------------------------------------------------------
diff --git a/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-scanner.Po b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-scanner.Po
new file mode 100644
index 0000000..b421d8a
--- /dev/null
+++ b/src/bin/gpmapreduce/yaml-0.1.1/tests/.deps/run-scanner.Po
@@ -0,0 +1,72 @@
+run-scanner.o run-scanner.o: run-scanner.c ../include/yaml.h \
+  /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \
+  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+  /usr/include/machine/_types.h /usr/include/i386/_types.h \
+  /usr/include/sys/wait.h /usr/include/sys/signal.h \
+  /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+  /usr/include/i386/signal.h /usr/include/i386/_structs.h \
+  /usr/include/sys/_structs.h /usr/include/machine/_structs.h \
+  /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \
+  /usr/include/machine/endian.h /usr/include/i386/endian.h \
+  /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
+  /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
+  /usr/include/machine/types.h /usr/include/i386/types.h \
+  /usr/include/stdio.h /usr/include/string.h /usr/include/assert.h
+
+../include/yaml.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/available.h:
+
+/usr/include/_types.h:
+
+/usr/include/sys/_types.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/machine/_types.h:
+
+/usr/include/i386/_types.h:
+
+/usr/include/sys/wait.h:
+
+/usr/include/sys/signal.h:
+
+/usr/include/sys/appleapiopts.h:
+
+/usr/include/machine/signal.h:
+
+/usr/include/i386/signal.h:
+
+/usr/include/i386/_structs.h:
+
+/usr/include/sys/_structs.h:
+
+/usr/include/machine/_structs.h:
+
+/usr/include/mach/i386/_structs.h:
+
+/usr/include/sys/resource.h:
+
+/usr/include/machine/endian.h:
+
+/usr/include/i386/endian.h:
+
+/usr/include/sys/_endian.h:
+
+/usr/include/libkern/_OSByteOrder.h:
+
+/usr/include/libkern/i386/_OSByteOrder.h:
+
+/usr/include/alloca.h:
+
+/usr/include/machine/types.h:
+
+/usr/include/i386/types.h:
+
+/usr/include/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/pl/pljava/src/java/.p4ignore
----------------------------------------------------------------------
diff --git a/src/pl/pljava/src/java/.p4ignore b/src/pl/pljava/src/java/.p4ignore
new file mode 100644
index 0000000..0281dd2
--- /dev/null
+++ b/src/pl/pljava/src/java/.p4ignore
@@ -0,0 +1,2 @@
+Makefile.global
+.p4ignore

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/GNUmakefile
----------------------------------------------------------------------
diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile
new file mode 100644
index 0000000..e6bc3bc
--- /dev/null
+++ b/src/test/regress/GNUmakefile
@@ -0,0 +1,232 @@
+#-------------------------------------------------------------------------
+#
+# GNUmakefile--
+#    Makefile for src/test/regress (the regression tests)
+#
+# Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
+# Portions Copyright (c) 1994, Regents of the University of California
+#
+# $PostgreSQL: pgsql/src/test/regress/GNUmakefile,v 1.68 2007/06/12 11:07:32 mha Exp $
+#
+#-------------------------------------------------------------------------
+
+subdir = src/test/regress
+top_builddir = ../../..
+include $(top_builddir)/src/Makefile.global
+
+contribdir = $(top_builddir)/contrib
+
+# where to find psql for testing an existing installation
+PSQLDIR = $(bindir)
+
+# default encoding
+##MULTIBYTE = LATIN1
+
+# maximum simultaneous connections for parallel tests
+MAXCONNOPT =
+ifdef MAX_CONNECTIONS
+MAXCONNOPT += --max-connections=$(MAX_CONNECTIONS)
+endif
+
+# locale
+NOLOCALE =
+ifdef NO_LOCALE
+NOLOCALE += --no-locale
+endif
+
+# stuff to pass into build of pg_regress
+EXTRADEFS = '-DHOST_TUPLE="$(host_tuple)"' \
+	'-DMAKEPROG="$(MAKE)"' \
+	'-DSHELLPROG="$(SHELL)"' \
+	'-DDLSUFFIX="$(DLSUFFIX)"'
+
+
+# The frontend doesn't need everything that's in LIBS, some are backend only
+LIBS := $(filter-out -llapack -lblas -lf2c -lresolv -lbz2, $(LIBS))
+# This program isn't interactive, so doesn't need these
+LIBS := $(filter-out -lreadline -ledit -ltermcap -lncurses -lcurses -lcurl -lssl -lz, $(LIBS))
+
+##
+## Prepare for tests
+##
+
+# Build regression test driver
+
+all: submake-libpgport pg_regress$(X)
+
+pg_regress$(X): pg_regress.o pg_regress_main.o
+	$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+
+# dependencies ensure that path changes propagate
+pg_regress.o: pg_regress.c $(top_builddir)/src/port/pg_config_paths.h
+	$(CC) $(CFLAGS) $(CPPFLAGS) -I$(top_builddir)/src/port $(EXTRADEFS) -c -o $@ $<
+
+$(top_builddir)/src/port/pg_config_paths.h: $(top_builddir)/src/Makefile.global
+	$(MAKE) -C $(top_builddir)/src/port pg_config_paths.h
+
+install: all installdirs
+	$(INSTALL_PROGRAM) pg_regress$(X) '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_regress$(X)'
+	for file in *.pl ; do $(INSTALL_PROGRAM) $${file} ${bindir}; done
+
+uninstall:
+	rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_regress$(X)'
+
+
+# Build dynamically-loaded object file for CREATE FUNCTION ... LANGUAGE C.
+
+NAME = regress
+OBJS = regress.o caqltest.o caqlinmem.o hcatalog_utils.o json_utils.o
+
+include $(top_srcdir)/src/Makefile.shlib
+
+all: all-lib
+
+# Test input and expected files.  These are created by pg_regress itself, so we
+# don't have a rule to create them.  We do need rules to clean them however.
+ifile_list := $(subst .source,, $(notdir $(wildcard $(top_srcdir)/$(subdir)/input/*.source)))
+input_files  := $(foreach file, $(ifile_list), sql/$(file).sql)
+ofile_list := $(subst .source,, $(notdir $(wildcard $(top_srcdir)/$(subdir)/output/*.source)))
+output_files := $(foreach file, $(ofile_list), expected/$(file).out)
+
+ifneq ($(PORTNAME),win32)
+abs_srcdir := $(shell cd $(srcdir) && pwd)
+abs_builddir := $(shell pwd)
+else
+abs_srcdir := $(shell cd $(srcdir) && pwd -W)
+abs_builddir := $(shell pwd -W)
+endif
+
+# When doing a VPATH build, copy over the remaining .sql and .out
+# files so that the driver script can find them.  We have to use an
+# absolute path for the targets, because otherwise make will try to
+# locate the missing files using VPATH, and will find them in
+# $(srcdir), but the point here is that we want to copy them from
+# $(srcdir) to the build directory.
+
+ifdef VPATH
+remaining_files_src := $(wildcard $(srcdir)/sql/*.sql) $(wildcard $(srcdir)/expected/*.out) $(srcdir)/resultmap
+remaining_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(remaining_files_src))
+
+all: $(remaining_files_build)
+$(remaining_files_build): $(abs_builddir)/%: $(srcdir)/%
+	ln -s $< $@
+endif
+
+
+# And finally some extra C modules...
+
+all: tablespace-setup includecheck
+
+# Tablespace setup
+.PHONY: tablespace-setup
+tablespace-setup:
+	-rm -rf ./testtablespace
+	mkdir ./testtablespace
+
+# Check for include files that are not being shipped
+.PHONY: includecheck
+includecheck:
+	$(srcdir)/checkinc.py
+
+##
+## Run tests
+##
+
+## To load a procedural language use "--load-language=..."
+
+pg_regress_call = ./pg_regress --inputdir=$(srcdir) --multibyte=$(MULTIBYTE) $(MAXCONNOPT) $(NOLOCALE)
+
+installcheck: all upg2-setup ugpart-setup
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=$(srcdir)/serial_schedule --srcdir=$(abs_srcdir)
+
+installcheck-parallel: all upg2-setup ugpart-setup
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=$(srcdir)/parallel_schedule --srcdir=$(abs_srcdir)
+
+installcheck-good: all ./current_good_schedule upg2-setup ugpart-setup
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=./current_good_schedule --srcdir=$(abs_srcdir)
+
+installcheck-pxf: all upg2-setup ugpart-setup
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=./pxf_schedule --srcdir=$(abs_srcdir)
+
+installcheck-goh: all ./goh_schedule upg2-setup ugpart-setup
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=./goh_schedule --srcdir=$(abs_srcdir) --tablespace=hdfs_ts
+
+$(srcdir)/sql/orca_udfs.sql: $(srcdir)/sql/orca_udfs.sql.in
+	sed -e 's,%%GPOPTUTILS_NAMESPACE%%,orcaudftest,g; s,%%EXT%%,$(LDSFX),g' $(srcdir)/sql/orca_udfs.sql.in > $(srcdir)/sql/orca_udfs.sql
+
+.PHONY: ./current_good_schedule
+./current_good_schedule: $(srcdir)/sql/orca_udfs.sql $(srcdir)/known_good_schedule
+ifneq ($(origin TT), undefined)
+	cd $(srcdir) && ./maketestschedule.py "$(TT)" > $(abs_builddir)/current_good_schedule
+else
+	cd $(srcdir) && ./makeschedule ./known_good_schedule $(abs_builddir)/current_good_schedule
+endif
+
+# Copy and transform all of the upgrade related data files
+# For upgrade installcheck-good test, we need to get rid of
+# 1. WITH clause (because create table doesn't like tidycat definition)
+# 2. tablespace pg_global
+# 3. (oid=...)
+upg2-setup:
+	rm -rf data/upg_catupgrade_12.sql
+	perl -pi \
+		-e 's/(, )?(indexid|relid|reltype_oid|toast_oid|toast_index|toast_relid|toast_reltype|shared|CamelCase)=[0-9a-zA-Z]+//gi;' \
+		-e 's/oid=false//g;' \
+		-e 's/with \([^a-zA-Z]*\)//g;' \
+		-e 's/\(oid=[0-9]+\)//;' \
+		-e 's/tablespace pg_global//g;' \
+		-e 's/oids=true, /oids=true/;' \
+		-e 's/\(,/(/;' \
+ 		< $(srcdir)/data/upgrade20/upg2_catupgrade_20.sql.in \
+		> data/upg_catupgrade_20.sql
+	@gpstringsubs.pl data/upg_catupgrade_20.sql
+
+ugpart-setup:
+	@cp -f $(srcdir)/data/upgrade_pg_partitions.sql.in data/upgrade_pg_partitions.sql
+	@gpstringsubs.pl data/upgrade_pg_partitions.sql	
+
+
+# old interfaces follow...
+
+runcheck: check
+runtest: installcheck
+runtest-parallel: installcheck-parallel
+
+bigtest: all
+	$(pg_regress_call) --psqldir=$(PSQLDIR) --schedule=$(srcdir)/serial_schedule --srcdir=$(abs_srcdir) numeric_big 
+
+bkuprestore: all
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=$(srcdir)/bkuprestore_schedule --srcdir=$(abs_srcdir)
+
+installcheck-olaptest: all
+	$(pg_regress_call)  --psqldir=$(PSQLDIR) --schedule=$(srcdir)/olap_schedule --srcdir=$(abs_srcdir)
+
+##
+## Clean up
+##
+
+clean distclean maintainer-clean: clean-lib
+# things built by `all' target
+	rm -f $(NAME)$(DLSUFFIX) $(OBJS)
+	rm -f $(output_files) $(input_files) pg_regress_main.o pg_regress.o pg_regress$(X)
+# things created by dynamic configs
+	rm -f ./current_good_schedule
+	find sql -type l | xargs rm -f
+	find expected -type l | xargs rm -f
+# things created by various check targets
+	rm -rf testtablespace
+	rm -rf results tmp_check log
+	rm -f regression.diffs regression.out regress.out run_check.out
+	rm -f data/pg_class32.data
+	rm -f input/loadcat33.source
+	rm -f input/loadcat34.source
+	rm -f input/loadcat34_sh.source
+	rm -f gmon.out
+	rm -f $(upg2_temp_files)
+	rm -f $(srcdir)/sql/cppudf.sql
+ifeq ($(PORTNAME), cygwin)
+	rm -f regress.def
+endif
+ifdef VPATH
+	rm -f $(remaining_files_build)
+endif

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade12/upg2_catupgrade_121.sql
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade12/upg2_catupgrade_121.sql b/src/test/regress/data/upgrade12/upg2_catupgrade_121.sql
new file mode 100644
index 0000000..14f143e
--- /dev/null
+++ b/src/test/regress/data/upgrade12/upg2_catupgrade_121.sql
@@ -0,0 +1,745 @@
+--
+-- Catalog Upgrade Script (from 1.1 to 1.2)
+--
+
+-- drop and recreate hawq_toolkit schema first
+-- if upgrade is successfull gpmigrator will recreate hawq_toolkit objects
+DROP SCHEMA IF EXISTS hawq_toolkit CASCADE;
+CREATE SCHEMA hawq_toolkit;
+
+ALTER TABLE pg_catalog.pg_appendonly ADD COLUMN pagesize int4;
+SELECT catDML('UPDATE pg_catalog.pg_appendonly set pagesize = 0;');
+
+-- The line below is for gpsql-1812 as per BJ 
+UPDATE pg_database SET dat2tablespace = (SELECT oid FROM pg_tablespace WHERE spcname = 'dfs_default') WHERE datname = 'template0' AND dat2tablespace = 1663;
+
+-- update definitions of built-in functions
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_constraintdef(oid) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_constraintdef' WITH (OID=1387);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_get_constraintdef(oid) IS ''constraint description''');
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_constraintdef(oid, bool) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_constraintdef_ext' WITH (OID=2508);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_get_constraintdef(oid, bool) IS ''constraint description with pretty-print option''');
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_partition_rule_def(oid) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_partition_rule_def' WITH (OID=5027);
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_partition_rule_def(oid, bool) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_partition_rule_def_ext' WITH (OID=5028);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_get_partition_rule_def(oid, bool) IS ''partition configuration for a given rule''');
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_partition_def(oid) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_partition_def' WITH (OID=5024);
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_partition_def(oid, bool) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_partition_def_ext' WITH (OID=5025);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_get_partition_def(oid, bool) IS ''partition configuration for a given relation''');
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_get_partition_def(oid, bool, bool) RETURNS text LANGUAGE internal STABLE STRICT READS SQL DATA AS 'pg_get_partition_def_ext2' WITH (OID=5034);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_get_partition_def(oid, bool, bool) IS ''partition configuration for a given relation''');
+
+CREATE OR REPLACE FUNCTION pg_catalog.pg_stat_get_activity(pid integer, OUT datid oid, OUT procpid integer, OUT usesysid oid, OUT application_name text, OUT current_query text, OUT waiting boolean, OUT xact_start timestamp with time zone, OUT query_start timestamp with time zone, OUT backend_start timestamp with time zone, OUT client_addr inet, OUT client_port integer, OUT sess_id integer) RETURNS SETOF pg_catalog.record LANGUAGE internal VOLATILE AS 'pg_stat_get_activity' WITH (OID=6071);
+SELECT catDML('COMMENT ON FUNCTION pg_catalog.pg_stat_get_activity(pid integer, OUT datid oid, OUT procpid integer, OUT usesysid oid, OUT application_name text, OUT current_query text, OUT waiting boolean, OUT xact_start timestamp with time zone, OUT query_start timestamp with time zone, OUT backend_start timestamp with time zone, OUT client_addr inet, OUT client_port integer, OUT sess_id integer) IS ''statistics: information about currently active backends''');
+
+-- madlib
+SET search_path = madlib, pg_catalog;
+
+DROP AGGREGATE __lda_count_topic_agg(integer[], integer[], integer[], integer, integer);
+
+DROP AGGREGATE array_agg(anyelement);
+
+DROP AGGREGATE avg(double precision[]);
+
+DROP AGGREGATE chi2_gof_test(bigint, double precision, bigint);
+
+DROP AGGREGATE chi2_gof_test(bigint, double precision);
+
+DROP AGGREGATE chi2_gof_test(bigint);
+
+DROP AGGREGATE cox_prop_hazards_step(double precision[], double precision, double precision, double precision[], double precision[], double precision[]);
+
+DROP AGGREGATE f_test(boolean, double precision);
+
+DROP AGGREGATE ks_test(boolean, double precision, bigint, bigint);
+
+DROP AGGREGATE linregr(double precision, double precision[]);
+
+DROP AGGREGATE logregr_cg_step(boolean, double precision[], double precision[]);
+
+DROP AGGREGATE logregr_igd_step(boolean, double precision[], double precision[]);
+
+DROP AGGREGATE logregr_irls_step(boolean, double precision[], double precision[]);
+
+DROP AGGREGATE matrix_agg(double precision[]);
+
+DROP AGGREGATE mlogregr_irls_step(integer, integer, double precision[], double precision[]);
+
+DROP AGGREGATE mw_test(boolean, double precision);
+
+DROP AGGREGATE normalized_avg(double precision[]);
+
+DROP AGGREGATE one_way_anova(integer, double precision);
+
+DROP AGGREGATE t_test_one(double precision);
+
+DROP AGGREGATE t_test_two_pooled(boolean, double precision);
+
+DROP AGGREGATE t_test_two_unpooled(boolean, double precision);
+
+DROP AGGREGATE weighted_sample(bigint, double precision);
+
+DROP AGGREGATE weighted_sample(double precision[], double precision);
+
+DROP AGGREGATE wsr_test(double precision, double precision);
+
+DROP AGGREGATE wsr_test(double precision);
+
+DROP AGGREGATE mean(svec);
+DROP AGGREGATE svec_agg(double precision);
+DROP AGGREGATE svec_count_nonzero(svec);
+DROP AGGREGATE svec_median_inmemory(double precision);
+DROP AGGREGATE svec_sum(svec);
+
+DROP FUNCTION __assoc_rules_array_eq(text[], text[]);
+
+DROP FUNCTION __filter_input_relation(character varying, character varying);
+
+DROP FUNCTION __lda_count_topic_prefunc(integer[], integer[]);
+
+DROP FUNCTION __lda_count_topic_sfunc(integer[], integer[], integer[], integer[], integer, integer);
+
+DROP FUNCTION __lda_gibbs_sample(integer[], integer[], integer[], integer[], double precision, double precision, integer, integer, integer);
+
+DROP FUNCTION __lda_random_assign(integer, integer);
+
+DROP FUNCTION __lda_util_conorm_data(text, text, text, text);
+
+DROP FUNCTION __lda_util_index_sort(double precision[]);
+
+DROP FUNCTION __lda_util_norm_dataset(text, text, text);
+
+DROP FUNCTION __lda_util_norm_vocab(text, text);
+
+DROP FUNCTION __lda_util_norm_with_smoothing(double precision[], double precision);
+
+DROP FUNCTION __lda_util_transpose(integer[]);
+
+DROP FUNCTION __lda_util_unnest(integer[]);
+
+DROP FUNCTION array_add(anyarray, anyarray);
+
+DROP FUNCTION array_contains(anyarray, anyarray);
+
+DROP FUNCTION array_div(anyarray, anyarray);
+
+DROP FUNCTION array_dot(anyarray, anyarray);
+
+DROP FUNCTION array_fill(anyarray, anyelement);
+
+DROP FUNCTION array_max(anyarray);
+
+DROP FUNCTION array_mean(anyarray);
+
+DROP FUNCTION array_min(anyarray);
+
+DROP FUNCTION array_mult(anyarray, anyarray);
+
+DROP FUNCTION array_of_bigint(integer);
+
+DROP FUNCTION array_of_float(integer);
+
+DROP FUNCTION array_scalar_mult(anyarray, anyelement);
+
+DROP FUNCTION array_sqrt(anyarray);
+
+DROP FUNCTION array_stddev(anyarray);
+
+DROP FUNCTION array_sub(anyarray, anyarray);
+
+DROP FUNCTION array_sum(anyarray);
+
+DROP FUNCTION array_sum_big(anyarray);
+
+DROP FUNCTION assert(boolean, character varying);
+
+DROP FUNCTION assoc_rules(double precision, double precision, text, text, text, text, boolean);
+
+DROP FUNCTION assoc_rules(double precision, double precision, text, text, text, text);
+
+DROP FUNCTION avg_vector_final(double precision[]);
+
+DROP FUNCTION avg_vector_merge(double precision[], double precision[]);
+
+DROP FUNCTION avg_vector_transition(double precision[], double precision[]);
+
+DROP FUNCTION check_if_raises_error(text);
+
+DROP FUNCTION chi2_gof_test_final(double precision[]);
+
+DROP FUNCTION chi2_gof_test_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION chi2_gof_test_transition(double precision[], bigint, double precision, bigint);
+
+DROP FUNCTION chi2_gof_test_transition(double precision[], bigint, double precision);
+
+DROP FUNCTION chi2_gof_test_transition(double precision[], bigint);
+
+DROP FUNCTION closest_column(double precision[], double precision[], regproc);
+
+DROP FUNCTION closest_column(double precision[], double precision[]);
+
+DROP FUNCTION closest_columns(double precision[], double precision[], integer, regproc);
+
+DROP FUNCTION closest_columns(double precision[], double precision[], integer);
+
+DROP FUNCTION compute_cox_prop_hazards(character varying, character varying, character varying, integer, character varying, double precision);
+
+DROP FUNCTION compute_logregr(character varying, character varying, character varying, integer, character varying, double precision);
+
+DROP FUNCTION compute_mlogregr(character varying, character varying, integer, character varying, integer, character varying, double precision);
+
+DROP FUNCTION cox_prop_hazards(character varying, character varying, character varying, integer, character varying, double precision);
+
+DROP FUNCTION cox_prop_hazards(character varying, character varying, character varying);
+
+DROP FUNCTION cox_prop_hazards(character varying, character varying, character varying, integer);
+
+DROP FUNCTION cox_prop_hazards(character varying, character varying, character varying, integer, character varying);
+
+DROP FUNCTION cox_prop_hazards_step_final(double precision[]);
+
+DROP FUNCTION cox_prop_hazards_step_transition(double precision[], double precision[], double precision, double precision, double precision[], double precision[], double precision[]);
+
+DROP FUNCTION create_schema_pg_temp();
+
+DROP FUNCTION dist_angle(double precision[], double precision[]);
+
+DROP FUNCTION dist_norm1(double precision[], double precision[]);
+
+DROP FUNCTION dist_norm2(double precision[], double precision[]);
+
+DROP FUNCTION dist_tanimoto(double precision[], double precision[]);
+
+DROP FUNCTION f_test_final(double precision[]);
+
+DROP FUNCTION gen_rules_from_cfp(text, integer);
+
+DROP FUNCTION intermediate_cox_prop_hazards(double precision[], double precision[]);
+
+DROP FUNCTION internal_compute_kmeans(character varying, character varying, character varying, character varying, character varying);
+
+DROP FUNCTION internal_compute_kmeans_random_seeding(character varying, character varying, character varying, character varying);
+
+DROP FUNCTION internal_compute_kmeanspp_seeding(character varying, character varying, character varying, character varying);
+
+DROP FUNCTION internal_cox_prop_hazards_result(double precision[]);
+
+DROP FUNCTION internal_cox_prop_hazards_step_distance(double precision[], double precision[]);
+
+DROP FUNCTION internal_execute_using_kmeans_args(character varying, double precision[], regproc, integer, double precision);
+
+DROP FUNCTION internal_execute_using_kmeans_args(character varying, character varying, character varying, character varying, character varying, integer, double precision);
+
+DROP FUNCTION internal_execute_using_kmeans_random_seeding_args(character varying, integer, double precision[]);
+
+DROP FUNCTION internal_execute_using_kmeanspp_seeding_args(character varying, integer, regproc, double precision[]);
+
+DROP FUNCTION internal_execute_using_silhouette_args(character varying, double precision[], regproc);
+
+DROP FUNCTION internal_logregr_cg_result(double precision[]);
+
+DROP FUNCTION internal_logregr_cg_step_distance(double precision[], double precision[]);
+
+DROP FUNCTION internal_logregr_igd_result(double precision[]);
+
+DROP FUNCTION internal_logregr_igd_step_distance(double precision[], double precision[]);
+
+DROP FUNCTION internal_logregr_irls_result(double precision[]);
+
+DROP FUNCTION internal_logregr_irls_step_distance(double precision[], double precision[]);
+
+DROP FUNCTION internal_mlogregr_irls_result(double precision[]);
+
+DROP FUNCTION internal_mlogregr_irls_step_distance(double precision[], double precision[]);
+
+DROP FUNCTION isnan(double precision);
+
+DROP FUNCTION kmeans(character varying, character varying, double precision[], character varying, character varying, integer, double precision);
+
+DROP FUNCTION kmeans(character varying, character varying, double precision[], character varying, character varying, integer);
+
+DROP FUNCTION kmeans(character varying, character varying, double precision[], character varying, character varying);
+
+DROP FUNCTION kmeans(character varying, character varying, double precision[], character varying);
+
+DROP FUNCTION kmeans(character varying, character varying, double precision[]);
+
+DROP FUNCTION kmeans(character varying, character varying, character varying, character varying, character varying, character varying, integer, double precision);
+
+DROP FUNCTION kmeans(character varying, character varying, character varying, character varying, character varying, character varying, integer);
+
+DROP FUNCTION kmeans(character varying, character varying, character varying, character varying, character varying, character varying);
+
+DROP FUNCTION kmeans(character varying, character varying, character varying, character varying, character varying);
+
+DROP FUNCTION kmeans(character varying, character varying, character varying, character varying);
+
+DROP FUNCTION kmeans_random(character varying, character varying, integer, character varying, character varying, integer, double precision);
+
+DROP FUNCTION kmeans_random(character varying, character varying, integer, character varying, character varying, integer);
+
+DROP FUNCTION kmeans_random(character varying, character varying, integer, character varying, character varying);
+
+DROP FUNCTION kmeans_random(character varying, character varying, integer, character varying);
+
+DROP FUNCTION kmeans_random(character varying, character varying, integer);
+
+DROP FUNCTION kmeans_random_seeding(character varying, character varying, integer, double precision[]);
+
+DROP FUNCTION kmeans_random_seeding(character varying, character varying, integer);
+
+DROP FUNCTION kmeanspp(character varying, character varying, integer, character varying, character varying, integer, double precision);
+
+DROP FUNCTION kmeanspp(character varying, character varying, integer, character varying, character varying, integer);
+
+DROP FUNCTION kmeanspp(character varying, character varying, integer, character varying, character varying);
+
+DROP FUNCTION kmeanspp(character varying, character varying, integer, character varying);
+
+DROP FUNCTION kmeanspp(character varying, character varying, integer);
+
+DROP FUNCTION kmeanspp_seeding(character varying, character varying, integer, character varying, double precision[]);
+
+DROP FUNCTION kmeanspp_seeding(character varying, character varying, integer, character varying);
+
+DROP FUNCTION kmeanspp_seeding(character varying, character varying, integer);
+
+DROP FUNCTION ks_test_final(double precision[]);
+
+DROP FUNCTION ks_test_transition(double precision[], boolean, double precision, bigint, bigint);
+
+DROP FUNCTION linregr_final(bytea8);
+
+DROP FUNCTION linregr_merge_states(bytea8, bytea8);
+
+DROP FUNCTION linregr_transition(bytea8, double precision, double precision[]);
+
+DROP FUNCTION logistic(double precision);
+
+DROP FUNCTION logregr(character varying, character varying, character varying, integer, character varying, double precision);
+
+DROP FUNCTION logregr(character varying, character varying, character varying);
+
+DROP FUNCTION logregr(character varying, character varying, character varying, integer);
+
+DROP FUNCTION logregr(character varying, character varying, character varying, integer, character varying);
+
+DROP FUNCTION logregr_cg_step_final(double precision[]);
+
+DROP FUNCTION logregr_cg_step_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION logregr_cg_step_transition(double precision[], boolean, double precision[], double precision[]);
+
+DROP FUNCTION logregr_igd_step_final(double precision[]);
+
+DROP FUNCTION logregr_igd_step_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION logregr_igd_step_transition(double precision[], boolean, double precision[], double precision[]);
+
+DROP FUNCTION logregr_irls_step_final(double precision[]);
+
+DROP FUNCTION logregr_irls_step_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION logregr_irls_step_transition(double precision[], boolean, double precision[], double precision[]);
+
+DROP FUNCTION matrix_agg_final(double precision[]);
+
+DROP FUNCTION matrix_agg_transition(double precision[], double precision[]);
+
+DROP FUNCTION matrix_column(double precision[], integer);
+
+DROP FUNCTION mlogregr(character varying, character varying, integer, character varying, integer, character varying, double precision);
+
+DROP FUNCTION mlogregr(character varying, character varying, integer, character varying);
+
+DROP FUNCTION mlogregr(character varying, character varying, integer, character varying, integer);
+
+DROP FUNCTION mlogregr(character varying, character varying, integer, character varying, integer, character varying);
+
+DROP FUNCTION mlogregr_irls_step_final(double precision[]);
+
+DROP FUNCTION mlogregr_irls_step_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION mlogregr_irls_step_transition(double precision[], integer, integer, double precision[], double precision[]);
+
+DROP FUNCTION mw_test_final(double precision[]);
+
+DROP FUNCTION mw_test_transition(double precision[], boolean, double precision);
+
+DROP FUNCTION lda_get_topic_desc(text, text, text, integer);
+
+DROP FUNCTION lda_get_topic_word_count(text, text);
+
+DROP FUNCTION lda_get_word_topic_count(text, text);
+
+DROP FUNCTION lda_predict(text, text, text);
+
+DROP FUNCTION lda_train(text, text, text, integer, integer, integer, double precision, double precision);
+
+DROP FUNCTION noop();
+
+DROP FUNCTION norm1(double precision[]);
+
+DROP FUNCTION norm2(double precision[]);
+
+DROP FUNCTION normalize(double precision[]);
+
+DROP FUNCTION normalized_avg_vector_final(double precision[]);
+
+DROP FUNCTION normalized_avg_vector_transition(double precision[], double precision[]);
+
+DROP FUNCTION one_way_anova_final(double precision[]);
+
+DROP FUNCTION one_way_anova_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION one_way_anova_transition(double precision[], integer, double precision);
+
+DROP FUNCTION relative_error(double precision, double precision);
+
+DROP FUNCTION relative_error(double precision[], double precision[]);
+
+DROP FUNCTION simple_silhouette(character varying, character varying, double precision[], character varying);
+
+DROP FUNCTION simple_silhouette(character varying, character varying, double precision[]);
+
+DROP FUNCTION squared_dist_norm2(double precision[], double precision[]);
+
+DROP FUNCTION t_test_merge_states(double precision[], double precision[]);
+
+DROP FUNCTION t_test_one_final(double precision[]);
+
+DROP FUNCTION t_test_one_transition(double precision[], double precision);
+
+DROP FUNCTION t_test_two_pooled_final(double precision[]);
+
+DROP FUNCTION t_test_two_transition(double precision[], boolean, double precision);
+
+DROP FUNCTION t_test_two_unpooled_final(double precision[]);
+
+DROP FUNCTION version();
+
+DROP FUNCTION weighted_sample_final_int64(bytea8);
+
+DROP FUNCTION weighted_sample_final_vector(bytea8);
+
+DROP FUNCTION weighted_sample_merge_int64(bytea8, bytea8);
+
+DROP FUNCTION weighted_sample_merge_vector(bytea8, bytea8);
+
+DROP FUNCTION weighted_sample_transition_int64(bytea8, bigint, double precision);
+
+DROP FUNCTION weighted_sample_transition_vector(bytea8, double precision[], double precision);
+
+DROP FUNCTION wsr_test_final(double precision[]);
+
+DROP FUNCTION wsr_test_transition(double precision[], double precision, double precision);
+
+DROP FUNCTION wsr_test_transition(double precision[], double precision);
+
+DROP FUNCTION angle(svec, svec);
+DROP FUNCTION l1norm(svec, svec);
+DROP FUNCTION l2norm(svec, svec);
+DROP FUNCTION normalize(svec);
+DROP FUNCTION svec_append(svec, double precision, bigint);
+DROP FUNCTION svec_change(svec, integer, svec);
+DROP FUNCTION svec_contains(svec, svec);
+DROP FUNCTION svec_count(svec, svec);
+DROP FUNCTION svec_dimension(svec);
+DROP FUNCTION svec_dmax(double precision, double precision);
+DROP FUNCTION svec_dmin(double precision, double precision);
+DROP FUNCTION svec_elsum(svec);
+DROP FUNCTION svec_elsum(double precision[]);
+DROP FUNCTION svec_eq_non_zero(svec, svec);
+DROP FUNCTION svec_from_string(text);
+DROP FUNCTION svec_hash(svec);
+DROP FUNCTION svec_l1norm(svec);
+DROP FUNCTION svec_l1norm(double precision[]);
+DROP FUNCTION svec_l2norm(svec);
+DROP FUNCTION svec_l2norm(double precision[]);
+DROP FUNCTION svec_lapply(text, svec);
+DROP FUNCTION svec_log(svec);
+DROP FUNCTION svec_mean_final(double precision[]);
+DROP FUNCTION svec_mean_prefunc(double precision[], double precision[]);
+DROP FUNCTION svec_mean_transition(double precision[], svec);
+DROP FUNCTION svec_median(double precision[]);
+DROP FUNCTION svec_median(svec);
+DROP FUNCTION svec_nonbase_positions(svec, double precision);
+DROP FUNCTION svec_nonbase_values(svec, double precision);
+DROP FUNCTION svec_pivot(svec, double precision);
+DROP FUNCTION svec_proj(svec, integer);
+DROP FUNCTION svec_reverse(svec);
+DROP FUNCTION svec_sfv(text[], text[]);
+DROP FUNCTION svec_sort(text[]);
+DROP FUNCTION svec_subvec(svec, integer, integer);
+DROP FUNCTION svec_to_string(svec);
+DROP FUNCTION svec_unnest(svec);
+DROP FUNCTION tanimoto_distance(svec, svec);
+
+DROP TYPE assoc_rules_results;
+
+DROP TYPE chi2_test_result;
+
+DROP TYPE closest_column_result;
+
+DROP TYPE closest_columns_result;
+
+DROP TYPE cox_prop_hazards_result;
+
+DROP TYPE f_test_result;
+
+DROP TYPE intermediate_cox_prop_hazards_result;
+
+DROP TYPE kmeans_result;
+
+DROP TYPE kmeans_state;
+
+DROP TYPE ks_test_result;
+
+DROP TYPE linregr_result;
+
+DROP TYPE logregr_result;
+
+DROP TYPE mlogregr_result;
+
+DROP TYPE mw_test_result;
+
+DROP TYPE lda_result;
+
+DROP TYPE one_way_anova_result;
+
+DROP TYPE t_test_result;
+
+DROP TYPE wsr_test_result;
+
+CREATE OR REPLACE FUNCTION svec_in(cstring) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_in'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_out(svec) RETURNS cstring
+    AS '$libdir/gp_svec.so', 'svec_out'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_recv(internal) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_recv'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_send(svec) RETURNS bytea
+    AS '$libdir/gp_svec.so', 'svec_send'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_float4(real) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_float4'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_float8(double precision) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_float8'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_int2(smallint) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_int2'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_int4(integer) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_int4'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_int8(bigint) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_int8'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_cast_numeric(numeric) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'float8arr_cast_numeric'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION float8arr_div_float8arr(double precision[], double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_div_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_div_svec(double precision[], svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_div_svec'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_eq(double precision[], double precision[]) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'float8arr_equals'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_minus_float8arr(double precision[], double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_minus_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_minus_svec(double precision[], svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_minus_svec'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_mult_float8arr(double precision[], double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_mult_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_mult_svec(double precision[], svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_mult_svec'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_plus_float8arr(double precision[], double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_plus_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION float8arr_plus_svec(double precision[], svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'float8arr_plus_svec'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_cast_float4(real) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_float4'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_float8(double precision) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_float8'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_float8arr(double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_float8arr'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_int2(smallint) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_int2'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_int4(integer) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_int4'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_int8(bigint) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_int8'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_numeric(numeric) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_numeric'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_cast_positions_float8arr(bigint[], double precision[], bigint, double precision) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_cast_positions_float8arr'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_concat(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_concat'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_concat_replicate(integer, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_concat_replicate'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_div(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_div'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_div_float8arr(svec, double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_div_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_dot(svec, svec) RETURNS double precision
+    AS '$libdir/gp_svec.so', 'svec_dot'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_dot(double precision[], double precision[]) RETURNS double precision
+    AS '$libdir/gp_svec.so', 'float8arr_dot'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_dot(svec, double precision[]) RETURNS double precision
+    AS '$libdir/gp_svec.so', 'svec_dot_float8arr'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_dot(double precision[], svec) RETURNS double precision
+    AS '$libdir/gp_svec.so', 'float8arr_dot_svec'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_eq(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_eq'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_l2_cmp(svec, svec) RETURNS integer
+    AS '$libdir/gp_svec.so', 'svec_l2_cmp'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_eq(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_eq'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_ge(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_ge'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_gt(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_gt'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_le(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_le'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_lt(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_lt'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_l2_ne(svec, svec) RETURNS boolean
+    AS '$libdir/gp_svec.so', 'svec_l2_ne'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_minus(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_minus'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_minus_float8arr(svec, double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_minus_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_mult(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_mult'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_mult_float8arr(svec, double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_mult_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_plus(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_plus'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_plus_float8arr(svec, double precision[]) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_plus_float8arr'
+    LANGUAGE c IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION svec_pow(svec, svec) RETURNS svec
+    AS '$libdir/gp_svec.so', 'svec_pow'
+    LANGUAGE c IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION svec_return_array(svec) RETURNS double precision[]
+    AS '$libdir/gp_svec.so', 'svec_return_array'
+    LANGUAGE c IMMUTABLE;
+
+CREATE TABLE pg_catalog.pg_remote_credentials
+(
+	rcowner				oid not null,
+	rcservice			text,
+	rcremoteuser		text,
+	rcremotepassword	text
+)
+WITH (relid=7076, reltype_oid=7077, toast_oid=7078, toast_index=7079, toast_reltype=7080, 
+	  camelcase=RemoteCredentials, oid=false, shared=false);
+
+CREATE UNIQUE INDEX pg_remote_credentials_owner_service_index ON pg_catalog.pg_remote_credentials(rcowner, rcservice) WITH (indexid=7081, CamelCase=RemoteCredentialsOwnerService);
+
+CREATE OR REPLACE VIEW pg_catalog.pg_remote_logins AS
+	SELECT
+		A.rolname			AS rolname,
+		C.rcservice			AS rcservice,
+		C.rcremoteuser		AS rcremoteuser,
+        '********'::text	AS rcremotepassword
+	FROM pg_remote_credentials C
+		 LEFT JOIN pg_authid A ON (A.oid = C.rcowner);
+
+REVOKE ALL ON pg_remote_credentials FROM public;


[27/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_attribute32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_attribute32.data b/src/test/regress/data/upgrade33/pg_attribute32.data
new file mode 100755
index 0000000..569201d
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_attribute32.data
@@ -0,0 +1,1951 @@
+attrelid,attname,atttypid,attstattarget,attlen,attnum,attndims,attcacheoff,atttypmod,attbyval,attstorage,attalign,attnotnull,atthasdef,attisdropped,attislocal,attinhcount
+1247,typname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1247,typnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typlen,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+1247,typbyval,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typtype,18,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typisdefined,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typdelim,18,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typrelid,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typelem,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typinput,24,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typoutput,24,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typreceive,24,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typsend,24,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typanalyze,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typalign,18,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typstorage,18,-1,1,17,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typnotnull,16,-1,1,18,0,-1,-1,t,p,c,t,f,f,t,0
+1247,typbasetype,26,-1,4,19,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typtypmod,23,-1,4,20,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typndims,23,-1,4,21,0,-1,-1,t,p,i,t,f,f,t,0
+1247,typdefaultbin,25,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+1247,typdefault,25,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+1247,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1247,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1247,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1247,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1247,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1247,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1247,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1247,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1255,pronamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1255,prolang,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proisagg,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1255,prosecdef,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proisstrict,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proretset,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+1255,provolatile,18,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+1255,pronargs,21,-1,2,10,0,-1,-1,t,p,s,t,f,f,t,0
+1255,prorettype,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1255,proiswin,16,-1,1,12,0,-1,-1,t,p,c,t,f,f,t,0
+1255,proargtypes,30,-1,-1,13,1,-1,-1,f,p,i,t,f,f,t,0
+1255,proallargtypes,1028,-1,-1,14,1,-1,-1,f,x,i,f,f,f,t,0
+1255,proargmodes,1002,-1,-1,15,1,-1,-1,f,x,i,f,f,f,t,0
+1255,proargnames,1009,-1,-1,16,1,-1,-1,f,x,i,f,f,f,t,0
+1255,prosrc,25,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+1255,probin,17,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+1255,proacl,1034,-1,-1,19,1,-1,-1,f,x,i,f,f,f,t,0
+1255,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1255,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1255,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1255,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1255,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1255,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1255,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1255,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+1249,atttypid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attstattarget,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attlen,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+1249,attnum,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+1249,attndims,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attcacheoff,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1249,atttypmod,23,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1249,attbyval,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attstorage,18,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attalign,18,-1,1,12,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attnotnull,16,-1,1,13,0,-1,-1,t,p,c,t,f,f,t,0
+1249,atthasdef,16,-1,1,14,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attisdropped,16,-1,1,15,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attislocal,16,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1249,attinhcount,23,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+1249,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1249,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1249,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1249,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1249,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1249,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1249,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1259,relnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltype,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relowner,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relam,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relfilenode,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltablespace,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relpages,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltuples,700,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltoastrelid,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1259,reltoastidxid,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relaosegrelid,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relaosegidxid,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relhasindex,16,-1,1,14,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relisshared,16,-1,1,15,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relkind,18,-1,1,16,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relstorage,18,-1,1,17,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relnatts,21,-1,2,18,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relchecks,21,-1,2,19,0,-1,-1,t,p,s,t,f,f,t,0
+1259,reltriggers,21,-1,2,20,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relukeys,21,-1,2,21,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relfkeys,21,-1,2,22,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relrefs,21,-1,2,23,0,-1,-1,t,p,s,t,f,f,t,0
+1259,relhasoids,16,-1,1,24,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhaspkey,16,-1,1,25,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhasrules,16,-1,1,26,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relhassubclass,16,-1,1,27,0,-1,-1,t,p,c,t,f,f,t,0
+1259,relfrozenxid,28,-1,4,28,0,-1,-1,t,p,i,t,f,f,t,0
+1259,relacl,1034,-1,-1,29,1,-1,-1,f,x,i,f,f,f,t,0
+1259,reloptions,1009,-1,-1,30,1,-1,-1,f,x,i,f,f,f,t,0
+1259,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1259,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1259,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1259,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1259,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1259,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1259,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1259,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+3250,classes,1009,-1,-1,1,1,-1,-1,f,x,i,f,f,f,t,0
+3250,accum,1022,-1,-1,2,1,-1,-1,f,x,d,f,f,f,t,0
+3250,apriori,1016,-1,-1,3,1,-1,-1,f,x,d,f,f,f,t,0
+1248,vacrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1248,enabled,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1248,vac_base_thresh,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_scale_factor,700,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1248,anl_base_thresh,23,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1248,anl_scale_factor,700,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_cost_delay,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1248,vac_cost_limit,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1248,freeze_min_age,23,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1248,freeze_max_age,23,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+1248,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1248,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1248,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1248,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1248,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1248,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1248,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2604,adrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2604,adnum,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2604,adbin,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2604,adsrc,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+2604,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2604,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2604,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2604,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2604,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2604,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2604,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2604,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2606,conname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2606,connamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2606,contype,18,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+2606,condeferrable,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2606,condeferred,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2606,conrelid,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2606,contypid,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2606,confrelid,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2606,confupdtype,18,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2606,confdeltype,18,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2606,confmatchtype,18,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+2606,conkey,1005,-1,-1,12,1,-1,-1,f,x,i,f,f,f,t,0
+2606,confkey,1005,-1,-1,13,1,-1,-1,f,x,i,f,f,f,t,0
+2606,conbin,25,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+2606,consrc,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+2606,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2606,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2606,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2606,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2606,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2606,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2606,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2606,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhparent,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2611,inhseqno,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2611,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2611,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2611,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2611,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2611,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2611,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2611,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indexrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indrelid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2610,indnatts,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2610,indisunique,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisprimary,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisclustered,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indisvalid,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2610,indkey,22,-1,-1,8,1,-1,-1,f,p,i,t,f,f,t,0
+2610,indclass,30,-1,-1,9,1,-1,-1,f,p,i,t,f,f,t,0
+2610,indexprs,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+2610,indpred,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+2610,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2610,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2610,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2610,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2610,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2610,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2610,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2617,oprnamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprkind,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2617,oprcanhash,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2617,oprleft,26,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprright,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprresult,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprcom,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprnegate,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprlsortop,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprrsortop,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprltcmpop,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprgtcmpop,26,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprcode,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprrest,24,-1,4,16,0,-1,-1,t,p,i,t,f,f,t,0
+2617,oprjoin,24,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+2617,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2617,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2617,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2617,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2617,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2617,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2617,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2617,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcamid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+2616,opcnamespace,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcowner,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcintype,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2616,opcdefault,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2616,opckeytype,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2616,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2616,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2616,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2616,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2616,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2616,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2616,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2616,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2601,amstrategies,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amsupport,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amorderstrategy,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+2601,amcanunique,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amcanmulticol,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amoptionalkey,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amindexnulls,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amstorage,16,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amclusterable,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2601,amcanshrink,16,-1,1,11,0,-1,-1,t,p,c,t,f,f,t,0
+2601,aminsert,24,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambeginscan,24,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amgettuple,24,-1,4,14,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amgetmulti,24,-1,4,15,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amrescan,24,-1,4,16,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amendscan,24,-1,4,17,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ammarkpos,24,-1,4,18,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amrestrpos,24,-1,4,19,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambuild,24,-1,4,20,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ambulkdelete,24,-1,4,21,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amvacuumcleanup,24,-1,4,22,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amcostestimate,24,-1,4,23,0,-1,-1,t,p,i,t,f,f,t,0
+2601,amoptions,24,-1,4,24,0,-1,-1,t,p,i,t,f,f,t,0
+2601,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2601,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2601,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2601,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2601,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2601,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2601,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2601,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopsubtype,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2602,amopstrategy,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2602,amopreqcheck,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2602,amopopr,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2602,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2602,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2602,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2602,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2602,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2602,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2602,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amprocsubtype,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2603,amprocnum,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2603,amproc,24,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2603,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2603,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2603,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2603,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2603,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2603,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2603,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2612,lanispl,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+2612,lanpltrusted,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+2612,lanplcallfoid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanvalidator,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2612,lanacl,1034,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+2612,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2612,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2612,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2612,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2612,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2612,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2612,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2612,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2613,loid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2613,pageno,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2613,data,17,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2613,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2613,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2613,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2613,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2613,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2613,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2613,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggfnoid,24,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggtransfn,24,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginvtransfn,24,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggprelimfn,24,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginvprelimfn,24,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggfinalfn,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggsortop,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+2600,aggtranstype,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2600,agginitval,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+2600,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2600,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2600,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2600,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2600,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2600,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2600,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2619,starelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staattnum,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stanullfrac,700,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stawidth,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stadistinct,700,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stakind1,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind2,21,-1,2,7,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind3,21,-1,2,8,0,-1,-1,t,p,s,t,f,f,t,0
+2619,stakind4,21,-1,2,9,0,-1,-1,t,p,s,t,f,f,t,0
+2619,staop1,26,-1,4,10,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop2,26,-1,4,11,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop3,26,-1,4,12,0,-1,-1,t,p,i,t,f,f,t,0
+2619,staop4,26,-1,4,13,0,-1,-1,t,p,i,t,f,f,t,0
+2619,stanumbers1,1021,-1,-1,14,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers2,1021,-1,-1,15,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers3,1021,-1,-1,16,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stanumbers4,1021,-1,-1,17,1,-1,-1,f,x,i,f,f,f,t,0
+2619,stavalues1,2277,-1,-1,18,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues2,2277,-1,-1,19,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues3,2277,-1,-1,20,0,-1,-1,f,x,d,f,f,f,t,0
+2619,stavalues4,2277,-1,-1,21,0,-1,-1,f,x,d,f,f,f,t,0
+2619,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2619,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2619,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2619,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2619,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2619,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2619,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2618,rulename,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2618,ev_class,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2618,ev_attr,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+2618,ev_type,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2618,is_instead,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2618,ev_qual,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+2618,ev_action,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+2618,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2618,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2618,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2618,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2618,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2618,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2618,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2618,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgname,19,-1,64,2,0,-1,-1,f,p,i,t,f,f,t,0
+2620,tgfoid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgtype,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+2620,tgenabled,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgisconstraint,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgconstrname,19,-1,64,7,0,-1,-1,f,p,i,t,f,f,t,0
+2620,tgconstrrelid,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tgdeferrable,16,-1,1,9,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tginitdeferred,16,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+2620,tgnargs,21,-1,2,11,0,-1,-1,t,p,s,t,f,f,t,0
+2620,tgattr,22,-1,-1,12,1,-1,-1,f,p,i,t,f,f,t,0
+2620,tgargs,17,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+2620,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2620,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2620,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2620,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2620,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2620,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2620,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2620,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2614,relname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2614,listenerpid,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2614,notification,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2614,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2614,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2614,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2614,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2614,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2614,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2614,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2609,objoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2609,classoid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2609,objsubid,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2609,description,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+2609,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2609,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2609,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2609,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2609,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2609,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2609,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castsource,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2605,casttarget,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castfunc,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2605,castcontext,18,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+2605,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2605,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2605,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2605,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2605,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2605,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2605,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2605,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2615,nspname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2615,nspowner,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2615,nspacl,1034,-1,-1,3,1,-1,-1,f,x,i,f,f,f,t,0
+2615,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2615,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2615,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2615,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2615,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2615,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2615,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2615,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+2607,connamespace,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conowner,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conforencoding,23,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2607,contoencoding,23,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2607,conproc,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2607,condefault,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2607,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2607,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+2607,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2607,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2607,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2607,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2607,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2607,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2608,classid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2608,objid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2608,objsubid,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refclassid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refobjid,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+2608,refobjsubid,23,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+2608,deptype,18,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+2608,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2608,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2608,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2608,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2608,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2608,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2608,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1262,datdba,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1262,encoding,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datistemplate,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1262,datallowconn,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1262,datconnlimit,23,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datlastsysoid,26,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datfrozenxid,28,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1262,dattablespace,26,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+1262,datconfig,1009,-1,-1,10,1,-1,-1,f,x,i,f,f,f,t,0
+1262,datacl,1034,-1,-1,11,1,-1,-1,f,x,i,f,f,f,t,0
+1262,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1262,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1262,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1262,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1262,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1262,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1262,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1262,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1213,spcname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1213,spcowner,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1213,spclocation,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+1213,spcacl,1034,-1,-1,4,1,-1,-1,f,x,i,f,f,f,t,0
+1213,spcprilocations,1009,-1,-1,5,1,-1,-1,f,x,i,f,f,f,t,0
+1213,spcmirlocations,1009,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+1213,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1213,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1213,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1213,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1213,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1213,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1213,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1213,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1136,tmplname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1136,tmpltrusted,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1136,tmplhandler,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmplvalidator,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmpllibrary,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+1136,tmplacl,1034,-1,-1,6,1,-1,-1,f,x,i,f,f,f,t,0
+1136,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1136,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1136,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1136,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1136,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1136,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1136,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1260,rolname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+1260,rolsuper,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolinherit,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcreaterole,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcreatedb,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcatupdate,16,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolcanlogin,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+1260,rolconnlimit,23,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+1260,rolpassword,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+1260,rolvaliduntil,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+1260,rolconfig,1009,-1,-1,11,1,-1,-1,f,x,i,f,f,f,t,0
+1260,rolresqueue,26,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+1260,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1260,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+1260,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1260,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1260,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1260,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1260,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1260,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1261,roleid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1261,member,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1261,grantor,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1261,admin_option,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+1261,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1261,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1261,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1261,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1261,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1261,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1261,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+1214,dbid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+1214,classid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+1214,objid,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+1214,refclassid,26,-1,4,4,0,-1,-1,t,p,i,t,f,f,t,0
+1214,refobjid,26,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+1214,deptype,18,-1,1,6,0,-1,-1,t,p,c,t,f,f,t,0
+1214,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+1214,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+1214,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+1214,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+1214,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+1214,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+1214,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2396,objoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+2396,classoid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+2396,description,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+2396,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2396,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2396,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2396,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2396,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2396,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2396,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+6026,rsqcountlimit,700,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqcostlimit,700,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+6026,rsqovercommit,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+6026,rsqignorecostlimit,700,-1,4,5,0,-1,-1,t,p,i,t,f,f,t,0
+6026,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6026,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+6026,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6026,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6026,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6026,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6026,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6026,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5000,content,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5000,definedprimary,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5000,dbid,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5000,isprimary,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5000,valid,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5000,hostname,19,-1,64,6,0,-1,-1,f,p,i,t,f,f,t,0
+5000,port,23,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+5000,datadir,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+5000,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5000,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5000,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5000,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5000,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5000,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5000,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5001,gpname,19,-1,64,1,0,-1,-1,f,p,i,t,f,f,t,0
+5001,numsegments,21,-1,2,2,0,-1,-1,t,p,s,t,f,f,t,0
+5001,dbid,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5001,content,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+5001,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5001,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5001,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5001,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5001,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5001,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5001,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5002,localoid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5002,attrnums,1005,-1,-1,2,1,-1,-1,f,x,i,f,f,f,t,0
+5002,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5002,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5002,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5002,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5002,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5002,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5002,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5003,schemaversion,21,-1,2,1,0,-1,-1,t,p,s,t,f,f,t,0
+5003,productversion,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+5003,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5003,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5003,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5003,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5003,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5003,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5003,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winfnoid,24,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winrequireorder,16,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winallowframe,16,-1,1,3,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winpeercount,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5004,wincount,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5004,winfunc,24,-1,4,6,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winprefunc,24,-1,4,7,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winpretype,26,-1,4,8,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winfinfunc,24,-1,4,9,0,-1,-1,t,p,i,t,f,f,t,0
+5004,winkind,18,-1,1,10,0,-1,-1,t,p,c,t,f,f,t,0
+5004,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5004,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5004,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5004,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5004,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5004,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5004,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6040,reloid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+6040,location,1009,-1,-1,2,1,-1,-1,f,x,i,f,f,f,t,0
+6040,fmttype,18,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+6040,fmtopts,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+6040,command,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+6040,rejectlimit,23,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+6040,rejectlimittype,18,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+6040,fmterrtbl,26,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+6040,encoding,23,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+6040,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6040,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6040,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6040,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6040,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6040,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6040,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+6105,relid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+6105,blocksize,23,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+6105,safefswritesize,23,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+6105,compresslevel,21,-1,2,4,0,-1,-1,t,p,s,t,f,f,t,0
+6105,majorversion,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+6105,minorversion,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+6105,checksum,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+6105,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+6105,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+6105,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+6105,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+6105,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+6105,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+6105,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5008,summary_state,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+5008,detail_state,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+5008,log_time,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+5008,error_message,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+5008,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5008,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5008,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5008,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5008,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5008,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5008,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5010,parrelid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5010,parkind,18,-1,1,2,0,-1,-1,t,p,c,t,f,f,t,0
+5010,parlevel,21,-1,2,3,0,-1,-1,t,p,s,t,f,f,t,0
+5010,paristemplate,16,-1,1,4,0,-1,-1,t,p,c,t,f,f,t,0
+5010,parnatts,21,-1,2,5,0,-1,-1,t,p,s,t,f,f,t,0
+5010,paratts,22,-1,-1,6,1,-1,-1,f,p,i,t,f,f,t,0
+5010,parclass,30,-1,-1,7,1,-1,-1,f,p,i,t,f,f,t,0
+5010,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5010,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+5010,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5010,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5010,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5010,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5010,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5010,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+5011,paroid,26,-1,4,1,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parchildrelid,26,-1,4,2,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parparentrule,26,-1,4,3,0,-1,-1,t,p,i,t,f,f,t,0
+5011,parname,19,-1,64,4,0,-1,-1,f,p,i,t,f,f,t,0
+5011,parisdefault,16,-1,1,5,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parruleord,21,-1,2,6,0,-1,-1,t,p,s,t,f,f,t,0
+5011,parrangestartincl,16,-1,1,7,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parrangeendincl,16,-1,1,8,0,-1,-1,t,p,c,t,f,f,t,0
+5011,parrangestart,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parrangeend,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parrangeevery,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parlistvalues,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+5011,parreloptions,1009,-1,-1,13,1,-1,-1,f,x,i,f,f,f,t,0
+5011,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+5011,oid,26,0,4,-2,0,-1,-1,t,p,i,t,f,f,t,0
+5011,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+5011,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+5011,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+5011,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+5011,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+5011,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2830,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2830,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2830,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2830,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2830,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2830,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2830,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2830,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2830,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2830,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2831,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2831,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2832,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2832,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2832,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2832,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2832,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2832,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2832,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2832,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2833,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2833,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2834,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2834,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2834,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2834,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2834,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2834,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2834,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2834,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2835,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2835,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2836,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2836,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2836,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2836,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2836,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2836,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2836,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2836,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2837,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2837,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2838,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2838,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2838,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2838,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2838,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2838,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2838,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2838,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2839,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2839,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2840,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2840,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2840,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2840,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2840,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2840,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2840,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2840,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2841,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2841,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2842,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2842,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2842,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2842,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2842,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2842,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2842,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2842,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2843,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2843,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2844,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2844,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2844,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2844,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2844,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2844,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2844,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2844,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2845,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2845,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2846,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+2846,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+2846,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+2846,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+2846,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+2846,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+2846,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+2846,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+2847,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2847,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2650,aggfnoid,24,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2651,amname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2652,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopsubtype,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2653,amopstrategy,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+2654,amopopr,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2654,amopclaid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amopclaid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amprocsubtype,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2655,amprocnum,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+2656,adrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2656,adnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2657,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2658,attrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2658,attname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2659,attrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2659,attnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2676,rolname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2677,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2694,roleid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2694,member,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2695,member,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2695,roleid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6027,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+6028,rsqname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+6041,reloid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1250,vacrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2660,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2661,castsource,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2661,casttarget,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2662,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2663,relname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2663,relnamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6029,rolresqueue,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2664,conname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2664,connamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2665,conrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2666,contypid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2667,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2668,connamespace,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2668,conforencoding,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2668,contoencoding,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2668,oid,26,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+2669,conname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2669,connamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2670,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2671,datname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2672,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2673,classid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2673,objid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2673,objsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refclassid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refobjid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2674,refobjsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2675,objoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2675,classoid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2675,objsubid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2397,objoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2397,classoid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2678,indrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2679,indexrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2680,inhrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2680,inhseqno,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2681,lanname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2682,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2683,loid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2683,pageno,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2684,nspname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2685,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2686,opcamid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2686,opcname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2686,opcnamespace,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2687,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2688,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2689,oprleft,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprright,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2689,oprnamespace,26,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+1137,tmplname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2690,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2691,proname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2691,proargtypes,30,-1,-1,2,1,-1,-1,f,p,i,f,f,f,t,0
+2691,pronamespace,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+2692,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2693,ev_class,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2693,rulename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+1232,dbid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1232,classid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+1232,objid,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+1233,refclassid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+1233,refobjid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+2696,starelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2696,staattnum,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+2697,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2698,spcname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2699,tgconstrname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2700,tgconstrrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2701,tgrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2701,tgname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+2702,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2703,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+2704,typname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+2704,typnamespace,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+6101,content,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+6101,definedprimary,16,-1,1,2,0,-1,-1,t,p,c,f,f,f,t,0
+6102,dbid,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+6103,localoid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5005,winfnoid,24,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5007,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5012,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5017,parrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5017,parlevel,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+5017,paristemplate,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+5013,parrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5014,oid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parchildrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parparentrule,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+5015,parruleord,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+5016,parchildrelid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5026,paroid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+5026,parparentrule,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+5026,parruleord,21,-1,2,3,0,-1,-1,t,p,s,f,f,f,t,0
+10309,rolname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10309,rolsuper,16,-1,1,2,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolinherit,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcreaterole,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcreatedb,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcatupdate,16,-1,1,6,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolcanlogin,16,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+10309,rolconnlimit,23,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10309,rolpassword,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10309,rolvaliduntil,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10309,rolconfig,1009,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10309,rolresqueue,26,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10309,oid,26,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10312,usename,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10312,usesysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10312,usecreatedb,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10312,usesuper,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10312,usecatupd,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10312,passwd,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10312,valuntil,702,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10312,useconfig,1009,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10315,groname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10315,grosysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10315,grolist,1028,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10318,usename,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10318,usesysid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10318,usecreatedb,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10318,usesuper,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10318,usecatupd,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10318,passwd,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10318,valuntil,702,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10318,useconfig,1009,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10321,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10321,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10321,rulename,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10321,definition,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10324,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10324,viewname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10324,viewowner,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10324,definition,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10327,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tableowner,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10327,tablespace,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10327,hasindexes,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10327,hasrules,16,-1,1,6,0,-1,-1,t,p,c,f,f,f,t,0
+10327,hastriggers,16,-1,1,7,0,-1,-1,t,p,c,f,f,f,t,0
+10330,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10330,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10330,indexname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10330,tablespace,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10330,indexdef,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10333,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10333,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10333,attname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10333,null_frac,700,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10333,avg_width,23,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10333,n_distinct,700,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10333,most_common_vals,2277,-1,-1,7,0,-1,-1,f,x,d,f,f,f,t,0
+10333,most_common_freqs,1021,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10333,histogram_bounds,2277,-1,-1,9,0,-1,-1,f,x,d,f,f,f,t,0
+10333,correlation,700,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10336,locktype,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10336,database,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10336,relation,26,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10336,page,23,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10336,tuple,21,-1,2,5,0,-1,-1,t,p,s,f,f,f,t,0
+10336,transactionid,28,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10336,classid,26,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10336,objid,26,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10336,objsubid,21,-1,2,9,0,-1,-1,t,p,s,f,f,f,t,0
+10336,transaction,28,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10336,pid,23,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10336,mode,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10336,granted,16,-1,1,13,0,-1,-1,t,p,c,f,f,f,t,0
+10336,mppsessionid,23,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10336,mppiswriter,16,-1,1,15,0,-1,-1,t,p,c,f,f,f,t,0
+10339,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10339,statement,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10339,is_holdable,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10339,is_binary,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10339,is_scrollable,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10339,creation_time,1184,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10342,transaction,28,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10342,gid,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10342,prepared,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10342,owner,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10342,database,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10345,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10345,statement,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10345,prepare_time,1184,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10345,parameter_types,2211,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10345,from_sql,16,-1,1,5,0,-1,-1,t,p,c,f,f,f,t,0
+10348,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10348,setting,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10348,unit,25,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10348,category,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10348,short_desc,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10348,extra_desc,25,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10348,context,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10348,vartype,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10348,source,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10348,min_val,25,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10348,max_val,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10353,abbrev,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10353,utc_offset,1186,-1,16,2,0,-1,-1,f,p,d,f,f,f,t,0
+10353,is_dst,16,-1,1,3,0,-1,-1,t,p,c,f,f,f,t,0
+10356,name,25,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10356,abbrev,25,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10356,utc_offset,1186,-1,16,3,0,-1,-1,f,p,d,f,f,f,t,0
+10356,is_dst,16,-1,1,4,0,-1,-1,t,p,c,f,f,f,t,0
+10359,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10359,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10359,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10359,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10359,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10359,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10359,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10359,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10359,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10362,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10362,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10362,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10362,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10362,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10362,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10362,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10362,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10362,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10365,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10365,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10365,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10365,seq_scan,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10365,seq_tup_read,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10365,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10365,idx_tup_fetch,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_ins,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_upd,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10365,n_tup_del,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_vacuum,1184,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_autovacuum,1184,-1,8,12,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_analyze,1184,-1,8,13,0,-1,-1,t,p,d,f,f,f,t,0
+10365,last_autoanalyze,1184,-1,8,14,0,-1,-1,t,p,d,f,f,f,t,0
+10368,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10368,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10368,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10368,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10368,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10368,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10368,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10368,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10368,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10368,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10368,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10371,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10371,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10371,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10371,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10371,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10371,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10371,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10371,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10371,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10371,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10371,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10374,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10374,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10374,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10374,heap_blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10374,heap_blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10374,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10374,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10374,toast_blks_read,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10374,toast_blks_hit,20,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10374,tidx_blks_read,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10374,tidx_blks_hit,20,-1,8,11,0,-1,-1,t,p,d,f,f,f,t,0
+10377,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10377,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10377,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10377,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10377,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10377,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10377,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10377,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10380,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10380,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10380,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10380,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10380,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10380,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10380,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10380,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10383,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10383,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10383,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10383,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10383,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10383,idx_scan,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10383,idx_tup_read,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10383,idx_tup_fetch,20,-1,8,8,0,-1,-1,t,p,d,f,f,f,t,0
+10386,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10386,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10386,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10386,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10386,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10386,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10386,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10389,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10389,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10389,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10389,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10389,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10389,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10389,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10392,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10392,indexrelid,26,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10392,schemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10392,relname,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10392,indexrelname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10392,idx_blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10392,idx_blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10395,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10395,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10395,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10395,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10395,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10398,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10398,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10398,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10398,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10398,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10401,relid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10401,schemaname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10401,relname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10401,blks_read,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10401,blks_hit,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10404,datid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10404,datname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10404,procpid,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10404,sess_id,23,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10404,usesysid,26,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10404,usename,19,-1,64,6,0,-1,-1,f,p,i,f,f,f,t,0
+10404,current_query,25,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10404,waiting,16,-1,1,8,0,-1,-1,t,p,c,f,f,f,t,0
+10404,query_start,1184,-1,8,9,0,-1,-1,t,p,d,f,f,f,t,0
+10404,backend_start,1184,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10404,client_addr,869,-1,-1,11,0,-1,-1,f,p,i,f,f,f,t,0
+10404,client_port,23,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10407,datid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10407,datname,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10407,numbackends,23,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10407,xact_commit,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10407,xact_rollback,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10407,blks_read,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10407,blks_hit,20,-1,8,7,0,-1,-1,t,p,d,f,f,f,t,0
+10410,queueid,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10410,queuename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10410,n_queries_exec,20,-1,8,3,0,-1,-1,t,p,d,f,f,f,t,0
+10410,n_queries_wait,20,-1,8,4,0,-1,-1,t,p,d,f,f,f,t,0
+10410,elapsed_exec,20,-1,8,5,0,-1,-1,t,p,d,f,f,f,t,0
+10410,elapsed_wait,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10413,rsqname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10413,rsqcountlimit,700,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcountvalue,700,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcostlimit,700,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqcostvalue,700,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqwaiters,23,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10413,rsqholders,23,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10416,hostname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10416,maxfiles,20,-1,8,2,0,-1,-1,t,p,d,f,f,f,t,0
+10419,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10419,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitionschemaname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitiontablename,19,-1,64,4,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitionname,19,-1,64,5,0,-1,-1,f,p,i,f,f,f,t,0
+10419,parentpartitiontablename,19,-1,64,6,0,-1,-1,f,p,i,f,f,f,t,0
+10419,parentpartitioname,19,-1,64,7,0,-1,-1,f,p,i,f,f,f,t,0
+10419,partitiontype,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionlevel,21,-1,2,9,0,-1,-1,t,p,s,f,f,f,t,0
+10419,partitionrank,20,-1,8,10,0,-1,-1,t,p,d,f,f,f,t,0
+10419,partitionposition,21,-1,2,11,0,-1,-1,t,p,s,f,f,f,t,0
+10419,partitionlistvalues,25,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionrangestart,25,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionstartinclusive,16,-1,1,14,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitionrangeend,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionendinclusive,16,-1,1,16,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitioneveryclause,25,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10419,partitionisdefault,16,-1,1,18,0,-1,-1,t,p,c,f,f,f,t,0
+10419,partitionboundary,25,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10422,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10422,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10422,columnname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10422,partitionlevel,21,-1,2,4,0,-1,-1,t,p,s,f,f,f,t,0
+10422,position_in_partition_key,23,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10425,schemaname,19,-1,64,1,0,-1,-1,f,p,i,f,f,f,t,0
+10425,tablename,19,-1,64,2,0,-1,-1,f,p,i,f,f,f,t,0
+10425,partitionname,19,-1,64,3,0,-1,-1,f,p,i,f,f,f,t,0
+10425,partitiontype,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionlevel,21,-1,2,5,0,-1,-1,t,p,s,f,f,f,t,0
+10425,partitionrank,20,-1,8,6,0,-1,-1,t,p,d,f,f,f,t,0
+10425,partitionposition,21,-1,2,7,0,-1,-1,t,p,s,f,f,f,t,0
+10425,partitionlistvalues,25,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionrangestart,25,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionstartinclusive,16,-1,1,10,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitionrangeend,25,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionendinclusive,16,-1,1,12,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitioneveryclause,25,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10425,partitionisdefault,16,-1,1,14,0,-1,-1,t,p,c,f,f,f,t,0
+10425,partitionboundary,25,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10817,xmin_distributed_snapshot,28,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10820,segment_id,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+10820,dbid,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+10820,transaction,28,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10820,status,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10823,segment_id,21,-1,2,1,0,-1,-1,t,p,s,f,f,f,t,0
+10823,dbid,21,-1,2,2,0,-1,-1,t,p,s,f,f,f,t,0
+10823,distributed_xid,28,-1,4,3,0,-1,-1,t,p,i,f,f,f,t,0
+10823,distributed_id,25,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10823,status,25,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10823,local_transaction,28,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10753,sql_language_integrity,10659,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10753,sql_language_implementation,10659,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10753,sql_language_binding_style,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10753,sql_language_programming_language,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10753,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+10753,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+10753,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+10753,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+10753,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+10753,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+10753,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+10755,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10755,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10755,chunk_data,17,-1,-1,3,0,-1,-1,f,p,i,f,f,f,t,0
+10755,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+10755,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+10755,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+10755,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+10755,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+10755,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+10755,gp_segment_id,23,0,4,-8,0,-1,-1,t,p,i,t,f,f,t,0
+10757,chunk_id,26,-1,4,1,0,-1,-1,t,p,i,f,f,f,t,0
+10757,chunk_seq,23,-1,4,2,0,-1,-1,t,p,i,f,f,f,t,0
+10758,feature_id,10659,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10758,feature_name,10659,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10758,is_supported,10659,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10758,is_verified_by,10659,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10758,comments,10659,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10758,ctid,27,0,6,-1,0,-1,-1,f,p,s,t,f,f,t,0
+10758,xmin,28,0,4,-3,0,-1,-1,t,p,i,t,f,f,t,0
+10758,cmin,29,0,4,-4,0,-1,-1,t,p,i,t,f,f,t,0
+10758,xmax,28,0,4,-5,0,-1,-1,t,p,i,t,f,f,t,0
+10758,cmax,29,0,4,-6,0,-1,-1,t,p,i,t,f,f,t,0
+10758,tableoid,26,0,4,-7,0,-1,-1,t,p,i,t,f,f,t,0
+10661,catalog_name,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10665,grantee,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10665,role_name,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10665,is_grantable,10659,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10668,grantee,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10668,role_name,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10668,is_grantable,10659,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10671,udt_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10671,udt_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10671,udt_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10671,attribute_name,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10671,ordinal_position,10657,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10671,attribute_default,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10671,is_nullable,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10671,data_type,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10671,character_maximum_length,10657,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10671,character_octet_length,10657,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10671,character_set_catalog,10660,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10671,character_set_schema,10660,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10671,character_set_name,10660,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10671,collation_catalog,10660,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10671,collation_schema,10660,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10671,collation_name,10660,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10671,numeric_precision,10657,-1,4,17,0,-1,-1,t,p,i,f,f,f,t,0
+10671,numeric_precision_radix,10657,-1,4,18,0,-1,-1,t,p,i,f,f,f,t,0
+10671,numeric_scale,10657,-1,4,19,0,-1,-1,t,p,i,f,f,f,t,0
+10671,datetime_precision,10657,-1,4,20,0,-1,-1,t,p,i,f,f,f,t,0
+10671,interval_type,10659,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10671,interval_precision,10659,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10671,attribute_udt_catalog,10660,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10671,attribute_udt_schema,10660,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10671,attribute_udt_name,10660,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10671,scope_catalog,10660,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10671,scope_schema,10660,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10671,scope_name,10660,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10671,maximum_cardinality,10657,-1,4,29,0,-1,-1,t,p,i,f,f,f,t,0
+10671,dtd_identifier,10660,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10671,is_derived_reference_attribute,10659,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10674,constraint_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10674,constraint_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10674,constraint_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10674,specific_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10674,specific_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10674,specific_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10677,constraint_catalog,1043,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10677,constraint_schema,1043,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10677,constraint_name,1043,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10677,check_clause,1043,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10680,domain_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10680,domain_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10680,domain_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10680,table_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10680,table_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10680,table_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10680,column_name,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10683,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10683,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10683,table_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10683,table_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10683,table_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10683,column_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10683,privilege_type,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10683,is_grantable,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10686,udt_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10686,udt_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10686,udt_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10686,table_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10686,table_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10686,table_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10686,column_name,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10689,table_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10689,table_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10689,table_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10689,column_name,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10689,ordinal_position,10657,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10689,column_default,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10689,is_nullable,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10689,data_type,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10689,character_maximum_length,10657,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10689,character_octet_length,10657,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10689,numeric_precision,10657,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10689,numeric_precision_radix,10657,-1,4,12,0,-1,-1,t,p,i,f,f,f,t,0
+10689,numeric_scale,10657,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10689,datetime_precision,10657,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10689,interval_type,10659,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10689,interval_precision,10659,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10689,character_set_catalog,10660,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10689,character_set_schema,10660,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10689,character_set_name,10660,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10689,collation_catalog,10660,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10689,collation_schema,10660,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10689,collation_name,10660,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10689,domain_catalog,10660,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10689,domain_schema,10660,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10689,domain_name,10660,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10689,udt_catalog,10660,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10689,udt_schema,10660,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10689,udt_name,10660,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10689,scope_catalog,10660,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10689,scope_schema,10660,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10689,scope_name,10660,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10689,maximum_cardinality,10657,-1,4,32,0,-1,-1,t,p,i,f,f,f,t,0
+10689,dtd_identifier,10660,-1,-1,33,0,-1,-1,f,x,i,f,f,f,t,0
+10689,is_self_referencing,10659,-1,-1,34,0,-1,-1,f,x,i,f,f,f,t,0
+10689,is_identity,10659,-1,-1,35,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_generation,10659,-1,-1,36,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_start,10659,-1,-1,37,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_increment,10659,-1,-1,38,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_maximum,10659,-1,-1,39,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_minimum,10659,-1,-1,40,0,-1,-1,f,x,i,f,f,f,t,0
+10689,identity_cycle,10659,-1,-1,41,0,-1,-1,f,x,i,f,f,f,t,0
+10689,is_generated,10659,-1,-1,42,0,-1,-1,f,x,i,f,f,f,t,0
+10689,generation_expression,10659,-1,-1,43,0,-1,-1,f,x,i,f,f,f,t,0
+10689,is_updatable,10659,-1,-1,44,0,-1,-1,f,x,i,f,f,f,t,0
+10692,table_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10692,table_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10692,table_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10692,column_name,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10692,constraint_catalog,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10692,constraint_schema,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10692,constraint_name,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10695,table_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10695,table_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10695,table_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10695,constraint_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10695,constraint_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10695,constraint_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10698,constraint_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10698,constraint_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10698,constraint_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10698,domain_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10698,domain_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10698,domain_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10698,is_deferrable,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10698,initially_deferred,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10701,udt_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10701,udt_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10701,udt_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10701,domain_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10701,domain_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10701,domain_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10704,domain_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10704,domain_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10704,domain_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10704,data_type,10659,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10704,character_maximum_length,10657,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10704,character_octet_length,10657,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10704,character_set_catalog,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10704,character_set_schema,10660,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10704,character_set_name,10660,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10704,collation_catalog,10660,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10704,collation_schema,10660,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10704,collation_name,10660,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10704,numeric_precision,10657,-1,4,13,0,-1,-1,t,p,i,f,f,f,t,0
+10704,numeric_precision_radix,10657,-1,4,14,0,-1,-1,t,p,i,f,f,f,t,0
+10704,numeric_scale,10657,-1,4,15,0,-1,-1,t,p,i,f,f,f,t,0
+10704,datetime_precision,10657,-1,4,16,0,-1,-1,t,p,i,f,f,f,t,0
+10704,interval_type,10659,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10704,interval_precision,10659,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10704,domain_default,10659,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10704,udt_catalog,10660,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10704,udt_schema,10660,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10704,udt_name,10660,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10704,scope_catalog,10660,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10704,scope_schema,10660,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10704,scope_name,10660,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10704,maximum_cardinality,10657,-1,4,26,0,-1,-1,t,p,i,f,f,f,t,0
+10704,dtd_identifier,10660,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10707,role_name,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10710,constraint_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10710,constraint_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10710,constraint_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10710,table_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10710,table_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10710,table_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10710,column_name,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10710,ordinal_position,10657,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10710,position_in_unique_constraint,10657,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10713,specific_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10713,specific_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10713,specific_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10713,ordinal_position,10657,-1,4,4,0,-1,-1,t,p,i,f,f,f,t,0
+10713,parameter_mode,10659,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10713,is_result,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10713,as_locator,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10713,parameter_name,10660,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10713,data_type,10659,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10713,character_maximum_length,10657,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10713,character_octet_length,10657,-1,4,11,0,-1,-1,t,p,i,f,f,f,t,0
+10713,character_set_catalog,10660,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10713,character_set_schema,10660,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10713,character_set_name,10660,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10713,collation_catalog,10660,-1,-1,15,0,-1,-1,f,x,i,f,f,f,t,0
+10713,collation_schema,10660,-1,-1,16,0,-1,-1,f,x,i,f,f,f,t,0
+10713,collation_name,10660,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10713,numeric_precision,10657,-1,4,18,0,-1,-1,t,p,i,f,f,f,t,0
+10713,numeric_precision_radix,10657,-1,4,19,0,-1,-1,t,p,i,f,f,f,t,0
+10713,numeric_scale,10657,-1,4,20,0,-1,-1,t,p,i,f,f,f,t,0
+10713,datetime_precision,10657,-1,4,21,0,-1,-1,t,p,i,f,f,f,t,0
+10713,interval_type,10659,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10713,interval_precision,10659,-1,-1,23,0,-1,-1,f,x,i,f,f,f,t,0
+10713,udt_catalog,10660,-1,-1,24,0,-1,-1,f,x,i,f,f,f,t,0
+10713,udt_schema,10660,-1,-1,25,0,-1,-1,f,x,i,f,f,f,t,0
+10713,udt_name,10660,-1,-1,26,0,-1,-1,f,x,i,f,f,f,t,0
+10713,scope_catalog,10660,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10713,scope_schema,10660,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10713,scope_name,10660,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10713,maximum_cardinality,10657,-1,4,30,0,-1,-1,t,p,i,f,f,f,t,0
+10713,dtd_identifier,10660,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10716,constraint_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10716,constraint_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10716,constraint_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10716,unique_constraint_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10716,unique_constraint_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10716,unique_constraint_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10716,match_option,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10716,update_rule,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10716,delete_rule,10659,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10719,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10719,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10719,table_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10719,table_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10719,table_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10719,column_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10719,privilege_type,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10719,is_grantable,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10722,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10722,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10722,specific_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10722,specific_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10722,specific_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10722,routine_catalog,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10722,routine_schema,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10722,routine_name,10660,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10722,privilege_type,10659,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10722,is_grantable,10659,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10725,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10725,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10725,table_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10725,table_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10725,table_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10725,privilege_type,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10725,is_grantable,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10725,with_hierarchy,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10728,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10728,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10728,object_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10728,object_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10728,object_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10728,object_type,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10728,privilege_type,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10728,is_grantable,10659,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10731,grantor,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10731,grantee,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10731,specific_catalog,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10731,specific_schema,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10731,specific_name,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10731,routine_catalog,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10731,routine_schema,10660,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10731,routine_name,10660,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10731,privilege_type,10659,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10731,is_grantable,10659,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10734,specific_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10734,specific_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10734,specific_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_type,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10734,module_catalog,10660,-1,-1,8,0,-1,-1,f,x,i,f,f,f,t,0
+10734,module_schema,10660,-1,-1,9,0,-1,-1,f,x,i,f,f,f,t,0
+10734,module_name,10660,-1,-1,10,0,-1,-1,f,x,i,f,f,f,t,0
+10734,udt_catalog,10660,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10734,udt_schema,10660,-1,-1,12,0,-1,-1,f,x,i,f,f,f,t,0
+10734,udt_name,10660,-1,-1,13,0,-1,-1,f,x,i,f,f,f,t,0
+10734,data_type,10659,-1,-1,14,0,-1,-1,f,x,i,f,f,f,t,0
+10734,character_maximum_length,10657,-1,4,15,0,-1,-1,t,p,i,f,f,f,t,0
+10734,character_octet_length,10657,-1,4,16,0,-1,-1,t,p,i,f,f,f,t,0
+10734,character_set_catalog,10660,-1,-1,17,0,-1,-1,f,x,i,f,f,f,t,0
+10734,character_set_schema,10660,-1,-1,18,0,-1,-1,f,x,i,f,f,f,t,0
+10734,character_set_name,10660,-1,-1,19,0,-1,-1,f,x,i,f,f,f,t,0
+10734,collation_catalog,10660,-1,-1,20,0,-1,-1,f,x,i,f,f,f,t,0
+10734,collation_schema,10660,-1,-1,21,0,-1,-1,f,x,i,f,f,f,t,0
+10734,collation_name,10660,-1,-1,22,0,-1,-1,f,x,i,f,f,f,t,0
+10734,numeric_precision,10657,-1,4,23,0,-1,-1,t,p,i,f,f,f,t,0
+10734,numeric_precision_radix,10657,-1,4,24,0,-1,-1,t,p,i,f,f,f,t,0
+10734,numeric_scale,10657,-1,4,25,0,-1,-1,t,p,i,f,f,f,t,0
+10734,datetime_precision,10657,-1,4,26,0,-1,-1,t,p,i,f,f,f,t,0
+10734,interval_type,10659,-1,-1,27,0,-1,-1,f,x,i,f,f,f,t,0
+10734,interval_precision,10659,-1,-1,28,0,-1,-1,f,x,i,f,f,f,t,0
+10734,type_udt_catalog,10660,-1,-1,29,0,-1,-1,f,x,i,f,f,f,t,0
+10734,type_udt_schema,10660,-1,-1,30,0,-1,-1,f,x,i,f,f,f,t,0
+10734,type_udt_name,10660,-1,-1,31,0,-1,-1,f,x,i,f,f,f,t,0
+10734,scope_catalog,10660,-1,-1,32,0,-1,-1,f,x,i,f,f,f,t,0
+10734,scope_schema,10660,-1,-1,33,0,-1,-1,f,x,i,f,f,f,t,0
+10734,scope_name,10660,-1,-1,34,0,-1,-1,f,x,i,f,f,f,t,0
+10734,maximum_cardinality,10657,-1,4,35,0,-1,-1,t,p,i,f,f,f,t,0
+10734,dtd_identifier,10660,-1,-1,36,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_body,10659,-1,-1,37,0,-1,-1,f,x,i,f,f,f,t,0
+10734,routine_definition,10659,-1,-1,38,0,-1,-1,f,x,i,f,f,f,t,0
+10734,external_name,10659,-1,-1,39,0,-1,-1,f,x,i,f,f,f,t,0
+10734,external_language,10659,-1,-1,40,0,-1,-1,f,x,i,f,f,f,t,0
+10734,parameter_style,10659,-1,-1,41,0,-1,-1,f,x,i,f,f,f,t,0
+10734,is_deterministic,10659,-1,-1,42,0,-1,-1,f,x,i,f,f,f,t,0
+10734,sql_data_access,10659,-1,-1,43,0,-1,-1,f,x,i,f,f,f,t,0
+10734,is_null_call,10659,-1,-1,44,0,-1,-1,f,x,i,f,f,f,t,0
+10734,sql_path,10659,-1,-1,45,0,-1,-1,f,x,i,f,f,f,t,0
+10734,schema_level_routine,10659,-1,-1,46,0,-1,-1,f,x,i,f,f,f,t,0
+10734,max_dynamic_result_sets,10657,-1,4,47,0,-1,-1,t,p,i,f,f,f,t,0
+10734,is_user_defined_cast,10659,-1,-1,48,0,-1,-1,f,x,i,f,f,f,t,0
+10734,is_implicitly_invocable,10659,-1,-1,49,0,-1,-1,f,x,i,f,f,f,t,0
+10734,security_type,10659,-1,-1,50,0,-1,-1,f,x,i,f,f,f,t,0
+10734,to_sql_specific_catalog,10660,-1,-1,51,0,-1,-1,f,x,i,f,f,f,t,0
+10734,to_sql_specific_schema,10660,-1,-1,52,0,-1,-1,f,x,i,f,f,f,t,0
+10734,to_sql_specific_name,10660,-1,-1,53,0,-1,-1,f,x,i,f,f,f,t,0
+10734,as_locator,10659,-1,-1,54,0,-1,-1,f,x,i,f,f,f,t,0
+10734,created,10664,-1,8,55,0,-1,-1,t,p,d,f,f,f,t,0
+10734,last_altered,10664,-1,8,56,0,-1,-1,t,p,d,f,f,f,t,0
+10734,new_savepoint_level,10659,-1,-1,57,0,-1,-1,f,x,i,f,f,f,t,0
+10734,is_udt_dependent,10659,-1,-1,58,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_from_data_type,10659,-1,-1,59,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_as_locator,10659,-1,-1,60,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_char_max_length,10657,-1,4,61,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_char_octet_length,10657,-1,4,62,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_char_set_catalog,10660,-1,-1,63,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_char_set_schema,10660,-1,-1,64,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_character_set_name,10660,-1,-1,65,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_collation_catalog,10660,-1,-1,66,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_collation_schema,10660,-1,-1,67,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_collation_name,10660,-1,-1,68,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_numeric_precision,10657,-1,4,69,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_numeric_precision_radix,10657,-1,4,70,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_numeric_scale,10657,-1,4,71,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_datetime_precision,10657,-1,4,72,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_interval_type,10659,-1,-1,73,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_interval_precision,10659,-1,-1,74,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_type_udt_catalog,10660,-1,-1,75,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_type_udt_schema,10660,-1,-1,76,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_type_udt_name,10660,-1,-1,77,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_scope_catalog,10660,-1,-1,78,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_scope_schema,10660,-1,-1,79,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_scope_name,10660,-1,-1,80,0,-1,-1,f,x,i,f,f,f,t,0
+10734,result_cast_maximum_cardinality,10657,-1,4,81,0,-1,-1,t,p,i,f,f,f,t,0
+10734,result_cast_dtd_identifier,10660,-1,-1,82,0,-1,-1,f,x,i,f,f,f,t,0
+10737,catalog_name,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10737,schema_name,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10737,schema_owner,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10737,default_character_set_catalog,10660,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10737,default_character_set_schema,10660,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10737,default_character_set_name,10660,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10737,sql_path,10659,-1,-1,7,0,-1,-1,f,x,i,f,f,f,t,0
+10740,sequence_catalog,10660,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10740,sequence_schema,10660,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10740,sequence_name,10660,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10740,data_type,10659,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10740,numeric_precision,10657,-1,4,5,0,-1,-1,t,p,i,f,f,f,t,0
+10740,numeric_precision_radix,10657,-1,4,6,0,-1,-1,t,p,i,f,f,f,t,0
+10740,numeric_scale,10657,-1,4,7,0,-1,-1,t,p,i,f,f,f,t,0
+10740,maximum_value,10657,-1,4,8,0,-1,-1,t,p,i,f,f,f,t,0
+10740,minimum_value,10657,-1,4,9,0,-1,-1,t,p,i,f,f,f,t,0
+10740,increment,10657,-1,4,10,0,-1,-1,t,p,i,f,f,f,t,0
+10740,cycle_option,10659,-1,-1,11,0,-1,-1,f,x,i,f,f,f,t,0
+10743,feature_id,10659,-1,-1,1,0,-1,-1,f,x,i,f,f,f,t,0
+10743,feature_name,10659,-1,-1,2,0,-1,-1,f,x,i,f,f,f,t,0
+10743,sub_feature_id,10659,-1,-1,3,0,-1,-1,f,x,i,f,f,f,t,0
+10743,sub_feature_name,10659,-1,-1,4,0,-1,-1,f,x,i,f,f,f,t,0
+10743,is_supported,10659,-1,-1,5,0,-1,-1,f,x,i,f,f,f,t,0
+10743,is_verified_by,10659,-1,-1,6,0,-1,-1,f,x,i,f,f,f,t,0
+10743,comments,10659,-1,-1,7,0,-1,-1,

<TRUNCATED>


[25/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_depend32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_depend32.data b/src/test/regress/data/upgrade33/pg_depend32.data
new file mode 100644
index 0000000..ecf556d
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_depend32.data
@@ -0,0 +1,5171 @@
+classid,objid,objsubid,refclassid,refobjid,refobjsubid,deptype
+0,0,0,1259,1247,0,p
+0,0,0,1259,1249,0,p
+0,0,0,1259,1255,0,p
+0,0,0,1259,1259,0,p
+0,0,0,1259,3250,0,p
+0,0,0,1259,1248,0,p
+0,0,0,1259,2604,0,p
+0,0,0,1259,2606,0,p
+0,0,0,1259,2611,0,p
+0,0,0,1259,2610,0,p
+0,0,0,1259,2617,0,p
+0,0,0,1259,2616,0,p
+0,0,0,1259,2601,0,p
+0,0,0,1259,2602,0,p
+0,0,0,1259,2603,0,p
+0,0,0,1259,2612,0,p
+0,0,0,1259,2613,0,p
+0,0,0,1259,2600,0,p
+0,0,0,1259,2619,0,p
+0,0,0,1259,2618,0,p
+0,0,0,1259,2620,0,p
+0,0,0,1259,2614,0,p
+0,0,0,1259,2609,0,p
+0,0,0,1259,2605,0,p
+0,0,0,1259,2615,0,p
+0,0,0,1259,2607,0,p
+0,0,0,1259,2608,0,p
+0,0,0,1259,1213,0,p
+0,0,0,1259,1136,0,p
+0,0,0,1259,1214,0,p
+0,0,0,1259,2396,0,p
+0,0,0,1259,6026,0,p
+0,0,0,1259,5000,0,p
+0,0,0,1259,5001,0,p
+0,0,0,1259,5002,0,p
+0,0,0,1259,5003,0,p
+0,0,0,1259,5004,0,p
+0,0,0,1259,6040,0,p
+0,0,0,1259,6105,0,p
+0,0,0,1259,5008,0,p
+0,0,0,1259,5010,0,p
+0,0,0,1259,5011,0,p
+0,0,0,1259,2830,0,p
+0,0,0,1259,2831,0,p
+0,0,0,1259,2832,0,p
+0,0,0,1259,2833,0,p
+0,0,0,1259,2834,0,p
+0,0,0,1259,2835,0,p
+0,0,0,1259,2836,0,p
+0,0,0,1259,2837,0,p
+0,0,0,1259,2838,0,p
+0,0,0,1259,2839,0,p
+0,0,0,1259,2840,0,p
+0,0,0,1259,2841,0,p
+0,0,0,1259,2842,0,p
+0,0,0,1259,2843,0,p
+0,0,0,1259,2844,0,p
+0,0,0,1259,2845,0,p
+0,0,0,1259,2846,0,p
+0,0,0,1259,2847,0,p
+0,0,0,1259,2650,0,p
+0,0,0,1259,2651,0,p
+0,0,0,1259,2652,0,p
+0,0,0,1259,2653,0,p
+0,0,0,1259,2654,0,p
+0,0,0,1259,2655,0,p
+0,0,0,1259,2656,0,p
+0,0,0,1259,2657,0,p
+0,0,0,1259,2658,0,p
+0,0,0,1259,2659,0,p
+0,0,0,1259,2676,0,p
+0,0,0,1259,2677,0,p
+0,0,0,1259,2694,0,p
+0,0,0,1259,2695,0,p
+0,0,0,1259,6027,0,p
+0,0,0,1259,6028,0,p
+0,0,0,1259,6041,0,p
+0,0,0,1259,1250,0,p
+0,0,0,1259,2660,0,p
+0,0,0,1259,2661,0,p
+0,0,0,1259,2662,0,p
+0,0,0,1259,2663,0,p
+0,0,0,1259,6029,0,p
+0,0,0,1259,2664,0,p
+0,0,0,1259,2665,0,p
+0,0,0,1259,2666,0,p
+0,0,0,1259,2667,0,p
+0,0,0,1259,2668,0,p
+0,0,0,1259,2669,0,p
+0,0,0,1259,2670,0,p
+0,0,0,1259,2671,0,p
+0,0,0,1259,2672,0,p
+0,0,0,1259,2673,0,p
+0,0,0,1259,2674,0,p
+0,0,0,1259,2675,0,p
+0,0,0,1259,2397,0,p
+0,0,0,1259,2678,0,p
+0,0,0,1259,2679,0,p
+0,0,0,1259,2680,0,p
+0,0,0,1259,2681,0,p
+0,0,0,1259,2682,0,p
+0,0,0,1259,2683,0,p
+0,0,0,1259,2684,0,p
+0,0,0,1259,2685,0,p
+0,0,0,1259,2686,0,p
+0,0,0,1259,2687,0,p
+0,0,0,1259,2688,0,p
+0,0,0,1259,2689,0,p
+0,0,0,1259,1137,0,p
+0,0,0,1259,2690,0,p
+0,0,0,1259,2691,0,p
+0,0,0,1259,2692,0,p
+0,0,0,1259,2693,0,p
+0,0,0,1259,1232,0,p
+0,0,0,1259,1233,0,p
+0,0,0,1259,2696,0,p
+0,0,0,1259,2697,0,p
+0,0,0,1259,2698,0,p
+0,0,0,1259,2699,0,p
+0,0,0,1259,2700,0,p
+0,0,0,1259,2701,0,p
+0,0,0,1259,2702,0,p
+0,0,0,1259,2703,0,p
+0,0,0,1259,2704,0,p
+0,0,0,1259,6101,0,p
+0,0,0,1259,6102,0,p
+0,0,0,1259,6103,0,p
+0,0,0,1259,5005,0,p
+0,0,0,1259,5007,0,p
+0,0,0,1259,5012,0,p
+0,0,0,1259,5017,0,p
+0,0,0,1259,5013,0,p
+0,0,0,1259,5014,0,p
+0,0,0,1259,5015,0,p
+0,0,0,1259,5016,0,p
+0,0,0,1259,5026,0,p
+0,0,0,1259,1262,0,p
+0,0,0,1259,1261,0,p
+0,0,0,1259,1260,0,p
+0,0,0,1255,1242,0,p
+0,0,0,1255,1243,0,p
+0,0,0,1255,1244,0,p
+0,0,0,1255,31,0,p
+0,0,0,1255,1245,0,p
+0,0,0,1255,33,0,p
+0,0,0,1255,34,0,p
+0,0,0,1255,35,0,p
+0,0,0,1255,38,0,p
+0,0,0,1255,39,0,p
+0,0,0,1255,40,0,p
+0,0,0,1255,41,0,p
+0,0,0,1255,42,0,p
+0,0,0,1255,43,0,p
+0,0,0,1255,44,0,p
+0,0,0,1255,45,0,p
+0,0,0,1255,46,0,p
+0,0,0,1255,47,0,p
+0,0,0,1255,48,0,p
+0,0,0,1255,49,0,p
+0,0,0,1255,50,0,p
+0,0,0,1255,51,0,p
+0,0,0,1255,52,0,p
+0,0,0,1255,53,0,p
+0,0,0,1255,54,0,p
+0,0,0,1255,55,0,p
+0,0,0,1255,56,0,p
+0,0,0,1255,57,0,p
+0,0,0,1255,60,0,p
+0,0,0,1255,61,0,p
+0,0,0,1255,62,0,p
+0,0,0,1255,63,0,p
+0,0,0,1255,64,0,p
+0,0,0,1255,65,0,p
+0,0,0,1255,66,0,p
+0,0,0,1255,67,0,p
+0,0,0,1255,68,0,p
+0,0,0,1255,69,0,p
+0,0,0,1255,70,0,p
+0,0,0,1255,1246,0,p
+0,0,0,1255,72,0,p
+0,0,0,1255,73,0,p
+0,0,0,1255,74,0,p
+0,0,0,1255,77,0,p
+0,0,0,1255,78,0,p
+0,0,0,1255,79,0,p
+0,0,0,1255,1252,0,p
+0,0,0,1255,1254,0,p
+0,0,0,1255,1256,0,p
+0,0,0,1255,1257,0,p
+0,0,0,1255,1258,0,p
+0,0,0,1255,84,0,p
+0,0,0,1255,89,0,p
+0,0,0,1255,101,0,p
+0,0,0,1255,102,0,p
+0,0,0,1255,103,0,p
+0,0,0,1255,104,0,p
+0,0,0,1255,105,0,p
+0,0,0,1255,106,0,p
+0,0,0,1255,107,0,p
+0,0,0,1255,108,0,p
+0,0,0,1255,109,0,p
+0,0,0,1255,110,0,p
+0,0,0,1255,111,0,p
+0,0,0,1255,112,0,p
+0,0,0,1255,113,0,p
+0,0,0,1255,114,0,p
+0,0,0,1255,115,0,p
+0,0,0,1255,116,0,p
+0,0,0,1255,117,0,p
+0,0,0,1255,118,0,p
+0,0,0,1255,119,0,p
+0,0,0,1255,120,0,p
+0,0,0,1255,121,0,p
+0,0,0,1255,122,0,p
+0,0,0,1255,123,0,p
+0,0,0,1255,124,0,p
+0,0,0,1255,125,0,p
+0,0,0,1255,126,0,p
+0,0,0,1255,127,0,p
+0,0,0,1255,128,0,p
+0,0,0,1255,129,0,p
+0,0,0,1255,130,0,p
+0,0,0,1255,131,0,p
+0,0,0,1255,132,0,p
+0,0,0,1255,133,0,p
+0,0,0,1255,134,0,p
+0,0,0,1255,135,0,p
+0,0,0,1255,136,0,p
+0,0,0,1255,137,0,p
+0,0,0,1255,138,0,p
+0,0,0,1255,139,0,p
+0,0,0,1255,140,0,p
+0,0,0,1255,141,0,p
+0,0,0,1255,144,0,p
+0,0,0,1255,145,0,p
+0,0,0,1255,146,0,p
+0,0,0,1255,147,0,p
+0,0,0,1255,148,0,p
+0,0,0,1255,149,0,p
+0,0,0,1255,150,0,p
+0,0,0,1255,151,0,p
+0,0,0,1255,152,0,p
+0,0,0,1255,153,0,p
+0,0,0,1255,154,0,p
+0,0,0,1255,155,0,p
+0,0,0,1255,156,0,p
+0,0,0,1255,157,0,p
+0,0,0,1255,158,0,p
+0,0,0,1255,159,0,p
+0,0,0,1255,160,0,p
+0,0,0,1255,161,0,p
+0,0,0,1255,162,0,p
+0,0,0,1255,163,0,p
+0,0,0,1255,164,0,p
+0,0,0,1255,165,0,p
+0,0,0,1255,166,0,p
+0,0,0,1255,167,0,p
+0,0,0,1255,168,0,p
+0,0,0,1255,169,0,p
+0,0,0,1255,170,0,p
+0,0,0,1255,171,0,p
+0,0,0,1255,172,0,p
+0,0,0,1255,173,0,p
+0,0,0,1255,174,0,p
+0,0,0,1255,175,0,p
+0,0,0,1255,176,0,p
+0,0,0,1255,177,0,p
+0,0,0,1255,178,0,p
+0,0,0,1255,179,0,p
+0,0,0,1255,180,0,p
+0,0,0,1255,181,0,p
+0,0,0,1255,182,0,p
+0,0,0,1255,183,0,p
+0,0,0,1255,184,0,p
+0,0,0,1255,185,0,p
+0,0,0,1255,186,0,p
+0,0,0,1255,187,0,p
+0,0,0,1255,188,0,p
+0,0,0,1255,189,0,p
+0,0,0,1255,190,0,p
+0,0,0,1255,191,0,p
+0,0,0,1255,192,0,p
+0,0,0,1255,200,0,p
+0,0,0,1255,201,0,p
+0,0,0,1255,202,0,p
+0,0,0,1255,203,0,p
+0,0,0,1255,204,0,p
+0,0,0,1255,205,0,p
+0,0,0,1255,206,0,p
+0,0,0,1255,207,0,p
+0,0,0,1255,208,0,p
+0,0,0,1255,6024,0,p
+0,0,0,1255,3106,0,p
+0,0,0,1255,3107,0,p
+0,0,0,1255,209,0,p
+0,0,0,1255,211,0,p
+0,0,0,1255,212,0,p
+0,0,0,1255,213,0,p
+0,0,0,1255,214,0,p
+0,0,0,1255,215,0,p
+0,0,0,1255,216,0,p
+0,0,0,1255,217,0,p
+0,0,0,1255,218,0,p
+0,0,0,1255,219,0,p
+0,0,0,1255,220,0,p
+0,0,0,1255,221,0,p
+0,0,0,1255,222,0,p
+0,0,0,1255,6025,0,p
+0,0,0,1255,3108,0,p
+0,0,0,1255,3109,0,p
+0,0,0,1255,223,0,p
+0,0,0,1255,224,0,p
+0,0,0,1255,225,0,p
+0,0,0,1255,226,0,p
+0,0,0,1255,227,0,p
+0,0,0,1255,228,0,p
+0,0,0,1255,229,0,p
+0,0,0,1255,2308,0,p
+0,0,0,1255,2320,0,p
+0,0,0,1255,2309,0,p
+0,0,0,1255,2310,0,p
+0,0,0,1255,230,0,p
+0,0,0,1255,231,0,p
+0,0,0,1255,232,0,p
+0,0,0,1255,233,0,p
+0,0,0,1255,234,0,p
+0,0,0,1255,235,0,p
+0,0,0,1255,236,0,p
+0,0,0,1255,237,0,p
+0,0,0,1255,238,0,p
+0,0,0,1255,239,0,p
+0,0,0,1255,240,0,p
+0,0,0,1255,241,0,p
+0,0,0,1255,242,0,p
+0,0,0,1255,243,0,p
+0,0,0,1255,244,0,p
+0,0,0,1255,245,0,p
+0,0,0,1255,246,0,p
+0,0,0,1255,247,0,p
+0,0,0,1255,248,0,p
+0,0,0,1255,249,0,p
+0,0,0,1255,250,0,p
+0,0,0,1255,251,0,p
+0,0,0,1255,252,0,p
+0,0,0,1255,253,0,p
+0,0,0,1255,254,0,p
+0,0,0,1255,255,0,p
+0,0,0,1255,256,0,p
+0,0,0,1255,257,0,p
+0,0,0,1255,258,0,p
+0,0,0,1255,259,0,p
+0,0,0,1255,260,0,p
+0,0,0,1255,261,0,p
+0,0,0,1255,262,0,p
+0,0,0,1255,263,0,p
+0,0,0,1255,264,0,p
+0,0,0,1255,265,0,p
+0,0,0,1255,266,0,p
+0,0,0,1255,267,0,p
+0,0,0,1255,268,0,p
+0,0,0,1255,269,0,p
+0,0,0,1255,270,0,p
+0,0,0,1255,271,0,p
+0,0,0,1255,272,0,p
+0,0,0,1255,273,0,p
+0,0,0,1255,274,0,p
+0,0,0,1255,275,0,p
+0,0,0,1255,277,0,p
+0,0,0,1255,278,0,p
+0,0,0,1255,279,0,p
+0,0,0,1255,280,0,p
+0,0,0,1255,281,0,p
+0,0,0,1255,282,0,p
+0,0,0,1255,283,0,p
+0,0,0,1255,284,0,p
+0,0,0,1255,285,0,p
+0,0,0,1255,286,0,p
+0,0,0,1255,287,0,p
+0,0,0,1255,288,0,p
+0,0,0,1255,289,0,p
+0,0,0,1255,290,0,p
+0,0,0,1255,291,0,p
+0,0,0,1255,292,0,p
+0,0,0,1255,293,0,p
+0,0,0,1255,294,0,p
+0,0,0,1255,295,0,p
+0,0,0,1255,296,0,p
+0,0,0,1255,297,0,p
+0,0,0,1255,298,0,p
+0,0,0,1255,299,0,p
+0,0,0,1255,300,0,p
+0,0,0,1255,301,0,p
+0,0,0,1255,302,0,p
+0,0,0,1255,303,0,p
+0,0,0,1255,304,0,p
+0,0,0,1255,305,0,p
+0,0,0,1255,306,0,p
+0,0,0,1255,307,0,p
+0,0,0,1255,308,0,p
+0,0,0,1255,309,0,p
+0,0,0,1255,310,0,p
+0,0,0,1255,311,0,p
+0,0,0,1255,312,0,p
+0,0,0,1255,313,0,p
+0,0,0,1255,314,0,p
+0,0,0,1255,315,0,p
+0,0,0,1255,316,0,p
+0,0,0,1255,317,0,p
+0,0,0,1255,318,0,p
+0,0,0,1255,319,0,p
+0,0,0,1255,330,0,p
+0,0,0,1255,636,0,p
+0,0,0,1255,331,0,p
+0,0,0,1255,333,0,p
+0,0,0,1255,334,0,p
+0,0,0,1255,335,0,p
+0,0,0,1255,336,0,p
+0,0,0,1255,337,0,p
+0,0,0,1255,338,0,p
+0,0,0,1255,332,0,p
+0,0,0,1255,972,0,p
+0,0,0,1255,1268,0,p
+0,0,0,1255,2785,0,p
+0,0,0,1255,339,0,p
+0,0,0,1255,340,0,p
+0,0,0,1255,341,0,p
+0,0,0,1255,342,0,p
+0,0,0,1255,343,0,p
+0,0,0,1255,344,0,p
+0,0,0,1255,345,0,p
+0,0,0,1255,346,0,p
+0,0,0,1255,347,0,p
+0,0,0,1255,348,0,p
+0,0,0,1255,350,0,p
+0,0,0,1255,351,0,p
+0,0,0,1255,842,0,p
+0,0,0,1255,354,0,p
+0,0,0,1255,355,0,p
+0,0,0,1255,356,0,p
+0,0,0,1255,404,0,p
+0,0,0,1255,357,0,p
+0,0,0,1255,358,0,p
+0,0,0,1255,359,0,p
+0,0,0,1255,360,0,p
+0,0,0,1255,377,0,p
+0,0,0,1255,380,0,p
+0,0,0,1255,381,0,p
+0,0,0,1255,382,0,p
+0,0,0,1255,361,0,p
+0,0,0,1255,362,0,p
+0,0,0,1255,363,0,p
+0,0,0,1255,364,0,p
+0,0,0,1255,365,0,p
+0,0,0,1255,366,0,p
+0,0,0,1255,367,0,p
+0,0,0,1255,368,0,p
+0,0,0,1255,369,0,p
+0,0,0,1255,370,0,p
+0,0,0,1255,371,0,p
+0,0,0,1255,372,0,p
+0,0,0,1255,373,0,p
+0,0,0,1255,401,0,p
+0,0,0,1255,406,0,p
+0,0,0,1255,407,0,p
+0,0,0,1255,408,0,p
+0,0,0,1255,409,0,p
+0,0,0,1255,440,0,p
+0,0,0,1255,637,0,p
+0,0,0,1255,441,0,p
+0,0,0,1255,443,0,p
+0,0,0,1255,444,0,p
+0,0,0,1255,445,0,p
+0,0,0,1255,446,0,p
+0,0,0,1255,447,0,p
+0,0,0,1255,448,0,p
+0,0,0,1255,442,0,p
+0,0,0,1255,425,0,p
+0,0,0,1255,438,0,p
+0,0,0,1255,2786,0,p
+0,0,0,1255,449,0,p
+0,0,0,1255,450,0,p
+0,0,0,1255,949,0,p
+0,0,0,1255,451,0,p
+0,0,0,1255,452,0,p
+0,0,0,1255,453,0,p
+0,0,0,1255,454,0,p
+0,0,0,1255,455,0,p
+0,0,0,1255,400,0,p
+0,0,0,1255,456,0,p
+0,0,0,1255,457,0,p
+0,0,0,1255,329,0,p
+0,0,0,1255,398,0,p
+0,0,0,1255,399,0,p
+0,0,0,1255,422,0,p
+0,0,0,1255,6432,0,p
+0,0,0,1255,458,0,p
+0,0,0,1255,459,0,p
+0,0,0,1255,460,0,p
+0,0,0,1255,461,0,p
+0,0,0,1255,462,0,p
+0,0,0,1255,463,0,p
+0,0,0,1255,464,0,p
+0,0,0,1255,465,0,p
+0,0,0,1255,466,0,p
+0,0,0,1255,467,0,p
+0,0,0,1255,468,0,p
+0,0,0,1255,469,0,p
+0,0,0,1255,470,0,p
+0,0,0,1255,471,0,p
+0,0,0,1255,472,0,p
+0,0,0,1255,474,0,p
+0,0,0,1255,475,0,p
+0,0,0,1255,476,0,p
+0,0,0,1255,477,0,p
+0,0,0,1255,478,0,p
+0,0,0,1255,479,0,p
+0,0,0,1255,480,0,p
+0,0,0,1255,481,0,p
+0,0,0,1255,482,0,p
+0,0,0,1255,483,0,p
+0,0,0,1255,652,0,p
+0,0,0,1255,653,0,p
+0,0,0,1255,714,0,p
+0,0,0,1255,754,0,p
+0,0,0,1255,1285,0,p
+0,0,0,1255,1286,0,p
+0,0,0,1255,655,0,p
+0,0,0,1255,656,0,p
+0,0,0,1255,657,0,p
+0,0,0,1255,658,0,p
+0,0,0,1255,659,0,p
+0,0,0,1255,668,0,p
+0,0,0,1255,669,0,p
+0,0,0,1255,676,0,p
+0,0,0,1255,619,0,p
+0,0,0,1255,677,0,p
+0,0,0,1255,678,0,p
+0,0,0,1255,679,0,p
+0,0,0,1255,680,0,p
+0,0,0,1255,681,0,p
+0,0,0,1255,710,0,p
+0,0,0,1255,716,0,p
+0,0,0,1255,717,0,p
+0,0,0,1255,720,0,p
+0,0,0,1255,721,0,p
+0,0,0,1255,722,0,p
+0,0,0,1255,723,0,p
+0,0,0,1255,724,0,p
+0,0,0,1255,725,0,p
+0,0,0,1255,726,0,p
+0,0,0,1255,727,0,p
+0,0,0,1255,728,0,p
+0,0,0,1255,729,0,p
+0,0,0,1255,740,0,p
+0,0,0,1255,741,0,p
+0,0,0,1255,742,0,p
+0,0,0,1255,743,0,p
+0,0,0,1255,745,0,p
+0,0,0,1255,746,0,p
+0,0,0,1255,744,0,p
+0,0,0,1255,390,0,p
+0,0,0,1255,391,0,p
+0,0,0,1255,392,0,p
+0,0,0,1255,393,0,p
+0,0,0,1255,396,0,p
+0,0,0,1255,747,0,p
+0,0,0,1255,750,0,p
+0,0,0,1255,751,0,p
+0,0,0,1255,2091,0,p
+0,0,0,1255,2092,0,p
+0,0,0,1255,378,0,p
+0,0,0,1255,379,0,p
+0,0,0,1255,383,0,p
+0,0,0,1255,384,0,p
+0,0,0,1255,394,0,p
+0,0,0,1255,395,0,p
+0,0,0,1255,515,0,p
+0,0,0,1255,516,0,p
+0,0,0,1255,6012,0,p
+0,0,0,1255,760,0,p
+0,0,0,1255,761,0,p
+0,0,0,1255,762,0,p
+0,0,0,1255,763,0,p
+0,0,0,1255,764,0,p
+0,0,0,1255,765,0,p
+0,0,0,1255,766,0,p
+0,0,0,1255,768,0,p
+0,0,0,1255,769,0,p
+0,0,0,1255,770,0,p
+0,0,0,1255,771,0,p
+0,0,0,1255,774,0,p
+0,0,0,1255,638,0,p
+0,0,0,1255,775,0,p
+0,0,0,1255,777,0,p
+0,0,0,1255,778,0,p
+0,0,0,1255,779,0,p
+0,0,0,1255,780,0,p
+0,0,0,1255,781,0,p
+0,0,0,1255,782,0,p
+0,0,0,1255,776,0,p
+0,0,0,1255,2561,0,p
+0,0,0,1255,772,0,p
+0,0,0,1255,2787,0,p
+0,0,0,1255,784,0,p
+0,0,0,1255,785,0,p
+0,0,0,1255,786,0,p
+0,0,0,1255,787,0,p
+0,0,0,1255,788,0,p
+0,0,0,1255,789,0,p
+0,0,0,1255,817,0,p
+0,0,0,1255,818,0,p
+0,0,0,1255,819,0,p
+0,0,0,1255,838,0,p
+0,0,0,1255,839,0,p
+0,0,0,1255,840,0,p
+0,0,0,1255,841,0,p
+0,0,0,1255,846,0,p
+0,0,0,1255,847,0,p
+0,0,0,1255,848,0,p
+0,0,0,1255,849,0,p
+0,0,0,1255,850,0,p
+0,0,0,1255,851,0,p
+0,0,0,1255,852,0,p
+0,0,0,1255,853,0,p
+0,0,0,1255,854,0,p
+0,0,0,1255,855,0,p
+0,0,0,1255,856,0,p
+0,0,0,1255,857,0,p
+0,0,0,1255,858,0,p
+0,0,0,1255,859,0,p
+0,0,0,1255,860,0,p
+0,0,0,1255,861,0,p
+0,0,0,1255,862,0,p
+0,0,0,1255,863,0,p
+0,0,0,1255,864,0,p
+0,0,0,1255,865,0,p
+0,0,0,1255,866,0,p
+0,0,0,1255,867,0,p
+0,0,0,1255,886,0,p
+0,0,0,1255,887,0,p
+0,0,0,1255,888,0,p
+0,0,0,1255,889,0,p
+0,0,0,1255,890,0,p
+0,0,0,1255,891,0,p
+0,0,0,1255,892,0,p
+0,0,0,1255,893,0,p
+0,0,0,1255,894,0,p
+0,0,0,1255,895,0,p
+0,0,0,1255,896,0,p
+0,0,0,1255,897,0,p
+0,0,0,1255,898,0,p
+0,0,0,1255,899,0,p
+0,0,0,1255,919,0,p
+0,0,0,1255,935,0,p
+0,0,0,1255,940,0,p
+0,0,0,1255,941,0,p
+0,0,0,1255,942,0,p
+0,0,0,1255,943,0,p
+0,0,0,1255,945,0,p
+0,0,0,1255,947,0,p
+0,0,0,1255,944,0,p
+0,0,0,1255,946,0,p
+0,0,0,1255,950,0,p
+0,0,0,1255,951,0,p
+0,0,0,1255,952,0,p
+0,0,0,1255,953,0,p
+0,0,0,1255,954,0,p
+0,0,0,1255,955,0,p
+0,0,0,1255,956,0,p
+0,0,0,1255,957,0,p
+0,0,0,1255,715,0,p
+0,0,0,1255,958,0,p
+0,0,0,1255,959,0,p
+0,0,0,1255,960,0,p
+0,0,0,1255,961,0,p
+0,0,0,1255,962,0,p
+0,0,0,1255,963,0,p
+0,0,0,1255,964,0,p
+0,0,0,1255,973,0,p
+0,0,0,1255,975,0,p
+0,0,0,1255,976,0,p
+0,0,0,1255,977,0,p
+0,0,0,1255,978,0,p
+0,0,0,1255,979,0,p
+0,0,0,1255,980,0,p
+0,0,0,1255,981,0,p
+0,0,0,1255,982,0,p
+0,0,0,1255,983,0,p
+0,0,0,1255,984,0,p
+0,0,0,1255,985,0,p
+0,0,0,1255,986,0,p
+0,0,0,1255,987,0,p
+0,0,0,1255,988,0,p
+0,0,0,1255,989,0,p
+0,0,0,1255,990,0,p
+0,0,0,1255,991,0,p
+0,0,0,1255,992,0,p
+0,0,0,1255,993,0,p
+0,0,0,1255,994,0,p
+0,0,0,1255,995,0,p
+0,0,0,1255,996,0,p
+0,0,0,1255,997,0,p
+0,0,0,1255,998,0,p
+0,0,0,1255,999,0,p
+0,0,0,1255,748,0,p
+0,0,0,1255,749,0,p
+0,0,0,1255,837,0,p
+0,0,0,1255,948,0,p
+0,0,0,1255,938,0,p
+0,0,0,1255,939,0,p
+0,0,0,1255,1026,0,p
+0,0,0,1255,1029,0,p
+0,0,0,1255,1030,0,p
+0,0,0,1255,1031,0,p
+0,0,0,1255,1032,0,p
+0,0,0,1255,1035,0,p
+0,0,0,1255,1036,0,p
+0,0,0,1255,1037,0,p
+0,0,0,1255,1062,0,p
+0,0,0,1255,1365,0,p
+0,0,0,1255,1044,0,p
+0,0,0,1255,1045,0,p
+0,0,0,1255,1046,0,p
+0,0,0,1255,1047,0,p
+0,0,0,1255,1048,0,p
+0,0,0,1255,1049,0,p
+0,0,0,1255,1050,0,p
+0,0,0,1255,1051,0,p
+0,0,0,1255,1052,0,p
+0,0,0,1255,1053,0,p
+0,0,0,1255,1063,0,p
+0,0,0,1255,1064,0,p
+0,0,0,1255,1078,0,p
+0,0,0,1255,1080,0,p
+0,0,0,1255,1081,0,p
+0,0,0,1255,1084,0,p
+0,0,0,1255,1085,0,p
+0,0,0,1255,1086,0,p
+0,0,0,1255,1087,0,p
+0,0,0,1255,1088,0,p
+0,0,0,1255,1089,0,p
+0,0,0,1255,1090,0,p
+0,0,0,1255,1091,0,p
+0,0,0,1255,1092,0,p
+0,0,0,1255,1102,0,p
+0,0,0,1255,1103,0,p
+0,0,0,1255,1104,0,p
+0,0,0,1255,1105,0,p
+0,0,0,1255,1106,0,p
+0,0,0,1255,1107,0,p
+0,0,0,1255,1138,0,p
+0,0,0,1255,1139,0,p
+0,0,0,1255,1140,0,p
+0,0,0,1255,1141,0,p
+0,0,0,1255,1142,0,p
+0,0,0,1255,1143,0,p
+0,0,0,1255,1144,0,p
+0,0,0,1255,1145,0,p
+0,0,0,1255,1146,0,p
+0,0,0,1255,1147,0,p
+0,0,0,1255,1148,0,p
+0,0,0,1255,1149,0,p
+0,0,0,1255,1150,0,p
+0,0,0,1255,1151,0,p
+0,0,0,1255,1152,0,p
+0,0,0,1255,1153,0,p
+0,0,0,1255,1154,0,p
+0,0,0,1255,1155,0,p
+0,0,0,1255,1156,0,p
+0,0,0,1255,1157,0,p
+0,0,0,1255,1158,0,p
+0,0,0,1255,1159,0,p
+0,0,0,1255,1160,0,p
+0,0,0,1255,1161,0,p
+0,0,0,1255,1162,0,p
+0,0,0,1255,1163,0,p
+0,0,0,1255,1164,0,p
+0,0,0,1255,1165,0,p
+0,0,0,1255,1166,0,p
+0,0,0,1255,1167,0,p
+0,0,0,1255,1168,0,p
+0,0,0,1255,1169,0,p
+0,0,0,1255,1170,0,p
+0,0,0,1255,1171,0,p
+0,0,0,1255,1172,0,p
+0,0,0,1255,1173,0,p
+0,0,0,1255,1174,0,p
+0,0,0,1255,2711,0,p
+0,0,0,1255,1175,0,p
+0,0,0,1255,1295,0,p
+0,0,0,1255,1176,0,p
+0,0,0,1255,1177,0,p
+0,0,0,1255,1178,0,p
+0,0,0,1255,1179,0,p
+0,0,0,1255,1180,0,p
+0,0,0,1255,1181,0,p
+0,0,0,1255,1188,0,p
+0,0,0,1255,1189,0,p
+0,0,0,1255,1190,0,p
+0,0,0,1255,1191,0,p
+0,0,0,1255,1192,0,p
+0,0,0,1255,1193,0,p
+0,0,0,1255,1194,0,p
+0,0,0,1255,1195,0,p
+0,0,0,1255,1196,0,p
+0,0,0,1255,1197,0,p
+0,0,0,1255,1198,0,p
+0,0,0,1255,1199,0,p
+0,0,0,1255,1200,0,p
+0,0,0,1255,1215,0,p
+0,0,0,1255,1216,0,p
+0,0,0,1255,1993,0,p
+0,0,0,1255,1217,0,p
+0,0,0,1255,1218,0,p
+0,0,0,1255,1219,0,p
+0,0,0,1255,2857,0,p
+0,0,0,1255,2804,0,p
+0,0,0,1255,1230,0,p
+0,0,0,1255,1236,0,p
+0,0,0,1255,1237,0,p
+0,0,0,1255,1238,0,p
+0,0,0,1255,1239,0,p
+0,0,0,1255,1240,0,p
+0,0,0,1255,1241,0,p
+0,0,0,1255,1251,0,p
+0,0,0,1255,1253,0,p
+0,0,0,1255,1263,0,p
+0,0,0,1255,1271,0,p
+0,0,0,1255,1272,0,p
+0,0,0,1255,1273,0,p
+0,0,0,1255,1274,0,p
+0,0,0,1255,1275,0,p
+0,0,0,1255,1276,0,p
+0,0,0,1255,1277,0,p
+0,0,0,1255,1278,0,p
+0,0,0,1255,1279,0,p
+0,0,0,1255,1280,0,p
+0,0,0,1255,1281,0,p
+0,0,0,1255,1287,0,p
+0,0,0,1255,1288,0,p
+0,0,0,1255,1289,0,p
+0,0,0,1255,1290,0,p
+0,0,0,1255,1291,0,p
+0,0,0,1255,1292,0,p
+0,0,0,1255,1293,0,p
+0,0,0,1255,1294,0,p
+0,0,0,1255,1265,0,p
+0,0,0,1255,2790,0,p
+0,0,0,1255,2791,0,p
+0,0,0,1255,2792,0,p
+0,0,0,1255,2793,0,p
+0,0,0,1255,2794,0,p
+0,0,0,1255,2795,0,p
+0,0,0,1255,2796,0,p
+0,0,0,1255,1296,0,p
+0,0,0,1255,1297,0,p
+0,0,0,1255,1298,0,p
+0,0,0,1255,1299,0,p
+0,0,0,1255,2647,0,p
+0,0,0,1255,2648,0,p
+0,0,0,1255,2649,0,p
+0,0,0,1255,1300,0,p
+0,0,0,1255,1301,0,p
+0,0,0,1255,1302,0,p
+0,0,0,1255,1303,0,p
+0,0,0,1255,1304,0,p
+0,0,0,1255,1305,0,p
+0,0,0,1255,1306,0,p
+0,0,0,1255,1307,0,p
+0,0,0,1255,1308,0,p
+0,0,0,1255,1309,0,p
+0,0,0,1255,1310,0,p
+0,0,0,1255,1311,0,p
+0,0,0,1255,1312,0,p
+0,0,0,1255,1313,0,p
+0,0,0,1255,1314,0,p
+0,0,0,1255,1315,0,p
+0,0,0,1255,1316,0,p
+0,0,0,1255,1317,0,p
+0,0,0,1255,1318,0,p
+0,0,0,1255,1319,0,p
+0,0,0,1255,1326,0,p
+0,0,0,1255,1339,0,p
+0,0,0,1255,1340,0,p
+0,0,0,1255,1341,0,p
+0,0,0,1255,1342,0,p
+0,0,0,1255,1343,0,p
+0,0,0,1255,1344,0,p
+0,0,0,1255,1345,0,p
+0,0,0,1255,1346,0,p
+0,0,0,1255,1368,0,p
+0,0,0,1255,1347,0,p
+0,0,0,1255,1348,0,p
+0,0,0,1255,1349,0,p
+0,0,0,1255,1350,0,p
+0,0,0,1255,1351,0,p
+0,0,0,1255,1352,0,p
+0,0,0,1255,1353,0,p
+0,0,0,1255,1354,0,p
+0,0,0,1255,1355,0,p
+0,0,0,1255,1356,0,p
+0,0,0,1255,1357,0,p
+0,0,0,1255,1358,0,p
+0,0,0,1255,1359,0,p
+0,0,0,1255,1364,0,p
+0,0,0,1255,1367,0,p
+0,0,0,1255,1369,0,p
+0,0,0,1255,1370,0,p
+0,0,0,1255,1372,0,p
+0,0,0,1255,1373,0,p
+0,0,0,1255,1374,0,p
+0,0,0,1255,1375,0,p
+0,0,0,1255,1377,0,p
+0,0,0,1255,1378,0,p
+0,0,0,1255,1379,0,p
+0,0,0,1255,1380,0,p
+0,0,0,1255,1381,0,p
+0,0,0,1255,1382,0,p
+0,0,0,1255,1383,0,p
+0,0,0,1255,1384,0,p
+0,0,0,1255,1385,0,p
+0,0,0,1255,1386,0,p
+0,0,0,1255,1388,0,p
+0,0,0,1255,1389,0,p
+0,0,0,1255,1390,0,p
+0,0,0,1255,1376,0,p
+0,0,0,1255,1394,0,p
+0,0,0,1255,1395,0,p
+0,0,0,1255,1396,0,p
+0,0,0,1255,1397,0,p
+0,0,0,1255,1398,0,p
+0,0,0,1255,1400,0,p
+0,0,0,1255,1401,0,p
+0,0,0,1255,1402,0,p
+0,0,0,1255,1403,0,p
+0,0,0,1255,1404,0,p
+0,0,0,1255,1405,0,p
+0,0,0,1255,1406,0,p
+0,0,0,1255,1407,0,p
+0,0,0,1255,1408,0,p
+0,0,0,1255,1409,0,p
+0,0,0,1255,1410,0,p
+0,0,0,1255,1411,0,p
+0,0,0,1255,1412,0,p
+0,0,0,1255,1413,0,p
+0,0,0,1255,1414,0,p
+0,0,0,1255,1415,0,p
+0,0,0,1255,1416,0,p
+0,0,0,1255,1417,0,p
+0,0,0,1255,1418,0,p
+0,0,0,1255,1419,0,p
+0,0,0,1255,1421,0,p
+0,0,0,1255,1422,0,p
+0,0,0,1255,1423,0,p
+0,0,0,1255,1424,0,p
+0,0,0,1255,1425,0,p
+0,0,0,1255,1426,0,p
+0,0,0,1255,1428,0,p
+0,0,0,1255,1429,0,p
+0,0,0,1255,1430,0,p
+0,0,0,1255,1431,0,p
+0,0,0,1255,1432,0,p
+0,0,0,1255,1433,0,p
+0,0,0,1255,1434,0,p
+0,0,0,1255,1435,0,p
+0,0,0,1255,1436,0,p
+0,0,0,1255,1437,0,p
+0,0,0,1255,1438,0,p
+0,0,0,1255,1439,0,p
+0,0,0,1255,1440,0,p
+0,0,0,1255,1441,0,p
+0,0,0,1255,1442,0,p
+0,0,0,1255,1443,0,p
+0,0,0,1255,1444,0,p
+0,0,0,1255,1445,0,p
+0,0,0,1255,1446,0,p
+0,0,0,1255,1447,0,p
+0,0,0,1255,1448,0,p
+0,0,0,1255,1449,0,p
+0,0,0,1255,1450,0,p
+0,0,0,1255,1451,0,p
+0,0,0,1255,1452,0,p
+0,0,0,1255,1453,0,p
+0,0,0,1255,1454,0,p
+0,0,0,1255,1455,0,p
+0,0,0,1255,1456,0,p
+0,0,0,1255,1457,0,p
+0,0,0,1255,1458,0,p
+0,0,0,1255,1459,0,p
+0,0,0,1255,1460,0,p
+0,0,0,1255,1461,0,p
+0,0,0,1255,1462,0,p
+0,0,0,1255,1463,0,p
+0,0,0,1255,1464,0,p
+0,0,0,1255,1465,0,p
+0,0,0,1255,1466,0,p
+0,0,0,1255,1467,0,p
+0,0,0,1255,1468,0,p
+0,0,0,1255,1469,0,p
+0,0,0,1255,1470,0,p
+0,0,0,1255,1471,0,p
+0,0,0,1255,1472,0,p
+0,0,0,1255,1473,0,p
+0,0,0,1255,1474,0,p
+0,0,0,1255,1475,0,p
+0,0,0,1255,1476,0,p
+0,0,0,1255,1477,0,p
+0,0,0,1255,1478,0,p
+0,0,0,1255,1479,0,p
+0,0,0,1255,1480,0,p
+0,0,0,1255,1481,0,p
+0,0,0,1255,1482,0,p
+0,0,0,1255,1483,0,p
+0,0,0,1255,1484,0,p
+0,0,0,1255,1485,0,p
+0,0,0,1255,1486,0,p
+0,0,0,1255,1487,0,p
+0,0,0,1255,1488,0,p
+0,0,0,1255,1489,0,p
+0,0,0,1255,1490,0,p
+0,0,0,1255,1491,0,p
+0,0,0,1255,1492,0,p
+0,0,0,1255,1493,0,p
+0,0,0,1255,1494,0,p
+0,0,0,1255,1495,0,p
+0,0,0,1255,1496,0,p
+0,0,0,1255,1497,0,p
+0,0,0,1255,1498,0,p
+0,0,0,1255,1499,0,p
+0,0,0,1255,1530,0,p
+0,0,0,1255,1531,0,p
+0,0,0,1255,1532,0,p
+0,0,0,1255,1533,0,p
+0,0,0,1255,1534,0,p
+0,0,0,1255,1540,0,p
+0,0,0,1255,1541,0,p
+0,0,0,1255,1542,0,p
+0,0,0,1255,1543,0,p
+0,0,0,1255,1544,0,p
+0,0,0,1255,1545,0,p
+0,0,0,1255,1556,0,p
+0,0,0,1255,1564,0,p
+0,0,0,1255,1565,0,p
+0,0,0,1255,1569,0,p
+0,0,0,1255,1570,0,p
+0,0,0,1255,1571,0,p
+0,0,0,1255,1572,0,p
+0,0,0,1255,1574,0,p
+0,0,0,1255,1575,0,p
+0,0,0,1255,1576,0,p
+0,0,0,1255,1765,0,p
+0,0,0,1255,1579,0,p
+0,0,0,1255,1580,0,p
+0,0,0,1255,1581,0,p
+0,0,0,1255,1582,0,p
+0,0,0,1255,1592,0,p
+0,0,0,1255,1593,0,p
+0,0,0,1255,1594,0,p
+0,0,0,1255,1595,0,p
+0,0,0,1255,1596,0,p
+0,0,0,1255,1598,0,p
+0,0,0,1255,1599,0,p
+0,0,0,1255,1600,0,p
+0,0,0,1255,1601,0,p
+0,0,0,1255,1602,0,p
+0,0,0,1255,1603,0,p
+0,0,0,1255,1604,0,p
+0,0,0,1255,1605,0,p
+0,0,0,1255,1606,0,p
+0,0,0,1255,1607,0,p
+0,0,0,1255,1608,0,p
+0,0,0,1255,1609,0,p
+0,0,0,1255,1610,0,p
+0,0,0,1255,1618,0,p
+0,0,0,1255,1620,0,p
+0,0,0,1255,1621,0,p
+0,0,0,1255,1622,0,p
+0,0,0,1255,1623,0,p
+0,0,0,1255,1624,0,p
+0,0,0,1255,1631,0,p
+0,0,0,1255,1632,0,p
+0,0,0,1255,1633,0,p
+0,0,0,1255,1634,0,p
+0,0,0,1255,1635,0,p
+0,0,0,1255,1636,0,p
+0,0,0,1255,1637,0,p
+0,0,0,1255,1656,0,p
+0,0,0,1255,1657,0,p
+0,0,0,1255,1658,0,p
+0,0,0,1255,1659,0,p
+0,0,0,1255,1660,0,p
+0,0,0,1255,1661,0,p
+0,0,0,1255,1689,0,p
+0,0,0,1255,868,0,p
+0,0,0,1255,870,0,p
+0,0,0,1255,871,0,p
+0,0,0,1255,872,0,p
+0,0,0,1255,873,0,p
+0,0,0,1255,874,0,p
+0,0,0,1255,875,0,p
+0,0,0,1255,876,0,p
+0,0,0,1255,877,0,p
+0,0,0,1255,878,0,p
+0,0,0,1255,879,0,p
+0,0,0,1255,880,0,p
+0,0,0,1255,881,0,p
+0,0,0,1255,882,0,p
+0,0,0,1255,883,0,p
+0,0,0,1255,884,0,p
+0,0,0,1255,885,0,p
+0,0,0,1255,936,0,p
+0,0,0,1255,937,0,p
+0,0,0,1255,2087,0,p
+0,0,0,1255,2284,0,p
+0,0,0,1255,2285,0,p
+0,0,0,1255,5018,0,p
+0,0,0,1255,5019,0,p
+0,0,0,1255,5020,0,p
+0,0,0,1255,5021,0,p
+0,0,0,1255,5022,0,p
+0,0,0,1255,5023,0,p
+0,0,0,1255,2088,0,p
+0,0,0,1255,2089,0,p
+0,0,0,1255,2090,0,p
+0,0,0,1255,1039,0,p
+0,0,0,1255,810,0,p
+0,0,0,1255,1717,0,p
+0,0,0,1255,1813,0,p
+0,0,0,1255,1619,0,p
+0,0,0,1255,1264,0,p
+0,0,0,1255,1597,0,p
+0,0,0,1255,1638,0,p
+0,0,0,1255,1639,0,p
+0,0,0,1255,1573,0,p
+0,0,0,1255,1640,0,p
+0,0,0,1255,1641,0,p
+0,0,0,1255,1642,0,p
+0,0,0,1255,1643,0,p
+0,0,0,1255,1662,0,p
+0,0,0,1255,1387,0,p
+0,0,0,1255,1716,0,p
+0,0,0,1255,1665,0,p
+0,0,0,1255,5024,0,p
+0,0,0,1255,5025,0,p
+0,0,0,1255,5027,0,p
+0,0,0,1255,5028,0,p
+0,0,0,1255,1644,0,p
+0,0,0,1255,1645,0,p
+0,0,0,1255,1646,0,p
+0,0,0,1255,1647,0,p
+0,0,0,1255,1648,0,p
+0,0,0,1255,1649,0,p
+0,0,0,1255,1650,0,p
+0,0,0,1255,1651,0,p
+0,0,0,1255,1652,0,p
+0,0,0,1255,1653,0,p
+0,0,0,1255,1654,0,p
+0,0,0,1255,1655,0,p
+0,0,0,1255,1666,0,p
+0,0,0,1255,1667,0,p
+0,0,0,1255,1668,0,p
+0,0,0,1255,1669,0,p
+0,0,0,1255,1670,0,p
+0,0,0,1255,1671,0,p
+0,0,0,1255,1672,0,p
+0,0,0,1255,1673,0,p
+0,0,0,1255,1674,0,p
+0,0,0,1255,1675,0,p
+0,0,0,1255,1676,0,p
+0,0,0,1255,1677,0,p
+0,0,0,1255,1678,0,p
+0,0,0,1255,1679,0,p
+0,0,0,1255,1680,0,p
+0,0,0,1255,1681,0,p
+0,0,0,1255,1682,0,p
+0,0,0,1255,1683,0,p
+0,0,0,1255,1684,0,p
+0,0,0,1255,1685,0,p
+0,0,0,1255,1687,0,p
+0,0,0,1255,1698,0,p
+0,0,0,1255,1699,0,p
+0,0,0,1255,436,0,p
+0,0,0,1255,437,0,p
+0,0,0,1255,752,0,p
+0,0,0,1255,753,0,p
+0,0,0,1255,767,0,p
+0,0,0,1255,830,0,p
+0,0,0,1255,831,0,p
+0,0,0,1255,832,0,p
+0,0,0,1255,833,0,p
+0,0,0,1255,834,0,p
+0,0,0,1255,835,0,p
+0,0,0,1255,836,0,p
+0,0,0,1255,910,0,p
+0,0,0,1255,911,0,p
+0,0,0,1255,1267,0,p
+0,0,0,1255,1427,0,p
+0,0,0,1255,920,0,p
+0,0,0,1255,921,0,p
+0,0,0,1255,922,0,p
+0,0,0,1255,923,0,p
+0,0,0,1255,924,0,p
+0,0,0,1255,925,0,p
+0,0,0,1255,926,0,p
+0,0,0,1255,927,0,p
+0,0,0,1255,928,0,p
+0,0,0,1255,929,0,p
+0,0,0,1255,930,0,p
+0,0,0,1255,598,0,p
+0,0,0,1255,599,0,p
+0,0,0,1255,605,0,p
+0,0,0,1255,635,0,p
+0,0,0,1255,711,0,p
+0,0,0,1255,683,0,p
+0,0,0,1255,696,0,p
+0,0,0,1255,697,0,p
+0,0,0,1255,698,0,p
+0,0,0,1255,699,0,p
+0,0,0,1255,730,0,p
+0,0,0,1255,1362,0,p
+0,0,0,1255,1713,0,p
+0,0,0,1255,1714,0,p
+0,0,0,1255,1715,0,p
+0,0,0,1255,2196,0,p
+0,0,0,1255,2197,0,p
+0,0,0,1255,2198,0,p
+0,0,0,1255,2199,0,p
+0,0,0,1255,2627,0,p
+0,0,0,1255,2628,0,p
+0,0,0,1255,2629,0,p
+0,0,0,1255,2630,0,p
+0,0,0,1255,2631,0,p
+0,0,0,1255,2632,0,p
+0,0,0,1255,2633,0,p
+0,0,0,1255,1686,0,p
+0,0,0,1255,1688,0,p
+0,0,0,1255,1690,0,p
+0,0,0,1255,1691,0,p
+0,0,0,1255,1692,0,p
+0,0,0,1255,1693,0,p
+0,0,0,1255,1696,0,p
+0,0,0,1255,1697,0,p
+0,0,0,1255,1701,0,p
+0,0,0,1255,1702,0,p
+0,0,0,1255,1703,0,p
+0,0,0,1255,1704,0,p
+0,0,0,1255,1705,0,p
+0,0,0,1255,1706,0,p
+0,0,0,1255,1707,0,p
+0,0,0,1255,1708,0,p
+0,0,0,1255,1709,0,p
+0,0,0,1255,1710,0,p
+0,0,0,1255,1711,0,p
+0,0,0,1255,2167,0,p
+0,0,0,1255,1712,0,p
+0,0,0,1255,1718,0,p
+0,0,0,1255,1719,0,p
+0,0,0,1255,1720,0,p
+0,0,0,1255,1721,0,p
+0,0,0,1255,1722,0,p
+0,0,0,1255,1723,0,p
+0,0,0,1255,1724,0,p
+0,0,0,1255,1725,0,p
+0,0,0,1255,1726,0,p
+0,0,0,1255,1727,0,p
+0,0,0,1255,1728,0,p
+0,0,0,1255,1729,0,p
+0,0,0,1255,1730,0,p
+0,0,0,1255,1731,0,p
+0,0,0,1255,1732,0,p
+0,0,0,1255,1733,0,p
+0,0,0,1255,1734,0,p
+0,0,0,1255,1735,0,p
+0,0,0,1255,1736,0,p
+0,0,0,1255,1737,0,p
+0,0,0,1255,1738,0,p
+0,0,0,1255,2169,0,p
+0,0,0,1255,1739,0,p
+0,0,0,1255,1740,0,p
+0,0,0,1255,1741,0,p
+0,0,0,1255,1742,0,p
+0,0,0,1255,1743,0,p
+0,0,0,1255,1744,0,p
+0,0,0,1255,1745,0,p
+0,0,0,1255,1746,0,p
+0,0,0,1255,2170,0,p
+0,0,0,1255,1747,0,p
+0,0,0,1255,1748,0,p
+0,0,0,1255,1749,0,p
+0,0,0,1255,1750,0,p
+0,0,0,1255,1764,0,p
+0,0,0,1255,1004,0,p
+0,0,0,1255,1766,0,p
+0,0,0,1255,1767,0,p
+0,0,0,1255,1769,0,p
+0,0,0,1255,1771,0,p
+0,0,0,1255,1779,0,p
+0,0,0,1255,1781,0,p
+0,0,0,1255,1782,0,p
+0,0,0,1255,1783,0,p
+0,0,0,1255,1770,0,p
+0,0,0,1255,1772,0,p
+0,0,0,1255,1773,0,p
+0,0,0,1255,1774,0,p
+0,0,0,1255,1775,0,p
+0,0,0,1255,1776,0,p
+0,0,0,1255,1777,0,p
+0,0,0,1255,1778,0,p
+0,0,0,1255,1780,0,p
+0,0,0,1255,1768,0,p
+0,0,0,1255,1282,0,p
+0,0,0,1255,1283,0,p
+0,0,0,1255,1798,0,p
+0,0,0,1255,1799,0,p
+0,0,0,1255,1810,0,p
+0,0,0,1255,1811,0,p
+0,0,0,1255,1812,0,p
+0,0,0,1255,1814,0,p
+0,0,0,1255,1815,0,p
+0,0,0,1255,1816,0,p
+0,0,0,1255,1817,0,p
+0,0,0,1255,1818,0,p
+0,0,0,1255,1819,0,p
+0,0,0,1255,1820,0,p
+0,0,0,1255,1821,0,p
+0,0,0,1255,1822,0,p
+0,0,0,1255,1823,0,p
+0,0,0,1255,1824,0,p
+0,0,0,1255,1825,0,p
+0,0,0,1255,1826,0,p
+0,0,0,1255,1827,0,p
+0,0,0,1255,1828,0,p
+0,0,0,1255,1829,0,p
+0,0,0,1255,1830,0,p
+0,0,0,1255,2512,0,p
+0,0,0,1255,1831,0,p
+0,0,0,1255,2513,0,p
+0,0,0,1255,1832,0,p
+0,0,0,1255,1833,0,p
+0,0,0,1255,3102,0,p
+0,0,0,1255,7309,0,p
+0,0,0,1255,3103,0,p
+0,0,0,1255,1834,0,p
+0,0,0,1255,1835,0,p
+0,0,0,1255,1836,0,p
+0,0,0,1255,7306,0,p
+0,0,0,1255,7307,0,p
+0,0,0,1255,7308,0,p
+0,0,0,1255,1837,0,p
+0,0,0,1255,2514,0,p
+0,0,0,1255,1838,0,p
+0,0,0,1255,2596,0,p
+0,0,0,1255,1839,0,p
+0,0,0,1255,1840,0,p
+0,0,0,1255,1841,0,p
+0,0,0,1255,1842,0,p
+0,0,0,1255,7008,0,p
+0,0,0,1255,7009,0,p
+0,0,0,1255,7010,0,p
+0,0,0,1255,1843,0,p
+0,0,0,1255,6038,0,p
+0,0,0,1255,1844,0,p
+0,0,0,1255,1962,0,p
+0,0,0,1255,1963,0,p
+0,0,0,1255,3100,0,p
+0,0,0,1255,6019,0,p
+0,0,0,1255,6020,0,p
+0,0,0,1255,3101,0,p
+0,0,0,1255,1964,0,p
+0,0,0,1255,2805,0,p
+0,0,0,1255,2806,0,p
+0,0,0,1255,2807,0,p
+0,0,0,1255,2808,0,p
+0,0,0,1255,2809,0,p
+0,0,0,1255,2810,0,p
+0,0,0,1255,2811,0,p
+0,0,0,1255,2812,0,p
+0,0,0,1255,2813,0,p
+0,0,0,1255,2814,0,p
+0,0,0,1255,2815,0,p
+0,0,0,1255,2816,0,p
+0,0,0,1255,2817,0,p
+0,0,0,1255,1845,0,p
+0,0,0,1255,1846,0,p
+0,0,0,1255,1847,0,p
+0,0,0,1255,1848,0,p
+0,0,0,1255,1850,0,p
+0,0,0,1255,1851,0,p
+0,0,0,1255,1852,0,p
+0,0,0,1255,1853,0,p
+0,0,0,1255,1854,0,p
+0,0,0,1255,1855,0,p
+0,0,0,1255,1856,0,p
+0,0,0,1255,1857,0,p
+0,0,0,1255,1858,0,p
+0,0,0,1255,1859,0,p
+0,0,0,1255,1860,0,p
+0,0,0,1255,1861,0,p
+0,0,0,1255,1892,0,p
+0,0,0,1255,1893,0,p
+0,0,0,1255,1894,0,p
+0,0,0,1255,1895,0,p
+0,0,0,1255,1896,0,p
+0,0,0,1255,1897,0,p
+0,0,0,1255,1898,0,p
+0,0,0,1255,1899,0,p
+0,0,0,1255,1900,0,p
+0,0,0,1255,1901,0,p
+0,0,0,1255,1902,0,p
+0,0,0,1255,1903,0,p
+0,0,0,1255,1904,0,p
+0,0,0,1255,1905,0,p
+0,0,0,1255,1906,0,p
+0,0,0,1255,1907,0,p
+0,0,0,1255,1908,0,p
+0,0,0,1255,1909,0,p
+0,0,0,1255,1910,0,p
+0,0,0,1255,1911,0,p
+0,0,0,1255,1912,0,p
+0,0,0,1255,1913,0,p
+0,0,0,1255,1914,0,p
+0,0,0,1255,1915,0,p
+0,0,0,1255,1922,0,p
+0,0,0,1255,1923,0,p
+0,0,0,1255,1924,0,p
+0,0,0,1255,1925,0,p
+0,0,0,1255,1926,0,p
+0,0,0,1255,1927,0,p
+0,0,0,1255,1928,0,p
+0,0,0,1255,1929,0,p
+0,0,0,1255,1930,0,p
+0,0,0,1255,1931,0,p
+0,0,0,1255,1932,0,p
+0,0,0,1255,1933,0,p
+0,0,0,1255,1934,0,p
+0,0,0,1255,1935,0,p
+0,0,0,1255,2781,0,p
+0,0,0,1255,2782,0,p
+0,0,0,1255,2783,0,p
+0,0,0,1255,2784,0,p
+0,0,0,1255,1936,0,p
+0,0,0,1255,2026,0,p
+0,0,0,1255,2274,0,p
+0,0,0,1255,1937,0,p
+0,0,0,1255,1938,0,p
+0,0,0,1255,1939,0,p
+0,0,0,1255,1940,0,p
+0,0,0,1255,2853,0,p
+0,0,0,1255,2094,0,p
+0,0,0,1255,1391,0,p
+0,0,0,1255,1392,0,p
+0,0,0,1255,1393,0,p
+0,0,0,1255,1941,0,p
+0,0,0,1255,1942,0,p
+0,0,0,1255,1943,0,p
+0,0,0,1255,1944,0,p
+0,0,0,1255,1945,0,p
+0,0,0,1255,6031,0,p
+0,0,0,1255,6032,0,p
+0,0,0,1255,6033,0,p
+0,0,0,1255,6034,0,p
+0,0,0,1255,6039,0,p
+0,0,0,1255,6042,0,p
+0,0,0,1255,1946,0,p
+0,0,0,1255,1947,0,p
+0,0,0,1255,1948,0,p
+0,0,0,1255,1949,0,p
+0,0,0,1255,1950,0,p
+0,0,0,1255,1951,0,p
+0,0,0,1255,1952,0,p
+0,0,0,1255,1953,0,p
+0,0,0,1255,1954,0,p
+0,0,0,1255,1961,0,p
+0,0,0,1255,1965,0,p
+0,0,0,1255,1966,0,p
+0,0,0,1255,1967,0,p
+0,0,0,1255,1968,0,p
+0,0,0,1255,1969,0,p
+0,0,0,1255,2005,0,p
+0,0,0,1255,2006,0,p
+0,0,0,1255,2007,0,p
+0,0,0,1255,2008,0,p
+0,0,0,1255,2009,0,p
+0,0,0,1255,2010,0,p
+0,0,0,1255,2011,0,p
+0,0,0,1255,2012,0,p
+0,0,0,1255,2013,0,p
+0,0,0,1255,2085,0,p
+0,0,0,1255,2086,0,p
+0,0,0,1255,2014,0,p
+0,0,0,1255,2015,0,p
+0,0,0,1255,2019,0,p
+0,0,0,1255,2020,0,p
+0,0,0,1255,2021,0,p
+0,0,0,1255,2022,0,p
+0,0,0,1255,2023,0,p
+0,0,0,1255,2024,0,p
+0,0,0,1255,2025,0,p
+0,0,0,1255,2027,0,p
+0,0,0,1255,2028,0,p
+0,0,0,1255,2029,0,p
+0,0,0,1255,2030,0,p
+0,0,0,1255,2031,0,p
+0,0,0,1255,2032,0,p
+0,0,0,1255,2033,0,p
+0,0,0,1255,2034,0,p
+0,0,0,1255,2035,0,p
+0,0,0,1255,2036,0,p
+0,0,0,1255,2037,0,p
+0,0,0,1255,2038,0,p
+0,0,0,1255,2041,0,p
+0,0,0,1255,2042,0,p
+0,0,0,1255,2043,0,p
+0,0,0,1255,2044,0,p
+0,0,0,1255,2045,0,p
+0,0,0,1255,2046,0,p
+0,0,0,1255,2047,0,p
+0,0,0,1255,2048,0,p
+0,0,0,1255,2049,0,p
+0,0,0,1255,2052,0,p
+0,0,0,1255,2053,0,p
+0,0,0,1255,2054,0,p
+0,0,0,1255,2055,0,p
+0,0,0,1255,2056,0,p
+0,0,0,1255,2057,0,p
+0,0,0,1255,2058,0,p
+0,0,0,1255,2059,0,p
+0,0,0,1255,2069,0,p
+0,0,0,1255,2070,0,p
+0,0,0,1255,2071,0,p
+0,0,0,1255,2072,0,p
+0,0,0,1255,2073,0,p
+0,0,0,1255,2074,0,p
+0,0,0,1255,2075,0,p
+0,0,0,1255,2076,0,p
+0,0,0,1255,2077,0,p
+0,0,0,1255,2078,0,p
+0,0,0,1255,2084,0,p
+0,0,0,1255,1371,0,p
+0,0,0,1255,1065,0,p
+0,0,0,1255,2079,0,p
+0,0,0,1255,2080,0,p
+0,0,0,1255,2081,0,p
+0,0,0,1255,2082,0,p
+0,0,0,1255,2083,0,p
+0,0,0,1255,2093,0,p
+0,0,0,1255,2854,0,p
+0,0,0,1255,2855,0,p
+0,0,0,1255,2171,0,p
+0,0,0,1255,2172,0,p
+0,0,0,1255,2173,0,p
+0,0,0,1255,2848,0,p
+0,0,0,1255,2849,0,p
+0,0,0,1255,2852,0,p
+0,0,0,1255,2850,0,p
+0,0,0,1255,2851,0,p
+0,0,0,1255,2621,0,p
+0,0,0,1255,2622,0,p
+0,0,0,1255,2623,0,p
+0,0,0,1255,2624,0,p
+0,0,0,1255,2625,0,p
+0,0,0,1255,2626,0,p
+0,0,0,1255,6030,0,p
+0,0,0,1255,2100,0,p
+0,0,0,1255,2101,0,p
+0,0,0,1255,2102,0,p
+0,0,0,1255,2103,0,p
+0,0,0,1255,2104,0,p
+0,0,0,1255,2105,0,p
+0,0,0,1255,2106,0,p
+0,0,0,1255,2107,0,p
+0,0,0,1255,2108,0,p
+0,0,0,1255,2109,0,p
+0,0,0,1255,2110,0,p
+0,0,0,1255,2111,0,p
+0,0,0,1255,2112,0,p
+0,0,0,1255,2113,0,p
+0,0,0,1255,2114,0,p
+0,0,0,1255,2115,0,p
+0,0,0,1255,2116,0,p
+0,0,0,1255,2117,0,p
+0,0,0,1255,2118,0,p
+0,0,0,1255,2119,0,p
+0,0,0,1255,2120,0,p
+0,0,0,1255,2121,0,p
+0,0,0,1255,2122,0,p
+0,0,0,1255,2123,0,p
+0,0,0,1255,2124,0,p
+0,0,0,1255,2125,0,p
+0,0,0,1255,2126,0,p
+0,0,0,1255,2127,0,p
+0,0,0,1255,2128,0,p
+0,0,0,1255,2129,0,p
+0,0,0,1255,2130,0,p
+0,0,0,1255,2050,0,p
+0,0,0,1255,2244,0,p
+0,0,0,1255,2797,0,p
+0,0,0,1255,2131,0,p
+0,0,0,1255,2132,0,p
+0,0,0,1255,2133,0,p
+0,0,0,1255,2134,0,p
+0,0,0,1255,2135,0,p
+0,0,0,1255,2136,0,p
+0,0,0,1255,2137,0,p
+0,0,0,1255,2138,0,p
+0,0,0,1255,2139,0,p
+0,0,0,1255,2140,0,p
+0,0,0,1255,2141,0,p
+0,0,0,1255,2142,0,p
+0,0,0,1255,2143,0,p
+0,0,0,1255,2144,0,p
+0,0,0,1255,2145,0,p
+0,0,0,1255,2146,0,p
+0,0,0,1255,2051,0,p
+0,0,0,1255,2245,0,p
+0,0,0,1255,2798,0,p
+0,0,0,1255,2147,0,p
+0,0,0,1255,2803,0,p
+0,0,0,1255,2718,0,p
+0,0,0,1255,2719,0,p
+0,0,0,1255,2720,0,p
+0,0,0,1255,2721,0,p
+0,0,0,1255,2722,0,p
+0,0,0,1255,2723,0,p
+0,0,0,1255,2641,0,p
+0,0,0,1255,2642,0,p
+0,0,0,1255,2643,0,p
+0,0,0,1255,2644,0,p
+0,0,0,1255,2645,0,p
+0,0,0,1255,2646,0,p
+0,0,0,1255,2148,0,p
+0,0,0,1255,2149,0,p
+0,0,0,1255,2150,0,p
+0,0,0,1255,2151,0,p
+0,0,0,1255,2152,0,p
+0,0,0,1255,2153,0,p
+0,0,0,1255,2724,0,p
+0,0,0,1255,2725,0,p
+0,0,0,1255,2726,0,p
+0,0,0,1255,2727,0,p
+0,0,0,1255,2728,0,p
+0,0,0,1255,2729,0,p
+0,0,0,1255,2712,0,p
+0,0,0,1255,2713,0,p
+0,0,0,1255,2714,0,p
+0,0,0,1255,2715,0,p
+0,0,0,1255,2716,0,p
+0,0,0,1255,2717,0,p
+0,0,0,1255,2154,0,p
+0,0,0,1255,2155,0,p
+0,0,0,1255,2156,0,p
+0,0,0,1255,2157,0,p
+0,0,0,1255,2158,0,p
+0,0,0,1255,2159,0,p
+0,0,0,1255,6013,0,p
+0,0,0,1255,2818,0,p
+0,0,0,1255,2819,0,p
+0,0,0,1255,2820,0,p
+0,0,0,1255,2821,0,p
+0,0,0,1255,2822,0,p
+0,0,0,1255,2823,0,p
+0,0,0,1255,2824,0,p
+0,0,0,1255,2825,0,p
+0,0,0,1255,2826,0,p
+0,0,0,1255,2827,0,p
+0,0,0,1255,2828,0,p
+0,0,0,1255,2829,0,p
+0,0,0,1255,2160,0,p
+0,0,0,1255,2161,0,p
+0,0,0,1255,2162,0,p
+0,0,0,1255,2163,0,p
+0,0,0,1255,2164,0,p
+0,0,0,1255,2165,0,p
+0,0,0,1255,2166,0,p
+0,0,0,1255,7000,0,p
+0,0,0,1255,7001,0,p
+0,0,0,1255,7002,0,p
+0,0,0,1255,7003,0,p
+0,0,0,1255,7004,0,p
+0,0,0,1255,7005,0,p
+0,0,0,1255,7006,0,p
+0,0,0,1255,7007,0,p
+0,0,0,1255,7017,0,p
+0,0,0,1255,7018,0,p
+0,0,0,1255,7019,0,p
+0,0,0,1255,7020,0,p
+0,0,0,1255,7021,0,p
+0,0,0,1255,7022,0,p
+0,0,0,1255,7023,0,p
+0,0,0,1255,7024,0,p
+0,0,0,1255,7025,0,p
+0,0,0,1255,7026,0,p
+0,0,0,1255,7027,0,p
+0,0,0,1255,7028,0,p
+0,0,0,1255,7029,0,p
+0,0,0,1255,7030,0,p
+0,0,0,1255,7031,0,p
+0,0,0,1255,7032,0,p
+0,0,0,1255,7033,0,p
+0,0,0,1255,7034,0,p
+0,0,0,1255,7035,0,p
+0,0,0,1255,7036,0,p
+0,0,0,1255,7037,0,p
+0,0,0,1255,7038,0,p
+0,0,0,1255,7039,0,p
+0,0,0,1255,7040,0,p
+0,0,0,1255,7041,0,p
+0,0,0,1255,7042,0,p
+0,0,0,1255,7043,0,p
+0,0,0,1255,7044,0,p
+0,0,0,1255,7045,0,p
+0,0,0,1255,7046,0,p
+0,0,0,1255,7047,0,p
+0,0,0,1255,7232,0,p
+0,0,0,1255,7256,0,p
+0,0,0,1255,7272,0,p
+0,0,0,1255,7288,0,p
+0,0,0,1255,7012,0,p
+0,0,0,1255,7013,0,p
+0,0,0,1255,7014,0,p
+0,0,0,1255,7015,0,p
+0,0,0,1255,7016,0,p
+0,0,0,1255,7063,0,p
+0,0,0,1255,7072,0,p
+0,0,0,1255,7073,0,p
+0,0,0,1255,7048,0,p
+0,0,0,1255,7049,0,p
+0,0,0,1255,7050,0,p
+0,0,0,1255,7051,0,p
+0,0,0,1255,7052,0,p
+0,0,0,1255,7053,0,p
+0,0,0,1255,7054,0,p
+0,0,0,1255,7055,0,p
+0,0,0,1255,7056,0,p
+0,0,0,1255,7057,0,p
+0,0,0,1255,7058,0,p
+0,0,0,1255,7059,0,p
+0,0,0,1255,7060,0,p
+0,0,0,1255,7061,0,p
+0,0,0,1255,7062,0,p
+0,0,0,1255,7064,0,p
+0,0,0,1255,7065,0,p
+0,0,0,1255,7066,0,p
+0,0,0,1255,7067,0,p
+0,0,0,1255,7068,0,p
+0,0,0,1255,7069,0,p
+0,0,0,1255,7070,0,p
+0,0,0,1255,7071,0,p
+0,0,0,1255,7238,0,p
+0,0,0,1255,7258,0,p
+0,0,0,1255,7274,0,p
+0,0,0,1255,7290,0,p
+0,0,0,1255,7675,0,p
+0,0,0,1255,7491,0,p
+0,0,0,1255,7493,0,p
+0,0,0,1255,7495,0,p
+0,0,0,1255,7497,0,p
+0,0,0,1255,7499,0,p
+0,0,0,1255,7501,0,p
+0,0,0,1255,7503,0,p
+0,0,0,1255,7505,0,p
+0,0,0,1255,7507,0,p
+0,0,0,1255,7509,0,p
+0,0,0,1255,7511,0,p
+0,0,0,1255,7513,0,p
+0,0,0,1255,7515,0,p
+0,0,0,1255,7517,0,p
+0,0,0,1255,7519,0,p
+0,0,0,1255,7521,0,p
+0,0,0,1255,7523,0,p
+0,0,0,1255,7525,0,p
+0,0,0,1255,7527,0,p
+0,0,0,1255,7529,0,p
+0,0,0,1255,7531,0,p
+0,0,0,1255,7533,0,p
+0,0,0,1255,7535,0,p
+0,0,0,1255,7537,0,p
+0,0,0,1255,7539,0,p
+0,0,0,1255,7541,0,p
+0,0,0,1255,7543,0,p
+0,0,0,1255,7545,0,p
+0,0,0,1255,7547,0,p
+0,0,0,1255,7549,0,p
+0,0,0,1255,7551,0,p
+0,0,0,1255,7553,0,p
+0,0,0,1255,7555,0,p
+0,0,0,1255,7557,0,p
+0,0,0,1255,7559,0,p
+0,0,0,1255,7561,0,p
+0,0,0,1255,7563,0,p
+0,0,0,1255,7565,0,p
+0,0,0,1255,7567,0,p
+0,0,0,1255,7569,0,p
+0,0,0,1255,7571,0,p
+0,0,0,1255,7573,0,p
+0,0,0,1255,7575,0,p
+0,0,0,1255,7577,0,p
+0,0,0,1255,7579,0,p
+0,0,0,1255,7581,0,p
+0,0,0,1255,7583,0,p
+0,0,0,1255,7585,0,p
+0,0,0,1255,7587,0,p
+0,0,0,1255,7589,0,p
+0,0,0,1255,7591,0,p
+0,0,0,1255,7593,0,p
+0,0,0,1255,7595,0,p
+0,0,0,1255,7597,0,p
+0,0,0,1255,7599,0,p
+0,0,0,1255,7601,0,p
+0,0,0,1255,7603,0,p
+0,0,0,1255,7605,0,p
+0,0,0,1255,7607,0,p
+0,0,0,1255,7609,0,p
+0,0,0,1255,7611,0,p
+0,0,0,1255,7613,0,p
+0,0,0,1255,7615,0,p
+0,0,0,1255,7617,0,p
+0,0,0,1255,7619,0,p
+0,0,0,1255,7621,0,p
+0,0,0,1255,7623,0,p
+0,0,0,1255,7625,0,p
+0,0,0,1255,7627,0,p
+0,0,0,1255,7629,0,p
+0,0,0,1255,7631,0,p
+0,0,0,1255,7633,0,p
+0,0,0,1255,7635,0,p
+0,0,0,1255,7637,0,p
+0,0,0,1255,7639,0,p
+0,0,0,1255,7641,0,p
+0,0,0,1255,7643,0,p
+0,0,0,1255,7645,0,p
+0,0,0,1255,7647,0,p
+0,0,0,1255,7649,0,p
+0,0,0,1255,7651,0,p
+0,0,0,1255,7653,0,p
+0,0,0,1255,7655,0,p
+0,0,0,1255,7657,0,p
+0,0,0,1255,7659,0,p
+0,0,0,1255,7661,0,p
+0,0,0,1255,7663,0,p
+0,0,0,1255,7665,0,p
+0,0,0,1255,7667,0,p
+0,0,0,1255,7669,0,p
+0,0,0,1255,7671,0,p
+0,0,0,1255,7673,0,p
+0,0,0,1255,7211,0,p
+0,0,0,1255,7212,0,p
+0,0,0,1255,7213,0,p
+0,0,0,1255,7226,0,p
+0,0,0,1255,7228,0,p
+0,0,0,1255,7230,0,p
+0,0,0,1255,7250,0,p
+0,0,0,1255,7252,0,p
+0,0,0,1255,7254,0,p
+0,0,0,1255,7266,0,p
+0,0,0,1255,7268,0,p
+0,0,0,1255,7270,0,p
+0,0,0,1255,7011,0,p
+0,0,0,1255,7074,0,p
+0,0,0,1255,7075,0,p
+0,0,0,1255,7310,0,p
+0,0,0,1255,7312,0,p
+0,0,0,1255,7314,0,p
+0,0,0,1255,7316,0,p
+0,0,0,1255,7318,0,p
+0,0,0,1255,7320,0,p
+0,0,0,1255,7322,0,p
+0,0,0,1255,7324,0,p
+0,0,0,1255,7326,0,p
+0,0,0,1255,7328,0,p
+0,0,0,1255,7330,0,p
+0,0,0,1255,7332,0,p
+0,0,0,1255,7334,0,p
+0,0,0,1255,7336,0,p
+0,0,0,1255,7338,0,p
+0,0,0,1255,7340,0,p
+0,0,0,1255,7342,0,p
+0,0,0,1255,7344,0,p
+0,0,0,1255,7346,0,p
+0,0,0,1255,7348,0,p
+0,0,0,1255,7350,0,p
+0,0,0,1255,7352,0,p
+0,0,0,1255,7354,0,p
+0,0,0,1255,7356,0,p
+0,0,0,1255,7358,0,p
+0,0,0,1255,7360,0,p
+0,0,0,1255,7362,0,p
+0,0,0,1255,7364,0,p
+0,0,0,1255,7366,0,p
+0,0,0,1255,7368,0,p
+0,0,0,1255,7370,0,p
+0,0,0,1255,7372,0,p
+0,0,0,1255,7374,0,p
+0,0,0,1255,7376,0,p
+0,0,0,1255,7378,0,p
+0,0,0,1255,7380,0,p
+0,0,0,1255,7382,0,p
+0,0,0,1255,7384,0,p
+0,0,0,1255,7386,0,p
+0,0,0,1255,7388,0,p
+0,0,0,1255,7390,0,p
+0,0,0,1255,7392,0,p
+0,0,0,1255,7394,0,p
+0,0,0,1255,7396,0,p
+0,0,0,1255,7398,0,p
+0,0,0,1255,7400,0,p
+0,0,0,1255,7402,0,p
+0,0,0,1255,7404,0,p
+0,0,0,1255,7406,0,p
+0,0,0,1255,7408,0,p
+0,0,0,1255,7410,0,p
+0,0,0,1255,7412,0,p
+0,0,0,1255,7414,0,p
+0,0,0,1255,7416,0,p
+0,0,0,1255,7418,0,p
+0,0,0,1255,7420,0,p
+0,0,0,1255,7422,0,p
+0,0,0,1255,7424,0,p
+0,0,0,1255,7426,0,p
+0,0,0,1255,7428,0,p
+0,0,0,1255,7430,0,p
+0,0,0,1255,7432,0,p
+0,0,0,1255,7434,0,p
+0,0,0,1255,7436,0,p
+0,0,0,1255,7438,0,p
+0,0,0,1255,7440,0,p
+0,0,0,1255,7442,0,p
+0,0,0,1255,7444,0,p
+0,0,0,1255,7446,0,p
+0,0,0,1255,7448,0,p
+0,0,0,1255,7450,0,p
+0,0,0,1255,7452,0,p
+0,0,0,1255,7454,0,p
+0,0,0,1255,7456,0,p
+0,0,0,1255,7458,0,p
+0,0,0,1255,7460,0,p
+0,0,0,1255,7462,0,p
+0,0,0,1255,7464,0,p
+0,0,0,1255,7466,0,p
+0,0,0,1255,7468,0,p
+0,0,0,1255,7470,0,p
+0,0,0,1255,7472,0,p
+0,0,0,1255,7474,0,p
+0,0,0,1255,7476,0,p
+0,0,0,1255,7478,0,p
+0,0,0,1255,7480,0,p
+0,0,0,1255,7482,0,p
+0,0,0,1255,7484,0,p
+0,0,0,1255,7486,0,p
+0,0,0,1255,7488,0,p
+0,0,0,1255,7214,0,p
+0,0,0,1255,7215,0,p
+0,0,0,1255,7216,0,p
+0,0,0,1255,7220,0,p
+0,0,0,1255,7222,0,p
+0,0,0,1255,7224,0,p
+0,0,0,1255,7244,0,p
+0,0,0,1255,7246,0,p
+0,0,0,1255,7248,0,p
+0,0,0,1255,7260,0,p
+0,0,0,1255,7262,0,p
+0,0,0,1255,7264,0,p
+0,0,0,1255,2174,0,p
+0,0,0,1255,2175,0,p
+0,0,0,1255,2176,0,p
+0,0,0,1255,2177,0,p
+0,0,0,1255,2178,0,p
+0,0,0,1255,2179,0,p
+0,0,0,1255,2180,0,p
+0,0,0,1255,2181,0,p
+0,0,0,1255,2182,0,p
+0,0,0,1255,2183,0,p
+0,0,0,1255,2184,0,p
+0,0,0,1255,2185,0,p
+0,0,0,1255,2186,0,p
+0,0,0,1255,2187,0,p
+0,0,0,1255,2188,0,p
+0,0,0,1255,2189,0,p
+0,0,0,1255,2190,0,p
+0,0,0,1255,2191,0,p
+0,0,0,1255,2192,0,p
+0,0,0,1255,2193,0,p
+0,0,0,1255,2194,0,p
+0,0,0,1255,2195,0,p
+0,0,0,1255,2212,0,p
+0,0,0,1255,2213,0,p
+0,0,0,1255,2214,0,p
+0,0,0,1255,2215,0,p
+0,0,0,1255,2216,0,p
+0,0,0,1255,2217,0,p
+0,0,0,1255,2218,0,p
+0,0,0,1255,2219,0,p
+0,0,0,1255,2220,0,p
+0,0,0,1255,2221,0,p
+0,0,0,1255,1079,0,p
+0,0,0,1255,2246,0,p
+0,0,0,1255,2247,0,p
+0,0,0,1255,2248,0,p
+0,0,0,1255,2250,0,p
+0,0,0,1255,2251,0,p
+0,0,0,1255,2252,0,p
+0,0,0,1255,2253,0,p
+0,0,0,1255,2254,0,p
+0,0,0,1255,2255,0,p
+0,0,0,1255,2256,0,p
+0,0,0,1255,2257,0,p
+0,0,0,1255,2258,0,p
+0,0,0,1255,2259,0,p
+0,0,0,1255,2260,0,p
+0,0,0,1255,2261,0,p
+0,0,0,1255,2262,0,p
+0,0,0,1255,2263,0,p
+0,0,0,1255,2264,0,p
+0,0,0,1255,2265,0,p
+0,0,0,1255,2266,0,p
+0,0,0,1255,2267,0,p
+0,0,0,1255,2268,0,p
+0,0,0,1255,2269,0,p
+0,0,0,1255,2270,0,p
+0,0,0,1255,2271,0,p
+0,0,0,1255,2272,0,p
+0,0,0,1255,2273,0,p
+0,0,0,1255,2390,0,p
+0,0,0,1255,2391,0,p
+0,0,0,1255,2392,0,p
+0,0,0,1255,2393,0,p
+0,0,0,1255,2394,0,p
+0,0,0,1255,2395,0,p
+0,0,0,1255,2705,0,p
+0,0,0,1255,2706,0,p
+0,0,0,1255,2707,0,p
+0,0,0,1255,2708,0,p
+0,0,0,1255,2709,0,p
+0,0,0,1255,2710,0,p
+0,0,0,1255,1269,0,p
+0,0,0,1255,2322,0,p
+0,0,0,1255,2323,0,p
+0,0,0,1255,2324,0,p
+0,0,0,1255,2168,0,p
+0,0,0,1255,2325,0,p
+0,0,0,1255,2289,0,p
+0,0,0,1255,2286,0,p
+0,0,0,1255,2287,0,p
+0,0,0,1255,2288,0,p
+0,0,0,1255,2290,0,p
+0,0,0,1255,2291,0,p
+0,0,0,1255,2292,0,p
+0,0,0,1255,2293,0,p
+0,0,0,1255,2294,0,p
+0,0,0,1255,2295,0,p
+0,0,0,1255,2296,0,p
+0,0,0,1255,2297,0,p
+0,0,0,1255,2298,0,p
+0,0,0,1255,2299,0,p
+0,0,0,1255,2300,0,p
+0,0,0,1255,2301,0,p
+0,0,0,1255,2302,0,p
+0,0,0,1255,2303,0,p
+0,0,0,1255,2304,0,p
+0,0,0,1255,2305,0,p
+0,0,0,1255,2306,0,p
+0,0,0,1255,2307,0,p
+0,0,0,1255,2312,0,p
+0,0,0,1255,2313,0,p
+0,0,0,1255,2398,0,p
+0,0,0,1255,2399,0,p
+0,0,0,1255,2597,0,p
+0,0,0,1255,2598,0,p
+0,0,0,1255,2311,0,p
+0,0,0,1255,2321,0,p
+0,0,0,1255,2338,0,p
+0,0,0,1255,2339,0,p
+0,0,0,1255,2340,0,p
+0,0,0,1255,2341,0,p
+0,0,0,1255,2342,0,p
+0,0,0,1255,2343,0,p
+0,0,0,1255,2344,0,p
+0,0,0,1255,2351,0,p
+0,0,0,1255,2352,0,p
+0,0,0,1255,2353,0,p
+0,0,0,1255,2354,0,p
+0,0,0,1255,2355,0,p
+0,0,0,1255,2356,0,p
+0,0,0,1255,2357,0,p
+0,0,0,1255,2364,0,p
+0,0,0,1255,2365,0,p
+0,0,0,1255,2366,0,p
+0,0,0,1255,2367,0,p
+0,0,0,1255,2368,0,p
+0,0,0,1255,2369,0,p
+0,0,0,1255,2370,0,p
+0,0,0,1255,2377,0,p
+0,0,0,1255,2378,0,p
+0,0,0,1255,2379,0,p
+0,0,0,1255,2380,0,p
+0,0,0,1255,2381,0,p
+0,0,0,1255,2382,0,p
+0,0,0,1255,2383,0,p
+0,0,0,1255,2520,0,p
+0,0,0,1255,2521,0,p
+0,0,0,1255,2522,0,p
+0,0,0,1255,2523,0,p
+0,0,0,1255,2524,0,p
+0,0,0,1255,2525,0,p
+0,0,0,1255,2526,0,p
+0,0,0,1255,2527,0,p
+0,0,0,1255,2528,0,p
+0,0,0,1255,2529,0,p
+0,0,0,1255,2530,0,p
+0,0,0,1255,2531,0,p
+0,0,0,1255,2532,0,p
+0,0,0,1255,2533,0,p
+0,0,0,1255,2400,0,p
+0,0,0,1255,2401,0,p
+0,0,0,1255,2402,0,p
+0,0,0,1255,2403,0,p
+0,0,0,1255,2404,0,p
+0,0,0,1255,2405,0,p
+0,0,0,1255,2406,0,p
+0,0,0,1255,2407,0,p
+0,0,0,1255,2408,0,p
+0,0,0,1255,2409,0,p
+0,0,0,1255,2410,0,p
+0,0,0,1255,2411,0,p
+0,0,0,1255,2412,0,p
+0,0,0,1255,2413,0,p
+0,0,0,1255,2414,0,p
+0,0,0,1255,2415,0,p
+0,0,0,1255,2416,0,p
+0,0,0,1255,2417,0,p
+0,0,0,1255,2418,0,p
+0,0,0,1255,2419,0,p
+0,0,0,1255,2420,0,p
+0,0,0,1255,2421,0,p
+0,0,0,1255,2422,0,p
+0,0,0,1255,2423,0,p
+0,0,0,1255,2424,0,p
+0,0,0,1255,2425,0,p
+0,0,0,1255,2426,0,p
+0,0,0,1255,2427,0,p
+0,0,0,1255,2428,0,p
+0,0,0,1255,2429,0,p
+0,0,0,1255,2430,0,p
+0,0,0,1255,2431,0,p
+0,0,0,1255,2432,0,p
+0,0,0,1255,2433,0,p
+0,0,0,1255,2434,0,p
+0,0,0,1255,2435,0,p
+0,0,0,1255,2436,0,p
+0,0,0,1255,2437,0,p
+0,0,0,1255,2438,0,p
+0,0,0,1255,2439,0,p
+0,0,0,1255,2440,0,p
+0,0,0,1255,2441,0,p
+0,0,0,1255,2442,0,p
+0,0,0,1255,2443,0,p
+0,0,0,1255,2444,0,p
+0,0,0,1255,2445,0,p
+0,0,0,1255,2446,0,p
+0,0,0,1255,2447,0,p
+0,0,0,1255,2448,0,p
+0,0,0,1255,2449,0,p
+0,0,0,1255,2450,0,p
+0,0,0,1255,2451,0,p
+0,0,0,1255,2452,0,p
+0,0,0,1255,2453,0,p
+0,0,0,1255,2454,0,p
+0,0,0,1255,2455,0,p
+0,0,0,1255,2456,0,p
+0,0,0,1255,2457,0,p
+0,0,0,1255,2458,0,p
+0,0,0,1255,2459,0,p
+0,0,0,1255,2460,0,p
+0,0,0,1255,2461,0,p
+0,0,0,1255,2462,0,p
+0,0,0,1255,2463,0,p
+0,0,0,1255,2464,0,p
+0,0,0,1255,2465,0,p
+0,0,0,1255,2466,0,p
+0,0,0,1255,2467,0,p
+0,0,0,1255,2468,0,p
+0,0,0,1255,2469,0,p
+0,0,0,1255,2470,0,p
+0,0,0,1255,2471,0,p
+0,0,0,1255,2472,0,p
+0,0,0,1255,2473,0,p
+0,0,0,1255,2474,0,p
+0,0,0,1255,2475,0,p
+0,0,0,1255,2476,0,p
+0,0,0,1255,2477,0,p
+0,0,0,1255,2478,0,p
+0,0,0,1255,2479,0,p
+0,0,0,1255,2480,0,p
+0,0,0,1255,2481,0,p
+0,0,0,1255,2482,0,p
+0,0,0,1255,2483,0,p
+0,0,0,1255,2484,0,p
+0,0,0,1255,2485,0,p
+0,0,0,1255,2486,0,p
+0,0,0,1255,2487,0,p
+0,0,0,1255,2488,0,p
+0,0,0,1255,2489,0,p
+0,0,0,1255,2490,0,p
+0,0,0,1255,2491,0,p
+0,0,0,1255,2492,0,p
+0,0,0,1255,2493,0,p
+0,0,0,1255,2494,0,p
+0,0,0,1255,2495,0,p
+0,0,0,1255,2496,0,p
+0,0,0,1255,2497,0,p
+0,0,0,1255,2498,0,p
+0,0,0,1255,2499,0,p
+0,0,0,1255,2500,0,p
+0,0,0,1255,2501,0,p
+0,0,0,1255,2502,0,p
+0,0,0,1255,2503,0,p
+0,0,0,1255,2504,0,p
+0,0,0,1255,2505,0,p
+0,0,0,1255,2506,0,p
+0,0,0,1255,2507,0,p
+0,0,0,1255,2508,0,p
+0,0,0,1255,2509,0,p
+0,0,0,1255,2510,0,p
+0,0,0,1255,2511,0,p
+0,0,0,1255,2599,0,p
+0,0,0,1255,2856,0,p
+0,0,0,1255,1066,0,p
+0,0,0,1255,1067,0,p
+0,0,0,1255,1068,0,p
+0,0,0,1255,1069,0,p
+0,0,0,1255,2515,0,p
+0,0,0,1255,2516,0,p
+0,0,0,1255,2517,0,p
+0,0,0,1255,2518,0,p
+0,0,0,1255,2519,0,p
+0,0,0,1255,2236,0,p
+0,0,0,1255,2237,0,p
+0,0,0,1255,2238,0,p
+0,0,0,1255,2239,0,p
+0,0,0,1255,2240,0,p
+0,0,0,1255,2241,0,p
+0,0,0,1255,2242,0,p
+0,0,0,1255,2243,0,p
+0,0,0,1255,2546,0,p
+0,0,0,1255,2547,0,p
+0,0,0,1255,2548,0,p
+0,0,0,1255,2549,0,p
+0,0,0,1255,2550,0,p
+0,0,0,1255,2556,0,p
+0,0,0,1255,2557,0,p
+0,0,0,1255,2558,0,p
+0,0,0,1255,2559,0,p
+0,0,0,1255,2560,0,p
+0,0,0,1255,2562,0,p
+0,0,0,1255,2563,0,p
+0,0,0,1255,2564,0,p
+0,0,0,1255,2565,0,p
+0,0,0,1255,2566,0,p
+0,0,0,1255,2567,0,p
+0,0,0,1255,2568,0,p
+0,0,0,1255,2569,0,p
+0,0,0,1255,2587,0,p
+0,0,0,1255,2588,0,p
+0,0,0,1255,2578,0,p
+0,0,0,1255,2579,0,p
+0,0,0,1255,2580,0,p
+0,0,0,1255,2581,0,p
+0,0,0,1255,2582,0,p
+0,0,0,1255,2583,0,p
+0,0,0,1255,2584,0,p
+0,0,0,1255,2585,0,p
+0,0,0,1255,2586,0,p
+0,0,0,1255,2591,0,p
+0,0,0,1255,2592,0,p
+0,0,0,1255,2730,0,p
+0,0,0,1255,2731,0,p
+0,0,0,1255,2732,0,p
+0,0,0,1255,2733,0,p
+0,0,0,1255,2734,0,p
+0,0,0,1255,2735,0,p
+0,0,0,1255,2736,0,p
+0,0,0,1255,2737,0,p
+0,0,0,1255,2738,0,p
+0,0,0,1255,2739,0,p
+0,0,0,1255,2740,0,p
+0,0,0,1255,2741,0,p
+0,0,0,1255,2788,0,p
+0,0,0,1255,3200,0,p
+0,0,0,1255,3201,0,p
+0,0,0,1255,3202,0,p
+0,0,0,1255,3203,0,p
+0,0,0,1255,3204,0,p
+0,0,0,1255,3205,0,p
+0,0,0,1255,3206,0,p
+0,0,0,1255,3208,0,p
+0,0,0,1255,3209,0,p
+0,0,0,1255,3210,0,p
+0,0,0,1255,3211,0,p
+0,0,0,1255,3212,0,p
+0,0,0,1255,3213,0,p
+0,0,0,1255,3214,0,p
+0,0,0,1255,3215,0,p
+0,0,0,1255,3216,0,p
+0,0,0,1255,3217,0,p
+0,0,0,1255,3218,0,p
+0,0,0,1255,3219,0,p
+0,0,0,1255,3225,0,p
+0,0,0,1255,3226,0,p
+0,0,0,1255,3227,0,p
+0,0,0,1255,3228,0,p
+0,0,0,1255,3229,0,p
+0,0,0,1255,3230,0,p
+0,0,0,1255,3240,0,p
+0,0,0,1255,3252,0,p
+0,0,0,1255,3253,0,p
+0,0,0,1255,3254,0,p
+0,0,0,1255,3255,0,p
+0,0,0,1255,3256,0,p
+0,0,0,1255,3257,0,p
+0,0,0,1255,3258,0,p
+0,0,0,1255,3259,0,p
+0,0,0,1255,3260,0,p
+0,0,0,1255,3261,0,p
+0,0,0,1255,3262,0,p
+0,0,0,1255,6003,0,p
+0,0,0,1255,6004,0,p
+0,0,0,1255,6005,0,p
+0,0,0,1255,6006,0,p
+0,0,0,1255,6007,0,p
+0,0,0,1255,6008,0,p
+0,0,0,1255,3104,0,p
+0,0,0,1255,6009,0,p
+0,0,0,1255,6010,0,p
+0,0,0,1255,3111,0,p
+0,0,0,1255,6011,0,p
+0,0,0,1255,6015,0,p
+0,0,0,1255,3105,0,p
+0,0,0,1255,6016,0,p
+0,0,0,1255,6017,0,p
+0,0,0,1255,3110,0,p
+0,0,0,1255,6018,0,p
+0,0,0,1255,6014,0,p
+0,0,0,1255,6021,0,p
+0,0,0,1255,6022,0,p
+0,0,0,1255,6023,0,p
+0,0,0,1255,6035,0,p
+0,0,0,1255,6036,0,p
+0,0,0,1255,6037,0,p
+0,0,0,1255,6043,0,p
+0,0,0,1255,6044,0,p
+0,0,0,1255,7100,0,p
+0,0,0,1255,7101,0,p
+0,0,0,1255,7102,0,p
+0,0,0,1255,7490,0,p
+0,0,0,1255,7492,0,p
+0,0,0,1255,7494,0,p
+0,0,0,1255,7496,0,p
+0,0,0,1255,7498,0,p
+0,0,0,1255,7500,0,p
+0,0,0,1255,7502,0,p
+0,0,0,1255,7504,0,p
+0,0,0,1255,7506,0,p
+0,0,0,1255,7508,0,p
+0,0,0,1255,7510,0,p
+0,0,0,1255,7512,0,p
+0,0,0,1255,7514,0,p
+0,0,0,1255,7516,0,p
+0,0,0,1255,7518,0,p
+0,0,0,1255,7520,0,p
+0,0,0,1255,7522,0,p
+0,0,0,1255,7524,0,p
+0,0,0,1255,7526,0,p
+0,0,0,1255,7528,0,p
+0,0,0,1255,7530,0,p
+0,0,0,1255,7532,0,p
+0,0,0,1255,7534,0,p
+0,0,0,1255,7536,0,p
+0,0,0,1255,7538,0,p
+0,0,0,1255,7540,0,p
+0,0,0,1255,7542,0,p
+0,0,0,1255,7544,0,p
+0,0,0,1255,7546,0,p
+0,0,0,1255,7548,0,p
+0,0,0,1255,7550,0,p
+0,0,0,1255,7552,0,p
+0,0,0,1255,7554,0,p
+0,0,0,1255,7556,0,p
+0,0,0,1255,7558,0,p
+0,0,0,1255,7560,0,p
+0,0,0,1255,7562,0,p
+0,0,0,1255,7564,0,p
+0,0,0,1255,7566,0,p
+0,0,0,1255,7568,0,p
+0,0,0,1255,7570,0,p
+0,0,0,1255,7572,0,p
+0,0,0,1255,7574,0,p
+0,0,0,1255,7576,0,p
+0,0,0,1255,7578,0,p
+0,0,0,1255,7580,0,p
+0,0,0,1255,7582,0,p
+0,0,0,1255,7584,0,p
+0,0,0,1255,7586,0,p
+0,0,0,1255,7588,0,p
+0,0,0,1255,7590,0,p
+0,0,0,1255,7592,0,p
+0,0,0,1255,7594,0,p
+0,0,0,1255,7596,0,p
+0,0,0,1255,7598,0,p
+0,0,0,1255,7600,0,p
+0,0,0,1255,7602,0,p
+0,0,0,1255,7604,0,p
+0,0,0,1255,7606,0,p
+0,0,0,1255,7608,0,p
+0,0,0,1255,7610,0,p
+0,0,0,1255,7612,0,p
+0,0,0,1255,7614,0,p
+0,0,0,1255,7616,0,p
+0,0,0,1255,7618,0,p
+0,0,0,1255,7620,0,p
+0,0,0,1255,7622,0,p
+0,0,0,1255,7624,0,p
+0,0,0,1255,7626,0,p
+0,0,0,1255,7628,0,p
+0,0,0,1255,7630,0,p
+0,0,0,1255,7632,0,p
+0,0,0,1255,7634,0,p
+0,0,0,1255,7636,0,p
+0,0,0,1255,7638,0,p
+0,0,0,1255,7640,0,p
+0,0,0,1255,7642,0,p
+0,0,0,1255,7644,0,p
+0,0,0,1255,7646,0,p
+0,0,0,1255,7648,0,p
+0,0,0,1255,7650,0,p
+0,0,0,1255,7652,0,p
+0,0,0,1255,7654,0,p
+0,0,0,1255,7656,0,p
+0,0,0,1255,7658,0,p
+0,0,0,1255,7660,0,p
+0,0,0,1255,7662,0,p
+0,0,0,1255,7664,0,p
+0,0,0,1255,7666,0,p
+0,0,0,1255,7668,0,p
+0,0,0,1255,7670,0,p
+0,0,0,1255,7672,0,p
+0,0,0,1255,7674,0,p
+0,0,0,1255,7208,0,p
+0,0,0,1255,7209,0,p
+0,0,0,1255,7210,0,p
+0,0,0,1255,7227,0,p
+0,0,0,1255,7229,0,p
+0,0,0,1255,7231,0,p
+0,0,0,1255,7251,0,p
+0,0,0,1255,7253,0,p
+0,0,0,1255,7255,0,p
+0,0,0,1255,7267,0,p
+0,0,0,1255,7269,0,p
+0,0,0,1255,7271,0,p
+0,0,0,1255,7106,0,p
+0,0,0,1255,7104,0,p
+0,0,0,1255,7105,0,p
+0,0,0,1255,7311,0,p
+0,0,0,1255,7313,0,p
+0,0,0,1255,7315,0,p
+0,0,0,1255,7317,0,p
+0,0,0,1255,7319,0,p
+0,0,0,1255,7321,0,p
+0,0,0,1255,7323,0,p
+0,0,0,1255,7325,0,p
+0,0,0,1255,7327,0,p
+0,0,0,1255,7329,0,p
+0,0,0,1255,7331,0,p
+0,0,0,1255,7333,0,p
+0,0,0,1255,7335,0,p
+0,0,0,1255,7337,0,p
+0,0,0,1255,7339,0,p
+0,0,0,1255,7341,0,p
+0,0,0,1255,7343,0,p
+0,0,0,1255,7345,0,p
+0,0,0,1255,7347,0,p
+0,0,0,1255,7349,0,p
+0,0,0,1255,7351,0,p
+0,0,0,1255,7353,0,p
+0,0,0,1255,7355,0,p
+0,0,0,1255,7357,0,p
+0,0,0,1255,7359,0,p
+0,0,0,1255,7361,0,p
+0,0,0,1255,7363,0,p
+0,0,0,1255,7365,0,p
+0,0,0,1255,7367,0,p
+0,0,0,1255,7369,0,p
+0,0,0,1255,7371,0,p
+0,0,0,1255,7373,0,p
+0,0,0,1255,7375,0,p
+0,0,0,1255,7377,0,p
+0,0,0,1255,7379,0,p
+0,0,0,1255,7381,0,p
+0,0,0,1255,7383,0,p
+0,0,0,1255,7385,0,p
+0,0,0,1255,7387,0,p
+0,0,0,1255,7389,0,p
+0,0,0,1255,7391,0,p
+0,0,0,1255,7393,0,p
+0,0,0,1255,7395,0,p
+0,0,0,1255,7397,0,p
+0,0,0,1255,7399,0,p
+0,0,0,1255,7401,0,p
+0,0,0,1255,7403,0,p
+0,0,0,1255,7405,0,p
+0,0,0,1255,7407,0,p
+0,0,0,1255,7409,0,p
+0,0,0,1255,7411,0,p
+0,0,0,1255,7413,0,p
+0,0,0,1255,7415,0,p
+0,0,0,1255,7417,0,p
+0,0,0,1255,7419,0,p
+0,0,0,1255,7421,0,p
+0,0,0,1255,7423,0,p
+0,0,0,1255,7425,0,p
+0,0,0,1255,7427,0,p
+0,0,0,1255,7429,0,p
+0,0,0,1255,7431,0,p
+0,0,0,1255,7433,0,p
+0,0,0,1255,7435,0,p
+0,0,0,1255,7437,0,p
+0,0,0,1255,7439,0,p
+0,0,0,1255,7441,0,p
+0,0,0,1255,7443,0,p
+0,0,0,1255,7445,0,p
+0,0,0,1255,7447,0,p
+0,0,0,1255,7449,0,p
+0,0,0,1255,7451,0,p
+0,0,0,1255,7453,0,p
+0,0,0,1255,7455,0,p
+0,0,0,1255,7457,0,p
+0,0,0,1255,7459,0,p
+0,0,0,1255,7461,0,p
+0,0,0,1255,7463,0,p
+0,0,0,1255,7465,0,p
+0,0,0,1255,7467,0,p
+0,0,0,1255,7469,0,p
+0,0,0,1255,7471,0,p
+0,0,0,1255,7473,0,p
+0,0,0,1255,7475,0,p
+0,0,0,1255,7477,0,p
+0,0,0,1255,7479,0,p
+0,0,0,1255,7481,0,p
+0,0,0,1255,7483,0,p
+0,0,0,1255,7485,0,p
+0,0,0,1255,7487,0,p
+0,0,0,1255,7489,0,p
+0,0,0,1255,7217,0,p
+0,0,0,1255,7218,0,p
+0,0,0,1255,7219,0,p
+0,0,0,1255,7221,0,p
+0,0,0,1255,7223,0,p
+0,0,0,1255,7225,0,p
+0,0,0,1255,7245,0,p
+0,0,0,1255,7247,0,p
+0,0,0,1255,7249,0,p
+0,0,0,1255,7261,0,p
+0,0,0,1255,7263,0,p
+0,0,0,1255,7265,0,p
+0,0,0,1255,7111,0,p
+0,0,0,1255,7112,0,p
+0,0,0,1255,7113,0,p
+0,0,0,1255,7114,0,p
+0,0,0,1255,7115,0,p
+0,0,0,1255,7116,0,p
+0,0,0,1255,7117,0,p
+0,0,0,1255,7118,0,p
+0,0,0,1255,7119,0,p
+0,0,0,1255,7120,0,p
+0,0,0,1255,7121,0,p
+0,0,0,1255,7122,0,p
+0,0,0,1255,7123,0,p
+0,0,0,1255,7124,0,p
+0,0,0,1255,7125,0,p
+0,0,0,1255,7126,0,p
+0,0,0,1255,7127,0,p
+0,0,0,1255,7128,0,p
+0,0,0,1255,7129,0,p
+0,0,0,1255,7130,0,p
+0,0,0,1255,7131,0,p
+0,0,0,1255,7132,0,p
+0,0,0,1255,7133,0,p
+0,0,0,1255,7134,0,p
+0,0,0,1255,7135,0,p
+0,0,0,1255,7136,0,p
+0,0,0,1255,7137,0,p
+0,0,0,1255,7138,0,p
+0,0,0,1255,7139,0,p
+0,0,0,1255,7140,0,p
+0,0,0,1255,7141,0,p
+0,0,0,1255,7233,0,p
+0,0,0,1255,7257,0,p
+0,0,0,1255,7273,0,p
+0,0,0,1255,7289,0,p
+0,0,0,1255,7103,0,p
+0,0,0,1255,7107,0,p
+0,0,0,1255,7108,0,p
+0,0,0,1255,7109,0,p
+0,0,0,1255,7110,0,p
+0,0,0,1255,7165,0,p
+0,0,0,1255,7166,0,p
+0,0,0,1255,7167,0,p
+0,0,0,1255,7168,0,p
+0,0,0,1255,7142,0,p
+0,0,0,1255,7143,0,p
+0,0,0,1255,7144,0,p
+0,0,0,1255,7145,0,p
+0,0,0,1255,7146,0,p
+0,0,0,1255,7147,0,p
+0,0,0,1255,7148,0,p
+0,0,0,1255,7149,0,p
+0,0,0,1255,7150,0,p
+0,0,0,1255,7151,0,p
+0,0,0,1255,7152,0,p
+0,0,0,1255,7153,0,p
+0,0,0,1255,7154,0,p
+0,0,0,1255,7155,0,p
+0,0,0,1255,7157,0,p
+0,0,0,1255,7158,0,p
+0,0,0,1255,7159,0,p
+0,0,0,1255,7160,0,p
+0,0,0,1255,7161,0,p
+0,0,0,1255,7162,0,p
+0,0,0,1255,7163,0,p
+0,0,0,1255,7164,0,p
+0,0,0,1255,7239,0,p
+0,0,0,1255,7259,0,p
+0,0,0,1255,7275,0,p
+0,0,0,1255,7291,0,p
+0,0,0,1255,7204,0,p
+0,0,0,1255,7205,0,p
+0,0,0,1255,7206,0,p
+0,0,0,1255,7207,0,p
+0,0,0,1255,7303,0,p
+0,0,0,1255,7304,0,p
+0,0,0,1255,7305,0,p
+0,0,0,1255,7156,0,p
+0,0,0,1255,2743,0,p
+0,0,0,1255,2744,0,p
+0,0,0,1255,2747,0,p
+0,0,0,1255,2748,0,p
+0,0,0,1255,2749,0,p
+0,0,0,1255,2880,0,p
+0,0,0,1255,2881,0,p
+0,0,0,1255,2882,0,p
+0,0,0,1255,2883,0,p
+0,0,0,1255,2884,0,p
+0,0,0,1255,2885,0,p
+0,0,0,1255,2886,0,p
+0,0,0,1255,2887,0,p
+0,0,0,1255,2888,0,p
+0,0,0,1255,2889,0,p
+0,0,0,1255,2890,0,p
+0,0,0,1255,2891,0,p
+0,0,0,1255,2892,0,p
+0,0,0,1255,3050,0,p
+0,0,0,1255,3051,0,p
+0,0,0,1255,3001,0,p
+0,0,0,1255,3002,0,p
+0,0,0,1255,3003,0,p
+0,0,0,1255,3004,0,p
+0,0,0,1255,3005,0,p
+0,0,0,1255,3006,0,p
+0,0,0,1255,3007,0,p
+0,0,0,1255,3008,0,p
+0,0,0,1255,3009,0,p
+0,0,0,1255,3010,0,p
+0,0,0,1255,3011,0,p
+0,0,0,1255,9999,0,p
+0,0,0,1247,16,0,p
+0,0,0,1247,17,0,p
+0,0,0,1247,18,0,p
+0,0,0,1247,19,0,p
+0,0,0,1247,20,0,p
+0,0,0,1247,21,0,p
+0,0,0,1247,22,0,p
+0,0,0,1247,23,0,p
+0,0,0,1247,24,0,p
+0,0,0,1247,25,0,p
+0,0,0,1247,26,0,p
+0,0,0,1247,27,0,p
+0,0,0,1247,28,0,p
+0,0,0,1247,29,0,p
+0,0,0,1247,30,0,p
+0,0,0,1247,71,0,p
+0,0,0,1247,75,0,p
+0,0,0,1247,81,0,p
+0,0,0,1247,83,0,p
+0,0,0,1247,210,0,p
+0,0,0,1247,600,0,p
+0,0,0,1247,601,0,p
+0,0,0,1247,602,0,p
+0,0,0,1247,603,0,p
+0,0,0,1247,604,0,p
+0,0,0,1247,628,0,p
+0,0,0,1247,629,0,p
+0,0,0,1247,700,0,p
+0,0,0,1247,701,0,p
+0,0,0,1247,702,0,p
+0,0,0,1247,703,0,p
+0,0,0,1247,704,0,p
+0,0,0,1247,705,0,p
+0,0,0,1247,718,0,p
+0,0,0,1247,719,0,p
+0,0,0,1247,790,0,p
+0,0,0,1247,791,0,p
+0,0,0,1247,829,0,p
+0,0,0,1247,869,0,p
+0,0,0,1247,650,0,p
+0,0,0,1247,1000,0,p
+0,0,0,1247,1001,0,p
+0,0,0,1247,1002,0,p
+0,0,0,1247,1003,0,p
+0,0,0,1247,1005,0,p
+0,0,0,1247,1006,0,p
+0,0,0,1247,1007,0,p
+0,0,0,1247,1008,0,p
+0,0,0,1247,1009,0,p
+0,0,0,1247,1028,0,p
+0,0,0,1247,1010,0,p
+0,0,0,1247,1011,0,p
+0,0,0,1247,1012,0,p
+0,0,0,1247,1013,0,p
+0,0,0,1247,1014,0,p
+0,0,0,1247,1015,0,p
+0,0,0,1247,1016,0,p
+0,0,0,1247,1017,0,p
+0,0,0,1247,1018,0,p
+0,0,0,1247,1019,0,p
+0,0,0,1247,1020,0,p
+0,0,0,1247,1021,0,p
+0,0,0,1247,1022,0,p
+0,0,0,1247,1023,0,p
+0,0,0,1247,1024,0,p
+0,0,0,1247,1025,0,p
+0,0,0,1247,1027,0,p
+0,0,0,1247,1033,0,p
+0,0,0,1247,1034,0,p
+0,0,0,1247,1040,0,p
+0,0,0,1247,1041,0,p
+0,0,0,1247,651,0,p
+0,0,0,1247,1042,0,p
+0,0,0,1247,1043,0,p
+0,0,0,1247,1082,0,p
+0,0,0,1247,1083,0,p
+0,0,0,1247,1114,0,p
+0,0,0,1247,1115,0,p
+0,0,0,1247,1182,0,p
+0,0,0,1247,1183,0,p
+0,0,0,1247,1184,0,p
+0,0,0,1247,1185,0,p
+0,0,0,1247,1186,0,p
+0,0,0,1247,1187,0,p
+0,0,0,1247,1231,0,p
+0,0,0,1247,1266,0,p
+0,0,0,1247,1270,0,p
+0,0,0,1247,1560,0,p
+0,0,0,1247,1561,0,p
+0,0,0,1247,1562,0,p
+0,0,0,1247,1563,0,p
+0,0,0,1247,1700,0,p
+0,0,0,1247,1790,0,p
+0,0,0,1247,2201,0,p
+0,0,0,1247,2202,0,p
+0,0,0,1247,2203,0,p
+0,0,0,1247,2204,0,p
+0,0,0,1247,2205,0,p
+0,0,0,1247,2206,0,p
+0,0,0,1247,2207,0,p
+0,0,0,1247,2208,0,p
+0,0,0,1247,2209,0,p
+0,0,0,1247,2210,0,p
+0,0,0,1247,2211,0,p
+0,0,0,1247,3251,0,p
+0,0,0,1247,2249,0,p
+0,0,0,1247,2275,0,p
+0,0,0,1247,2276,0,p
+0,0,0,1247,2277,0,p
+0,0,0,1247,2278,0,p
+0,0,0,1247,2279,0,p
+0,0,0,1247,2280,0,p
+0,0,0,1247,2281,0,p
+0,0,0,1247,2282,0,p
+0,0,0,1247,2283,0,p
+0,0,0,1247,10000,0,p
+0,0,0,1247,10001,0,p
+0,0,0,1247,10002,0,p
+0,0,0,1247,10003,0,p
+0,0,0,1247,10004,0,p
+0,0,0,1247,10005,0,p
+0,0,0,1247,10006,0,p
+0,0,0,1247,10007,0,p
+0,0,0,1247,10008,0,p
+0,0,0,1247,10009,0,p
+0,0,0,1247,10010,0,p
+0,0,0,1247,10011,0,p
+0,0,0,1247,10012,0,p
+0,0,0,1247,10013,0,p
+0,0,0,1247,10014,0,p
+0,0,0,1247,10015,0,p
+0,0,0,1247,10016,0,p
+0,0,0,1247,10017,0,p
+0,0,0,1247,10018,0,p
+0,0,0,1247,10276,0,p
+0,0,0,1247,10277,0,p
+0,0,0,1247,10278,0,p
+0,0,0,1247,10279,0,p
+0,0,0,1247,10280,0,p
+0,0,0,1247,10281,0,p
+0,0,0,1247,10282,0,p
+0,0,0,1247,10283,0,p
+0,0,0,1247,10284,0,p
+0,0,0,1247,10285,0,p
+0,0,0,1247,10286,0,p
+0,0,0,1247,10287,0,p
+0,0,0,1247,10288,0,p
+0,0,0,1247,10289,0,p
+0,0,0,1247,10290,0,p
+0,0,0,1247,10291,0,p
+0,0,0,1247,10292,0,p
+0,0,0,1247,10293,0,p
+0,0,0,1247,10294,0,p
+0,0,0,1247,10295,0,p
+0,0,0,1247,10296,0,p
+0,0,0,1247,10297,0,p
+0,0,0,1247,10298,0,p
+0,0,0,1247,10299,0,p
+0,0,0,1247,10300,0,p
+0,0,0,1247,10301,0,p
+0,0,0,1247,10302,0,p
+0,0,0,1247,10303,0,p
+0,0,0,1247,10304,0,p
+0,0,0,1247,10305,0,p
+0,0,0,2605,10019,0,p
+0,0,0,2605,10020,0,p
+0,0,0,2605,10021,0,p
+0,0,0,2605,10022,0,p
+0,0,0,2605,10023,0,p
+0,0,0,2605,10024,0,p
+0,0,0,2605,10025,0,p
+0,0,0,2605,10026,0,p
+0,0,0,2605,10027,0,p
+0,0,0,2605,10028,0,p
+0,0,0,2605,10029,0,p
+0,0,0,2605,10030,0,p
+0,0,0,2605,10031,0,p
+0,0,0,2605,10032,0,p
+0,0,0,2605,10033,0,p
+0,0,0,2605,10034,0,p
+0,0,0,2605,10035,0,p
+0,0,0,2605,10036,0,p
+0,0,0,2605,10037,0,p
+0,0,0,2605,10038,0,p
+0,0,0,2605,10039,0,p
+0,0,0,2605,10040,0,p
+0,0,0,2605,10041,0,p
+0,0,0,2605,10042,0,p
+0,0,0,2605,10043,0,p
+0,0,0,2605,10044,0,p
+0,0,0,2605,10045,0,p
+0,0,0,2605,10046,0,p
+0,0,0,2605,10047,0,p
+0,0,0,2605,10048,0,p
+0,0,0,2605,10049,0,p
+0,0,0,2605,10050,0,p
+0,0,0,2605,10051,0,p
+0,0,0,2605,10052,0,p
+0,0,0,2605,10053,0,p
+0,0,0,2605,10054,0,p
+0,0,0,2605,10055,0,p
+0,0,0,2605,10056,0,p
+0,0,0,2605,10057,0,p
+0,0,0,2605,10058,0,p
+0,0,0,2605,10059,0,p
+0,0,0,2605,10060,0,p
+0,0,0,2605,10061,0,p
+0,0,0,2605,10062,0,p
+0,0,0,2605,10063,0,p
+0,0,0,2605,10064,0,p
+0,0,0,2605,10065,0,p
+0,0,0,2605,10066,0,p
+0,0,0,2605,10067,0,p
+0,0,0,2605,10068,0,p
+0,0,0,2605,10069,0,p
+0,0,0,2605,10070,0,p
+0,0,0,2605,10071,0,p
+0,0,0,2605,10072,0,p
+0,0,0,2605,10073,0,p
+0,0,0,2605,10074,0,p
+0,0,0,2605,10075,0,p
+0,0,0,2605,10076,0,p
+0,0,0,2605,10077,0,p
+0,0,0,2605,10078,0,p
+0,0,0,2605,10079,0,p
+0,0,0,2605,10080,0,p
+0,0,0,2605,10081,0,p
+0,0,0,2605,10082,0,p
+0,0,0,2605,10083,0,p
+0,0,0,2605,10084,0,p
+0,0,0,2605,10085,0,p
+0,0,0,2605,10086,0,p
+0,0,0,2605,10087,0,p
+0,0,0,2605,10088,0,p
+0,0,0,2605,10089,0,p
+0,0,0,2605,10090,0,p
+0,0,0,2605,10091,0,p
+0,0,0,2605,10092,0,p
+0,0,0,2605,10093,0,p
+0,0,0,2605,10094,0,p
+0,0,0,2605,10095,0,p
+0,0,0,2605,10096,0,p
+0,0,0,2605,10097,0,p
+0,0,0,2605,10098,0,p
+0,0,0,2605,10099,0,p
+0,0,0,2605,10100,0,p
+0,0,0,2605,10101,0,p
+0,0,0,2605,10102,0,p
+0,0,0,2605,10103,0,p
+0,0,0,2605,10104,0,p
+0,0,0,2605,10105,0,p
+0,0,0,2605,10106,0,p
+0,0,0,2605,10107,0,p
+0,0,0,2605,10108,0,p
+0,0,0,2605,10109,0,p
+0,0,0,2605,10110,0,p
+0,0,0,2605,10111,0,p
+0,0,0,2605,10112,0,p
+0,0,0,2605,10113,0,p
+0,0,0,2605,10114,0,p
+0,0,0,2605,10115,0,p
+0,0,0,2605,10116,0,p
+0,0,0,2605,10117,0,p
+0,0,0,2605,10118,0,p
+0,0,0,2605,10119,0,p
+0,0,0,2605,10120,0,p
+0,0,0,2605,10121,0,p
+0,0,0,2605,10122,0,p
+0,0,0,2605,10123,0,p
+0,0,0,2605,10124,0,p
+0,0,0,2605,10125,0,p
+0,0,0,2605,10126,0,p
+0,0,0,2605,10127,0,p
+0,0,0,2605,10128,0,p
+0,0,0,2605,10129,0,p
+0,0,0,2605,10130,0,p
+0,0,0,2605,10131,0,p
+0,0,0,2605,10132,0,p
+0,0,0,2605,10133,0,p
+0,0,0,2605,10134,0,p
+0,0,0,2605,10135,0,p
+0,0,0,2605,10136,0,p
+0,0,0,2605,10137,0,p
+0,0,0,2605,10138,0,p
+0,0,0,2605,10139,0,p
+0,0,0,2605,10140,0,p
+0,0,0,2605,10141,0,p
+0,0,0,2605,10142,0,p
+0,0,0,2605,10143,0,p
+0,0,0,2605,10144,0,p
+0,0,0,2605,10145,0,p
+0,0,0,2605,10146,0,p
+0,0,0,2605,10147,0,p
+0,0,0,2605,10148,0,p
+0,0,0,2605,10149,0,p
+0,0,0,2605,10150,0,p
+0,0,0,2605,10151,0,p
+0,0,0,2605,10152,0,p
+0,0,0,2605,10153,0,p
+0,0,0,2605,10154,0,p
+0,0,0,2605,10155,0,p
+0,0,0,2605,10156,0,p
+0,0,0,2605,10157,0,p
+0,0,0,2605,10158,0,p
+0,0,0,2605,10159,0,p
+0,0,0,2605,10160,0,p
+0,0,0,2605,10161,0,p
+0,0,0,2605,10162,0,p
+0,0,0,2605,10163,0,p
+0,0,0,2605,10164,0,p
+0,0,0,2605,10165,0,p
+0,0,0,2605,10166,0,p
+0,0,0,2605,10167,0,p
+0,0,0,2605,10168,0,p
+0,0,0,2605,10169,0,p
+0,0,0,2605,10170,0,p
+0,0,0,2605,10171,0,p
+0,0,0,2605,10172,0,p
+0,0,0,2605,10173,0,p
+0,0,0,2605,10174,0,p
+0,0,0,2605,10175,0,p
+0,0,0,2605,10176,0,p
+0,0,0,2605,10177,0,p
+0,0,0,2605,10178,0,p
+0,0,0,2605,10179,0,p
+0,0,0,2605,10180,0,p
+0,0,0,2605,10181,0,p
+0,0,0,2605,10182,0,p
+0,0,0,2605,10183,0,p
+0,0,0,2605,10184,0,p
+0,0,0,2605,10185,0,p
+0,0,0,2605,10186,0,p
+0,0,0,2605,10187,0,p
+0,0,0,2605,10188,0,p
+0,0,0,2605,10189,0,p
+0,0,0,2605,10190,0,p
+0,0,0,2605,10191,0,p
+0,0,0,2605,10192,0,p
+0,0,0,2605,10193,0,p
+0,0,0,2605,10194,0,p
+0,0,0,2605,10195,0,p
+0,0,0,2605,10196,0,p
+0,0,0,2605,10197,0,p
+0,0,0,2605,10198,0,p
+0,0,0,2605,10199,0,p
+0,0,0,2605,10200,0,p
+0,0,0,2605,10201,0,p
+0,0,0,2605,10202,0,p
+0,0,0,2605,10203,0,p
+0,0,0,2605,10204,0,p
+0,0,0,2605,10205,0,p
+0,0,0,2605,10206,0,p
+0,0,0,2605,10207,0,p
+0,0,0,2605,10208,0,p
+0,0,0,2605,10209,0,p
+0,0,0,2605,10210,0,p
+0,0,0,2605,10211,0,p
+0,0,0,2605,10212,0,p
+0,0,0,2605,10213,0,p
+0,0,0,2605,10214,0,p
+0,0,0,2605,10215,0,p
+0,0,0,2605,10216,0,p
+0,0,0,2605,10217,0,p
+0,0,0,2605,10218,0,p
+0,0,0,2605,10219,0,p
+0,0,0,2605,10220,0,p
+0,0,0,2605,10221,0,p
+0,0,0,2605,10222,0,p
+0,0,0,2605,10223,0,p
+0,0,0,2605,10224,0,p
+0,0,0,2605,10225,0,p
+0,0,0,2605,10226,0,p
+0,0,0,2605,10227,0,p
+0,0,0,2605,10228,0,p
+0,0,0,2605,10229,0,p
+0,0,0,2605,10230,0,p
+0,0,0,2605,10231,0,p
+0,0,0,2605,10232,0,p
+0,0,0,2605,10233,0,p
+0,0,0,2605,10234,0,p
+0,0,0,2605,10235,0,p
+0,0,0,2605,10236,0,p
+0,0,0,2605,10237,0,p
+0,0,0,2605,10238,0,p
+0,0,0,2605,10239,0,p
+0,0,0,2605,10240,0,p
+0,0,0,2605,10241,0,p
+0,0,0,2605,10242,0,p
+0,0,0,2605,10243,0,p
+0,0,0,2605,10244,0,p
+0,0,0,2605,10245,0,p
+0,0,0,2605,10246,0,p
+0,0,0,2605,10247,0,p
+0,0,0,2605,10248,0,p
+0,0,0,2605,10249,0,p
+0,0,0,2605,10250,0,p
+0,0,0,2605,10251,0,p
+0,0,0,2605,10252,0,p
+0,0,0,2605,10253,0,p
+0,0,0,2605,10254,0,p
+0,0,0,2605,10255,0,p
+0,0,0,2605,10256,0,p
+0,0,0,2605,10257,0,p
+0,0,0,2605,10258,0,p
+0,0,0,2605,10259,0,p
+0,0,0,2605,10260,0,p
+0,0,0,2605,10261,0,p
+0,0,0,2605,10262,0,p
+0,0,0,2605,10263,0,p
+0,0,0,2605,10264,0,p
+0,0,0,2605,10265,0,p
+0,0,0,2605,10266,0,p
+0,0,0,2605,10267,0,p
+0,0,0,2605,10268,0,p
+0,0,0,2605,10269,0,p
+0,0,0,2605,10270,0,p
+0,0,0,2605,10271,0,p
+0,0,0,2605,10272,0,p
+0,0,0,2605,10273,0,p
+0,0,0,2605,10274,0,p
+0,0,0,2605,10275,0,p
+0,0,0,2612,12,0,p
+0,0,0,2612,13,0,p
+0,0,0,2612,14,0,p
+0,0,0,2617,15,0,p
+0,0,0,2617,36,0,p
+0,0,0,2617,37,0,p
+0,0,0,2617,76,0,p
+0,0,0,2617,80,0,p
+0,0,0,2617,82,0,p
+0,0,0,2617,58,0,p
+0,0,0,2617,59,0,p
+0,0,0,2617,85,0,p
+0,0,0,2617,91,0,p
+0,0,0,2617,1694,0,p
+0,0,0,2617,1695,0,p
+0,0,0,2617,92,0,p
+0,0,0,2617,93,0,p
+0,0,0,2617,94,0,p
+0,0,0,2617,95,0,p
+0,0,0,2617,96,0,p
+0,0,0,2617,97,0,p
+0,0,0,2617,98,0,p
+0,0,0,2617,349,0,p
+0,0,0,2617,374,0,p
+0,0,0,2617,375,0,p
+0,0,0,2617,352,0,p
+0,0,0,2617,353,0,p
+0,0,0,2617,388,0,p
+0,0,0,2617,389,0,p
+0,0,0,2617,385,0,p
+0,0,0,2617,386,0,p
+0,0,0,2617,387,0,p
+0,0,0,2617,402,0,p
+0,0,0,2617,2799,0,p
+0,0,0,2617,2800,0,p
+0,0,0,2617,2801,0,p
+0,0,0,2617,2802,0,p
+0,0,0,2617,410,0,p
+0,0,0,2617,411,0,p
+0,0,0,2617,412,0,p
+0,0,0,2617,413,0,p
+0,0,0,2617,414,0,p
+0,0,0,2617,415,0,p
+0,0,0,2617,416,0,p
+0,0,0,2617,417,0,p
+0,0,0,2617,418,0,p
+0,0,0,2617,419,0,p
+0,0,0,2617,420,0,p
+0,0,0,2617,430,0,p
+0,0,0,2617,439,0,p
+0,0,0,2617,473,0,p
+0,0,0,2617,484,0,p
+0,0,0,2617,485,0,p
+0,0,0,2617,486,0,p
+0,0,0,2617,487,0,p
+0,0,0,2617,488,0,p
+0,0,0,2617,489,0,p
+0,0,0,2617,490,0,p
+0,0,0,2617,491,0,p
+0,0,0,2617,492,0,p
+0,0,0,2617,493,0,p
+0,0,0,2617,494,0,p
+0,0,0,2617,495,0,p
+0,0,0,2617,496,0,p
+0,0,0,2617,497,0,p
+0,0,0,2617,498,0,p
+0,0,0,2617,499,0,p
+0,0,0,2617,500,0,p
+0,0,0,2617,501,0,p
+0,0,0,2617,502,0,p
+0,0,0,2617,503,0,p
+0,0,0,2617,504,0,p
+0,0,0,2617,505,0,p
+0,0,0,2617,506,0,p
+0,0,0,2617,507,0,p
+0,0,0,2617,508,0,p
+0,0,0,2617,509,0,p
+0,0,0,2617,510,0,p
+0,0,0,2617,511,0,p
+0,0,0,2617,512,0,p
+0,0,0,2617,513,0,p
+0,0,0,2617,514,0,p
+0,0,0,2617,517,0,p
+0,0,0,2617,518,0,p
+0,0,0,2617,519,0,p
+0,0,0,2617,520,0,p
+0,0,0,2617,521,0,p
+0,0,0,2617,522,0,p
+0,0,0,2617,523,0,p
+0,0,0,2617,524,0,p
+0,0,0,2617,525,0,p
+0,0,0,2617,526,0,p
+0,0,0,2617,527,0,p
+0,0,0,2617,528,0,p
+0,0,0,2617,529,0,p
+0,0,0,2617,530,0,p
+0,0,0,2617,531,0,p
+0,0,0,2617,532,0,p
+0,0,0,2617,533,0,p
+0,0,0,2617,534,0,p
+0,0,0,2617,535,0,p
+0,0,0,2617,536,0,p
+0,0,0,2617,537,0,p
+0,0,0,2617,538,0,p
+0,0,0,2617,539,0,p
+0,0,0,2617,540,0,p
+0,0,0,2617,541,0,p
+0,0,0,2617,542,0,p
+0,0,0,2617,543,0,p
+0,0,0,2617,544,0,p
+0,0,0,2617,545,0,p
+0,0,0,2617,546,0,p
+0,0,0,2617,547,0,p
+0,0,0,2617,548,0,p
+0,0,0,2617,549,0,p
+0,0,0,2617,550,0,p
+0,0,0,2617,551,0,p
+0,0,0,2617,552,0,p
+0,0,0,2617,553,0,p
+0,0,0,2617,554,0,p
+0,0,0,2617,555,0,p
+0,0,0,2617,556,0,p
+0,0,0,2617,557,0,p
+0,0,0,2617,558,0,p
+0,0,0,2617,559,0,p
+0,0,0,2617,560,0,p
+0,0,0,2617,561,0,p
+0,0,0,2617,562,0,p
+0,0,0,2617,563,0,p
+0,0,0,2617,564,0,p
+0,0,0,2617,565,0,p
+0,0,0,2617,566,0,p
+0,0,0,2617,567,0,p
+0,0,0,2617,568,0,p
+0,0,0,2617,569,0,p
+0,0,0,2617,570,0,p
+0,0,0,2617,571,0,p
+0,0,0,2617,572,0,p
+0,0,0,2617,573,0,p
+0,0,0,2617,574,0,p
+0,0,0,2617,575,0,p
+0,0,0,2617,576,0,p
+0,0,0,2617,577,0,p
+0,0,0,2617,578,0,p
+0,0,0,2617,579,0,p
+0,0,0,2617,580,0,p
+0,0,0,2617,581,0,p
+0,0,0,2617,582,0,p
+0,0,0,2617,583,0,p
+0,0,0,2617,584,0,p
+0,0,0,2617,585,0,p
+0,0,0,2617,586,0,p
+0,0,0,2617,587,0,p
+0,0,0,2617,588,0,p
+0,0,0,2617,589,0,p
+0,0,0,2617,590,0,p
+0,0,0,2617,591,0,p
+0,0,0,2617,592,0,p
+0,0,0,2617,593,0,p
+0,0,0,2617,594,0,p
+0,0,0,2617,595,0,p
+0,0,0,2617,596,0,p
+0,0,0,2617,597,0,p
+0,0,0,2617,1284,0,p
+0,0,0,2617,606,0,p
+0,0,0,2617,607,0,p
+0,0,0,2617,608,0,p
+0,0,0,2617,609,0,p
+0,0,0,2617,610,0,p
+0,0,0,2617,611,0,p
+0,0,0,2617,612,0,p
+0,0,0,2617,644,0,p
+0,0,0,2617,645,0,p
+0,0,0,2617,646,0,p
+0,0,0,2617,647,0,p
+0,0,0,2617,648,0,p
+0,0,0,2617,649,0,p
+0,0,0,2617,613,0,p
+0,0,0,2617,614,0,p
+0,0,0,2617,615,0,p
+0,0,0,2617,616,0,p
+0,0,0,2617,617,0,p
+0,0,0,2617,618,0,p
+0,0,0,2617,620,0,p
+0,0,0,2617,621,0,p
+0,0,0,2617,622,0,p
+0,0,0,2617,623,0,p
+0,0,0,2617,624,0,p
+0,0,0,2617,625,0,p
+0,0,0,2617,626,0,p
+0,0,0,2617,627,0,p
+0,0,0,2617,630,0,p
+0,0,0,2617,631,0,p
+0,0,0,2617,632,0,p
+0,0,0,2617,633,0,p
+0,0,0,2617,634,0,p
+0,0,0,2617,639,0,p
+0,0,0,2617,640,0,p
+0,0,0,2617,641,0,p
+0,0,0,2617,642,0,p
+0,0,0,2617,643,0,p
+0,0,0,2617,654,0,p
+0,0,0,2617,660,0,p
+0,0,0,2617,661,0,p
+0,0,0,2617,662,0,p
+0,0,0,2617,663,0,p
+0,0,0,2617,664,0,p
+0,0,0,2617,665,0,p
+0,0,0,2617,666,0,p
+0,0,0,2617,667,0,p
+0,0,0,2617,670,0,p
+0,0,0,2617,671,0,p
+0,0,0,2617,672,0,p
+0,0,0,2617,673,0,p
+0,0,0,2617,674,0,p
+0,0,0,2617,675,0,p
+0,0,0,2617,682,0,p
+0,0,0,2617,684,0,p
+0,0,0,2617,685,0,p
+0,0,0,2617,686,0,p
+0,0,0,2617,687,0,p
+0,0,0,2617,688,0,p
+0,0,0,2617,689,0,p
+0,0,0,2617,690,0,p
+0,0,0,2617,691,0,p
+0,0,0,2617,692,0,p
+0,0,0,2617,693,0,p
+0,0,0,2617,694,0,p
+0,0,0,2617,695,0,p
+0,0,0,2617,706,0,p
+0,0,0,2617,707,0,p
+0,0,0,2617,708,0,p
+0,0,0,2617,709,0,p
+0,0,0,2617,712,0,p
+0,0,0,2617,713,0,p
+0,0,0,2617,731,0,p
+0,0,0,2617,732,0,p
+0,0,0,2617,733,0,p
+0,0,0,2617,734,0,p
+0,0,0,2617,735,0,p
+0,0,0,2617,736,0,p
+0,0,0,2617,737,0,p
+0,0,0,2617,738,0,p
+0,0,0,2617,739,0,p
+0,0,0,2617,755,0,p
+0,0,0,2617,756,0,p
+0,0,0,2617,757,0,p
+0,0,0,2617,758,0,p
+0,0,0,2617,759,0,p
+0,0,0,2617,773,0,p
+0,0,0,2617,792,0,p
+0,0,0,2617,793,0,p
+0,0,0,2617,794,0,p
+0,0,0,2617,795,0,p
+0,0,0,2617,796,0,p
+0,0,0,2617,797,0,p
+0,0,0,2617,798,0,p
+0,0,0,2617,799,0,p
+0,0,0,2617,800,0,p
+0,0,0,2617,801,0,p
+0,0,0,2617,802,0,p
+0,0,0,2617,803,0,p
+0,0,0,2617,804,0,p
+0,0,0,2617,805,0,p
+0,0,0,2617,806,0,p
+0,0,0,2617,807,0,p
+0,0,0,2617,808,0,p
+0,0,0,2617,809,0,p
+0,0,0,2617,811,0,p
+0,0,0,2617,812,0,p
+0,0,0,2617,813,0,p
+0,0,0,2617,814,0,p
+0,0,0,2617,815,0,p
+0,0,0,2617,816,0,p
+0,0,0,2617,843,0,p
+0,0,0,2617,844,0,p
+0,0,0,2617,845,0,p
+0,0,0,2617,900,0,p
+0,0,0,2617,901,0,p
+0,0,0,2617,902,0,p
+0,0,0,2617,903,0,p
+0,0,0,2617,904,0,p
+0,0,0,2617,905,0,p
+0,0,0,2617,906,0,p
+0,0,0,2617,907,0,p
+0,0,0,2617,908,0,p
+0,0,0,2617,909,0,p
+0,0,0,2617,912,0,p
+0,0,0,2617,913,0,p
+0,0,0,2617,914,0,p
+0,0,0,2617,915,0,p
+0,0,0,2617,916,0,p
+0,0,0,2617,917,0,p
+0,0,0,2617,918,0,p
+0,0,0,2617,965,0,p
+0,0,0,2617,966,0,p
+0,0,0,2617,967,0,p
+0,0,0,2617,968,0,p
+0,0,0,2617,974,0,p
+0,0,0,2617,969,0,p
+0,0,0,2617,970,0,p
+0,0,0,2617,971,0,p
+0,0,0,2617,1054,0,p
+0,0,0,2617,1055,0,p
+0,0,0,2617,1056,0,p
+0,0,0,2617,1057,0,p
+0,0,0,2617,1058,0,p
+0,0,0,2617,1059,0,p
+0,0,0,2617,1060,0,p
+0,0,0,2617,1061,0,p
+0,0,0,2617,1070,0,p
+0,0,0,2617,1071,0,p
+0,0,0,2617,1072,0,p
+0,0,0,2617,1073,0,p
+0,0,0,2617,1074,0,p
+0,0,0,2617,1075,0,p
+0,0,0,2617,1076,0,p
+0,0,0,2617,1077,0,p
+0,0,0,2617,1093,0,p
+0,0,0,2617,1094,0,p
+0,0,0,2617,1095,0,p
+0,0,0,2617,1096,0,p
+0,0,0,2617,1097,0,p
+0,0,0,2617,1098,0,p
+0,0,0,2617,1099,0,p
+0,0,0,2617,1100,0,p
+0,0,0,2617,1101,0,p
+0,0,0,2617,1108,0,p
+0,0,0,2617,1109,0,p
+0,0,0,2617,1110,0,p
+0,0,0,2617,1111,0,p
+0,0,0,2617,1112,0,p
+0,0,0,2617,1113,0,p
+0,0,0,2617,1550,0,p
+0,0,0,2617,1551,0,p
+0,0,0,2617,1552,0,p
+0,0,0,2617,1553,0,p
+0,0,0,2617,1554,0,p
+0,0,0,2617,1555,0,p
+0,0,0,2617,1116,0,p
+0,0,0,2617,1117,0,p
+0,0,0,2617,1118,0,p
+0,0,0,2617,1119,0,p
+0,0,0,2617,1120,0,p
+0,0,0,2617,1121,0,p
+0,0,0,2617,1122,0,p
+0,0,0,2617,1123,0,p
+0,0,0,2617,1124,0,p
+0,0,0,2617,1125,0,p
+0,0,0,2617,1126,0,p
+0,0,0,2617,1127,0,p
+0,0,0,2617,1128,0,p
+0,0,0,2617,1129,0,p
+0,0,0,2617,1130,0,p
+0,0,0,2617,1131,0,p
+0,0,0,2617,1132,0,p
+0,0,0,2617,1133,0,p
+0,0,0,2617,1134,0,p
+0,0,0,2617,1135,0,p
+0,0,0,2617,1207,0,p
+0,0,0,2617,1208,0,p
+0,0,0,2617,1209,0,p
+0,0,0,2617,1210,0,p
+0,0,0,2617,1211,0,p
+0,0,0,2617,1212,0,p
+0,0,0,2617,1226,0,p
+0,0,0,2617,1227,0,p
+0,0,0,2617,1228,0,p
+0,0,0,2617,1229,0,p
+0,0,0,2617,1234,0,p
+0,0,0,2617,1235,0,p
+0,0,0,2617,1320,0,p
+0,0,0,2617,1321,0,p
+0,0,0,2617,1322,0,p
+0,0,0,2617,1323,0,p
+0,0,0,2617,1324,0,p
+0,0,0,2617,1325,0,p
+0,0,0,2617,1327,0,p
+0,0,0,2617,1328,0,p
+0,0,0,2617,1329,0,p
+0,0,0,2617,1330,0,p
+0,0,0,2617,1331,0,p
+0,0,0,2617,1332,0,p
+0,0,0,2617,1333,0,p
+0,0,0,2617,1334,0,p
+0,0,0,2617,1335,0,p
+0,0,0,2617,1336,0,p
+0,0,0,2617,1337,0,p
+0,0,0,2617,1338,0,p
+0,0,0,2617,1360,0,p
+0,0,0,2617,1361,0,p
+0,0,0,2617,1363,0,p
+0,0,0,2617,1366,0,p
+0,0,0,2617,1399,0,p
+0,0,0,2617,1420,0,p
+0,0,0,2617,1500,0,p
+0,0,0,2617,1501,0,p
+0,0,0,2617,1502,0,p
+0,0,0,2617,1503,0,p
+0,0,0,2617,1504,0,p
+0,0,0,2617,1505,0,p
+0,0,0,2617,1506,0,p
+0,0,0,2617,1507,0,p
+0,0,0,2617,1508,0,p
+0,0,0,2617,1509,0,p
+0,0,0,2617,1510,0,p
+0,0,0,2617,1511,0,p
+0,0,0,2617,1512,0,p
+0,0,0,2617,1513,0,p
+0,0,0,2617,1514,0,p
+0,0,0,2617,1515,0,p
+0,0,0,2617,1516,0,p
+0,0,0,2617,1517,0,p
+0,0,0,2617,1518,0,p
+0,0,0,2617,1519,0,p
+0,0,0,2617,1520,0,p
+0,0,0,2617,1521,0,p
+0,0,0,2617,1522,0,p
+0,0,0,2617,1523,0,p
+0,0,0,2617,1524,0,p
+0,0,0,2617,1525,0,p
+0,0,0,2617,1526,0,p
+0,0,0,2617,1527,0,p
+0,0,0,2617,1528,0,p
+0,0,0,2617,1529,0,p
+0,0,0,2617,1535,0,p
+0,0,0,2617,1536,0,p
+0,0,0,2617,1537,0,p
+0,0,0,2617,1538,0,p
+0,0,0,2617,1539,0,p
+0,0,0,2617,1546,0,p
+0,0,0,2617,1547,0,p
+0,0,0,2617,1548,0,p
+0,0,0,2617,1549,0,p
+0,0,0,2617,1557,0,p
+0,0,0,2617,1558,0,p
+0,0,0,2617,1559,0,p
+0,0,0,2617,1566,0,p
+0,0,0,2617,1567,0,p
+0,0,0,2617,1568,0,p
+0,0,0,2617,1577,0,p
+0,0,0,2617,1578,0,p
+0,0,0,2617,1583,0,p
+0,0,0,2617,1584,0,p
+0,0,0,2617,1585,0,p
+0,0,0,2617,1586,0,p
+0,0,0,2617,1587,0,p
+0,0,0,2617,1588,0,p
+0,0,0,2617,1589,0,p
+0,0,0,2617,1590,0,p
+0,0,0,2617,1591,0,p
+0,0,0,2617,1611,0,p
+0,0,0,2617,1612,0,p
+0,0,0,2617,1613,0,p
+0,0,0,2617,1614,0,p
+0,0,0,2617,1615,0,p
+0,0,0,2617,1616,0,p
+0,0,0,2617,1617,0,p
+0,0,0,2617,1220,0,p
+0,0,0,2617,1221,0,p
+0,0,0,2617,1222,0,p
+0,0,0,2617,1223,0,p
+0,0,0,2617,1224,0,p
+0,0,0,2617,1225,0,p
+0,0,0,2617,1201,0,p
+0,0,0,2617,1202,0,p
+0,0,0,2617,1203,0,p
+0,0,0,2617,1204,0,p
+0,0,0,2617,1205,0,p
+0,0,0,2617,1206,0,p
+0,0,0,2617,931,0,p
+0,0,0,2617,932,0,p
+0,0,0,2617,933,0,p
+0,0,0,2617,934,0,p
+0,0,0,2617,2634,0,p
+0,0,0,2617,2635,0,p
+0,0,0,2617,2636,0,p
+0,0,0,2617,2637,0,p
+0,0,0,2617,2638,0,p
+0,0,0,2617,2639,0,p
+0,0,0,2617,2640,0,p
+0,0,0,2617,1625,0,p
+0,0,0,2617,1626,0,p
+0,0,0,2617,1627,0,p
+0,0,0,2617,1628,0,p
+0,0,0,2617,1629,0,p
+0,0,0,2617,1630,0,p
+0,0,0,2617,1751,0,p
+0,0,0,2617,1752,0,p
+0,0,0,2617,1753,0,p
+0,0,0,2617,1754,0,p
+0,0,0,2617,1755,0,p
+0,0,0,2617,1756,0,p
+0,0,0,2617,1757,0,p
+0,0,0,2617,1758,0,p
+0,0,0,2617,1759,0,p
+0,0,0,2617,1760,0,p
+0,0,0,2617,1761,0,p
+0,0,0,2617,1762,0,p
+0,0,0,2617,1038,0,p
+0,0,0,2617,1763,0,p
+0,0,0,2617,1784,0,p
+0,0,0,2617,1785,0,p
+0,0,0,2617,1786,0,p
+0,0,0,2617,1787,0,p
+0,0,0,2617,1788,0,p
+0,0,0,2617,1789,0,p
+0,0,0,2617,1791,0,p
+0,0,0,2617,1792,0,p
+0,0,0,2617,1793,0,p
+0,0,0,2617,1794,0,p
+0,0,0,2617,1795,0,p
+0,0,0,2617,1796,0,p
+0,0,0,2617,1797,0,p
+0,0,0,2617,1800,0,p
+0,0,0,2617,1801,0,p
+0,0,0,2617,1802,0,p
+0,0,0,2617,1803,0,p
+0,0,0,2617,1804,0,p
+0,0,0,2617,1805,0,p
+0,0,0,2617,1806,0,p
+0,0,0,2617,1807,0,p
+0,0,0,2617,1808,0,p
+0,0,0,2617,1809,0,p
+0,0,0,2617,1849,0,p
+0,0,0,2617,1862,0,p
+0,0,0,2617,1863,0,p
+0,0,0,2617,1864,0,p
+0,0,0,2617,1865,0,p
+0,0,0,2617,1866,0,p
+0,0,0,2617,1867,0,p
+0,0,0,2617,1868,0,p
+0,0,0,2617,1869,0,p
+0,0,0,2617,1870,0,p
+0,0,0,2617,1871,0,p
+0,0,0,2617,1872,0,p
+0,0,0,2617,1873,0,p
+0,0,0,2617,1874,0,p
+0,0,0,2617,1875,0,p
+0,0,0,2617,1876,0,p
+0,0,0,2617,1877,0,p
+0,0,0,2617,1878,0,p
+0,0,0,2617,1879,0,p
+0,0,0,2617,1880,0,p
+0,0,0,2617,1881,0,p
+0,0,0,2617,1882,0,p
+0,0,0,2617,1883,0,p
+0,0,0,2617,1884,0,p
+0,0,0,2617,1885,0,p
+0,0,0,2617,1886,0,p
+0,0,0,2617,1887,0,p
+0,0,0,2617,1888,0,p
+0,0,0,2617,1889,0,p
+0,0,0,2617,1890,0,p
+0,0,0,2617,1891,0,p
+0,0,0,2617,1916,0,p
+0,0,0,2617,1917,0,p
+0,0,0,2617,1918,0,p
+0,0,0,2617,1919,0,p
+0,0,0,2617,1920,0,p
+0,0,0,2617,1921,0,p
+0,0,0,2617,1955,0,p
+0,0,0,2617,1956,0,p
+0,0,0,2617,1957,0,p
+0,0,0,2617,1958,0,p
+0,0,0,2617,1959,0,p
+0,0,0,2617,1960,0,p
+0,0,0,2617,2016,0,p
+0,0,0,2617,2017,0,p
+0,0,0,2617,2018,0,p
+0,0,0,2617,2060,0,p
+0,0,0,2617,2061,0,p
+0,0,0,2617,2062,0,p
+0,0,0,2617,2063,0,p
+0,0,0,2617,2064,0,p
+0,0,0,2617,2065,0,p
+0,0,0,2617,2066,0,p
+0,0,0,2617,2067,0,p
+0,0,0,2617,2068,0,p
+0,0,0,2617,2314,0,p
+0,0,0,2617,2315,0,p
+0,0,0,2617,2316,0,p
+0,0,0,2617,2317,0,p
+0,0,0,2617,2318,0,p
+0,0,0,2617,2319,0,p
+0,0,0,2617,2326,0,p
+0,0,0,2617,2327,0,p
+0,0,0,2617,2328,0,p
+0,0,0,2617,2329,0,p
+0,0,0,2617,2330,0,p
+0,0,0,2617,2331,0,p
+0,0,0,2617,2332,0,p
+0,0,0,2617,2333,0,p
+0,0,0,2617,2334,0,p
+0,0,0,2617,2335,0,p
+0,0,0,2617,2336,0,p
+0,0,0,2617,2337,0,p
+0,0,0,2617,2345,0,p
+0,0,0,2617,2346,0,p
+0,0,0,2617,2347,0,p
+0,0,0,2617,2348,0,p
+0,0,0,2617,2349,0,p
+0,0,0,2617,2350,0,p
+0,0,0,2617,2358,0,p
+0,0,0,2617,2359,0,p
+0,0,0,2617,2360,0,p
+0,0,0,2617,2361,0,p
+0,0,0,2617,2362,0,p
+0,0,0,2617,2363,0,p
+0,0,0,2617,2371,0,p
+0,0,0,2617,2372,0,p
+0,0,0,2617,2373,0,p
+0,0,0,2617,2374,0,p
+0,0,0,2617,2375,0,p
+0,0,0,2617,2376,0,p
+0,0,0,2617,2384,0,p
+0,0,0,2617,2385,0,p
+0,0,0,2617,2386,0,p
+0,0,0,2617,2387,0,p
+0,0,0,2617,2388,0,p
+0,0,0,2617,2389,0,p
+0,0,0,2617,2534,0,p
+0,0,0,2617,2535,0,p
+0,0,0,2617,2536,0,p
+0,0,0,2617,2537,0,p
+0,0,0,2617,2538,0,p
+0,0,0,2617,2539,0,p
+0,0,0,2617,2540,0,p
+0,0,0,2617,2541,0,p
+0,0,0,2617,2542,0,p
+0,0,0,2617,2543,0,p
+0,0,0,2617,2544,0,p
+0,0,0,2617,2545,0,p
+0,0,0,2617,2551,0,p
+0,0,0,2617,2552,0,p
+0,0,0,2617,2553,0,p
+0,0,0,2617,2554,0,p
+0,0,0,2617,2555,0,p
+0,0,0,2617,2570,0,p
+0,0,0,2617,2571,0,p
+0,0,0,2617,2572,0,p
+0,0,0,2617,2573,0,p
+0,0,0,2617,2574,0,p
+0,0,0,2617,2575,0,p
+0,0,0,2617,2576,0,p
+0,0,0,2617,2577,0,p
+0,0,0,2617,2589,0,p
+0,0,0,2617,2590,0,p
+0,0,0,2617,2750,0,p
+0,0,0,2617,2751,0,p
+0,0,0,2617,2752,0,p
+0,0,0,2617,2860,0,p
+0,0,0,2617,2861,0,p
+0,0,0,2617,2862,0,p
+0,0,0,2617,2863,0,p
+0,0,0,2617,2864,0,p
+0,0,0,2617,2865,0,p
+0,0,0,2617,2866,0,p
+0,0,0,2617,2867,0,p
+0,0,0,2617,2868,0,p
+0,0,0,2617,2869,0,p
+0,0,0,2617,2870,0,p
+0,0,0,2617,2871,0,p
+0,0,0,2617,2872,0,p
+0,0,0,2617,2873,0,p
+0,0,0,2617,2874,0,p
+0,0,0,2617,2875,0,p
+0,0,0,2617,2876,0,p
+0,0,0,2617,2877,0,p
+0,0,0,2616,421,0,p
+0,0,0,2616,397,0,p
+0,0,0,2616,423,0,p
+0,0,0,2616,424,0,p
+0,0,0,2616,426,0,p
+0,0,0,2616,427,0,p
+0,0,0,2616,428,0,p
+0,0,0,2616,429,0,p
+0,0,0,2616,431,0,p
+0,0,0,2616,432,0,p
+0,0,0,2616,433,0,p
+0,0,0,2616,434,0,p
+0,0,0,2616,435,0,p
+0,0,0,2616,1970,0,p
+0,0,0,2616,1971,0,p
+0,0,0,2616,1972,0,p
+0,0,0,2616,1973,0,p
+0,0,0,2616,1974,0,p
+0,0,0,2616,1975,0,p
+0,0,0,2616,1976,0,p
+0,0,0,2616,1977,0,p
+0,0,0,2616,1978,0,p
+0,0,0,2616,1979,0,p
+0,0,0,2616,1980,0,p
+0,0,0,2616,1981,0,p
+0,0,0,2616,1982,0,p
+0,0,0,2616,1983,0,p
+0,0,0,2616,1984,0,p
+0,0,0,2616,1985,0,p
+0,0,0,2616,1986,0,p
+0,0,0,2616,1987,0,p
+0,0,0,2616,1988,0,p
+0,0,0,2616,7676,0,p
+0,0,0,2616,1989,0,p
+0,0,0,2616,1990,0,p
+0,0,0,2616,1991,0,p
+0,0,0,2616,1992,0,p
+0,0,0,2616,1994,0,p
+0,0,0,2616,1995,0,p
+0,0,0,2616,1996,0,p
+0,0,0,2616,1997,0,p
+0,0,0,2616,1998,0,p
+0,0,0,2616,1999,0,p
+0,0,0,2616,2000,0,p
+0,0,0,2616,2001,0,p
+0,0,0,2616,2002,0,p
+0,0,0,2616,2003,0,p
+0,0,0,2616,2004,0,p
+0,0,0,2616,2039,0,p
+0,0,0,2616,2040,0,p
+0,0,0,2616,2095,0,p
+0,0,0,2616,2096,0,p
+0,0,0,2616,2097,0,p
+0,0,0,2616,2098,0,p
+0,0,0,2616,2099,0,p
+0,0,0,2616,2222,0,p
+0,0,0,2616,2223,0,p
+0,0,0,2616,2224,0,p
+0,0,0,2616,2789,0,p
+0,0,0,2616,2225,0,p
+0,0,0,2616,2226,0,p
+0,0,0,2616,2227,0,p
+0,0,0,2616,2228,0,p
+0,0,0,2616,2229,0,p
+0,0,0,2616,2230,0,p
+0,0,0,2616,2231,0,p
+0,0,0,2616,2232,0,p
+0,0,0,2616,2233,0,p
+0,0,0,2616,2234,0,p
+0,0,0,2616,2235,0,p
+0,0,0,2616,2593,0,p
+0,0,0,2616,2594,0,p
+0,0,0,2616,2595,0,p
+0,0,0,2616,2745,0,p
+0,0,0,2616,2746,0,p
+0,0,0,2616,2753,0,p
+0,0,0,2616,2754,0,p
+0,0,0,2616,2755,0,p
+0,0,0,2616,2756,0,p
+0,0,0,2616,2757,0,p
+0,0,0,2616,2758,0,p
+0,0,0,2616,2759,0,p
+0,0,0,2616,2760,0,p
+0,0,0,2616,2761,0,p
+0,0,0,2616,2762,0,p
+0,0,0,2616,2763,0,p
+0,0,0,2616,2764,0,p
+0,0,0,2616,2765,0,p
+0,0,0,2616,2766,0,p
+0,0,0,2616,2767,0,p
+0,0,0,2616,2768,0,p
+0,0,0,2616,2769,0,p
+0,0,0,2616,2770,0,p
+0,0,0,2616,2771,0,p
+0,0,0,2616,2772,0,p
+0,0,0,2616,2773,0,p
+0,0,0,2616,2774,0,p
+0,0,0,2616,2775,0,p
+0,0,0,2616,2776,0,p
+0,0,0,2616,2777,0,p
+0,0,0,2616,2778,0,p
+0,0,0,2616,2779,0,p
+0,0,0,2616,2780,0,p
+0,0,0,2616,3014,0,p
+0,0,0,2616,3015,0,p
+0,0,0,2616,3016,0,p
+0,0,0,2616,3017,0,p
+0,0,0,2616,3018,0,p
+0,0,0,2616,3019,0,p
+0,0,0,2616,3020,0,p
+0,0,0,2616,3021,0,p
+0,0,0,2616,3022,0,p
+0,0,0,2616,3023,0,p
+0,0,0,2616,3024,0,p
+0,0,0,2616,3025,0,p
+0,0,0,2616,3026,0,p
+0,0,0,2616,3027,0,p
+0,0,0,2616,3028,0,p
+0,0,0,2616,3029,0,p
+0,0,0,2616,3030,0,p
+0,0,0,2616,3031,0,p
+0,0,0,2616,3032,0,p
+0,0,0,2616,3033,0,p
+0,0,0,2616,3034,0,p
+0,0,0,2616,3035,0,p
+0,0,0,2616,3036,0,p
+0,0,0,2616,3037,0,p
+0,0,0,2616,3038,0,p
+0,0,0,2616,3039,0,p
+0,0,0,2616,3040,0,p
+0,0,0,2616,3041,0,p
+0,0,0,2616,3042,0,p
+0,0,0,2616,3043,0,p
+0,0,0,2616,3044,0,p
+0,0,0,2616,3045,0,p
+0,0,0,2616,3046,0,p
+0,0,0,2616,3047,0,p
+0,0,0,2616,3048,0,p
+0,0,0,2620,10306,0,p
+0,0,0,2620,10307,0,p
+0,0,0,2620,10308,0,p
+0,0,0,2615,11,0,p
+0,0,0,2615,99,0,p
+0,0,0,2615,3012,0,p
+0,0,0,2615,6104,0,p
+1247,10310,0,1259,10309,0,i
+2618,10311,0,1259,10309,0,i
+2618,10311,0,1259,10309,0,n
+1247,10313,0,1259,10312,0,i
+2618,10314,0,1259,10312,0,i
+2618,10314,0,1259,10312,0,n
+1247,10316,0,1259,10315,0,i
+2618,10317,0,1259,10315,0,i
+2618,10317,0,1259,10315,0,n
+1247,10319,0,1259,10318,0,i
+2618,10320,0,1259,10318,0,i
+2618,10320,0,1259,10312,1,n
+2618,10320,0,1259,10312,2,n
+2618,10320,0,1259,10312,3,n
+2618,10320,0,1259,10312,4,n
+2618,10320,0,1259,10312,5,n
+2618,10320,0,1259,10312,7,n
+2618,10320,0,1259,10312,8,n
+2618,10320,0,1259,10318,0,n
+1247,10322,0,1259,10321,0,i
+2618,10323,0,1259,10321,0,i
+2618,10323,0,1259,10321,0,n
+1247,10325,0,1259,10324,0,i
+2618,10326,0,1259,10324,0,i
+2618,10326,0,1259,10324,0,n
+1247,10328,0,1259,10327,0,i
+2618,10329,0,1259,10327,0,i
+2618,10329,0,1259,10327,0,n
+1247,10331,0,1259,10330,0,i
+2618,10332,0,1259,10330,0,i
+2618,10332,0,1259,10330,0,n
+1247,10334,0,1259,10333,0,i
+2618,10335,0,1259,10333,0,i
+2618,10335,0,1259,10333,0,n
+1247,10337,0,1259,10336,0,i
+2618,10338,0,1259,10336,0,i
+2618,10338,0,1259,10336,0,n
+1247,10340,0,1259,10339,0,i
+2618,10341,0,1259,10339,0,i
+2618,10341,0,1259,10339,0,n
+1247,10343,0,1259,10342,0,i
+2618,10344,0,1259,10342,0,i
+2618,10344,0,1259,10342,0,n
+1247,10346,0,1259,10345,0,i
+2618,10347,0,1259,10345,0,i
+2618,10347,0,1259,10345,0,n
+1247,10349,0,1259,10348,0,i
+2618,10350,0,1259,10348,0,i
+2618,10350,0,1259,10348,0,n
+2618,10351,0,1259,10348,0,a
+2618,10351,0,1259,10348,1,n
+2618,10351,0,1259,10348,2,n
+2618,10351,0,1259,10348,1,n
+2618,10352,0,1259,10348,0,a
+2618,10352,0,1259,10348,0,n
+1247,10354,0,1259,10353,0,i
+2618,10355,0,1259,10353,0,i
+2618,10355,0,1259,10353,0,n
+1247,10357,0,1259,10356,0,i
+2618,10358,0,1259,10356,0,i
+2618,10358,0,1259,10356,0,n
+1247,10360,0,1259,10359,0,i
+2618,10361,0,1259,10359,0,i
+2618,10361,0,1259,10359,0,n
+1247,10363,0,1259,10362,0,i
+2618,10364,0,1259,10362,0,i
+2618,10364,0,1259,10359,1,n
+2618,10364,0,1259,10359,2,n
+2618,10364,0,1259,10359,3,n
+2618,10364,0,1259,10359,4,n
+2618,10364,0,1259,10359,5,n
+2618,10364,0,1259,10359,6,n
+2618,10364,0,1259,10359,7,n
+2618,10364,0,1259,10359,8,n
+2618,10364,0,1259,10359,9,n
+2618,10364,0,1259,10359,10,n
+2618,10364,0,1259,10359,11,n
+2618,10364,0,1259,10359,12,n
+2618,10364,0,1259,10359,13,n
+2618,10364,0,1259,10359,14,n
+2618,10364,0,1259,10362,0,n
+1247,10366,0,1259,10365,0,i
+2618,10367,0,1259,10365,0,i
+2618,10367,0,1259,10359,1,n
+2618,10367,0,1259,10359,2,n
+2618,10367,0,1259,10359,3,n
+2618,10367,0,1259,10359,4,n
+2618,10367,0,1259,10359,5,n
+2618,10367,0,1259,10359,6,n
+2618,10367,0,1259,10359,7,n
+2618,10367,0,1259,10359,8,n
+2618,10367,0,1259,10359,9,n
+2618,10367,0,1259,10359,10,n
+2618,10367,0,1259,10359,11,n
+2618,10367,0,1259,10359,12,n
+2618,10367,0,1259,10359,13,n
+2618,10367,0,1259,10359,14,n
+2618,10367,0,1259,10365,0,n
+1247,10369,0,1259,10368,0,i
+2618,10370,0,1259,10368,0,i
+2618,10370,0,1259,10368,0,n
+1247,10372,0,1259,10371,0,i
+2618,10373,0,1259,10371,0,i
+2618,10373,0,1259,10368,1,n
+2618,10373,0,1259,10368,2,n
+2618,10373,0,1259,10368,3,n
+2618,10373,0,1259,10368,4,n
+2618,10373,0,1259,10368,5,n
+2618,10373,0,1259,10368,6,n
+2618,10373,0,1259,10368,7,n
+2618,10373,0,1259,10368,8,n
+2618,10373,0,1259,10368,9,n
+2618,10373,0,1259,10368,10,n
+2618,10373,0,1259,10368,11,n
+2618,10373,0,1259,10371,0,n
+1247,10375,0,1259,10374,0,i
+2618,10376,0,1259,10374,0,i
+2618,10376,0,1259,10368,1,n
+2618,10376,0,1259,10368,2,n
+2618,10376,0,1259,10368,3,n
+2618,10376,0,1259,10368,4,n
+2618,10376,0,1259,10368,5,n
+2618,10376,0,1259,10368,6,n
+2618,10376,0,1259,10368,7,n
+2618,10376,0,1259,10368,8,n
+2618,10376,0,1259,10368,9,n
+2618,10376,0,1259,10368,10,n
+2618,10376,0,1259,10368,11,n
+2618,10376,0,1259,10374,0,n
+1247,10378,0,1259,10377,0,i
+2618,10379,0,1259,10377,0,i
+2618,10379,0,1259,10377,0,n
+1247,10381,0,1259,10380,0,i
+2618,10382,0,1259,10380,0,i
+2618,10382,0,1259,10377,1,n
+2618,10382,0,1259,10377,2,n
+2618,10382,0,1259,10377,3,n
+2618,10382,0,1259,10377,4,n
+2618,10382,0,1259,10377,5,n
+2618,10382,0,1259,10377,6,n
+2618,10382,0,1259,10377,7,n
+2618,10382,0,1259,10377,8,n
+2618,10382,0,1259,10380,0,n
+1247,10384,0,1259,10383,0,i
+2618,10385,0,1259,10383,0,i
+2618,10385,0,1259,10377,1,n
+2618,10385,0,1259,10377,2,n
+2618,10385,0,1259,10377,3,n
+2618,10385,0,1259,10377,4,n
+2618,10385,0,1259,10377,5,n
+2618,10385,0,1259,10377,6,n
+2618,10385,0,1259,10377,7,n
+2618,10385,0,1259,10377,8,n
+2618,10385,0,1259,10383,0,n
+1247,10387,0,1259,10386,0,i
+2618,10388,0,1259,10386,0,i
+2618,10388,0,1259,10386,0,n
+1247,10390,0,1259,10389,0,i
+2618,10391,0,1259,10389,0,i
+2618,10391,0,1259,10386,1,n
+2618,10391,0,1259,10386,2,n
+2618,10391,0,1259,10386,3,n
+2618,10391,0,1259,10386,4,n
+2618,10391,0,1259,10386,5,n
+2618,10391,0,1259,10386,6,n
+2618,10391,0,1259,10386,7,n
+2618,10391,0,1259,10389,0,n
+1247,10393,0,1259,10392,0,i
+2618,10394,0,1259,10392,0,i
+2618,10394,0,1259,10386,1,n
+2618,10394,0,1259,10386,2,n
+2618,10394,0,1259,10386,3,n
+2618,10394,0,1259,10386,4,n
+2618,10394,0,1259,10386,5,n
+2618,10394,0,1259,10386,6,n
+2618,10394,0,1259,10386,7,n
+2618,10394,0,1259,10392,0,n
+1247,10396,0,1259,10395,0,i
+2618,10397,0,1259,10395,0,i
+2618,10397,0,1259,10395,0,n
+1247,10399,0,1259,10398,0,i
+2618,10400,0,1259,10398,0,i
+2618,10400,0,1259,10395,1,n
+2618,10400,0,1259,10395,2,n
+2618,10400,0,1259,10395,3,n
+2618,10400,0,1259,10395,4,n
+2618,10400,0,1259,10395,5,n
+2618,10400,0,1259,10398,0,n
+1247,10402,0,1259,10401,0,i
+2618,10403,0,1259,10401,0,i
+2618,10403,0,1259,10395,1,n
+2618,10403,0,1259,10395,2,n
+2618,10403,0,1259,10395,3,n
+2618,10403,0,1259,10395,4,n
+2618,10403,0,1259,10395,5,n
+2618,10403,0,1259,10401,0,n
+1247,10405,0,1259,10404,0,i
+2618,10406,0,1259,10404,0,i
+2618,10406,0,1259,10404,0,n
+1247,10408,0,1259,10407,0,i
+2618,10409,0,1259,10407,0,i
+2618,10409,0,1259,10407,0,n
+1247,10411,0,1259,10410,0,i
+2618,10412,0,1259,10410,0,i
+2618,10412,0,1259,10410,0,n
+1247,10414,0,1259,10413,0,i
+2618,10415,0,1259,10413,0,i
+2618,10415,0,1259,10413,0,n
+1247,10417,0,1259,10416,0,i
+2618,10418,0,1259,10416,0,i
+2618,10418,0,1259,10416,0,n
+1247,10420,0,1259,10419,0,i
+2618,10421,0,1259,10419,0,i
+2618,10421,0,1259,10419,0,n
+1247,10423,0,1259,10422,0,i
+2618,10424,0,1259,10422,0,i
+2618,10424,0,1259,10422,0,n
+1247,10426,0,1259,10425,0,i
+2618,10427,0,1259,10425,0,i
+2618,10427,0,1259,10425,0,n
+1259,10725,6,1247,10659,0,n
+1259,10725,7,1247,10659,0,n
+1259,10725,8,1247,10659,0,n
+1259,10725,0,2615,10643,0,n
+2618,10727,0,1259,10725,0,i
+2618,10727,0,1247,10659,0,n
+2618,10727,0,1247,10660,0,n
+2618,10727,0,1259,10707,1,n
+2618,10727,0,1259,10725,0,n
+1247,10729,0,1259,10728,0,i
+1259,10728,1,1247,10660,0,n
+1259,10728,2,1247,10660,0,n
+2607,10440,0,1255,10439,0,n
+2607,10442,0,1255,10441,0,n
+2607,10444,0,1255,10443,0,n
+2607,10446,0,1255,10445,0,n
+2607,10448,0,1255,10447,0,n
+2607,10450,0,1255,10449,0,n
+2607,10452,0,1255,10451,0,n
+2607,10454,0,1255,10453,0,n
+2607,10456,0,1255,10455,0,n
+2607,10458,0,1255,10457,0,n
+2607,10460,0,1255,10459,0,n
+2607,10462,0,1255,10461,0,n
+2607,10464,0,1255,10463,0,n
+2607,10466,0,1255,10465,0,n
+2607,10468,0,1255,10467,0,n
+2607,10470,0,1255,10469,0,n
+2607,10472,0,1255,10471,0,n
+2607,10474,0,1255,10473,0,n
+2607,10476,0,1255,10475,0,n
+2607,10478,0,1255,10477,0,n
+2607,10480,0,1255,10479,0,n
+2607,10482,0,1255,10481,0,n
+2607,10484,0,1255,10483,0,n
+2607,10486,0,1255,10485,0,n
+2607,10488,0,1255,10487,0,n
+2607,10490,0,1255,10489,0,n
+2607,10492,0,1255,10491,0,n
+2607,10494,0,1255,10493,0,n
+2607,10496,0,1255,10495,0,n
+2607,10498,0,1255,10497,0,n
+2607,10500,0,1255,10499,0,n
+2607,10

<TRUNCATED>


[06/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
new file mode 100644
index 0000000..ea0d71d
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.txt
@@ -0,0 +1,285 @@
+==================
+PyGreSQL ChangeLog
+==================
+
+Version 4.0 (2009-01-01)
+------------------------
+- Dropped support for Python below 2.3 and PostgreSQL below 7.4.
+- Improved performance of fetchall() for large result sets
+  by speeding up the type casts (as suggested by Peter Schuller).
+- Exposed exceptions as attributes of the connection object.
+- Exposed connection as attribute of the cursor object.
+- Cursors now support the iteration protocol.
+- Added new method to get parameter settings.
+- Added customizable row_factory as suggested by Simon Pamies.
+- Separated between mandatory and additional type objects.
+- Added keyword args to insert, update and delete methods.
+- Added exception handling for direct copy.
+- Release the GIL while making a connection
+  (as suggested by Peter Schuller).
+- If available, use decimal.Decimal for numeric types.
+- Allow DB wrapper to be used with DB-API 2 connections
+  (as suggested by Chris Hilton).
+- Made private attributes of DB wrapper accessible.
+- Dropped dependence on mx.DateTime module.
+- Support for PQescapeStringConn() and PQescapeByteaConn();
+  these are now also used by the internal _quote() functions.
+- Added 'int8' to INTEGER types. New SMALLINT type.
+- Added a way to find the number of rows affected by a query()
+  with the classic pg module by returning it as a string.
+  For single inserts, query() still returns the oid as an integer.
+  The pgdb module already provides the "rowcount" cursor attribute
+  for the same purpose.
+- Improved getnotify() by calling PQconsumeInput() instead of
+  submitting an empty command.
+- Removed compatibility code for old OID munging style.
+- The insert() and update() methods now use the "returning" clause
+  if possible to get all changed values, and they also check in advance
+  whether a subsequent select is possible, so that ongoing transactions
+  won't break if there is no select privilege.
+- Added "protocol_version" and "server_version" attributes.
+- Revived the "user" attribute.
+- The pg module now works correctly with composite primary keys;
+  these are represented as frozensets.
+- Removed the undocumented and actually unnecessary "view" parameter
+  from the get() method.
+- get() raises a nicer ProgrammingError instead of a KeyError
+  if no primary key was found.
+- delete() now also works based on the primary key if no oid available
+  and returns whether the row existed or not.
+
+
+Version 3.8.1 (2006-06-05)
+--------------------------
+- Use string methods instead of deprecated string functions.
+- Only use SQL-standard way of escaping quotes.
+- Added the functions escape_string() and escape/unescape_bytea()
+  (as suggested by Charlie Dyson and Kavous Bojnourdi a long time ago).
+- Reverted code in clear() method that set date to current.
+- Added code for backwards compatibility in OID munging code.
+- Reorder attnames tests so that "interval" is checked for before "int."
+- If caller supplies key dictionary, make sure that all has a namespace.
+
+Version 3.8 (2006-02-17)
+------------------------
+- Installed new favicon.ico from Matthew Sporleder <ms...@mspo.com>
+- Replaced snprintf by PyOS_snprintf.
+- Removed NO_SNPRINTF switch which is not needed any longer
+- Clean up some variable names and namespace
+- Add get_relations() method to get any type of relation
+- Rewrite get_tables() to use get_relations()
+- Use new method in get_attnames method to get attributes of views as well
+- Add Binary type
+- Number of rows is now -1 after executing no-result statements
+- Fix some number handling
+- Non-simple types do not raise an error any more
+- Improvements to documentation framework
+- Take into account that nowadays not every table must have an oid column
+- Simplification and improvement of the inserttable() function
+- Fix up unit tests
+- The usual assortment of minor fixes and enhancements
+
+Version 3.7 (2005-09-07)
+------------------------
+Improvement of pgdb module:
+
+- Use Python standard `datetime` if `mxDateTime` is not available
+
+Major improvements and clean-up in classic pg module:
+
+- All members of the underlying connection directly available in `DB`
+- Fixes to quoting function
+- Add checks for valid database connection to methods
+- Improved namespace support, handle `search_path` correctly
+- Removed old dust and unnessesary imports, added docstrings
+- Internal sql statements as one-liners, smoothed out ugly code
+
+Version 3.6.2 (2005-02-23)
+--------------------------
+- Further fixes to namespace handling
+
+Version 3.6.1 (2005-01-11)
+--------------------------
+- Fixes to namespace handling
+
+Version 3.6 (2004-12-17)
+------------------------
+- Better DB-API 2.0 compliance
+- Exception hierarchy moved into C module and made available to both APIs
+- Fix error in update method that caused false exceptions
+- Moved to standard exception hierarchy in classic API
+- Added new method to get transaction state
+- Use proper Python constants where appropriate
+- Use Python versions of strtol, etc. Allows Win32 build.
+- Bug fixes and cleanups
+
+Version 3.5 (2004-08-29)
+------------------------
+Fixes and enhancements:
+
+- Add interval to list of data types
+- fix up method wrapping especially close()
+- retry pkeys once if table missing in case it was just added
+- wrap query method separately to handle debug better
+- use isinstance instead of type
+- fix free/PQfreemem issue - finally
+- miscellaneous cleanups and formatting
+
+Version 3.4 (2004-06-02)
+------------------------
+Some cleanups and fixes.
+This is the first version where PyGreSQL is moved back out of the
+PostgreSQL tree. A lot of the changes mentioned below were actually
+made while in the PostgreSQL tree since their last release.
+
+- Allow for larger integer returns
+- Return proper strings for true and false
+- Cleanup convenience method creation
+- Enhance debugging method
+- Add reopen method
+- Allow programs to preload field names for speedup
+- Move OID handling so that it returns long instead of int
+- Miscellaneous cleanups and formatting
+
+Version 3.3 (2001-12-03)
+------------------------
+A few cleanups.  Mostly there was some confusion about the latest version
+and so I am bumping the number to keep it straight.
+
+- Added NUMERICOID to list of returned types. This fixes a bug when
+  returning aggregates in the latest version of PostgreSQL.
+
+Version 3.2 (2001-06-20)
+------------------------
+Note that there are very few changes to PyGreSQL between 3.1 and 3.2.
+The main reason for the release is the move into the PostgreSQL
+development tree.  Even the WIN32 changes are pretty minor.
+
+- Add Win32 support (gerhard@bigfoot.de)
+- Fix some DB-API quoting problems (niall.smart@ebeon.com)
+- Moved development into PostgreSQL development tree.
+
+Version 3.1 (2000-11-06)
+------------------------
+- Fix some quoting functions.  In particular handle NULLs better.
+- Use a method to add primary key information rather than direct
+  manipulation of the class structures
+- Break decimal out in `_quote` (in pg.py) and treat it as float
+- Treat timestamp like date for quoting purposes
+- Remove a redundant SELECT from the `get` method speeding it,
+  and `insert` (since it calls `get`) up a little.
+- Add test for BOOL type in typecast method to `pgdbTypeCache` class
+  (tv@beamnet.de)
+- Fix pgdb.py to send port as integer to lower level function
+  (dildog@l0pht.com)
+- Change pg.py to speed up some operations
+- Allow updates on tables with no primary keys
+
+Version 3.0 (2000-05-30)
+------------------------
+- Remove strlen() call from pglarge_write() and get size from object
+  (Richard@Bouska.cz)
+- Add a little more error checking to the quote function in the wrapper
+- Add extra checking in `_quote` function
+- Wrap query in pg.py for debugging
+- Add DB-API 2.0 support to pgmodule.c (andre@via.ecp.fr)
+- Add DB-API 2.0 wrapper pgdb.py (andre@via.ecp.fr)
+- Correct keyword clash (temp) in tutorial
+- Clean up layout of tutorial
+- Return NULL values as None (rlawrence@lastfoot.com)
+  (WARNING: This will cause backwards compatibility issues)
+- Change None to NULL in insert and update
+- Change hash-bang lines to use /usr/bin/env
+- Clearing date should be blank (NULL) not TODAY
+- Quote backslashes in strings in `_quote` (brian@CSUA.Berkeley.EDU)
+- Expanded and clarified build instructions (tbryan@starship.python.net)
+- Make code thread safe (Jerome.Alet@unice.fr)
+- Add README.distutils (mwa@gate.net & jeremy@cnri.reston.va.us)
+- Many fixes and increased DB-API compliance by chifungfan@yahoo.com,
+  tony@printra.net, jeremy@alum.mit.edu and others to get the final
+  version ready to release.
+
+Version 2.4 (1999-06-15)
+------------------------
+- Insert returns None if the user doesn't have select permissions
+  on the table.  It can (and does) happen that one has insert but
+  not select permissions on a table.
+- Added ntuples() method to query object (brit@druid.net)
+- Corrected a bug related to getresult() and the money type
+- Corrected a bug related to negative money amounts
+- Allow update based on primary key if munged oid not available and
+  table has a primary key
+- Add many __doc__ strings (andre@via.ecp.fr)
+- Get method works with views if key specified
+
+Version 2.3 (1999-04-17)
+------------------------
+- connect.host returns "localhost" when connected to Unix socket
+  (torppa@tuhnu.cutery.fi)
+- Use `PyArg_ParseTupleAndKeywords` in connect() (torppa@tuhnu.cutery.fi)
+- fixes and cleanups (torppa@tuhnu.cutery.fi)
+- Fixed memory leak in dictresult() (terekhov@emc.com)
+- Deprecated pgext.py - functionality now in pg.py
+- More cleanups to the tutorial
+- Added fileno() method - terekhov@emc.com (Mikhail Terekhov)
+- added money type to quoting function
+- Compiles cleanly with more warnings turned on
+- Returns PostgreSQL error message on error
+- Init accepts keywords (Jarkko Torppa)
+- Convenience functions can be overridden (Jarkko Torppa)
+- added close() method
+
+Version 2.2 (1998-12-21)
+------------------------
+- Added user and password support thanks to Ng Pheng Siong (ngps@post1.com)
+- Insert queries return the inserted oid
+- Add new `pg` wrapper (C module renamed to _pg)
+- Wrapped database connection in a class
+- Cleaned up some of the tutorial.  (More work needed.)
+- Added `version` and `__version__`.
+  Thanks to thilo@eevolute.com for the suggestion.
+
+Version 2.1 (1998-03-07)
+------------------------
+- return fields as proper Python objects for field type
+- Cleaned up pgext.py
+- Added dictresult method
+
+Version 2.0  (1997-12-23)
+-------------------------
+- Updated code for PostgreSQL 6.2.1 and Python 1.5
+- Reformatted code and converted to use full ANSI style prototypes
+- Changed name to PyGreSQL (from PyGres95)
+- Changed order of arguments to connect function
+- Created new type `pgqueryobject` and moved certain methods to it
+- Added a print function for pgqueryobject
+- Various code changes - mostly stylistic
+
+Version 1.0b (1995-11-04)
+-------------------------
+- Keyword support for connect function moved from library file to C code
+  and taken away from library
+- Rewrote documentation
+- Bug fix in connect function
+- Enhancements in large objects interface methods
+
+Version 1.0a (1995-10-30)
+-------------------------
+A limited release.
+
+- Module adapted to standard Python syntax
+- Keyword support for connect function in library file
+- Rewrote default parameters interface (internal use of strings)
+- Fixed minor bugs in module interface
+- Redefinition of error messages
+
+Version 0.9b (1995-10-10)
+-------------------------
+The first public release.
+
+- Large objects implementation
+- Many bug fixes, enhancements, ...
+
+Version 0.1a (1995-10-07)
+-------------------------
+- Basic libpq functions (SQL access)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
new file mode 100644
index 0000000..15d0778
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/default.css
@@ -0,0 +1,279 @@
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2006/01/22 16:15:33 $
+:Revision: $Revision: 1.2 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
new file mode 100644
index 0000000..3d99c95
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css
@@ -0,0 +1,109 @@
+/*
+Stylesheet for use with Docutils.
+
+Customized for PyGreSQL docs.
+*/
+
+@import url(default.css);
+
+body {
+	margin: 8pt;
+	padding: 8pt;
+	background-color: #f8f8ff;
+	color: #000008;
+	text-align: justify;
+	font-family: Arial, Verdana, Helvetica, sans-serif;
+	font-size: 11pt; }
+
+a {
+	text-decoration: none; }
+
+a:hover {
+	text-decoration: underline; }
+
+.title, .subtitle {
+	color: #003; }
+
+.topic-title {
+	color: #006;
+	font-size: 14pt; }
+
+h1, h2, h3, h4 {
+	color: #006; }
+
+h1 {
+	padding-top: 20pt;
+	font-size: 17pt; }
+
+div#pygresql-changelog div.section h1 {
+	font-size: 12pt;
+}
+
+h1.title {
+	font-size: 20pt;
+}
+
+h2 {
+	font-size: 14pt; }
+
+h2.subtitle {
+	font-size: 16pt;
+}
+
+h3 {
+	font-size: 13pt; }
+
+h4 {
+	font-size: 12pt; }
+
+a.toc-backref {
+	color: #006; }
+
+ul.simple li {
+	margin-top: 4pt; }
+
+ul.simple ul li {
+	margin-top: 2pt; }
+
+div.contents ul {
+	list-style-type: none; }
+
+div.contents ul li {
+	margin-top: 4pt;
+	font-size: 12pt; }
+
+div.contents ul ul li {
+	margin-top: 2pt;
+	font-size: 11pt; }
+
+cite {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold; }
+
+table.field-list th.field-name {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold; }
+
+tt.literal, pre.literal-block {
+	font-style: normal;
+	font-family: monospace;
+	font-weight: bold;
+	background-color: #fff; }
+
+tt.literal {
+	padding-left: 2pt;
+	padding-right: 2pt; }
+
+pre.literal-block {
+	padding: 4pt;
+	border: 1px dotted #ccc; }
+
+table.docutils {
+	border-spacing: 0px;
+	border-collapse: collapse; }
+
+table.docutils td {
+	margin: 0px;
+	padding: 2pt; }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
new file mode 100644
index 0000000..358de81
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL future directions</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-future-directions">
+<h1 class="title">PyGreSQL future directions</h1>
+<div class="section">
+<h1><a id="to-do" name="to-do">To Do</a></h1>
+<ul class="simple">
+<li>Documentation for the pgdb module (everything specific to PyGreSQL).</li>
+<li>The large object and direct access functions need much more attention.</li>
+<li>The C module needs to be cleaned up and redundant code merged,
+and should get its own unit test module.</li>
+<li>The fetch method should use real cursors.</li>
+<li>What shall we do with the &quot;tutorial&quot; directory
+(it's rather a tutorial for Postgres/SQL than for PyGreSQL,
+it's using only the query method from the classic pg module and
+no other PyGreSQL functionality, it's rather a demo than a tutorial)?</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="proposed-patches" name="proposed-patches">Proposed Patches</a></h1>
+<ul class="simple">
+<li>Notice handling with PQsetNoticeReceiver and PQsetNoticeProcessor
+(one possible implementation was already suggested by Dmitry Dvoinikov
+<a class="reference" href="http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html">http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html</a>).
+Maybe also make notifications accessible via the optional cursor and
+connection attribute &quot;messages&quot; proposed in the DB-API specs.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="wish-list" name="wish-list">Wish List</a></h1>
+<ul class="simple">
+<li>Make SQLSTATE error codes available.</li>
+<li>Make use of PQexecParams() and PQprepare(). This could speed up
+executemany() and allow retrieving binary data directly by setting
+the resultFormat parameter to one.</li>
+<li>Support optional &quot;errorhandler&quot; extension.</li>
+<li>Support optional cursor and connection attribute &quot;messages&quot;.</li>
+<li>Connection as context manager (see <a class="reference" href="http://tinyurl.com/6j9cef">http://tinyurl.com/6j9cef</a>).</li>
+<li>Users should be able to register their own types with _pg.</li>
+<li>Let pg and pgdb support namedtuples (as available in Py 2.6).
+pg could get a new method namedresult(), and pgdb could provide
+a row factory for namedtuples (similar to sqlite3).</li>
+<li>New methods in the classic module, similar to getresult() and
+dictresult(), but returning dictionaries of rows instead of lists
+of rows (with primary key or oids as keys).</li>
+<li>Make PyGreSQL thread-safe on the connection level.</li>
+<li>The API documentation could be created with Epydoc.</li>
+<li>Write a tutorial for beginners and advanced use.</li>
+<li>More and better documented examples.</li>
+</ul>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
new file mode 100644
index 0000000..8dec0fb
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/future.txt
@@ -0,0 +1,48 @@
+==========================
+PyGreSQL future directions
+==========================
+
+
+To Do
+-----
+
+- Documentation for the pgdb module (everything specific to PyGreSQL).
+- The large object and direct access functions need much more attention.
+- The C module needs to be cleaned up and redundant code merged,
+  and should get its own unit test module.
+- The fetch method should use real cursors.
+- What shall we do with the "tutorial" directory
+  (it's rather a tutorial for Postgres/SQL than for PyGreSQL,
+  it's using only the query method from the classic pg module and
+  no other PyGreSQL functionality, it's rather a demo than a tutorial)?
+
+Proposed Patches
+----------------
+
+- Notice handling with PQsetNoticeReceiver and PQsetNoticeProcessor
+  (one possible implementation was already suggested by Dmitry Dvoinikov
+  http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html).
+  Maybe also make notifications accessible via the optional cursor and
+  connection attribute "messages" proposed in the DB-API specs.
+
+Wish List
+---------
+
+- Make SQLSTATE error codes available.
+- Make use of PQexecParams() and PQprepare(). This could speed up
+  executemany() and allow retrieving binary data directly by setting
+  the resultFormat parameter to one.
+- Support optional "errorhandler" extension.
+- Support optional cursor and connection attribute "messages".
+- Connection as context manager (see http://tinyurl.com/6j9cef).
+- Users should be able to register their own types with _pg.
+- Let pg and pgdb support namedtuples (as available in Py 2.6).
+  pg could get a new method namedresult(), and pgdb could provide
+  a row factory for namedtuples (similar to sqlite3).
+- New methods in the classic module, similar to getresult() and
+  dictresult(), but returning dictionaries of rows instead of lists
+  of rows (with primary key or oids as keys).
+- Make PyGreSQL thread-safe on the connection level.
+- The API documentation could be created with Epydoc.
+- Write a tutorial for beginners and advanced use.
+- More and better documented examples.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
new file mode 100644
index 0000000..be2b37c
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/index.html
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>PyGreSQL - PostgreSQL module for Python</title>
+  <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-1">
+  <meta name="description" content="PyGreSQL homepage">
+  <meta name="keywords" content="PyGreSQL, Python, PostgreSQL, database, driver, DB-API, pg, pgdb">
+  <style type="text/css">
+  <!--
+  body {
+    margin: 8pt;
+    padding: 8pt;
+    background-color: #f8f8ff;
+    color: #000008;
+    text-align: justify;
+    font-family: Arial, Verdana, Helvetica, sans-serif;
+    font-size: 12pt; }
+  a {
+    text-decoration: none; }
+  a:hover {
+    text-decoration: underline; }
+  h1, h2 {
+    color: #006; }
+  h1 {
+    padding-top: 16pt;
+    font-size: 18pt; }
+  h2 {
+    padding-top: 8pt;
+    font-size: 16pt; }
+  ul {
+    list-style-type: none; }
+  ul li {
+    margin-top: 4pt;
+    font-size: 13pt; }
+  ul ul li {
+    margin-top: 2pt;
+    font-size: 12pt; }
+  #title {
+    position: absolute;
+    top: 0px;
+    left: 16px;
+    font-size: 36px;
+    font-style: italic;
+    letter-spacing: 5px;
+    color: #666;
+    z-index: 600; }
+  #version {
+    position: absolute;
+    top: 42px;
+    left: 64px;
+    font-size: 11px;
+    font-style: italic;
+    letter-spacing: 5px;
+    color: #000;
+    z-index: 610; }
+  #banner {
+    position: absolute;
+    padding-top: 0px;
+    padding-bottom: 0px;
+    text-align: center;
+    top: 27px;
+    left: 0px;
+    width: 100%;
+    height: 30px;
+    background: #ccd4e2;
+    z-index: 550;
+    border-top: 1px #999 solid;
+    border-bottom: 1px #999 solid; }
+  #bannertext {
+    position: absolute;
+    text-align: center;
+    font-size: 14px;
+    font-weight: bold;
+    letter-spacing: 4px;
+    color: #000066;
+    top: 39px;
+    right: 5%;
+    z-index: 560; }
+  #content {
+    margin: 36px 20px 2px 20px;
+    padding: 4pt 8pt 4pt 16pt;
+    border-left: 1px dashed #555;
+    border-bottom: 1px dashed #555; }
+  #copyright {
+    padding-top: 6pt;
+    font-size: 10pt;
+    color: #333;
+    text-align: center; }
+  -->
+  </style>
+</head>
+
+<body>
+
+  <div id="title">PyGreSQL</div>
+  <div id="version">Version 4.0</div>
+  <div id="banner"></div>
+  <div id="bannertext">:: PostgreSQL module for Python ::</div>
+
+  <div id="content">
+
+    <h1>PyGreSQL &ndash; PostgreSQL module for Python</h1>
+
+    <p><b>PyGreSQL</b> is an <em>open-source</em>
+    <a href="http://www.python.org">Python</a> module
+    that interfaces to a <a href="http://www.postgresql.org">PostgreSQL</a> database.
+    It embeds the PostgreSQL query library to allow easy use of the powerful PostgreSQL
+    features from a Python script.</p>
+
+    <p>This software is copyright &copy; 1995, Pascal Andre.<br />
+    Further modifications are copyright &copy; 1997-2006 by D'Arcy J.M. Cain.</p>
+
+    <p>See the
+    <a href="readme.html#copyright-notice">copyright notice</a>
+    for detailed information.</p>
+
+    <a name="documentation"></a>
+    <h2>Documentation</h2>
+
+    <p>The following information is also available in the <b>docs</b> folder of the distribution:</p>
+
+    <ul>
+      <li><a href="readme.html"><b>readme</b> &ndash; General Information</a>
+        <ul>
+          <li><a href="readme.html#copyright-notice">Copyright notice</a></li>
+          <li><a href="readme.html#introduction">Introduction</a></li>
+          <li><a href="readme.html#where-to-get">Where to get ... ?</a></li>
+          <li><a href="readme.html#distribution-files">Distribution files</a></li>
+        </ul></li>
+      <li><a href="announce.html"><b>announce</b> &ndash; Last announcement</a></li>
+      <li><a href="install.html"><b>install</b> &ndash; Installation</a></li>
+      <li><a href="pg.html"><b>pg</b> &ndash; The &ldquo;classic&rdquo; PyGreSQL interface</a></li>
+      <li><a href="pgdb.html"><b>pgdb</b> &ndash; The DB-API compliant PyGreSQL interface</a></li>
+      <li><a href="changelog.html"><b>changelog</b> &ndash; Historical changes</a></li>
+      <li><a href="future.html"><b>future</b> &ndash; Future directions</a></li>
+    </ul>
+
+    <a name="cvs"></a>
+    <h2>CVS Access</h2>
+
+    <p>The
+    <a href="http://www.pygresql.org/cvsweb.cgi/pygresql">CVS repository</a>
+    is available through
+    <a href="http://www.freebsd.org/projects/cvsweb.html">CVSWeb</a>.</p>
+
+    <a name="mailinglist"></a>
+    <h2>Mailing list</h2>
+
+    <p>You can join
+    <a href="http://mailman.vex.net/mailman/listinfo/pygresql">the mailing
+    list</a> to discuss future development of the PyGreSQL interface.
+    This is usually a low volume list except when there are new features
+    being added.</p>
+
+    <a name="examples"></a>
+    <h2>Examples</h2>
+
+    <p>I am starting to collect examples of applications that use PyGreSQL.
+    So far I only have a few but if you have an example for me, you can
+    either send me the files or the URL for me to point to.</p>
+
+    <p>Here is a <a href="http://ontario.bikerides.ca">List of motorcycle
+    rides in Ontario</a> that uses a PostgreSQL database to store the
+    rides. There is a link at the bottom of the page to view the source code.</p>
+
+    <p>
+    Oleg Broytmann has written a simple example
+    <a href="http://phd.pp.ru/Software/Python/#rgb_example">RGB
+    database demo</a>.
+    </p>
+
+  </div>
+
+  <div id="copyright">
+  Created and maintained by D'Arcy J.M. Cain &ndash;
+  last update: 17 February 2006.<br />
+  If you have any comments, <a href="mailto:darcy@pygresql.org">send mail</a> to me.
+  </div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
new file mode 100644
index 0000000..f1e48c0
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.html
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL Installation</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-installation">
+<h1 class="title">PyGreSQL Installation</h1>
+<div class="contents topic">
+<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
+<ul class="auto-toc simple">
+<li><a class="reference" href="#general" id="id1" name="id1">1&nbsp;&nbsp;&nbsp;General</a></li>
+<li><a class="reference" href="#installing-from-a-binary-distribution" id="id2" name="id2">2&nbsp;&nbsp;&nbsp;Installing from a Binary Distribution</a></li>
+<li><a class="reference" href="#installing-from-source" id="id3" name="id3">3&nbsp;&nbsp;&nbsp;Installing from Source</a><ul class="auto-toc">
+<li><a class="reference" href="#building-and-installing-with-distutils" id="id4" name="id4">3.1&nbsp;&nbsp;&nbsp;Building and installing with Distutils</a></li>
+<li><a class="reference" href="#compiling-manually" id="id5" name="id5">3.2&nbsp;&nbsp;&nbsp;Compiling Manually</a></li>
+<li><a class="reference" href="#stand-alone" id="id6" name="id6">3.3&nbsp;&nbsp;&nbsp;Stand-Alone</a></li>
+<li><a class="reference" href="#built-in-to-python-interpreter" id="id7" name="id7">3.4&nbsp;&nbsp;&nbsp;Built-in to Python interpreter</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id1" id="general" name="general">1&nbsp;&nbsp;&nbsp;General</a></h1>
+<p>You must first have installed Python and PostgreSQL on your system.
+If you want to access remote database only, you don't need to install
+the full PostgreSQL server, but only the C interface (libpq). If you
+are on Windows, make sure that the directory with libpq.dll is in your
+<tt class="docutils literal"><span class="pre">PATH</span></tt> environment variable.</p>
+<p>The current version of PyGreSQL has been tested with Python 2.5 and
+PostGreSQL 8.3. Older version should work as well, but you will need
+at least Python 2.3 and PostgreSQL 7.4.</p>
+<p>PyGreSQL will be installed as three modules, a dynamic module called
+_pg.pyd, and two pure Python wrapper modules called pg.py and pgdb.py.
+All three files will be installed directly into the Python site-packages
+directory. To uninstall PyGreSQL, simply remove these three files again.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id2" id="installing-from-a-binary-distribution" name="installing-from-a-binary-distribution">2&nbsp;&nbsp;&nbsp;Installing from a Binary Distribution</a></h1>
+<p>This is the easiest way to install PyGreSQL.</p>
+<p>You can currently download PyGreSQL as Linux RPM, NetBSD package and Windows
+installer. Make sure the required Python version of the binary package matches
+the Python version you have installed.</p>
+<p>Install the package as usual on your system.</p>
+<p>Note that the documentation is currently only included in the source package.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id3" id="installing-from-source" name="installing-from-source">3&nbsp;&nbsp;&nbsp;Installing from Source</a></h1>
+<p>If you want to install PyGreSQL from Source, or there is no binary
+package available for your platform, follow these instructions.</p>
+<p>Make sure the Python header files and PostgreSQL client and server header
+files are installed. These come usually with the &quot;devel&quot; packages on Unix
+systems and the installer executables on Windows systems.</p>
+<p>If you are using a precompiled PostgreSQL, you will also need the pg_config
+tool. This is usually also part of the &quot;devel&quot; package on Unix, and will be
+installed as part of the database server feature on Windows systems.</p>
+<div class="section">
+<h2><a class="toc-backref" href="#id4" id="building-and-installing-with-distutils" name="building-and-installing-with-distutils">3.1&nbsp;&nbsp;&nbsp;Building and installing with Distutils</a></h2>
+<p>You can build and install PyGreSQL using
+<a class="reference" href="http://docs.python.org/install/">Distutils</a>.</p>
+<p>Download and unpack the PyGreSQL source tarball if you haven't already done so.</p>
+<p>Type the following commands to build and install PyGreSQL:</p>
+<pre class="literal-block">
+python setup.py build
+python setup.py install
+</pre>
+<p>If you are using <a class="reference" href="http://www.mingw.org">MinGW</a> to build PyGreSQL under
+Microsoft Windows, please note that Python newer version 2.3 is using msvcr71
+instead of msvcrt as its common runtime library. You can allow for that by
+editing the file <tt class="docutils literal"><span class="pre">%MinGWpath%/lib/gcc/%MinGWversion%/specs</span></tt> and changing
+the entry that reads <tt class="docutils literal"><span class="pre">-lmsvcrt</span></tt> to <tt class="docutils literal"><span class="pre">-lmsvcr71</span></tt>. You may also need to copy
+<tt class="docutils literal"><span class="pre">libpq.lib</span></tt> to <tt class="docutils literal"><span class="pre">libpq.a</span></tt> in the PostgreSQL <tt class="docutils literal"><span class="pre">lib</span></tt> directory. Then use
+the following command to build and install PyGreSQL:</p>
+<pre class="literal-block">
+python setup.py build -c mingw32 install
+</pre>
+<p>Now you should be ready to use PyGreSQL.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id5" id="compiling-manually" name="compiling-manually">3.2&nbsp;&nbsp;&nbsp;Compiling Manually</a></h2>
+<p>The source file for compiling the dynamic module is called pgmodule.c.
+You have two options. You can compile PyGreSQL as a stand-alone module
+or you can build it into the Python interpreter.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id6" id="stand-alone" name="stand-alone">3.3&nbsp;&nbsp;&nbsp;Stand-Alone</a></h2>
+<ul>
+<li><p class="first">In the directory containing <tt class="docutils literal"><span class="pre">pgmodule.c</span></tt>, run the following command:</p>
+<pre class="literal-block">
+cc -fpic -shared -o _pg.so -I$PYINC -I$PGINC -I$PSINC -L$PGLIB -lpq pgmodule.c
+</pre>
+<p>where you have to set:</p>
+<pre class="literal-block">
+PYINC = path to the Python include files
+        (usually something like /usr/include/python)
+PGINC = path to the PostgreSQL client include files
+        (something like /usr/include/pgsql or /usr/include/postgresql)
+PSINC = path to the PostgreSQL server include files
+        (like /usr/include/pgsql/server or /usr/include/postgresql/server)
+PGLIB = path to the PostgreSQL object code libraries (usually /usr/lib)
+</pre>
+<p>If you are not sure about the above paths, try something like:</p>
+<pre class="literal-block">
+PYINC=`find /usr -name Python.h`
+PGINC=`find /usr -name libpq-fe.h`
+PSINC=`find /usr -name postgres.h`
+PGLIB=`find /usr -name libpq.so`
+</pre>
+<p>If you have the <tt class="docutils literal"><span class="pre">pg_config</span></tt> tool installed, you can set:</p>
+<pre class="literal-block">
+PGINC=`pg_config --includedir`
+PSINC=`pg_config --includedir-server`
+PGLIB=`pg_config --libdir`
+</pre>
+<p>Some options may be added to this line:</p>
+<pre class="literal-block">
+-DNO_DEF_VAR   no default variables support
+-DNO_DIRECT    no direct access methods
+-DNO_LARGE     no large object support
+-DNO_PQSOCKET  if running an older PostgreSQL
+</pre>
+<p>Define <tt class="docutils literal"><span class="pre">NO_PQSOCKET</span></tt> if you are using a version of PostgreSQL before 6.4
+that does not have the PQsocket function. The other options will be
+described in the next sections.</p>
+<p>On some systems you may need to include <tt class="docutils literal"><span class="pre">-lcrypt</span></tt> in the list of libraries
+to make it compile.</p>
+</li>
+<li><p class="first">Test the new module. Something like the following should work:</p>
+<pre class="literal-block">
+$ python
+
+&gt;&gt;&gt; import _pg
+&gt;&gt;&gt; db = _pg.connect('thilo','localhost')
+&gt;&gt;&gt; db.query(&quot;INSERT INTO test VALUES ('ping','pong')&quot;)
+18304
+&gt;&gt;&gt; db.query(&quot;SELECT * FROM test&quot;)
+eins|zwei
+----+----
+ping|pong
+(1 row)
+</pre>
+</li>
+<li><p class="first">Finally, move the <tt class="docutils literal"><span class="pre">_pg.so</span></tt>, <tt class="docutils literal"><span class="pre">pg.py</span></tt>, and <tt class="docutils literal"><span class="pre">pgdb.py</span></tt> to a directory in
+your <tt class="docutils literal"><span class="pre">PYTHONPATH</span></tt>. A good place would be <tt class="docutils literal"><span class="pre">/usr/lib/python/site-packages</span></tt>
+if your Python modules are in <tt class="docutils literal"><span class="pre">/usr/lib/python</span></tt>.</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id7" id="built-in-to-python-interpreter" name="built-in-to-python-interpreter">3.4&nbsp;&nbsp;&nbsp;Built-in to Python interpreter</a></h2>
+<ul>
+<li><p class="first">Find the directory where your <tt class="docutils literal"><span class="pre">Setup</span></tt> file lives (usually in the <tt class="docutils literal"><span class="pre">Modules</span></tt>
+subdirectory) in the Python source hierarchy and copy or symlink the
+<tt class="docutils literal"><span class="pre">pgmodule.c</span></tt> file there.</p>
+</li>
+<li><p class="first">Add the following line to your 'Setup' file:</p>
+<pre class="literal-block">
+_pg  pgmodule.c -I$PGINC -I$PSINC -L$PGLIB -lpq
+</pre>
+<p>where:</p>
+<pre class="literal-block">
+PGINC = path to the PostgreSQL client include files (see above)
+PSINC = path to the PostgreSQL server include files (see above)
+PGLIB = path to the PostgreSQL object code libraries (see above)
+</pre>
+<p>Some options may be added to this line:</p>
+<pre class="literal-block">
+-DNO_DEF_VAR   no default variables support
+-DNO_DIRECT    no direct access methods
+-DNO_LARGE     no large object support
+-DNO_PQSOCKET  if running an older PostgreSQL (see above)
+</pre>
+<p>On some systems you may need to include <tt class="docutils literal"><span class="pre">-lcrypt</span></tt> in the list of libraries
+to make it compile.</p>
+</li>
+<li><p class="first">If you want a shared module, make sure that the <tt class="docutils literal"><span class="pre">shared</span></tt> keyword is
+uncommented and add the above line below it. You used to need to install
+your shared modules with <tt class="docutils literal"><span class="pre">make</span> <span class="pre">sharedinstall</span></tt> but this no longer seems
+to be true.</p>
+</li>
+<li><p class="first">Copy <tt class="docutils literal"><span class="pre">pg.py</span></tt> to the lib directory where the rest of your modules are.
+For example, that's <tt class="docutils literal"><span class="pre">/usr/local/lib/Python</span></tt> on my system.</p>
+</li>
+<li><p class="first">Rebuild Python from the root directory of the Python source hierarchy by
+running <tt class="docutils literal"><span class="pre">make</span> <span class="pre">-f</span> <span class="pre">Makefile.pre.in</span> <span class="pre">boot</span></tt> and <tt class="docutils literal"><span class="pre">make</span> <span class="pre">&amp;&amp;</span> <span class="pre">make</span> <span class="pre">install</span></tt>.</p>
+</li>
+<li><p class="first">For more details read the documentation at the top of <tt class="docutils literal"><span class="pre">Makefile.pre.in</span></tt>.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
new file mode 100644
index 0000000..3f19a2c
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/install.txt
@@ -0,0 +1,188 @@
+=====================
+PyGreSQL Installation
+=====================
+
+.. sectnum::
+.. contents:: Contents
+
+
+General
+=======
+
+You must first have installed Python and PostgreSQL on your system.
+If you want to access remote database only, you don't need to install
+the full PostgreSQL server, but only the C interface (libpq). If you
+are on Windows, make sure that the directory with libpq.dll is in your
+``PATH`` environment variable.
+
+The current version of PyGreSQL has been tested with Python 2.5 and
+PostGreSQL 8.3. Older version should work as well, but you will need
+at least Python 2.3 and PostgreSQL 7.4.
+
+PyGreSQL will be installed as three modules, a dynamic module called
+_pg.pyd, and two pure Python wrapper modules called pg.py and pgdb.py.
+All three files will be installed directly into the Python site-packages
+directory. To uninstall PyGreSQL, simply remove these three files again.
+
+
+Installing from a Binary Distribution
+=====================================
+
+This is the easiest way to install PyGreSQL.
+
+You can currently download PyGreSQL as Linux RPM, NetBSD package and Windows
+installer. Make sure the required Python version of the binary package matches
+the Python version you have installed.
+
+Install the package as usual on your system.
+
+Note that the documentation is currently only included in the source package.
+
+
+Installing from Source
+======================
+
+If you want to install PyGreSQL from Source, or there is no binary
+package available for your platform, follow these instructions.
+
+Make sure the Python header files and PostgreSQL client and server header
+files are installed. These come usually with the "devel" packages on Unix
+systems and the installer executables on Windows systems.
+
+If you are using a precompiled PostgreSQL, you will also need the pg_config
+tool. This is usually also part of the "devel" package on Unix, and will be
+installed as part of the database server feature on Windows systems.
+
+Building and installing with Distutils
+--------------------------------------
+
+You can build and install PyGreSQL using
+`Distutils <http://docs.python.org/install/>`_.
+
+Download and unpack the PyGreSQL source tarball if you haven't already done so.
+
+Type the following commands to build and install PyGreSQL::
+
+    python setup.py build
+    python setup.py install
+
+If you are using `MinGW <http://www.mingw.org>`_ to build PyGreSQL under
+Microsoft Windows, please note that Python newer version 2.3 is using msvcr71
+instead of msvcrt as its common runtime library. You can allow for that by
+editing the file ``%MinGWpath%/lib/gcc/%MinGWversion%/specs`` and changing
+the entry that reads ``-lmsvcrt`` to ``-lmsvcr71``. You may also need to copy
+``libpq.lib`` to ``libpq.a`` in the PostgreSQL ``lib`` directory. Then use
+the following command to build and install PyGreSQL::
+
+    python setup.py build -c mingw32 install
+
+Now you should be ready to use PyGreSQL.
+
+Compiling Manually
+------------------
+
+The source file for compiling the dynamic module is called pgmodule.c.
+You have two options. You can compile PyGreSQL as a stand-alone module
+or you can build it into the Python interpreter.
+
+Stand-Alone
+-----------
+
+* In the directory containing ``pgmodule.c``, run the following command::
+
+    cc -fpic -shared -o _pg.so -I$PYINC -I$PGINC -I$PSINC -L$PGLIB -lpq pgmodule.c
+
+  where you have to set::
+
+    PYINC = path to the Python include files
+            (usually something like /usr/include/python)
+    PGINC = path to the PostgreSQL client include files
+            (something like /usr/include/pgsql or /usr/include/postgresql)
+    PSINC = path to the PostgreSQL server include files
+            (like /usr/include/pgsql/server or /usr/include/postgresql/server)
+    PGLIB = path to the PostgreSQL object code libraries (usually /usr/lib)
+
+  If you are not sure about the above paths, try something like::
+
+    PYINC=`find /usr -name Python.h`
+    PGINC=`find /usr -name libpq-fe.h`
+    PSINC=`find /usr -name postgres.h`
+    PGLIB=`find /usr -name libpq.so`
+
+  If you have the ``pg_config`` tool installed, you can set::
+
+    PGINC=`pg_config --includedir`
+    PSINC=`pg_config --includedir-server`
+    PGLIB=`pg_config --libdir`
+
+  Some options may be added to this line::
+
+    -DNO_DEF_VAR   no default variables support
+    -DNO_DIRECT    no direct access methods
+    -DNO_LARGE     no large object support
+    -DNO_PQSOCKET  if running an older PostgreSQL
+
+  Define ``NO_PQSOCKET`` if you are using a version of PostgreSQL before 6.4
+  that does not have the PQsocket function. The other options will be
+  described in the next sections.
+
+  On some systems you may need to include ``-lcrypt`` in the list of libraries
+  to make it compile.
+
+* Test the new module. Something like the following should work::
+
+    $ python
+
+    >>> import _pg
+    >>> db = _pg.connect('thilo','localhost')
+    >>> db.query("INSERT INTO test VALUES ('ping','pong')")
+    18304
+    >>> db.query("SELECT * FROM test")
+    eins|zwei
+    ----+----
+    ping|pong
+    (1 row)
+
+* Finally, move the ``_pg.so``, ``pg.py``, and ``pgdb.py`` to a directory in
+  your ``PYTHONPATH``. A good place would be ``/usr/lib/python/site-packages``
+  if your Python modules are in ``/usr/lib/python``.
+
+Built-in to Python interpreter
+------------------------------
+
+* Find the directory where your ``Setup`` file lives (usually in the ``Modules``
+  subdirectory) in the Python source hierarchy and copy or symlink the
+  ``pgmodule.c`` file there.
+
+* Add the following line to your 'Setup' file::
+
+    _pg  pgmodule.c -I$PGINC -I$PSINC -L$PGLIB -lpq
+
+  where::
+
+    PGINC = path to the PostgreSQL client include files (see above)
+    PSINC = path to the PostgreSQL server include files (see above)
+    PGLIB = path to the PostgreSQL object code libraries (see above)
+
+  Some options may be added to this line::
+
+    -DNO_DEF_VAR   no default variables support
+    -DNO_DIRECT    no direct access methods
+    -DNO_LARGE     no large object support
+    -DNO_PQSOCKET  if running an older PostgreSQL (see above)
+
+  On some systems you may need to include ``-lcrypt`` in the list of libraries
+  to make it compile.
+
+* If you want a shared module, make sure that the ``shared`` keyword is
+  uncommented and add the above line below it. You used to need to install
+  your shared modules with ``make sharedinstall`` but this no longer seems
+  to be true.
+
+* Copy ``pg.py`` to the lib directory where the rest of your modules are.
+  For example, that's ``/usr/local/lib/Python`` on my system.
+
+* Rebuild Python from the root directory of the Python source hierarchy by
+  running ``make -f Makefile.pre.in boot`` and ``make && make install``.
+
+* For more details read the documentation at the top of ``Makefile.pre.in``.


[32/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/catquery.c
----------------------------------------------------------------------
diff --git a/src/backend/access/index/catquery.c b/src/backend/access/index/catquery.c
new file mode 100644
index 0000000..1b2c9a8
--- /dev/null
+++ b/src/backend/access/index/catquery.c
@@ -0,0 +1,23165 @@
+/* C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -S 1 --hash-fn-name=cq_hash --lookup-fn-name=cq_lookup --duplicates --key=11,18,20,27,29,39,43,61,92 -t gperf.init  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+error "gperf generated tables don't work with this execution character set. Please report a bug to <bu...@gnu.org>."
+#endif
+
+
+
+/* 
+   WARNING: DO NOT MODIFY THIS FILE: 
+   Generated by ../../../../src/include/catalog/calico.pl version 55
+   on Thu Apr 17 15:20:17 2014
+
+ARGV: \-meta\ \/Users\/jianl\/Git\/hawq\/mn\/cdb\-pg\/\.\.\/gpMgmt\/bin\/gppylib\/data\/1\.2\.json\ \-filemap\ caqlfilemap\.json\ \-uniqdef\ uniqdef\.json\ \-basedef\ basedef\.json\ \-gperf\ gperf\.init\ \-infiles\ caql\.files
+
+*/
+
+/*-------------------------------------------------------------------------
+ *
+ * catquery.c
+ *	  general catalog table access methods (internal api)
+ *
+ * Copyright (c) 2011,2012,2013 Greenplum inc
+ *
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include <math.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "access/catquery.h"
+#include "access/genam.h"
+#include "access/heapam.h"
+#include "access/relscan.h"
+#include "access/transam.h"
+
+#include "catalog/caqlparse.h"
+#include "catalog/catalog.h"
+#include "catalog/indexing.h"
+#include "catalog/pg_aggregate.h"
+#include "catalog/pg_amop.h"
+#include "catalog/pg_amproc.h"
+#include "catalog/pg_appendonly_alter_column.h"
+#include "catalog/pg_attrdef.h"
+#include "catalog/pg_auth_members.h"
+#include "catalog/pg_authid.h"
+#include "catalog/pg_autovacuum.h"
+#include "catalog/pg_cast.h"
+#include "catalog/pg_class.h"
+#include "catalog/pg_constraint.h"
+#include "catalog/pg_conversion.h"
+#include "catalog/pg_database.h"
+#include "catalog/pg_depend.h"
+#include "catalog/pg_description.h"
+#include "catalog/pg_extprotocol.h"
+#include "catalog/pg_exttable.h"
+#include "catalog/pg_filespace.h"
+#include "catalog/pg_filespace_entry.h"
+#include "catalog/pg_inherits.h"
+#include "catalog/pg_language.h"
+#include "catalog/pg_largeobject.h"
+#include "catalog/pg_listener.h"
+#include "catalog/pg_namespace.h"
+#include "catalog/pg_opclass.h"
+#include "catalog/pg_operator.h"
+#include "catalog/pg_partition.h"
+#include "catalog/pg_partition_rule.h"
+#include "catalog/pg_pltemplate.h"
+#include "catalog/pg_proc.h"
+#include "catalog/pg_resqueue.h"
+#include "catalog/pg_rewrite.h"
+#include "catalog/pg_shdepend.h"
+#include "catalog/pg_shdescription.h"
+#include "catalog/pg_statistic.h"
+#include "catalog/pg_tablespace.h"
+#include "catalog/pg_trigger.h"
+#include "catalog/pg_user_mapping.h"
+#include "catalog/pg_window.h"
+#include "catalog/pg_tidycat.h"
+
+#include "catalog/gp_configuration.h"
+#include "catalog/gp_configuration.h"
+#include "catalog/gp_segment_config.h"
+#include "catalog/gp_san_config.h"
+
+#include "catalog/gp_fastsequence.h"
+
+#include "catalog/gp_master_mirroring.h"
+#include "catalog/gp_persistent.h"
+#include "catalog/gp_global_sequence.h"
+#include "catalog/gp_id.h"
+#include "catalog/gp_version.h"
+#include "catalog/toasting.h"
+#include "catalog/gp_policy.h"
+
+#include "miscadmin.h"
+#include "storage/fd.h"
+#include "utils/fmgroids.h"
+#include "utils/relcache.h"
+#include "utils/lsyscache.h"
+#include "utils/syscache.h"
+
+#include "utils/acl.h"
+#include "utils/builtins.h"
+#include "utils/inval.h"
+
+#include "cdb/cdbpersistenttablespace.h"
+#include "cdb/cdbvars.h"
+
+
+
+static void caql_UpdateIndexes(cqContext	*pCtx, 
+							   Relation		 rel, 
+							   HeapTuple	 tup);
+
+#define caql_getattr_internal(pCtx, tup, attnum, isnull) \
+(((pCtx)->cq_usesyscache) ? \
+(SysCacheGetAttr((pCtx)->cq_cacheId, (tup), (attnum), (isnull))) : \
+(heap_getattr((tup), (attnum), (pCtx)->cq_tupdesc, (isnull))))
+
+#define caql_heapclose(pCtx) \
+if (!(pCtx)->cq_externrel) { \
+heap_close((pCtx)->cq_heap_rel, (pCtx)->cq_lockmode); \
+(pCtx)->cq_heap_rel = InvalidRelation; } else
+
+
+
+/* ----------------------------------------------------------------
+ * cq_lookup() 
+ * cq_lookup() defines a hash cookie for every cql() declaration.  The
+ * cookie associates the caql string with a "base query" function
+ * [caql_basic_fn_#()] that constructs the scan for the query.  
+ * caql_switch() dispatches on the cookie to the base query function.
+ * ----------------------------------------------------------------
+*/
+
+#ifdef NOT_USED
+
+
+struct caql_hash_cookie
+{
+	const char *name;       /* caql string */
+	int uniqquery_code;     /* corresponding unique query */
+	int basequery_code;     /* corresponding base query */
+	int bDelete;            /* query performs DELETE */
+	int bCount;             /* SELECT COUNT(*) (or DELETE) */
+	int bUpdate;            /* SELECT ... FOR UPDATE */
+	int bInsert;            /* INSERT INTO  */
+	AttrNumber attnum;      /* column number (or 0 if no column specified) */
+};
+
+#define TOTAL_KEYWORDS 409
+#define MIN_WORD_LENGTH 19
+#define MAX_WORD_LENGTH 170
+#define MIN_HASH_VALUE 23
+#define MAX_HASH_VALUE 1757
+/* maximum key range = 1735, duplicates = 0 */
+
+#ifdef __GNUC__
+
+#else
+#ifdef __cplusplus
+
+#endif
+#endif
+static unsigned int
+cq_hash (str, len)
+     register const char *str;
+     register unsigned int len;
+{
+  static unsigned short asso_values[] =
+    {
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758,    0,    0, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758,    0, 1758, 1758, 1758, 1758,  160,
+        20,    0, 1758, 1758, 1758, 1758, 1758, 1758,   25, 1758,
+        25,   10,    5, 1758, 1758,  145, 1758, 1758,    0,   45,
+       495, 1758,  405,  280, 1758, 1758, 1758,    0,   60,    0,
+         0, 1758,    5,  411,    5,   20, 1758,  295,  175,    0,
+      1758, 1758, 1758, 1758, 1758,  542,  480,    5,  210,    5,
+         0,  105,   90,  245,  425,   30,  260,   10,  335,  235,
+         0,   10,   35,   95,   10,    5,   20,    0,  465,  328,
+         5,    0,    5, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
+      1758, 1758, 1758, 1758, 1758, 1758, 1758
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[91]];
+      /*FALLTHROUGH*/
+      case 91:
+      case 90:
+      case 89:
+      case 88:
+      case 87:
+      case 86:
+      case 85:
+      case 84:
+      case 83:
+      case 82:
+      case 81:
+      case 80:
+      case 79:
+      case 78:
+      case 77:
+      case 76:
+      case 75:
+      case 74:
+      case 73:
+      case 72:
+      case 71:
+      case 70:
+      case 69:
+      case 68:
+      case 67:
+      case 66:
+      case 65:
+      case 64:
+      case 63:
+      case 62:
+      case 61:
+        hval += asso_values[(unsigned char)str[60]];
+      /*FALLTHROUGH*/
+      case 60:
+      case 59:
+      case 58:
+      case 57:
+      case 56:
+      case 55:
+      case 54:
+      case 53:
+      case 52:
+      case 51:
+      case 50:
+      case 49:
+      case 48:
+      case 47:
+      case 46:
+      case 45:
+      case 44:
+      case 43:
+        hval += asso_values[(unsigned char)str[42]];
+      /*FALLTHROUGH*/
+      case 42:
+      case 41:
+      case 40:
+      case 39:
+        hval += asso_values[(unsigned char)str[38]];
+      /*FALLTHROUGH*/
+      case 38:
+      case 37:
+      case 36:
+      case 35:
+      case 34:
+      case 33:
+      case 32:
+      case 31:
+      case 30:
+      case 29:
+        hval += asso_values[(unsigned char)str[28]];
+      /*FALLTHROUGH*/
+      case 28:
+      case 27:
+        hval += asso_values[(unsigned char)str[26]+1];
+      /*FALLTHROUGH*/
+      case 26:
+      case 25:
+      case 24:
+      case 23:
+      case 22:
+      case 21:
+      case 20:
+        hval += asso_values[(unsigned char)str[19]];
+      /*FALLTHROUGH*/
+      case 19:
+      case 18:
+        hval += asso_values[(unsigned char)str[17]];
+      /*FALLTHROUGH*/
+      case 17:
+      case 16:
+      case 15:
+      case 14:
+      case 13:
+      case 12:
+      case 11:
+        hval += asso_values[(unsigned char)str[10]];
+        break;
+    }
+  return hval;
+}
+
+#ifdef __GNUC__
+
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+
+#endif
+#endif
+static struct caql_hash_cookie *
+cq_lookup (str, len)
+     register const char *str;
+     register unsigned int len;
+{
+  static struct caql_hash_cookie wordlist[] =
+    {
+
+      {"INSERT INTO pg_language", 73, 29, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_cast", 57, 13, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_index ", 71, 27, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_resqueue", 82, 38, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_amop", 48, 4, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_proc ", 80, 36, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_class ", 58, 14, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_opclass", 75, 31, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_class ", 132, 90, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_description", 63, 19, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_attrdef ", 51, 7, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_constraint", 59, 15, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resqueue ", 229, 170, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_exttable", 65, 21, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_database", 149, 104, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_database ", 150, 104, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_type ", 90, 46, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_extprotocol", 64, 20, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_depend ", 62, 18, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_shdepend ", 84, 40, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_appendonly", 50, 6, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_partition ", 77, 33, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_amproc", 49, 5, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_shdescription", 85, 41, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_constraint  WHERE conrelid = :1 ", 138, 97, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_cast  WHERE oid = :1 ", 11, 89, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_authid ", 56, 12, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT oprname FROM pg_operator  WHERE oid = :1 ", 368, 143, 0, 0, 0, 0, Anum_pg_operator_oprname},
+
+      {"INSERT INTO pg_attribute ", 52, 8, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_am  WHERE oid = :1 ", 105, 60, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oprcode FROM pg_operator  WHERE oid = :1 ", 365, 143, 0, 0, 0, 0, Anum_pg_operator_oprcode},
+
+      {"SELECT * FROM pg_constraint  WHERE contypid = :1 ", 141, 99, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_constraint  WHERE conrelid = :1  FOR UPDATE ", 139, 97, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oprrest FROM pg_operator  WHERE oid = :1 ", 372, 143, 0, 0, 0, 0, Anum_pg_operator_oprrest},
+
+      {"SELECT * FROM pg_constraint  WHERE conrelid = :1 AND contype = :2", 140, 98, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_constraint  WHERE conname = :1  AND connamespace = :2 ", 137, 96, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT opcowner FROM pg_opclass WHERE oid = :1 ", 364, 140, 0, 0, 0, 0, Anum_pg_opclass_opcowner},
+
+      {"SELECT relname FROM pg_class  WHERE oid = :1 ", 389, 91, 0, 0, 0, 0, Anum_pg_class_relname},
+
+      {"SELECT * FROM pg_constraint  WHERE contypid = :1  FOR UPDATE ", 142, 99, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_partition_encoding ", 78, 34, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO gp_distribution_policy ", 45, 1, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_conversion  WHERE conname = :1  AND connamespace = :2 ", 145, 101, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_type  WHERE oid = :1 ", 42, 198, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_attribute_encoding", 53, 9, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT rolname FROM pg_authid  WHERE oid = :1 ", 394, 83, 0, 0, 0, 0, Anum_pg_authid_rolname},
+
+      {"SELECT srvowner FROM pg_foreign_server WHERE oid = :1 ", 399, 124, 0, 0, 0, 0, Anum_pg_foreign_server_srvowner},
+
+      {"SELECT reltype FROM pg_class  WHERE oid = :1 ", 393, 91, 0, 0, 0, 0, Anum_pg_class_reltype},
+
+      {"SELECT fsname FROM pg_filespace  WHERE oid = :1 ", 328, 118, 0, 0, 0, 0, Anum_pg_filespace_fsname},
+
+      {"SELECT nspowner FROM pg_namespace WHERE oid = :1 ", 335, 139, 0, 0, 0, 0, Anum_pg_namespace_nspowner},
+
+      {"SELECT conname FROM pg_constraint  WHERE oid = :1 ", 319, 100, 0, 0, 0, 0, Anum_pg_constraint_conname},
+
+      {"DELETE FROM pg_shdescription where objoid  = :1 AND  classoid = :2", 37, 181, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_opclass  WHERE oid = :1 ", 298, 140, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT proowner FROM pg_proc  WHERE oid = :1 ", 381, 161, 0, 0, 0, 0, Anum_pg_proc_proowner},
+
+      {"SELECT datdba FROM pg_database WHERE oid = :1 ", 325, 106, 0, 0, 0, 0, Anum_pg_database_datdba},
+
+      {"SELECT * FROM pg_appendonly  WHERE relid = :1 ", 110, 69, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_conversion", 60, 16, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT ptcowner FROM pg_extprotocol WHERE oid = :1 ", 385, 113, 0, 0, 0, 0, Anum_pg_extprotocol_ptcowner},
+
+      {"INSERT INTO pg_operator", 76, 32, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_namespace  WHERE nspname = :1 ", 296, 138, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT parrelid FROM pg_partition  WHERE oid = :1 ", 377, 149, 0, 0, 0, 0, Anum_pg_partition_parrelid},
+
+      {"SELECT COUNT(*) FROM pg_resqueue WHERE rsqname = :1", 305, 172, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_appendonly  WHERE relid = :1  FOR UPDATE ", 111, 69, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT opckeytype FROM pg_opclass  WHERE oid = :1 ", 363, 140, 0, 0, 0, 0, Anum_pg_opclass_opckeytype},
+
+      {"SELECT castfunc FROM pg_cast  WHERE castsource = :1  AND casttarget = :2 ", 317, 88, 0, 0, 0, 0, Anum_pg_cast_castfunc},
+
+      {"DELETE FROM pg_attribute_encoding  WHERE attrelid = :1 ", 8, 77, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT conrelid FROM pg_constraint  WHERE oid = :1 ", 322, 100, 0, 0, 0, 0, Anum_pg_constraint_conrelid},
+
+      {"SELECT COUNT(*) FROM pg_namespace  WHERE oid = :1 ", 297, 139, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT atttypid FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2 ", 316, 75, 0, 0, 0, 0, Anum_pg_attribute_atttypid},
+
+      {"SELECT oprowner FROM pg_operator WHERE oid = :1 ", 371, 143, 0, 0, 0, 0, Anum_pg_operator_oprowner},
+
+      {"SELECT * FROM pg_description where objoid = :1 AND  classoid = :2 AND  objsubid = :3 FOR UPDATE", 162, 112, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_authid  WHERE rolname = :1 ", 278, 84, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_authid  WHERE oid = :1 ", 277, 83, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_authid WHERE rolresqueue = :1", 279, 85, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_partition  WHERE parrelid = :1 ", 301, 150, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_opclass  WHERE opcamid = :1  AND opcname = :2  AND opcnamespace = :3 ", 299, 142, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_language  WHERE oid = :1 ", 294, 134, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_proc  WHERE oid = :1 ", 303, 161, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_language  WHERE lanname = :1 ", 293, 133, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resourcetype FOR UPDATE", 226, 167, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM gp_fastsequence  WHERE objid = :1 ", 2, 50, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT typrelid FROM pg_type  WHERE oid = :1 ", 408, 198, 0, 0, 0, 0, Anum_pg_type_typrelid},
+
+      {"SELECT rsqname FROM pg_resqueue WHERE oid = :1 ", 396, 171, 0, 0, 0, 0, Anum_pg_resqueue_rsqname},
+
+      {"SELECT COUNT(*) FROM pg_cast  WHERE castsource = :1  AND casttarget = :2 ", 280, 88, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT prorettype FROM pg_proc  WHERE oid = :1 ", 382, 161, 0, 0, 0, 0, Anum_pg_proc_prorettype},
+
+      {"SELECT indrelid FROM pg_index  WHERE indexrelid = :1 ", 330, 127, 0, 0, 0, 0, Anum_pg_index_indrelid},
+
+      {"SELECT COUNT(*) FROM pg_amop  WHERE amopopr = :1  AND amopclaid = :2 ", 274, 65, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2 ", 276, 75, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_attribute  WHERE attrelid = :1  AND attname = :2 ", 275, 74, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT amproc FROM pg_amproc  WHERE amopclaid = :1  AND amprocsubtype = :2  AND amprocnum = :3 ", 314, 68, 0, 0, 0, 0, Anum_pg_amproc_amproc},
+
+      {"SELECT COUNT(*) FROM pg_constraint  WHERE oid = :1 ", 284, 100, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT proname FROM pg_proc  WHERE oid = :1 ", 379, 161, 0, 0, 0, 0, Anum_pg_proc_proname},
+
+      {"SELECT * FROM pg_conversion  WHERE connamespace = :1  AND conforencoding = :2  AND contoencoding = :3  ORDER BY connamespace,   conforencoding,    contoencoding,    oid  ", 146, 102, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT spcowner FROM pg_tablespace WHERE oid = :1 ", 398, 189, 0, 0, 0, 0, Anum_pg_tablespace_spcowner},
+
+      {"SELECT ptcname FROM pg_extprotocol  WHERE oid = :1 ", 384, 113, 0, 0, 0, 0, Anum_pg_extprotocol_ptcname},
+
+      {"SELECT * FROM pg_auth_members  WHERE roleid = :1  AND member = :2  FOR UPDATE ", 122, 81, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_constraint  WHERE oid = :1 ", 143, 100, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT conowner FROM pg_conversion WHERE oid = :1 ", 321, 103, 0, 0, 0, 0, Anum_pg_conversion_conowner},
+
+      {"SELECT nspname FROM pg_namespace  WHERE oid = :1 ", 334, 139, 0, 0, 0, 0, Anum_pg_namespace_nspname},
+
+      {"SELECT COUNT(*) FROM pg_partition_rule  WHERE parchildrelid = :1 ", 302, 154, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_conversion  WHERE oid = :1 ", 147, 103, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resourcetype WHERE restypid = :1 FOR UPDATE", 228, 169, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_constraint  WHERE oid = :1  FOR UPDATE ", 144, 100, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_constraint  WHERE conname = :1  AND connamespace = :2 ", 283, 96, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_type  WHERE oid = :1 ", 309, 198, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type_encoding  WHERE typid = :1 ", 267, 202, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_extprotocol  WHERE oid = :1 ", 163, 113, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_conversion  WHERE oid = :1  FOR UPDATE ", 148, 103, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type_encoding  WHERE typid = :1  FOR UPDATE ", 268, 202, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_extprotocol  WHERE oid = :1  FOR UPDATE ", 164, 113, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_database", 61, 17, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_operator  WHERE oid = :1 ", 300, 143, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT datname FROM pg_database  WHERE oid = :1 ", 326, 106, 0, 0, 0, 0, Anum_pg_database_datname},
+
+      {"INSERT INTO pg_namespace", 74, 30, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"INSERT INTO pg_resqueuecapability", 83, 39, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_tablespace  WHERE spcname = :1 ", 307, 191, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_tablespace  WHERE spcfsoid = :1 ", 306, 190, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_am  WHERE amname = :1 ", 104, 59, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_conversion  WHERE oid = :1 ", 286, 103, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_amop  WHERE amopclaid = :1 ", 5, 61, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT amopopr FROM pg_amop  WHERE amopclaid = :1  AND amopsubtype = :2  AND amopstrategy = :3 ", 313, 63, 0, 0, 0, 0, Anum_pg_amop_amopopr},
+
+      {"SELECT typname FROM pg_type  WHERE oid = :1", 404, 198, 0, 0, 0, 0, Anum_pg_type_typname},
+
+      {"SELECT typname FROM pg_type  WHERE oid = :1 ", 405, 198, 0, 0, 0, 0, Anum_pg_type_typname},
+
+      {"INSERT INTO pg_trigger ", 89, 45, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resourcetype WHERE resname = :1 FOR UPDATE", 227, 168, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT relowner FROM pg_class WHERE oid = :1 ", 391, 91, 0, 0, 0, 0, Anum_pg_class_relowner},
+
+      {"INSERT INTO pg_foreign_table", 70, 26, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_opclass  WHERE oid = :1 ", 196, 140, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_operator  WHERE oprname = :1 ", 349, 145, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_opclass  WHERE opcamid = :1 ", 198, 141, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT opcamid FROM pg_opclass  WHERE oid = :1 ", 361, 140, 0, 0, 0, 0, Anum_pg_opclass_opcamid},
+
+      {"SELECT COUNT(*) FROM pg_conversion  WHERE conname = :1  AND connamespace = :2 ", 285, 101, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT typowner FROM pg_type WHERE oid = :1 ", 407, 198, 0, 0, 0, 0, Anum_pg_type_typowner},
+
+      {"SELECT oid FROM pg_namespace  WHERE oid = :1 ", 346, 139, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_attrdef  WHERE oid = :1 ", 114, 72, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_shdescription where objoid  = :1 AND  classoid = :2 FOR UPDATE", 243, 181, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attrdef  WHERE adrelid = :1 ", 112, 70, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT spcname FROM pg_tablespace  WHERE oid = :1 ", 397, 189, 0, 0, 0, 0, Anum_pg_tablespace_spcname},
+
+      {"SELECT amname FROM pg_am  WHERE oid = :1 ", 312, 60, 0, 0, 0, 0, Anum_pg_am_amname},
+
+      {"SELECT oprcom FROM pg_operator  WHERE oid = :1 ", 366, 143, 0, 0, 0, 0, Anum_pg_operator_oprcom},
+
+      {"DELETE FROM pg_statistic  WHERE starelid = :1 ", 40, 186, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oprjoin FROM pg_operator  WHERE oid = :1 ", 367, 143, 0, 0, 0, 0, Anum_pg_operator_oprjoin},
+
+      {"SELECT * FROM pg_extprotocol  WHERE ptcname = :1  FOR UPDATE ", 165, 114, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_filespace", 289, 116, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_tablespace", 88, 44, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE oid = :1 ", 254, 192, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT conbin FROM pg_constraint  WHERE oid = :1 ", 318, 100, 0, 0, 0, 0, Anum_pg_constraint_conbin},
+
+      {"SELECT * FROM pg_trigger  WHERE tgrelid = :1 ", 258, 195, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_attribute  WHERE attrelid = :1 ", 7, 73, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attrdef  WHERE adrelid = :1  AND adnum = :2  FOR UPDATE ", 113, 71, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resqueuecapability WHERE resqueueid = :1  ", 231, 173, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_resqueuecapability WHERE resqueueid = :1", 35, 173, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_statistic  WHERE starelid = :1  AND staattnum = :2 ", 41, 187, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_tablespace", 248, 188, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_tablespace ", 249, 188, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_proc  WHERE proname = :1  AND proargtypes = :2  AND pronamespace = :3 ", 304, 164, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_class  WHERE oid = :1 ", 281, 91, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE tgrelid = :1  FOR UPDATE ", 260, 195, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_resqueuecapability WHERE resqueueid = :1  FOR UPDATE", 232, 173, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_exttable  WHERE reloid = :1 ", 18, 115, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_filespace", 66, 22, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_filespace  WHERE fsname = :1 ", 290, 117, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_database  WHERE oid = :1 ", 287, 106, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT attname FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2 ", 315, 75, 0, 0, 0, 0, Anum_pg_attribute_attname},
+
+      {"SELECT * FROM pg_tablespace  WHERE spcname = :1 ", 252, 191, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_aggregate", 47, 3, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_opclass  WHERE opcamid = :1  AND opcname = :2  AND opcnamespace = :3 ", 199, 142, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_extprotocol  WHERE oid = :1 ", 17, 113, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_foreign_data_wrapper  WHERE oid = :1 ", 171, 123, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_filespace  WHERE fsname = :1 ", 343, 117, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_tablespace  WHERE spcname = :1  FOR UPDATE ", 253, 191, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_shdepend  WHERE dbid = :1 ", 36, 178, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT prosrc FROM pg_proc  WHERE oid = :1 ", 383, 161, 0, 0, 0, 0, Anum_pg_proc_prosrc},
+
+      {"DELETE FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3 ", 30, 151, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_filespace_entry", 67, 23, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_foreign_data_wrapper  WHERE oid = :1  FOR UPDATE ", 172, 123, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_resqueue  WHERE rsqname = :1 ", 355, 172, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE tgrelid = :1  AND tgname = :2  FOR UPDATE ", 259, 197, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_foreign_data_wrapper  WHERE fdwname = :1  FOR UPDATE ", 170, 122, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition  WHERE oid = :1 ", 207, 149, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT typelem FROM pg_type  WHERE oid = :1 ", 403, 198, 0, 0, 0, 0, Anum_pg_type_typelem},
+
+      {"SELECT * FROM pg_trigger  WHERE tgrelid = :1  ORDER BY tgrelid, tgname", 261, 196, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_operator  WHERE oprname = :1  AND oprleft = :2  AND oprright = :3  AND oprnamespace = :4 ", 350, 148, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2 ", 158, 109, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_foreign_server", 69, 25, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_opclass  WHERE opcamid = :1  AND opcname = :2  AND opcnamespace = :3  FOR UPDATE ", 200, 142, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE rolsuper = :1  AND rolcanlogin = :2 ", 128, 86, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  FOR UPDATE ", 161, 109, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_segment_configuration ", 98, 54, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_auth_members  WHERE member = :1  ORDER BY member,  roleid ", 121, 79, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT conname FROM pg_conversion  WHERE oid = :1 ", 320, 103, 0, 0, 0, 0, Anum_pg_conversion_conname},
+
+      {"SELECT * FROM pg_resqueue WHERE rsqname = :1 FOR UPDATE", 230, 172, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  AND refobjsubid = :3 ", 159, 110, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_database WHERE datname = :1 FOR UPDATE", 153, 105, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE rolsuper = :1  AND rolcanlogin = :2  AND oid = :3 ", 129, 87, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_namespace  WHERE nspname = :1 ", 345, 138, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM gp_fault_strategy ", 97, 53, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  AND refobjsubid = :3  FOR UPDATE ", 160, 110, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_largeobject  WHERE loid = :1  ORDER BY loid, pageno ", 191, 136, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_amproc  WHERE amopclaid = :1  AND amprocsubtype = :2 ", 109, 67, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_foreign_server  WHERE oid = :1 ", 23, 124, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_user_mapping  WHERE umuser = :1  AND umserver = :2 ", 360, 204, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"INSERT INTO pg_inherits", 72, 28, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT parlevel FROM pg_partition  WHERE oid = :1 ", 375, 149, 0, 0, 0, 0, Anum_pg_partition_parlevel},
+
+      {"SELECT * FROM pg_cast  WHERE oid = :1 ", 131, 89, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_largeobject  WHERE loid = :1  AND pageno >= :2  ORDER BY loid, pageno ", 189, 137, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_database  WHERE oid = :1 ", 151, 106, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_type  WHERE typname = :1  AND typnamespace = :2 ", 310, 201, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT lanname FROM pg_language  WHERE oid = :1 ", 332, 134, 0, 0, 0, 0, Anum_pg_language_lanname},
+
+      {"SELECT * FROM pg_largeobject  WHERE loid = :1  AND pageno >= :2  ORDER BY loid, pageno  FOR UPDATE ", 190, 137, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_shdepend  WHERE dbid = :1  FOR UPDATE ", 240, 178, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_segment_configuration  WHERE dbid = :1 ", 101, 57, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_statistic  WHERE starelid = :1  AND staattnum = :2 ", 246, 187, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_database  WHERE oid = :1  FOR UPDATE ", 152, 106, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_language  WHERE oid = :1 ", 26, 134, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_extprotocol  WHERE ptcname = :1 ", 342, 114, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_attribute  WHERE attrelid = :1  FOR UPDATE ", 119, 73, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_segment_configuration  WHERE dbid = :1  FOR UPDATE ", 102, 57, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_statistic  WHERE starelid = :1  AND staattnum = :2  FOR UPDATE ", 247, 187, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM gp_distribution_policy  WHERE localoid = :1 ", 1, 49, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition  WHERE parrelid = :1 ", 208, 150, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_proc  WHERE oid = :1 ", 221, 161, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum > :2 ", 118, 76, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT fsowner FROM pg_filespace WHERE oid = :1 ", 329, 118, 0, 0, 0, 0, Anum_pg_filespace_fsowner},
+
+      {"SELECT * FROM pg_proc  WHERE proname = :1", 223, 162, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_amop  WHERE amopopr = :1  ORDER BY amopopr,  amopclaid ", 108, 64, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_depend  WHERE classid = :1  AND objid = :2 ", 14, 107, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2 ", 116, 75, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT ptcwritefn FROM pg_extprotocol  WHERE ptcname = :1 ", 388, 114, 0, 0, 0, 0, Anum_pg_extprotocol_ptcwritefn},
+
+      {"DELETE FROM pg_filespace_entry  WHERE fsefsoid = :1 ", 21, 121, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type  WHERE oid = :1 ", 262, 198, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition  WHERE parrelid = :1  FOR UPDATE ", 211, 150, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_proc  WHERE oid = :1  FOR UPDATE ", 222, 161, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_fastsequence  WHERE objid = :1  AND objmod = :2  FOR UPDATE ", 96, 51, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_amop  WHERE amopopr = :1  AND amopclaid = :2 ", 107, 65, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_shdepend  WHERE dbid = :1  AND classid = :2  AND objid = :3  FOR UPDATE ", 239, 179, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE oid = :1 ", 124, 83, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2  FOR UPDATE ", 117, 75, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_shdepend  WHERE refclassid = :1  AND refobjid = :2 ", 241, 180, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE rolname = :1 ", 126, 84, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT relnamespace FROM pg_class  WHERE oid = :1 ", 390, 91, 0, 0, 0, 0, Anum_pg_class_relnamespace},
+
+      {"SELECT * FROM pg_type  WHERE oid = :1  FOR UPDATE ", 263, 198, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_namespace  WHERE oid = :1 ", 27, 139, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE oid = :1  FOR UPDATE ", 125, 83, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_description where objoid = :1 AND  classoid = :2", 15, 111, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_tablespace  WHERE oid = :1 ", 250, 189, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_shdepend  WHERE refclassid = :1  AND refobjid = :2  FOR UPDATE ", 242, 180, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_authid  WHERE rolname = :1  FOR UPDATE ", 127, 84, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_fastsequence  WHERE objid = :1  AND objmod = :2  AND contentid = :3  FOR UPDATE ", 95, 52, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_extprotocol  WHERE ptcname = :1 ", 288, 114, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_compression  WHERE compname = :1 ", 282, 95, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_tablespace  WHERE oid = :1  FOR UPDATE ", 251, 189, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT typnamespace FROM pg_type  WHERE oid = :1 ", 406, 198, 0, 0, 0, 0, Anum_pg_type_typnamespace},
+
+      {"SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2 ", 154, 107, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type  WHERE typname = :1  AND typnamespace = :2 ", 265, 201, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_description where objoid = :1 AND  classoid = :2 AND  objsubid = :3", 16, 112, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT aggtranstype FROM pg_aggregate  WHERE aggfnoid = :1 ", 311, 58, 0, 0, 0, 0, Anum_pg_aggregate_aggtranstype},
+
+      {"SELECT * FROM pg_proc  WHERE proname = :1  ORDER BY proname,  proargtypes,  pronamespace ", 225, 163, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT tgname FROM pg_trigger  WHERE oid = :1 ", 401, 192, 0, 0, 0, 0, Anum_pg_trigger_tgname},
+
+      {"DELETE FROM pg_conversion  WHERE oid = :1 ", 12, 103, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT tgfoid FROM pg_trigger  WHERE oid = :1 ", 400, 192, 0, 0, 0, 0, Anum_pg_trigger_tgfoid},
+
+      {"SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  FOR UPDATE ", 157, 107, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type  WHERE typname = :1  AND typnamespace = :2  FOR UPDATE ", 266, 201, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT pronamespace FROM pg_proc  WHERE oid = :1 ", 380, 161, 0, 0, 0, 0, Anum_pg_proc_pronamespace},
+
+      {"SELECT * FROM pg_proc  WHERE proname = :1  AND proargtypes = :2  AND pronamespace = :3  FOR UPDATE ", 224, 164, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  AND objsubid = :3 ", 155, 108, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oid = :1 ", 201, 143, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT count(*) FROM pg_inherits  WHERE inhrelid = :1 ", 323, 131, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  AND objsubid = :3  FOR UPDATE ", 156, 108, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE oid = :1 ", 214, 153, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oid = :1  FOR UPDATE ", 202, 143, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE tgconstrname = :1 ", 256, 193, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_proc_callback ", 81, 37, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_namespace  WHERE oid = :1 ", 194, 139, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_opclass  WHERE oid = :1 ", 28, 140, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE oid = :1  FOR UPDATE ", 215, 153, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE parchildrelid = :1 ", 216, 154, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_class  WHERE oid = :1 ", 133, 91, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_operator  WHERE oid = :1 ", 29, 143, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * from pg_proc WHERE oid = :1", 272, 161, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_namespace  WHERE nspname = :1 ", 192, 138, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_aggregate  WHERE aggfnoid = :1 ", 103, 58, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_auth_time_constraint  WHERE authid = :1  FOR UPDATE ", 123, 82, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_namespace  WHERE oid = :1  FOR UPDATE ", 195, 139, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_opclass  WHERE oid = :1 ", 347, 140, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE parchildrelid = :1  FOR UPDATE ", 217, 154, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_class  WHERE relkind = :1 ", 135, 92, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_namespace  WHERE nspname = :1  FOR UPDATE ", 193, 138, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_auth_members ", 54, 10, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_class  WHERE oid = :1  FOR UPDATE ", 134, 91, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_foreign_data_wrapper", 68, 24, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_rewrite  WHERE ev_class = :1 ", 233, 174, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_type_encoding ", 91, 47, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_exttable  WHERE reloid = :1  FOR UPDATE ", 166, 115, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_trigger  WHERE oid = :1 ", 308, 192, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2 ", 218, 156, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_cast  WHERE castsource = :1  AND casttarget = :2 ", 130, 88, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_language WHERE oid = :1", 188, 134, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_filespace  WHERE oid = :1 ", 19, 118, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_rewrite  WHERE oid = :1 ", 236, 176, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_inherits  WHERE inhparent = :1 ", 291, 130, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT umuser FROM pg_user_mapping  WHERE oid = :1 ", 409, 203, 0, 0, 0, 0, Anum_pg_user_mapping_umuser},
+
+      {"SELECT COUNT(*) FROM pg_largeobject  WHERE loid = :1 ", 295, 135, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_auth_time_constraint ", 55, 11, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_pltemplate  WHERE tmplname = :1 ", 220, 160, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_partition_rule ", 79, 35, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"DELETE FROM pg_proc_callback  WHERE profnoid = :1 ", 34, 165, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_rewrite  WHERE ev_class = :1  AND rulename = :2 ", 234, 175, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_segment_configuration  WHERE content = :1  AND role = :2 ", 100, 56, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_class  WHERE relname = :1 ", 338, 93, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"DELETE FROM pg_aggregate  WHERE aggfnoid = :1 ", 4, 58, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT COUNT(*) FROM pg_inherits  WHERE inhrelid = :1  AND inhseqno = :2 ", 292, 132, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO pg_stat_last_shoperation ", 87, 43, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_index  WHERE indexrelid = :1 ", 176, 127, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_segment_configuration  WHERE content = :1  AND preferred_role = :2 ", 99, 55, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_rewrite  WHERE ev_class = :1  AND rulename = :2  FOR UPDATE ", 235, 175, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_amop  WHERE amopclaid = :1  AND amopsubtype = :2 ", 106, 62, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_foreign_table  WHERE reloid = :1 ", 24, 126, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_amproc  WHERE amopclaid = :1 ", 6, 66, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_index  WHERE indexrelid = :1  FOR UPDATE ", 177, 127, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_partition_rule  WHERE paroid = :1 ", 32, 155, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_distribution_policy  WHERE localoid = :1 ", 93, 49, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_class  WHERE relname = :1  AND relnamespace = :2 ", 339, 94, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oprleft = :1 and oprright = :2", 203, 144, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_type_encoding  WHERE typid = :1 ", 43, 202, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM gp_distribution_policy  WHERE localoid = :1  FOR UPDATE ", 94, 49, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oprnegate FROM pg_operator  WHERE oid = :1 ", 370, 143, 0, 0, 0, 0, Anum_pg_operator_oprnegate},
+
+      {"INSERT INTO pg_stat_last_operation ", 86, 42, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_window  WHERE winfnoid = :1 ", 270, 205, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT count(*) FROM pg_trigger  WHERE tgrelid = :1  AND tgname = :2 ", 324, 197, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_database WHERE datname = :1 ", 341, 105, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE tgconstrrelid = :1  FOR UPDATE ", 257, 194, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_partition_rule  WHERE parchildrelid = :1 ", 31, 154, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT tgrelid FROM pg_trigger  WHERE oid = :1 ", 402, 192, 0, 0, 0, 0, Anum_pg_trigger_tgrelid},
+
+      {"SELECT * FROM pg_user_mapping  WHERE oid = :1  FOR UPDATE ", 269, 203, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT inhparent FROM pg_inherits  WHERE inhrelid = :1 ", 331, 131, 0, 0, 0, 0, Anum_pg_inherits_inhparent},
+
+      {"SELECT * FROM pg_foreign_server  WHERE oid = :1 ", 173, 124, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_filespace_entry  WHERE fsedbid = :1 ", 20, 120, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_type  WHERE typlen = :1  AND typalign = :2  FOR UPDATE ", 264, 199, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_database  WHERE oid = :1 ", 13, 106, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_language  WHERE lanname = :1 ", 344, 133, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_foreign_server  WHERE oid = :1  FOR UPDATE ", 174, 124, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2  AND parruleord <= :3  ORDER BY paroid, parparentrule, parruleord  FOR UPDATE ", 219, 158, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_am  WHERE amname = :1 ", 336, 59, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT oid FROM pg_cast  WHERE castsource = :1  AND casttarget = :2 ", 337, 88, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * from pg_aggregate WHERE aggfnoid = :1", 271, 58, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_index  WHERE indisclustered = :1 ", 178, 128, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT lanplcallfoid FROM pg_language  WHERE oid = :1 ", 333, 134, 0, 0, 0, 0, Anum_pg_language_lanplcallfoid},
+
+      {"DELETE FROM pg_auth_members  WHERE roleid = :1 ", 10, 80, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_type  WHERE typname = :1 ", 358, 200, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT paroid FROM pg_partition_rule  WHERE parchildrelid = :1 ", 376, 154, 0, 0, 0, 0, Anum_pg_partition_rule_paroid},
+
+      {"SELECT oid FROM pg_proc  WHERE proname = :1 ", 354, 162, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_index  WHERE indrelid = :1", 179, 129, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_index  WHERE indrelid = :1 ", 180, 129, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_stat_last_operation  WHERE classid = :1  AND objid = :2 ", 38, 182, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_language  WHERE oid = :1 ", 186, 134, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_inherits  WHERE inhrelid = :1 ", 25, 131, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2 ", 33, 156, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_language  WHERE oid = :1  FOR UPDATE ", 187, 134, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_compression  WHERE compname = :1 ", 136, 95, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_opclass  WHERE oid = :1  FOR UPDATE ", 197, 140, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_attrdef  WHERE oid = :1  FOR UPDATE ", 115, 72, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT oprnamespace FROM pg_operator  WHERE oid = :1 ", 369, 143, 0, 0, 0, 0, Anum_pg_operator_oprnamespace},
+
+      {"SELECT * FROM pg_rewrite  WHERE rulename = :1 ", 238, 177, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_trigger  WHERE oid = :1  FOR UPDATE ", 255, 192, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_auth_members  WHERE member = :1 ", 9, 78, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oprname = :1  AND oprleft = :2  AND oprright = :3  AND oprnamespace = :4 ", 204, 148, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_foreign_server  WHERE srvname = :1  FOR UPDATE ", 175, 125, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oprname = :1  ORDER BY oprname,  oprleft,  oprright,  oprnamespace ", 206, 146, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT reltablespace FROM pg_class  WHERE oid = :1 ", 392, 91, 0, 0, 0, 0, Anum_pg_class_reltablespace},
+
+      {"SELECT * FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3", 209, 151, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3 ", 210, 151, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"INSERT INTO gp_segment_configuration ", 46, 2, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_type  WHERE typname = :1  AND typnamespace = :2 ", 359, 201, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT oid FROM pg_opclass  WHERE opcamid = :1  AND opcname = :2  AND opcnamespace = :3 ", 348, 142, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_operator  WHERE oprname = :1  AND oprleft = :2  AND oprright = :3  ORDER BY oprname,  oprleft,  oprright,  oprnamespace ", 205, 147, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_tablespace  WHERE spcname = :1", 356, 191, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT COUNT(*) FROM pg_aggregate  WHERE aggfnoid = :1 ", 273, 58, 0, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3", 351, 151, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_inherits  WHERE inhparent = :1 ", 181, 130, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3  FOR UPDATE ", 352, 151, 0, 0, 1, 0, ObjectIdAttributeNumber},
+
+      {"SELECT oid FROM pg_partition_rule  WHERE parchildrelid = :1 ", 353, 154, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT ptcreadfn FROM pg_extprotocol  WHERE ptcname = :1 ", 386, 114, 0, 0, 0, 0, Anum_pg_extprotocol_ptcreadfn},
+
+      {"SELECT * FROM pg_filespace_entry", 168, 119, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT oid FROM pg_trigger  WHERE tgrelid = :1  AND tgname = :2 ", 357, 197, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"SELECT * FROM pg_attribute_encoding  WHERE attrelid = :1 ", 120, 77, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_stat_last_operation  WHERE classid = :1  AND objid = :2  AND staactionname = :3  FOR UPDATE ", 244, 183, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_encoding  WHERE parencoid = :1 ", 212, 152, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_partition_encoding  WHERE parencoid = :1  FOR UPDATE", 213, 152, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_filespace  WHERE fsname = :1  FOR UPDATE ", 167, 117, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_stat_last_shoperation  WHERE classid = :1  AND objid = :2 ", 39, 184, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_language  WHERE lanname = :1 ", 184, 133, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_foreign_data_wrapper  WHERE oid = :1 ", 22, 123, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT ptcvalidatorfn FROM pg_extprotocol  WHERE ptcname = :1 ", 387, 114, 0, 0, 0, 0, Anum_pg_extprotocol_ptcvalidatorfn},
+
+      {"SELECT * FROM pg_language  WHERE lanname = :1  FOR UPDATE ", 185, 133, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT opcintype FROM pg_opclass  WHERE oid = :1 ", 362, 140, 0, 0, 0, 0, Anum_pg_opclass_opcintype},
+
+      {"SELECT dbid FROM gp_segment_configuration  WHERE content = :1  AND role = :2 ", 327, 56, 0, 0, 0, 0, Anum_gp_segment_configuration_dbid},
+
+      {"SELECT oid FROM pg_conversion  WHERE conname = :1  AND connamespace = :2 ", 340, 101, 0, 0, 0, 0, ObjectIdAttributeNumber},
+
+      {"INSERT INTO pg_user_mapping", 92, 48, 0, 0, 0, 1, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_filespace_entry  WHERE fsedbid = :1  FOR UPDATE ", 169, 120, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_rewrite  WHERE oid = :1  FOR UPDATE ", 237, 176, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT rolresqueue FROM pg_authid  WHERE oid = :1 ", 395, 83, 0, 0, 0, 0, Anum_pg_authid_rolresqueue},
+
+      {"DELETE FROM gp_segment_configuration  WHERE dbid = :1 ", 3, 57, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_inherits  WHERE inhrelid = :1 ", 182, 131, 0, 0, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_inherits  WHERE inhrelid = :1  FOR UPDATE ", 183, 131, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"DELETE FROM pg_user_mapping  WHERE oid = :1 ", 44, 203, 1, 1, 0, 0, InvalidAttrNumber},
+
+      {"SELECT * FROM pg_stat_last_shoperation  WHERE classid = :1  AND objid = :2  AND staactionname = :3  FOR UPDATE ", 245, 185, 0, 0, 1, 0, InvalidAttrNumber},
+
+      {"SELECT procallback FROM pg_proc_callback  WHERE profnoid = :1  AND promethod = :2 ", 378, 166, 0, 0, 0, 0, Anum_pg_proc_callback_procallback},
+
+      {"SELECT parchildrelid FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2  AND parname = :3 ", 373, 157, 0, 0, 0, 0, Anum_pg_partition_rule_parchildrelid},
+
+      {"SELECT parchildrelid FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2  AND parruleord = :3 ", 374, 159, 0, 0, 0, 0, Anum_pg_partition_rule_parchildrelid}
+    };
+
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = cq_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
+        {
+          register struct caql_hash_cookie *resword;
+
+          switch (key - 23)
+            {
+              case 0:
+                resword = &wordlist[0];
+                goto compare;
+              case 1:
+                resword = &wordlist[1];
+                goto compare;
+              case 3:
+                resword = &wordlist[2];
+                goto compare;
+              case 5:
+                resword = &wordlist[3];
+                goto compare;
+              case 6:
+                resword = &wordlist[4];
+                goto compare;
+              case 7:
+                resword = &wordlist[5];
+                goto compare;
+              case 8:
+                resword = &wordlist[6];
+                goto compare;
+              case 9:
+                resword = &wordlist[7];
+                goto compare;
+              case 15:
+                resword = &wordlist[8];
+                goto compare;
+              case 18:
+                resword = &wordlist[9];
+                goto compare;
+              case 20:
+                resword = &wordlist[10];
+                goto compare;
+              case 22:
+                resword = &wordlist[11];
+                goto compare;
+              case 23:
+                resword = &wordlist[12];
+                goto compare;
+              case 25:
+                resword = &wordlist[13];
+                goto compare;
+              case 27:
+                resword = &wordlist[14];
+                goto compare;
+              case 28:
+                resword = &wordlist[15];
+                goto compare;
+              case 32:
+                resword = &wordlist[16];
+                goto compare;
+              case 33:
+                resword = &wordlist[17];
+                goto compare;
+              case 34:
+                resword = &wordlist[18];
+                goto compare;
+              case 36:
+                resword = &wordlist[19];
+                goto compare;
+              case 37:
+                resword = &wordlist[20];
+                goto compare;
+              case 42:
+                resword = &wordlist[21];
+                goto compare;
+              case 43:
+                resword = &wordlist[22];
+                goto compare;
+              case 45:
+                resword = &wordlist[23];
+                goto compare;
+              case 46:
+                resword = &wordlist[24];
+                goto compare;
+              case 48:
+                resword = &wordlist[25];
+                goto compare;
+              case 49:
+                resword = &wordlist[26];
+                goto compare;
+              case 50:
+                resword = &wordlist[27];
+                goto compare;
+              case 52:
+                resword = &wordlist[28];
+                goto compare;
+              case 53:
+                resword = &wordlist[29];
+                goto compare;
+              case 55:
+                resword = &wordlist[30];
+                goto compare;
+              case 56:
+                resword = &wordlist[31];
+                goto compare;
+              case 58:
+                resword = &wordlist[32];
+                goto compare;
+              case 60:
+                resword = &wordlist[33];
+                goto compare;
+              case 62:
+                resword = &wordlist[34];
+                goto compare;
+              case 63:
+                resword = &wordlist[35];
+                goto compare;
+              case 64:
+                resword = &wordlist[36];
+                goto compare;
+              case 67:
+                resword = &wordlist[37];
+                goto compare;
+              case 68:
+                resword = &wordlist[38];
+                goto compare;
+              case 71:
+                resword = &wordlist[39];
+                goto compare;
+              case 72:
+                resword = &wordlist[40];
+                goto compare;
+              case 73:
+                resword = &wordlist[41];
+                goto compare;
+              case 78:
+                resword = &wordlist[42];
+                goto compare;
+              case 80:
+                resword = &wordlist[43];
+                goto compare;
+              case 83:
+                resword = &wordlist[44];
+                goto compare;
+              case 86:
+                resword = &wordlist[45];
+                goto compare;
+              case 87:
+                resword = &wordlist[46];
+                goto compare;
+              case 90:
+                resword = &wordlist[47];
+                goto compare;
+              case 91:
+                resword = &wordlist[48];
+                goto compare;
+              case 92:
+                resword = &wordlist[49];
+                goto compare;
+              case 93:
+                resword = &wordlist[50];
+                goto compare;
+              case 95:
+                resword = &wordlist[51];
+                goto compare;
+              case 97:
+                resword = &wordlist[52];
+                goto compare;
+              case 98:
+                resword = &wordlist[53];
+                goto compare;
+              case 103:
+                resword = &wordlist[54];
+                goto compare;
+              case 107:
+                resword = &wordlist[55];
+                goto compare;
+              case 108:
+                resword = &wordlist[56];
+                goto compare;
+              case 110:
+                resword = &wordlist[57];
+                goto compare;
+              case 111:
+                resword = &wordlist[58];
+                goto compare;
+              case 112:
+                resword = &wordlist[59];
+                goto compare;
+              case 113:
+                resword = &wordlist[60];
+                goto compare;
+              case 115:
+                resword = &wordlist[61];
+                goto compare;
+              case 117:
+                resword = &wordlist[62];
+                goto compare;
+              case 120:
+                resword = &wordlist[63];
+                goto compare;
+              case 127:
+                resword = &wordlist[64];
+                goto compare;
+              case 128:
+                resword = &wordlist[65];
+                goto compare;
+              case 132:
+                resword = &wordlist[66];
+                goto compare;
+              case 134:
+                resword = &wordlist[67];
+                goto compare;
+              case 135:
+                resword = &wordlist[68];
+                goto compare;
+              case 137:
+                resword = &wordlist[69];
+                goto compare;
+              case 138:
+                resword = &wordlist[70];
+                goto compare;
+              case 139:
+                resword = &wordlist[71];
+                goto compare;
+              case 140:
+                resword = &wordlist[72];
+                goto compare;
+              case 142:
+                resword = &wordlist[73];
+                goto compare;
+              case 145:
+                resword = &wordlist[74];
+                goto compare;
+              case 146:
+                resword = &wordlist[75];
+                goto compare;
+              case 147:
+                resword = &wordlist[76];
+                goto compare;
+              case 150:
+                resword = &wordlist[77];
+                goto compare;
+              case 152:
+                resword = &wordlist[78];
+                goto compare;
+              case 153:
+                resword = &wordlist[79];
+                goto compare;
+              case 157:
+                resword = &wordlist[80];
+                goto compare;
+              case 159:
+                resword = &wordlist[81];
+                goto compare;
+              case 160:
+                resword = &wordlist[82];
+                goto compare;
+              case 164:
+                resword = &wordlist[83];
+                goto compare;
+              case 165:
+                resword = &wordlist[84];
+                goto compare;
+              case 171:
+                resword = &wordlist[85];
+                goto compare;
+              case 174:
+                resword = &wordlist[86];
+                goto compare;
+              case 175:
+                resword = &wordlist[87];
+                goto compare;
+              case 177:
+                resword = &wordlist[88];
+                goto compare;
+              case 178:
+                resword = &wordlist[89];
+                goto compare;
+              case 181:
+                resword = &wordlist[90];
+                goto compare;
+              case 182:
+                resword = &wordlist[91];
+                goto compare;
+              case 187:
+                resword = &wordlist[92];
+                goto compare;
+              case 188:
+                resword = &wordlist[93];
+                goto compare;
+              case 190:
+                resword = &wordlist[94];
+                goto compare;
+              case 191:
+                resword = &wordlist[95];
+                goto compare;
+              case 192:
+                resword = &wordlist[96];
+                goto compare;
+              case 196:
+                resword = &wordlist[97];
+                goto compare;
+              case 197:
+                resword = &wordlist[98];
+                goto compare;
+              case 201:
+                resword = &wordlist[99];
+                goto compare;
+              case 202:
+                resword = &wordlist[100];
+                goto compare;
+              case 203:
+                resword = &wordlist[101];
+                goto compare;
+              case 205:
+                resword = &wordlist[102];
+                goto compare;
+              case 207:
+                resword = &wordlist[103];
+                goto compare;
+              case 211:
+                resword = &wordlist[104];
+                goto compare;
+              case 212:
+                resword = &wordlist[105];
+                goto compare;
+              case 213:
+                resword = &wordlist[106];
+                goto compare;
+              case 223:
+                resword = &wordlist[107];
+                goto compare;
+              case 224:
+                resword = &wordlist[108];
+                goto compare;
+              case 230:
+                resword = &wordlist[109];
+                goto compare;
+              case 231:
+                resword = &wordlist[110];
+                goto compare;
+              case 240:
+                resword = &wordlist[111];
+                goto compare;
+              case 241:
+                resword = &wordlist[112];
+                goto compare;
+              case 255:
+                resword = &wordlist[113];
+                goto compare;
+              case 257:
+                resword = &wordlist[114];
+                goto compare;
+              case 258:
+                resword = &wordlist[115];
+                goto compare;
+              case 261:
+                resword = &wordlist[116];
+                goto compare;
+              case 263:
+                resword = &wordlist[117];
+                goto compare;
+              case 264:
+                resword = &wordlist[118];
+                goto compare;
+              case 267:
+                resword = &wordlist[119];
+                goto compare;
+              case 270:
+                resword = &wordlist[120];
+                goto compare;
+              case 271:
+                resword = &wordlist[121];
+                goto compare;
+              case 275:
+                resword = &wordlist[122];
+                goto compare;
+              case 276:
+                resword = &wordlist[123];
+                goto compare;
+              case 277:
+                resword = &wordlist[124];
+                goto compare;
+              case 280:
+                resword = &wordlist[125];
+                goto compare;
+              case 283:
+                resword = &wordlist[126];
+                goto compare;
+              case 285:
+                resword = &wordlist[127];
+                goto compare;
+              case 287:
+                resword = &wordlist[128];
+                goto compare;
+              case 289:
+                resword = &wordlist[129];
+                goto compare;
+              case 290:
+                resword = &wordlist[130];
+                goto compare;
+              case 291:
+                resword = &wordlist[131];
+                goto compare;
+              case 292:
+                resword = &wordlist[132];
+                goto compare;
+              case 293:
+                resword = &wordlist[133];
+                goto compare;
+              case 296:
+                resword = &wordlist[134];
+                goto compare;
+              case 297:
+                resword = &wordlist[135];
+                goto compare;
+              case 302:
+                resword = &wordlist[136];
+                goto compare;
+              case 303:
+                resword = &wordlist[137];
+                goto compare;
+              case 304:
+                resword = &wordlist[138];
+                goto compare;
+              case 308:
+                resword = &wordlist[139];
+                goto compare;
+              case 310:
+                resword = &wordlist[140];
+                goto compare;
+              case 313:
+                resword = &wordlist[141];
+                goto compare;
+              case 315:
+                resword = &wordlist[142];
+                goto compare;
+              case 317:
+                resword = &wordlist[143];
+                goto compare;
+              case 318:
+                resword = &wordlist[144];
+                goto compare;
+              case 321:
+                resword = &wordlist[145];
+                goto compare;
+              case 322:
+                resword = &wordlist[146];
+                goto compare;
+              case 323:
+                resword = &wordlist[147];
+                goto compare;
+              case 325:
+                resword = &wordlist[148];
+                goto compare;
+              case 326:
+                resword = &wordlist[149];
+                goto compare;
+              case 327:
+                resword = &wordlist[150];
+                goto compare;
+              case 328:
+                resword = &wordlist[151];
+                goto compare;
+              case 329:
+                resword = &wordlist[152];
+                goto compare;
+              case 330:
+                resword = &wordlist[153];
+                goto compare;
+              case 331:
+                resword = &wordlist[154];
+                goto compare;
+              case 333:
+                resword = &wordlist[155];
+                goto compare;
+              case 334:
+                resword = &wordlist[156];
+                goto compare;
+              case 336:
+                resword = &wordlist[157];
+                goto compare;
+              case 340:
+                resword = &wordlist[158];
+                goto compare;
+              case 341:
+                resword = &wordlist[159];
+                goto compare;
+              case 345:
+                resword = &wordlist[160];
+                goto compare;
+              case 346:
+                resword = &wordlist[161];
+                goto compare;
+              case 348:
+                resword = &wordlist[162];
+                goto compare;
+              case 350:
+                resword = &wordlist[163];
+                goto compare;
+              case 351:
+                resword = &wordlist[164];
+                goto compare;
+              case 353:
+                resword = &wordlist[165];
+                goto compare;
+              case 355:
+                resword = &wordlist[166];
+                goto compare;
+              case 356:
+                resword = &wordlist[167];
+                goto compare;
+              case 360:
+                resword = &wordlist[168];
+                goto compare;
+              case 362:
+                resword = &wordlist[169];
+                goto compare;
+              case 363:
+                resword = &wordlist[170];
+                goto compare;
+              case 365:
+                resword = &wordlist[171];
+                goto compare;
+              case 366:
+                resword = &wordlist[172];
+                goto compare;
+              case 367:
+                resword = &wordlist[173];
+                goto compare;
+              case 368:
+                resword = &wordlist[174];
+                goto compare;
+              case 370:
+                resword = &wordlist[175];
+                goto compare;
+              case 371:
+                resword = &wordlist[176];
+                goto compare;
+              case 372:
+                resword = &wordlist[177];
+                goto compare;
+              case 375:
+                resword = &wordlist[178];
+                goto compare;
+              case 376:
+                resword = &wordlist[179];
+                goto compare;
+              case 377:
+                resword = &wordlist[180];
+                goto compare;
+              case 380:
+                resword = &wordlist[181];
+                goto compare;
+              case 383:
+                resword = &wordlist[182];
+                goto compare;
+              case 384:
+                resword = &wordlist[183];
+                goto compare;
+              case 385:
+                resword = &wordlist[184];
+                goto compare;
+              case 394:
+                resword = &wordlist[185];
+                goto compare;
+              case 395:
+                resword = &wordlist[186];
+                goto compare;
+              case 396:
+                resword = &wordlist[187];
+                goto compare;
+              case 397:
+                resword = &wordlist[188];
+                goto compare;
+              case 400:
+                resword = &wordlist[189];
+                goto compare;
+              case 402:
+                resword = &wordlist[190];
+                goto compare;
+              case 405:
+                resword = &wordlist[191];
+                goto compare;
+              case 407:
+                resword = &wordlist[192];
+                goto compare;
+              case 408:
+                resword = &wordlist[193];
+                goto compare;
+              case 411:
+                resword = &wordlist[194];
+                goto compare;
+              case 419:
+                resword = &wordlist[195];
+                goto compare;
+              case 422:
+                resword = &wordlist[196];
+                goto compare;
+              case 426:
+                resword = &wordlist[197];
+                goto compare;
+              case 427:
+                resword = &wordlist[198];
+                goto compare;
+              case 431:
+                resword = &wordlist[199];
+                goto compare;
+              case 432:
+                resword = &wordlist[200];
+                goto compare;
+              case 435:
+                resword = &wordlist[201];
+                goto compare;
+              case 437:
+                resword = &wordlist[202];
+                goto compare;
+              case 441:
+                resword = &wordlist[203];
+                goto compare;
+              case 444:
+                resword = &wordlist[204];
+                goto compare;
+              case 449:
+                resword = &wordlist[205];
+                goto compare;
+              case 454:
+                resword = &wordlist[206];
+                goto compare;
+              case 455:
+                resword = &wordlist[207];
+                goto compare;
+              case 456:
+                resword = &wordlist[208];
+                goto compare;
+              case 457:
+                resword = &wordlist[209];
+                goto compare;
+              case 458:
+                resword = &wordlist[210];
+                goto compare;
+              case 460:
+                resword = &wordlist[211];
+                goto compare;
+              case 461:
+                resword = &wordlist[212];
+                goto compare;
+              case 462:
+                resword = &wordlist[213];
+                goto compare;
+              case 463:
+                resword = &wordlist[214];
+                goto compare;
+              case 467:
+                resword = &wordlist[215];
+                goto compare;
+              case 470:
+                resword = &wordlist[216];
+                goto compare;
+              case 472:
+                resword = &wordlist[217];
+                goto compare;
+              case 473:
+                resword = &wordlist[218];
+                goto compare;
+              case 475:
+                resword = &wordlist[219];
+                goto compare;
+              case 476:
+                resword = &wordlist[220];
+                goto compare;
+              case 477:
+                resword = &wordlist[221];
+                goto compare;
+              case 478:
+                resword = &wordlist[222];
+                goto compare;
+              case 479:
+                resword = &wordlist[223];
+                goto compare;
+              case 480:
+                resword = &wordlist[224];
+                goto compare;
+              case 481:
+                resword = &wordlist[225];
+                goto compare;
+              case 482:
+                resword = &wordlist[226];
+                goto compare;
+              case 483:
+                resword = &wordlist[227];
+                goto compare;
+              case 484:
+                resword = &wordlist[228];
+                goto compare;
+              case 486:
+                resword = &wordlist[229];
+                goto compare;
+              case 487:
+                resword = &wordlist[230];
+                goto compare;
+              case 488:
+                resword = &wordlist[231];
+                goto compare;
+              case 489:
+                resword = &wordlist[232];
+                goto compare;
+              case 490:
+                resword = &wordlist[233];
+                goto compare;
+              case 491:
+                resword = &wordlist[234];
+                goto compare;
+              case 492:
+                resword = &wordlist[235];
+                goto compare;
+              case 494:
+                resword = &wordlist[236];
+                goto compare;
+              case 495:
+                resword = &wordlist[237];
+                goto compare;
+              case 496:
+                resword = &wordlist[238];
+                goto compare;
+              case 497:
+                resword = &wordlist[239];
+                goto compare;
+              case 498:
+                resword = &wordlist[240];
+                goto compare;
+              case 503:
+                resword = &wordlist[241];
+                goto compare;
+              case 504:
+                resword = &wordlist[242];
+                goto compare;
+              case 505:
+                resword = &wordlist[243];
+                goto compare;
+              case 506:
+                resword = &wordlist[244];
+                goto compare;
+              case 507:
+                resword = &wordlist[245];
+                goto compare;
+              case 508:
+                resword = &wordlist[246];
+                goto compare;
+              case 509:
+                resword = &wordlist[247];
+                goto compare;
+              case 513:
+                resword = &wordlist[248];
+                goto compare;
+              case 514:
+                resword = &wordlist[249];
+                goto compare;
+              case 518:
+                resword = &wordlist[250];
+                goto compare;
+              case 521:
+                resword = &wordlist[251];
+                goto compare;
+              case 522:
+                resword = &wordlist[252];
+                goto compare;
+              case 523:
+                resword = &wordlist[253];
+                goto compare;
+              case 524:
+                resword = &wordlist[254];
+                goto compare;
+              case 526:
+                resword = &wordlist[255];
+                goto compare;
+              case 527:
+                resword = &wordlist[256];
+                goto compare;
+              case 528:
+                resword = &wordlist[257];
+                goto compare;
+              case 529:
+                resword = &wordlist[258];
+                goto compare;
+              case 533:
+                resword = &wordlist[259];
+                goto compare;
+              case 534:
+                resword = &wordlist[260];
+                goto compare;
+              case 535:
+                resword = &wordlist[261];
+                goto compare;
+              case 536:
+                resword = &wordlist[262];
+                goto compare;
+              case 537:
+                resword = &wordlist[263];
+                goto compare;
+              case 541:
+                resword = &wordlist[264];
+                goto compare;
+              case 544:
+                resword = &wordlist[265];
+                goto compare;
+              case 546:
+                resword = &wordlist[266];
+                goto compare;
+              case 553:
+                resword = &wordlist[267];
+                goto compare;
+              case 555:
+                resword = &wordlist[268];
+                goto compare;
+              case 556:
+                resword = &wordlist[269];
+                goto compare;
+              case 557:
+                resword = &wordlist[270];
+                goto compare;
+              case 558:
+                resword = &wordlist[271];
+                goto compare;
+              case 565:
+                resword = &wordlist[272];
+                goto compare;
+              case 566:
+                resword = &wordlist[273];
+                goto compare;
+              case 567:
+                resword = &wordlist[274];
+                goto compare;
+              case 570:
+                resword = &wordlist[275];
+                goto compare;
+              case 571:
+                resword = &wordlist[276];
+                goto compare;
+              case 572:
+                resword = &wordlist[277];
+                goto compare;
+              case 573:
+                resword = &wordlist[278];
+                goto compare;
+              case 574:
+                resword = &wordlist[279];
+                goto compare;
+              case 575:
+                resword = &wordlist[280];
+                goto compare;
+              case 576:
+                resword = &wordlist[281];
+                goto compare;
+              case 577:
+                resword = &wordlist[282];
+                goto compare;
+              case 580:
+                resword = &wordlist[283];
+                goto compare;
+              case 582:
+                resword = &wordlist[284];
+                goto compare;
+              case 585:
+                resword = &wordlist[285];
+                goto compare;
+              case 586:
+                resword = &wordlist[286];
+                goto compare;
+              case 587:
+                resword = &wordlist[287];
+                goto compare;
+              case 588:
+                resword = &wordlist[288];
+                goto compare;
+              case 590:
+                resword = &wordlist[289];
+                goto compare;
+              case 591:
+                resword = &wordlist[290];
+                goto compare;
+              case 593:
+                resword = &wordlist[291];
+                goto compare;
+              case 594:
+                resword = &wordlist[292];
+                goto compare;
+              case 595:
+                resword = &wordlist[293];
+                goto compare;
+              case 597:
+                resword = &wordlist[294];
+                goto compare;
+              case 599:
+                resword = &wordlist[295];
+                goto compare;
+              case 602:
+                resword = &wordlist[296];
+                goto compare;
+              case 603:
+                resword = &wordlist[297];
+                goto compare;
+              case 606:
+                resword = &wordlist[298];
+                goto compare;
+              case 607:
+                resword = &wordlist[299];
+                goto compare;
+              case 608:
+                resword = &wordlist[300];
+                goto compare;
+              case 610:
+                resword = &wordlist[301];
+                goto compare;
+              case 615:
+                resword = &wordlist[302];
+                goto compare;
+              case 616:
+                resword = &wordlist[303];
+                goto compare;
+              case 617:
+                resword = &wordlist[304];
+                goto compare;
+              case 619:
+                resword = &wordlist[305];
+                goto compare;
+              case 620:
+                resword = &wordlist[306];
+                goto compare;
+              case 621:
+                resword = &wordlist[307];
+                goto compare;
+              case 622:
+                resword = &wordlist[308];
+                goto compare;
+              case 623:
+                resword = &wordlist[309];
+                goto compare;
+              case 625:
+                resword = &wordlist[310];
+                goto compare;
+              case 626:
+                resword = &wordlist[311];
+                goto compare;
+              case 628:
+                resword = &wordlist[312];
+                goto compare;
+              case 631:
+                resword = &wordlist[313];
+                goto compare;
+              case 632:
+                resword = &wordlist[314];
+                goto compare;
+              case 634:
+                resword = &wordlist[315];
+                goto compare;
+              case 635:
+                resword = &wordlist[316];
+                goto compare;
+              case 637:
+                resword = &wordlist[317];
+                goto compare;
+              case 640:
+                resword = &wordlist[318];
+                goto compare;
+              case 641:
+                resword = &wordlist[319];
+                goto compare;
+              case 645:
+                resword = &wordlist[320];
+                goto compare;
+              case 650:
+                resword = &wordlist[321];
+                goto compare;
+              case 655:
+                resword = &wordlist[322];
+                goto compare;
+              case 656:
+                resword = &wordlist[323];
+                goto compare;
+              case 657:
+                resword = &wordlist[324];
+                goto compare;
+              case 662:
+                resword = &wordlist[325

<TRUNCATED>


[15/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_rewrite33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_rewrite33.data b/src/test/regress/data/upgrade34/pg_rewrite33.data
new file mode 100644
index 0000000..e36e50c
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_rewrite33.data
@@ -0,0 +1,85 @@
+oid,rulename,ev_class,ev_attr,ev_type,is_instead,ev_qual,ev_action
+10311,_RETURN,10309,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"" ""oid"")} :rtekind 0 :relid 10309 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"" ""oid"")} :rtekind 0 :relid 10309 :inh false :inFromCl false 
 :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")} :rtekind 0 :relid 1260 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname rolname :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname rolsuper :ressortgroupref 0 :resorigtbl 1260 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 16 :vartypmo
 d -1 :varlevelsup 0 :varnoold 3 :varoattno 3} :resno 3 :resname rolinherit :ressortgroupref 0 :resorigtbl 1260 :resorigcol 3 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :resno 4 :resname rolcreaterole :ressortgroupref 0 :resorigtbl 1260 :resorigcol 4 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 5 :resname rolcreatedb :ressortgroupref 0 :resorigtbl 1260 :resorigcol 5 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} :resno 6 :resname rolcatupdate :ressortgroupref 0 :resorigtbl 1260 :resorigcol 6 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} :resno 7 :resname rolcanlogin :ressortgroupref 0 :resorigtbl 1260 :resorigcol 7 :resjunk false} {TARGETENTRY :expr {V
 AR :varno 3 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} :resno 8 :resname rolconnlimit :ressortgroupref 0 :resorigtbl 1260 :resorigcol 8 :resjunk false} {TARGETENTRY :expr {CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 12 [ 0 0 0 12 42 42 42 42 42 42 42 42 ]} :resno 9 :resname rolpassword :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 10 :vartype 1184 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} :resno 10 :resname rolvaliduntil :ressortgroupref 0 :resorigtbl 1260 :resorigcol 10 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 11 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} :resno 11 :resname rolconfig :ressortgroupref 0 :resorigtbl 1260 :resorigcol 11 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} :resno 12 :resname rolresqueue 
 :ressortgroupref 0 :resorigtbl 1260 :resorigcol 12 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 13 :resname oid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10314,_RETURN,10312,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcrea
 terole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")} :rtekind 0 :relid 1260 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7}} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname usename :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 2 :resname usesysid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 3 :resname usecreatedb :ressortgro
 upref 0 :resorigtbl 1260 :resorigcol 5 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 4 :resname usesuper :ressortgroupref 0 :resorigtbl 1260 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} :resno 5 :resname usecatupd :ressortgroupref 0 :resorigtbl 1260 :resorigcol 6 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 9 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} :resno 6 :resname passwd :ressortgroupref 0 :resorigtbl 1260 :resorigcol 9 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1180 :funcresulttype 702 :funcretset false :funcformat 1 :args ({VAR :varno 3 :varattno 10 :vartype 1184 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10})} :resno 7 :resname valuntil :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :vara
 ttno 11 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} :resno 8 :resname useconfig :ressortgroupref 0 :resorigtbl 1260 :resorigcol 11 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10317,_RETURN,10315,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks true :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""groname"" ""grosysid"" ""grolist"")} :rtekind 0 :relid 10315 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""groname"" ""grosysid"" ""grolist"")} :rtekind 0 :relid 10315 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")
 } :rtekind 0 :relid 1260 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals {BOOLEXPR :boolop not :args ({VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7})}} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname groname :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 2 :resname grosysid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false} {TARGETENTRY :expr {SUBLINK :subLinkType 5 :testexpr <> :operName <> :subselect {QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs f
 alse :hasSubLinks false :rtable ({RTE :alias <> :eref {ALIAS :aliasname pg_auth_members :colnames (""roleid"" ""member"" ""grantor"" ""admin_option"")} :rtekind 0 :relid 1261 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 1}) :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 1 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 1 :varoattno 1} {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 1 :varnoold 3 :varoattno -2})}} :targetList ({TARGETENTRY :expr {VAR :varno 1 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 1 :varoattno 2} :resno 1 :resname member :ressortgroupref 0 :resorigtbl 1261 :resorigcol 2 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :
 result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0}} :resno 3 :resname grolist :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10320,_RETURN,10318,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10318 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10318 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname pg_shadow :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesup
 er"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname usename :ressortgroupref 0 :resorigtbl 10312 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname usesysid :ressortgroupref 0 :resorigtbl 10312 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} :resno 3 :resname usecreatedb :ressortgroupref 0 :resorigtbl 10312 :resorigcol 3 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :res
 no 4 :resname usesuper :ressortgroupref 0 :resorigtbl 10312 :resorigcol 4 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 5 :resname usecatupd :ressortgroupref 0 :resorigtbl 10312 :resorigcol 5 :resjunk false} {TARGETENTRY :expr {CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 12 [ 0 0 0 12 42 42 42 42 42 42 42 42 ]} :resno 6 :resname passwd :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 7 :vartype 702 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} :resno 7 :resname valuntil :ressortgroupref 0 :resorigtbl 10312 :resorigcol 7 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 8 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} :resno 8 :resname useconfig :ressortgroupref 0 :resorigtbl 10312 :resorigcol 8 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :wi
 ndowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10323,_RETURN,10321,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""rulename"" ""definition"")} :rtekind 0 :relid 10321 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""rulename"" ""definition"")} :rtekind 0 :relid 10321 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname r :colnames <>} :eref {ALIAS :aliasname r :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"")} :rtekind 0 :relid 2618 :inh tru
 e :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpag
 es"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 25 :vartypmod -1 :varlev
 elsup 0 :varnoold 3 :varoattno 7} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3} {VAR :varno 4 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 4} {VAR :varno 4 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 5} {VAR :varno 4 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 6} {VAR :varno 4 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 7} {VAR :varno 4 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 8} {VAR :varno 4 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 9} {VAR :varno 4 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 10} {VAR :varno 4 :varattno 11 :va
 rtype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 11} {VAR :varno 4 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 12} {VAR :varno 4 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 13} {VAR :varno 4 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 14} {VAR :varno 4 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 15} {VAR :varno 4 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 16} {VAR :varno 4 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 17} {VAR :varno 4 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 18} {VAR :varno 4 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 19} {VAR :varno 4 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 20} {VAR :varno 4 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold
  4 :varoattno 21} {VAR :varno 4 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 22} {VAR :varno 4 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 23} {VAR :varno 4 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 24} {VAR :varno 4 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 25} {VAR :varno 4 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 26} {VAR :varno 4 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 27} {VAR :varno 4 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 28} {VAR :varno 4 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 29} {VAR :varno 4 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 30}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :al
 iasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varn
 o 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :varno 5 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno 9 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varn
 oold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno 16 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 
 23 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :varattno 24 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 16 :vartypmod -1 :varlevelsup 0 :va
 rnoold 5 :varoattno 33} {VAR :varno 5 :varattno 34 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 34} {VAR :varno 5 :varattno 35 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 35} {VAR :varno 5 :varattno 36 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 36} {VAR :varno 5 :varattno 37 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 37} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 0 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 6
 07 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2})} :alias <> :rtindex 7}) :quals {OPEXPR :opno 643 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {CONST :consttype 19 :constlen 64 :constbyval false :constisnull false :constvalue 64 [ 95 82 69 84 85 82 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]})}} 
 :targetList ({TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 3 :resname rulename :ressortgroupref 0 :resorigtbl 2618 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1573 :funcresulttype 25 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2})} :resno 4 :resname definition :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctC
 lause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10326,_RETURN,10324,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""viewname"" ""viewowner"" ""definition"")} :rtekind 0 :relid 10324 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""viewname"" ""viewowner"" ""definition"")} :rtekind 0 :relid 10324 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples""
  ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorag
 e"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold
  3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} {VAR :varno 3 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 13} {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} {VAR :varno 3 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 15} {VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {VAR :varno 3 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 17} {VAR :varno 3 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 18} {VAR :varno 3 :varattno 19 :var
 type 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 19} {VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {VAR :varno 3 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 21} {VAR :varno 3 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 22} {VAR :varno 3 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 23} {VAR :varno 3 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 24} {VAR :varno 3 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 25} {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} {VAR :varno 3 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 27} {VAR :varno 3 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 28} {VAR :varno 3 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnool
 d 3 :varoattno 29} {VAR :varno 3 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 30} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5}) :quals {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false 
 :args ({VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 118 0 0 0 0 0 0 0 ]})}} :targetList ({TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 2 :resname viewname :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1642 :funcresulttype 19 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4})} :resno 3 :resname viewowner :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1641 :funcresulttype 25 :funcretset fa
 lse :funcformat 0 :args ({VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2})} :resno 4 :resname definition :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10329,_RETURN,10327,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""tableowner"" ""tablespace"" ""hasindexes"" ""hasrules"" ""hastriggers"")} :rtekind 0 :relid 10327 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""tableowner"" ""tablespace"" ""hasindexes"" ""hasrules"" ""hastriggers"")} :rtekind 0 :relid 10327 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""r
 eltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid""
  ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 
 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} {VAR :varno 3 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 13} {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} {VAR :varno 3 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 15} {VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {VAR :varno 3 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 17} {VAR :varno 3 :varattno 18 :vartyp
 e 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 18} {VAR :varno 3 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 19} {VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {VAR :varno 3 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 21} {VAR :varno 3 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 22} {VAR :varno 3 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 23} {VAR :varno 3 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 24} {VAR :varno 3 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 25} {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} {VAR :varno 3 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 27} {VAR :varno 3 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :
 varoattno 28} {VAR :varno 3 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 29} {VAR :varno 3 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 30} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname t :colnames <>} :eref {ALIAS :aliasname t :colnames (""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 0 :relid 1213 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner
 "" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"" ""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varno 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :varno 5 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 26 :vartypmod -1 :varlevels
 up 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno
  16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :v
 arnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 33} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3} {VAR :varno 6 :varattn
 o 4 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 4} {VAR :varno 6 :varattno 5 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 5} {VAR :varno 6 :varattno 6 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 6}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 1 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :v
 artypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7})} :alias <> :rtindex 7}) :quals {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 114 0 0 0 0 0 0 0 ]})}} :targetList ({TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1642 :funcresulttype 19 :funcretset false :funcformat 0 :args ({VAR :varno 3 :vara
 ttno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4})} :resno 3 :resname tableowner :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} :resno 4 :resname tablespace :ressortgroupref 0 :resorigtbl 1213 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} :resno 5 :resname hasindexes :ressortgroupref 0 :resorigtbl 1259 :resorigcol 14 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} :resno 6 :resname hasrules :ressortgroupref 0 :resorigtbl 1259 :resorigcol 26 :resjunk false} {TARGETENTRY :expr {OPEXPR :opno 536 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {CONST :consttype 23
  :constlen 4 :constbyval true :constisnull false :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})} :resno 7 :resname hastriggers :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10835,_RETURN,10833,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""distributed_xid"" ""distributed_id"" ""state"" ""gp_session_id"" ""xmin_distributed_snapshot"")} :rtekind 0 :relid 10833 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""distributed_xid"" ""distributed_id"" ""state"" ""gp_session_id"" ""xmin_distributed_snapshot"")} :rtekind 0 :relid 10833 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname l :colnames <>} :eref {ALIAS :aliasname l :colnames (""distributed_xid"" ""distributed_id"" ""sta
 te"" ""gp_session_id"" ""xmin_distributed_snapshot"")} :rtekind 4 :funcexpr {FUNCEXPR :funcid 6035 :funcresulttype 2249 :funcretset true :funcformat 0 :args <>} :funccoltypes (o 28 25 25 23 28) :funccoltypmods (i -1 -1 -1 -1 -1) :inh false :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname distributed_xid :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname distributed_id :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} :resno 3 :resname state :ressortgroupref 0 :resorigtbl 0 :re
 sorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :resno 4 :resname gp_session_id :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 5 :resname xmin_distributed_snapshot :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10332,_RETURN,10330,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""indexname"" ""tablespace"" ""indexdef"")} :rtekind 0 :relid 10330 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""indexname"" ""tablespace"" ""indexdef"")} :rtekind 0 :relid 10330 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname x :colnames <>} :eref {ALIAS :aliasname x :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""i
 ndisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"")} :rtekind 0 :relid 2610 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisval
 id"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoa
 ttno 5} {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3} {VAR :varno 4 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 4} {VAR :varno 4 :varattno 5 :vartype 26 :vartypmod -1 :va
 rlevelsup 0 :varnoold 4 :varoattno 5} {VAR :varno 4 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 6} {VAR :varno 4 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 7} {VAR :varno 4 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 8} {VAR :varno 4 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 9} {VAR :varno 4 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 10} {VAR :varno 4 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 11} {VAR :varno 4 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 12} {VAR :varno 4 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 13} {VAR :varno 4 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 14} {VAR :varno 4 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 15} {VAR :varno 4 :v
 arattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 16} {VAR :varno 4 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 17} {VAR :varno 4 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 18} {VAR :varno 4 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 19} {VAR :varno 4 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 20} {VAR :varno 4 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 21} {VAR :varno 4 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 22} {VAR :varno 4 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 23} {VAR :varno 4 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 24} {VAR :varno 4 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 25} {VAR :varno 4 :varattno 26 :vartype 16 :vartypmod -1 :varlevels
 up 0 :varnoold 4 :varoattno 26} {VAR :varno 4 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 27} {VAR :varno 4 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 28} {VAR :varno 4 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 29} {VAR :varno 4 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 30}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname i :colnames <>} :eref {ALIAS :aliasname i :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"
 " ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""rel
 aosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varno 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :varno 5 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 
 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold
  5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :
 vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 33} {VAR :varno 5 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 34} {VAR :varno 5 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 35} {VAR :varno 5 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 36} {VAR :varno 5 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 37} {VAR :varno 5 :varattno 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 38} {VAR :varno 5 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoo
 ld 5 :varoattno 39} {VAR :varno 5 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 40} {VAR :varno 5 :varattno 41 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 41} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3} {VAR :varno 6 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 4} {VAR :varno 6 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 5} {VAR :varno 6 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 6} {VAR :varno 6 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 7} {VAR :varno 6 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 8} {VAR :varno 6 :varattno 9 :vartype 700 
 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 9} {VAR :varno 6 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 10} {VAR :varno 6 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 11} {VAR :varno 6 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 12} {VAR :varno 6 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 13} {VAR :varno 6 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 14} {VAR :varno 6 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 15} {VAR :varno 6 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 16} {VAR :varno 6 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 17} {VAR :varno 6 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 18} {VAR :varno 6 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoat
 tno 19} {VAR :varno 6 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 20} {VAR :varno 6 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 21} {VAR :varno 6 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 22} {VAR :varno 6 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 23} {VAR :varno 6 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 24} {VAR :varno 6 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 25} {VAR :varno 6 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 26} {VAR :varno 6 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 27} {VAR :varno 6 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 28} {VAR :varno 6 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 29} {VAR :varno 6 :varattno 30 :vartype 1
 009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 30}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrule
 s"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 7 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 1} {VAR :varno 7 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 2} {VAR :varno 7 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 3} {VAR :varno 7 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 4} {VAR :varno 7 :varattno 5 :vartype 16
  :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 5} {VAR :varno 7 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 6} {VAR :varno 7 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 7} {VAR :varno 7 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 8} {VAR :varno 7 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 9} {VAR :varno 7 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 10} {VAR :varno 7 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 11} {VAR :varno 7 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 12} {VAR :varno 7 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 13} {VAR :varno 7 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 14} {VAR :varno 7 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 15}
  {VAR :varno 7 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 16} {VAR :varno 7 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 17} {VAR :varno 7 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 18} {VAR :varno 7 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 19} {VAR :varno 7 :varattno 20 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 20} {VAR :varno 7 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 21} {VAR :varno 7 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 22} {VAR :varno 7 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 23} {VAR :varno 7 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 24} {VAR :varno 7 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 25} {VAR :varno 7 :varattno 26 :vartype 16 :varty
 pmod -1 :varlevelsup 0 :varnoold 7 :varoattno 26} {VAR :varno 7 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 27} {VAR :varno 7 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 28} {VAR :varno 7 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 29} {VAR :varno 7 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 30} {VAR :varno 7 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 31} {VAR :varno 7 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 32} {VAR :varno 7 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 33} {VAR :varno 7 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 34} {VAR :varno 7 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 35} {VAR :varno 7 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 3
 6} {VAR :varno 7 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 37} {VAR :varno 7 :varattno 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 38} {VAR :varno 7 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 39} {VAR :varno 7 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 40} {VAR :varno 7 :varattno 41 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 41} {VAR :varno 7 :varattno 42 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 42} {VAR :varno 7 :varattno 43 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 43} {VAR :varno 7 :varattno 44 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 44} {VAR :varno 7 :varattno 45 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 45} {VAR :varno 7 :varattno 46 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 46} {VAR :varno 7 :varattno 47 :vartype 26 :
 vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 47} {VAR :varno 7 :varattno 48 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 48} {VAR :varno 7 :varattno 49 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 49} {VAR :varno 7 :varattno 50 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 50} {VAR :varno 7 :varattno 51 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 51} {VAR :varno 7 :varattno 52 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 52} {VAR :varno 7 :varattno 53 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 53} {VAR :varno 7 :varattno 54 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 54} {VAR :varno 7 :varattno 55 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 55} {VAR :varno 7 :varattno 56 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 56} {VAR :varno 7 :varattno 57 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoa
 ttno 57} {VAR :varno 7 :varattno 58 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 58} {VAR :varno 7 :varattno 59 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 59} {VAR :varno 7 :varattno 60 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 60} {VAR :varno 7 :varattno 61 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 61} {VAR :varno 7 :varattno 62 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 62} {VAR :varno 7 :varattno 63 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 63} {VAR :varno 7 :varattno 64 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 64} {VAR :varno 7 :varattno 65 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 65} {VAR :varno 7 :varattno 66 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 66} {VAR :varno 7 :varattno 67 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 67} {VAR :varno 7 :varattno 68 :vartype 16
  :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 68} {VAR :varno 7 :varattno 69 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 69} {VAR :varno 7 :varattno 70 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 70} {VAR :varno 7 :varattno 71 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 71} {VAR :varno 8 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 1} {VAR :varno 8 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 2} {VAR :varno 8 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false :pseudocols <>} {RTE :alias {ALIAS :aliasname t :colnames <>} :eref {ALIAS :aliasname t :colnames (""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 0 :relid 1213 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRando
 m false :pseudocols <>} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukey
 s"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"" ""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 9 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 1} {VAR :varno 9 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 2} {VAR :varno 9 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 3} {VAR :varno 9 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 4} {VAR :varno 9 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 5} {VAR :varno 9 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 6} {VAR :varno 9 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 7} {VAR :varno 9 :varattno 8 :vartype 22 :v
 artypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 8} {VAR :varno 9 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 9} {VAR :varno 9 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 10} {VAR :varno 9 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 11} {VAR :varno 9 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 12} {VAR :varno 9 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 13} {VAR :varno 9 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 14} {VAR :varno 9 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 15} {VAR :varno 9 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 16} {VAR :varno 9 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 17} {VAR :varno 9 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 
 18} {VAR :varno 9 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 19} {VAR :varno 9 :varattno 20 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 20} {VAR :varno 9 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 21} {VAR :varno 9 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 22} {VAR :varno 9 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 23} {VAR :varno 9 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 24} {VAR :varno 9 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 25} {VAR :varno 9 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 26} {VAR :varno 9 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 27} {VAR :varno 9 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 28} {VAR :varno 9 :varattno 29 :vartype 21 :va
 rtypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 29} {VAR :varno 9 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 30} {VAR :varno 9 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 31} {VAR :varno 9 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 32} {VAR :varno 9 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 33} {VAR :varno 9 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 34} {VAR :varno 9 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 35} {VAR :varno 9 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 36} {VAR :varno 9 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 37} {VAR :varno 9 :varattno 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 38} {VAR :varno 9 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattn
 o 39} {VAR :varno 9 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 40} {VAR :varno 9 :varattno 41 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 41} {VAR :varno 9 :varattno 42 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 42} {VAR :varno 9 :varattno 43 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 43} {VAR :varno 9 :varattno 44 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 44} {VAR :varno 9 :varattno 45 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 45} {VAR :varno 9 :varattno 46 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 46} {VAR :varno 9 :varattno 47 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 47} {VAR :varno 9 :varattno 48 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 48} {VAR :varno 9 :varattno 49 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 49} {VAR :varno 9 :varattno 50 :vartype 7
 00 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 50} {VAR :varno 9 :varattno 51 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 51} {VAR :varno 9 :varattno 52 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 52} {VAR :varno 9 :varattno 53 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 53} {VAR :varno 9 :varattno 54 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 54} {VAR :varno 9 :varattno 55 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 55} {VAR :varno 9 :varattno 56 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 56} {VAR :varno 9 :varattno 57 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 57} {VAR :varno 9 :varattno 58 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 58} {VAR :varno 9 :varattno 59 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 59} {VAR :varno 9 :varattno 60 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :va
 roattno 60} {VAR :varno 9 :varattno 61 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 61} {VAR :varno 9 :varattno 62 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 62} {VAR :varno 9 :varattno 63 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 63} {VAR :varno 9 :varattno 64 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 64} {VAR :varno 9 :varattno 65 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 65} {VAR :varno 9 :varattno 66 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 66} {VAR :varno 9 :varattno 67 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 67} {VAR :varno 9 :varattno 68 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 68} {VAR :varno 9 :varattno 69 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 69} {VAR :varno 9 :varattno 70 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 70} {VAR :varno 9 :varattno 71 :varty
 pe 1009 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 71} {VAR :varno 9 :varattno 72 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 72} {VAR :varno 9 :varattno 73 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 73} {VAR :varno 9 :varattno 74 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 74} {VAR :varno 10 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 1} {VAR :varno 10 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 2} {VAR :varno 10 :varattno 3 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 3} {VAR :varno 10 :varattno 4 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 4} {VAR :varno 10 :varattno 5 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 5} {VAR :varno 10 :varattno 6 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 6}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistR
 andom false :pseudocols <>}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 0 :isNatural false :larg {JOINEXPR :jointype 0 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 3 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1})} :alias <> :rtindex 7} :rarg {RANGETBLREF :rtindex 8} :using <> :quals {OPEXPR :opno 607 :opfun
 cid 0 :opresulttype 16 :opretset false :args ({VAR :varno 8 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno -2} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2})} :alias <> :rtindex 9} :rarg {RANGETBLREF :rtindex 10} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 10 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno -2} {VAR :varno 6 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 7})} :alias <> :rtindex 11}) :quals {BOOLEXPR :boolop and :args ({OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 114 0 0 0 0 0 0 0 ]})} {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno 16 
 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 105 0 0 0 0 0 0 0 ]})})}} :targetList ({TARGETENTRY :expr {VAR :varno 8 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} :resno 3 :resname indexname :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 10 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 1} :resno 4 :resname tablespace :ressortgroup

<TRUNCATED>


[02/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/pgmodule.c
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/pgmodule.c b/tools/bin/pythonSrc/PyGreSQL-4.0/pgmodule.c
new file mode 100644
index 0000000..fbff317
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/pgmodule.c
@@ -0,0 +1,3756 @@
+/*
+ * $Id: pgmodule.c,v 1.90 2008/12/03 00:17:15 cito Exp $
+ * PyGres, version 2.2 A Python interface for PostgreSQL database. Written by
+ * D'Arcy J.M. Cain, (darcy@druid.net).  Based heavily on code written by
+ * Pascal Andre, andre@chimay.via.ecp.fr. Copyright (c) 1995, Pascal Andre
+ * (andre@via.ecp.fr).
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose, without fee, and without a written
+ * agreement is hereby granted, provided that the above copyright notice and
+ * this paragraph and the following two paragraphs appear in all copies or in
+ * any new file that contains a substantial portion of this file.
+ *
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+ * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE
+ * AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE
+ * AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ * ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Further modifications copyright 1997, 1998, 1999 by D'Arcy J.M. Cain
+ * (darcy@druid.net) subject to the same terms and conditions as above.
+ *
+ */
+
+/* Note: This should be linked against the same C runtime lib as Python */
+
+#include "postgres.h"
+#include "libpq-fe.h"
+#include "libpq/libpq-fs.h"
+#include "catalog/pg_type.h"
+
+/* these will be defined in Python.h again: */
+#undef _POSIX_C_SOURCE
+#undef HAVE_STRERROR
+#undef snprintf
+#undef vsnprintf
+
+#include <Python.h>
+
+static PyObject *Error, *Warning, *InterfaceError,
+	*DatabaseError, *InternalError, *OperationalError, *ProgrammingError,
+	*IntegrityError, *DataError, *NotSupportedError;
+
+static const char *PyPgVersion = "4.0";
+
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
+
+/* taken from fileobject.c */
+#define BUF(v) PyString_AS_STRING((PyStringObject *)(v))
+
+/* default values */
+#define MODULE_NAME			"pgsql"
+#define PG_ARRAYSIZE			1
+
+/* flags for object validity checks */
+#define CHECK_OPEN			1
+#define CHECK_CLOSE			2
+#define CHECK_CNX			4
+#define CHECK_RESULT		8
+#define CHECK_DQL			16
+
+/* query result types */
+#define RESULT_EMPTY		1
+#define RESULT_DML			2
+#define RESULT_DDL			3
+#define RESULT_DQL			4
+
+/* flags for move methods */
+#define QUERY_MOVEFIRST		1
+#define QUERY_MOVELAST		2
+#define QUERY_MOVENEXT		3
+#define QUERY_MOVEPREV		4
+
+/* moves names for errors */
+const char *__movename[5] =
+{"", "movefirst", "movelast", "movenext", "moveprev"};
+
+#define MAX_BUFFER_SIZE 8192	/* maximum transaction size */
+
+#ifndef NO_DIRECT
+#define DIRECT_ACCESS 1			/* enables direct access functions */
+#endif
+
+#ifndef NO_LARGE
+#define LARGE_OBJECTS 1			/* enables large objects support */
+#endif
+
+#ifndef NO_DEF_VAR
+#define DEFAULT_VARS 1			/* enables default variables use */
+#endif
+
+#ifndef NO_NOTICES
+#define HANDLE_NOTICES        1               /* enables notices handling */
+#endif   /* NO_NOTICES */
+
+#ifndef PG_VERSION_NUM
+#ifdef PQnoPasswordSupplied
+#define PG_VERSION_NUM 80000
+#else
+#define PG_VERSION_NUM 70400
+#endif
+#endif
+
+/* Before 8.0, PQsetdbLogin was not thread-safe with kerberos. */
+#if PG_VERSION_NUM >= 80000 || !(defined(KRB4) || defined(KRB5))
+#define PQsetdbLoginIsThreadSafe 1
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/* MODULE GLOBAL VARIABLES */
+
+#ifdef DEFAULT_VARS
+
+static PyObject *pg_default_host;	/* default database host */
+static PyObject *pg_default_base;	/* default database name */
+static PyObject *pg_default_opt;	/* default connection options */
+static PyObject *pg_default_tty;	/* default debug tty */
+static PyObject *pg_default_port;	/* default connection port */
+static PyObject *pg_default_user;	/* default username */
+static PyObject *pg_default_passwd;	/* default password */
+#endif	/* DEFAULT_VARS */
+
+#ifdef HANDLE_NOTICES
+#define MAX_BUFFERED_NOTICES 101              /* max notices (+1) to keep for each connection */
+static void notice_processor(void * arg, const char * message);
+#endif /* HANDLE_NOTICES */ 
+
+DL_EXPORT(void) init_pg(void);
+int *get_type_array(PGresult *result, int nfields);
+
+static PyObject *decimal = NULL; /* decimal type */
+
+/* --------------------------------------------------------------------- */
+/* OBJECTS DECLARATION */
+
+/* pg connection object */
+
+typedef struct
+{
+	PyObject_HEAD
+	int			valid;			/* validity flag */
+	PGconn		*cnx;			/* PostGres connection handle */
+	PGresult	*last_result;	/* last result content */
+#ifdef HANDLE_NOTICES
+        char           **notices;            /* dynamically allocated circular buffer for notices */
+        int              notices_first;  /* index of first filled index in notices */
+        int              notices_next;   /* index of first free index in notices */
+#endif /* HANDLE_NOTICES */
+}	pgobject;
+
+staticforward PyTypeObject PgType;
+
+#define is_pgobject(v) ((v)->ob_type == &PgType)
+
+static PyObject *
+pgobject_New(void)
+{
+	pgobject	*pgobj;
+
+	if ((pgobj = PyObject_NEW(pgobject, &PgType)) == NULL)
+		return NULL;
+
+	pgobj->valid = 1;
+	pgobj->last_result = NULL;
+	pgobj->cnx = NULL;
+        pgobj->notices = malloc(sizeof(char*) * MAX_BUFFERED_NOTICES);
+        pgobj->notices_first = 0;
+        pgobj->notices_next = 0;
+	return (PyObject *) pgobj;
+}
+
+/* pg query object */
+
+typedef struct
+{
+	PyObject_HEAD
+	PGresult	*last_result;	/* last result content */
+	int			result_type;	/* type of previous result */
+	long		current_pos;	/* current position in last result */
+	long		num_rows;		/* number of (affected) rows */
+}	pgqueryobject;
+
+staticforward PyTypeObject PgQueryType;
+
+#define is_pgqueryobject(v) ((v)->ob_type == &PgQueryType)
+
+/* pg source object */
+
+typedef struct
+{
+	PyObject_HEAD
+	int			valid;			/* validity flag */
+	pgobject	*pgcnx;			/* parent connection object */
+	PGresult	*last_result;	/* last result content */
+	int			result_type;	/* result type (DDL/DML/DQL) */
+	long		arraysize;		/* array size for fetch method */
+	int			current_row;	/* current selected row */
+	int			max_row;		/* number of rows in the result */
+	int			num_fields;		/* number of fields in each row */
+}	pgsourceobject;
+
+staticforward PyTypeObject PgSourceType;
+
+#define is_pgsourceobject(v) ((v)->ob_type == &PgSourceType)
+
+
+#ifdef LARGE_OBJECTS
+/* pg large object */
+
+typedef struct
+{
+	PyObject_HEAD
+	pgobject	*pgcnx;			/* parent connection object */
+	Oid			lo_oid;			/* large object oid */
+	int			lo_fd;			/* large object fd */
+}	pglargeobject;
+
+staticforward PyTypeObject PglargeType;
+
+#define is_pglargeobject(v) ((v)->ob_type == &PglargeType)
+#endif /* LARGE_OBJECTS */
+
+/* --------------------------------------------------------------------- */
+/* INTERNAL FUNCTIONS */
+
+
+/* prints result (mostly useful for debugging) */
+/* Note: This is a simplified version of the Postgres function PQprint().
+ * PQprint() is not used because handing over a stream from Python to
+ * Postgres can be problematic if they use different libs for streams.
+ * Also, PQprint() is considered obsolete and may be removed sometime.
+ */
+static void
+print_result(FILE *fout, const PGresult *res)
+{
+	int n = PQnfields(res);
+	if (n > 0)
+	{
+		int i, j;
+		int *fieldMax = NULL;
+		char **fields = NULL;
+		const char **fieldNames;
+		int m = PQntuples(res);
+		if (!(fieldNames = (const char **) calloc(n, sizeof(char *))))
+		{
+			fprintf(stderr, "out of memory\n"); exit(1);
+		}
+		if (!(fieldMax = (int *) calloc(n, sizeof(int))))
+		{
+			fprintf(stderr, "out of memory\n"); exit(1);
+		}
+		for (j = 0; j < n; j++)
+		{
+			const char *s = PQfname(res, j);
+			fieldNames[j] = s;
+			fieldMax[j] = s ? strlen(s) : 0;
+		}
+		if (!(fields = (char **) calloc(n * (m + 1), sizeof(char *))))
+		{
+			fprintf(stderr, "out of memory\n"); exit(1);
+		}
+		for (i = 0; i < m; i++)
+		{
+			for (j = 0; j < n; j++)
+			{
+				const char *val;
+				int len;
+				len = PQgetlength(res, i, j);
+				val = PQgetvalue(res, i, j);
+				if (len >= 1 && val && *val)
+				{
+					if (len > fieldMax[j])
+						fieldMax[j] = len;
+					if (!(fields[i * n + j] = (char *) malloc(len + 1)))
+					{
+						fprintf(stderr, "out of memory\n"); exit(1);
+					}
+					strcpy(fields[i * n + j], val);
+				}
+			}
+		}
+		for (j = 0; j < n; j++)
+		{
+			const char *s = PQfname(res, j);
+			int len = strlen(s);
+			if (len > fieldMax[j])
+				fieldMax[j] = len;
+			fprintf(fout, "%-*s", fieldMax[j], s);
+			if (j + 1 < n)
+				fputc('|', fout);
+		}
+		fputc('\n', fout);
+		for (j = 0; j < n; j++)
+		{
+			for (i = fieldMax[j]; i--; fputc('-', fout));
+			if (j + 1 < n)
+				fputc('+', fout);
+		}
+		fputc('\n', fout);
+		for (i = 0; i < m; i++)
+		{
+			for (j = 0; j < n; j++)
+			{
+				char *s = fields[i * n + j];
+				fprintf(fout, "%-*s", fieldMax[j], s ? s : "");
+				if (j + 1 < n)
+					fputc('|', fout);
+				if (s)
+					free(s);
+			}
+			fputc('\n', fout);
+		}
+		free(fields);
+		fprintf(fout, "(%d row%s)\n\n", m, m == 1 ? "" : "s");
+		free(fieldMax);
+		free((void *) fieldNames);
+	}
+}
+
+/* checks connection validity */
+static int
+check_cnx_obj(pgobject * self)
+{
+	if (!self->valid)
+	{
+		PyErr_SetString(IntegrityError, "connection has been closed.");
+		return 0;
+	}
+	return 1;
+}
+
+#ifdef LARGE_OBJECTS
+/* checks large object validity */
+static int
+check_lo_obj(pglargeobject * self, int level)
+{
+	if (!check_cnx_obj(self->pgcnx))
+		return 0;
+
+	if (!self->lo_oid)
+	{
+		PyErr_SetString(IntegrityError, "object is not valid (null oid).");
+		return 0;
+	}
+
+	if (level & CHECK_OPEN)
+	{
+		if (self->lo_fd < 0)
+		{
+			PyErr_SetString(PyExc_IOError, "object is not opened.");
+			return 0;
+		}
+	}
+
+	if (level & CHECK_CLOSE)
+	{
+		if (self->lo_fd >= 0)
+		{
+			PyErr_SetString(PyExc_IOError, "object is already opened.");
+			return 0;
+		}
+	}
+
+	return 1;
+}
+#endif /* LARGE_OBJECTS */
+
+/* checks source object validity */
+static int
+check_source_obj(pgsourceobject * self, int level)
+{
+	if (!self->valid)
+	{
+		PyErr_SetString(IntegrityError, "object has been closed");
+		return 0;
+	}
+
+	if ((level & CHECK_RESULT) && self->last_result == NULL)
+	{
+		PyErr_SetString(DatabaseError, "no result.");
+		return 0;
+	}
+
+	if ((level & CHECK_DQL) && self->result_type != RESULT_DQL)
+	{
+		PyErr_SetString(DatabaseError, "last query did not return tuples.");
+		return 0;
+	}
+
+	if ((level & CHECK_CNX) && !check_cnx_obj(self->pgcnx))
+		return 0;
+
+	return 1;
+}
+
+/* shared functions for converting PG types to Python types */
+int *
+get_type_array(PGresult *result, int nfields)
+{
+	int *typ;
+	int j;
+
+	if ((typ = malloc(sizeof(int) * nfields)) == NULL)
+	{
+		PyErr_SetString(PyExc_MemoryError, "memory error in getresult().");
+		return NULL;
+	}
+
+	for (j = 0; j < nfields; j++)
+	{
+		switch (PQftype(result, j))
+		{
+			case INT2OID:
+			case INT4OID:
+			case OIDOID:
+				typ[j] = 1;
+				break;
+
+			case INT8OID:
+				typ[j] = 2;
+				break;
+
+			case FLOAT4OID:
+			case FLOAT8OID:
+				typ[j] = 3;
+				break;
+
+			case NUMERICOID:
+				typ[j] = 4;
+				break;
+
+			case CASHOID:
+				typ[j] = 5;
+				break;
+
+			default:
+				typ[j] = 6;
+				break;
+		}
+	}
+
+	return typ;
+}
+
+
+/* prototypes for constructors */
+static pgsourceobject *pgsource_new(pgobject * pgcnx);
+
+/* --------------------------------------------------------------------- */
+/* PG SOURCE OBJECT IMPLEMENTATION */
+
+/* constructor (internal use only) */
+static pgsourceobject *
+pgsource_new(pgobject * pgcnx)
+{
+	pgsourceobject *npgobj;
+
+	/* allocates new query object */
+	if ((npgobj = PyObject_NEW(pgsourceobject, &PgSourceType)) == NULL)
+		return NULL;
+
+	/* initializes internal parameters */
+	Py_XINCREF(pgcnx);
+	npgobj->pgcnx = pgcnx;
+	npgobj->last_result = NULL;
+	npgobj->valid = 1;
+	npgobj->arraysize = PG_ARRAYSIZE;
+
+	return npgobj;
+}
+
+/* destructor */
+static void
+pgsource_dealloc(pgsourceobject * self)
+{
+	if (self->last_result)
+		PQclear(self->last_result);
+
+	Py_XDECREF(self->pgcnx);
+	PyObject_Del(self);
+}
+
+/* closes object */
+static char pgsource_close__doc__[] =
+"close() -- close query object without deleting it. "
+"All instances of the query object can no longer be used after this call.";
+
+static PyObject *
+pgsource_close(pgsourceobject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError, "method close() takes no parameter.");
+		return NULL;
+	}
+
+	/* frees result if necessary and invalidates object */
+	if (self->last_result)
+	{
+		PQclear(self->last_result);
+		self->result_type = RESULT_EMPTY;
+		self->last_result = NULL;
+	}
+
+	self->valid = 0;
+
+	/* return None */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* database query */
+static char pgsource_execute__doc__[] =
+"execute(sql) -- execute a SQL statement (string).\n "
+"On success, this call returns the number of affected rows, "
+"or None for DQL (SELECT, ...) statements.\n"
+"The fetch (fetch(), fetchone() and fetchall()) methods can be used "
+"to get result rows.";
+
+static PyObject *
+pgsource_execute(pgsourceobject * self, PyObject * args)
+{
+	char		*query;
+
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_CNX))
+		return NULL;
+
+	/* make sure that the connection object is valid */
+	if (!self->pgcnx->cnx)
+		return NULL;
+
+	/* get query args */
+	if (!PyArg_ParseTuple(args, "s", &query))
+	{
+		PyErr_SetString(PyExc_TypeError, "execute(sql), with sql (string).");
+		return NULL;
+	}
+
+	/* frees previous result */
+	if (self->last_result)
+	{
+		PQclear(self->last_result);
+		self->last_result = NULL;
+	}
+	self->max_row = 0;
+	self->current_row = 0;
+	self->num_fields = 0;
+
+	/* gets result */
+	Py_BEGIN_ALLOW_THREADS
+	self->last_result = PQexec(self->pgcnx->cnx, query);
+	Py_END_ALLOW_THREADS
+
+	/* checks result validity */
+	if (!self->last_result)
+	{
+		PyErr_SetString(PyExc_ValueError, PQerrorMessage(self->pgcnx->cnx));
+		return NULL;
+	}
+
+	/* checks result status */
+	switch (PQresultStatus(self->last_result))
+	{
+		long	num_rows;
+		char   *temp;
+
+		/* query succeeded */
+		case PGRES_TUPLES_OK:	/* DQL: returns None (DB-SIG compliant) */
+			self->result_type = RESULT_DQL;
+			self->max_row = PQntuples(self->last_result);
+			self->num_fields = PQnfields(self->last_result);
+			Py_INCREF(Py_None);
+			return Py_None;
+		case PGRES_COMMAND_OK:	/* other requests */
+		case PGRES_COPY_OUT:
+		case PGRES_COPY_IN:
+			self->result_type = RESULT_DDL;
+			temp = PQcmdTuples(self->last_result);
+			num_rows = -1;
+			if (temp[0])
+			{
+				self->result_type = RESULT_DML;
+				num_rows = atol(temp);
+			}
+			return PyInt_FromLong(num_rows);
+
+		/* query failed */
+		case PGRES_EMPTY_QUERY:
+			PyErr_SetString(PyExc_ValueError, "empty query.");
+			break;
+		case PGRES_BAD_RESPONSE:
+		case PGRES_FATAL_ERROR:
+		case PGRES_NONFATAL_ERROR:
+			PyErr_SetString(ProgrammingError, PQerrorMessage(self->pgcnx->cnx));
+			break;
+		default:
+			PyErr_SetString(InternalError, "internal error: "
+				"unknown result status.");
+			break;
+	}
+
+	/* frees result and returns error */
+	PQclear(self->last_result);
+	self->last_result = NULL;
+	self->result_type = RESULT_EMPTY;
+	return NULL;
+}
+
+/* gets oid status for last query (valid for INSERTs, 0 for other) */
+static char pgsource_oidstatus__doc__[] =
+"oidstatus() -- return oid of last inserted row (if available).";
+
+static PyObject *
+pgsource_oidstatus(pgsourceobject * self, PyObject * args)
+{
+	Oid			oid;
+
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_RESULT))
+		return NULL;
+
+	/* checks args */
+	if ((args != NULL) && (!PyArg_ParseTuple(args, "")))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method oidstatus() takes no parameters.");
+		return NULL;
+	}
+
+	/* retrieves oid status */
+	if ((oid = PQoidValue(self->last_result)) == InvalidOid)
+	{
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+
+	return PyInt_FromLong(oid);
+}
+
+/* fetches rows from last result */
+static char pgsource_fetch__doc__[] =
+"fetch(num) -- return the next num rows from the last result in a list. "
+"If num parameter is omitted arraysize attribute value is used. "
+"If size equals -1, all rows are fetched.";
+
+static PyObject *
+pgsource_fetch(pgsourceobject * self, PyObject * args)
+{
+	PyObject   *rowtuple,
+			   *reslist,
+			   *str;
+	int			i,
+				j;
+	long		size;
+
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_RESULT | CHECK_DQL))
+		return NULL;
+
+	/* checks args */
+	size = self->arraysize;
+	if (!PyArg_ParseTuple(args, "|l", &size))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"fetch(num), with num (integer, optional).");
+		return NULL;
+	}
+
+	/* seeks last line */
+	/* limit size to be within the amount of data we actually have */
+	if (size == -1 || (self->max_row - self->current_row) < size)
+		size = self->max_row - self->current_row;
+
+	/* allocate list for result */
+	if ((reslist = PyList_New(0)) == NULL)
+		return NULL;
+
+	/* builds result */
+	for (i = 0; i < size; ++i)
+	{
+		if ((rowtuple = PyTuple_New(self->num_fields)) == NULL)
+		{
+			Py_DECREF(reslist);
+			return NULL;
+		}
+
+		for (j = 0; j < self->num_fields; j++)
+		{
+			if (PQgetisnull(self->last_result, self->current_row, j))
+			{
+				Py_INCREF(Py_None);
+				str = Py_None;
+			}
+			else
+				str = PyString_FromString(PQgetvalue(self->last_result, self->current_row, j));
+
+			PyTuple_SET_ITEM(rowtuple, j, str);
+		}
+
+		PyList_Append(reslist, rowtuple);
+		Py_DECREF(rowtuple);
+		self->current_row++;
+	}
+
+	return reslist;
+}
+
+/* changes current row (internal wrapper for all "move" methods) */
+static PyObject *
+pgsource_move(pgsourceobject * self, PyObject * args, int move)
+{
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_RESULT | CHECK_DQL))
+		return NULL;
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		char		errbuf[256];
+		PyOS_snprintf(errbuf, sizeof(errbuf),
+			"method %s() takes no parameter.", __movename[move]);
+		PyErr_SetString(PyExc_TypeError, errbuf);
+		return NULL;
+	}
+
+	/* changes the current row */
+	switch (move)
+	{
+		case QUERY_MOVEFIRST:
+			self->current_row = 0;
+			break;
+		case QUERY_MOVELAST:
+			self->current_row = self->max_row - 1;
+			break;
+		case QUERY_MOVENEXT:
+			if (self->current_row != self->max_row)
+				self->current_row++;
+			break;
+		case QUERY_MOVEPREV:
+			if (self->current_row > 0)
+				self->current_row--;
+			break;
+	}
+
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* move to first result row */
+static char pgsource_movefirst__doc__[] =
+"movefirst() -- move to first result row.";
+
+static PyObject *
+pgsource_movefirst(pgsourceobject * self, PyObject * args)
+{
+	return pgsource_move(self, args, QUERY_MOVEFIRST);
+}
+
+/* move to last result row */
+static char pgsource_movelast__doc__[] =
+"movelast() -- move to last valid result row.";
+
+static PyObject *
+pgsource_movelast(pgsourceobject * self, PyObject * args)
+{
+	return pgsource_move(self, args, QUERY_MOVELAST);
+}
+
+/* move to next result row */
+static char pgsource_movenext__doc__[] =
+"movenext() -- move to next result row.";
+
+static PyObject *
+pgsource_movenext(pgsourceobject * self, PyObject * args)
+{
+	return pgsource_move(self, args, QUERY_MOVENEXT);
+}
+
+/* move to previous result row */
+static char pgsource_moveprev__doc__[] =
+"moveprev() -- move to previous result row.";
+
+static PyObject *
+pgsource_moveprev(pgsourceobject * self, PyObject * args)
+{
+	return pgsource_move(self, args, QUERY_MOVEPREV);
+}
+
+/* finds field number from string/integer (internal use only) */
+static int
+pgsource_fieldindex(pgsourceobject * self, PyObject * param, const char *usage)
+{
+	int			num;
+
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_RESULT | CHECK_DQL))
+		return -1;
+
+	/* gets field number */
+	if (PyString_Check(param))
+		num = PQfnumber(self->last_result, PyString_AsString(param));
+	else if (PyInt_Check(param))
+		num = PyInt_AsLong(param);
+	else
+	{
+		PyErr_SetString(PyExc_TypeError, usage);
+		return -1;
+	}
+
+	/* checks field validity */
+	if (num < 0 || num >= self->num_fields)
+	{
+		PyErr_SetString(PyExc_ValueError, "Unknown field.");
+		return -1;
+	}
+
+	return num;
+}
+
+/* builds field information from position (internal use only) */
+static PyObject *
+pgsource_buildinfo(pgsourceobject * self, int num)
+{
+	PyObject *result;
+
+	/* allocates tuple */
+	result = PyTuple_New(3);
+	if (!result)
+		return NULL;
+
+	/* affects field information */
+	PyTuple_SET_ITEM(result, 0, PyInt_FromLong(num));
+	PyTuple_SET_ITEM(result, 1,
+		PyString_FromString(PQfname(self->last_result, num)));
+	PyTuple_SET_ITEM(result, 2,
+		PyInt_FromLong(PQftype(self->last_result, num)));
+
+	return result;
+}
+
+/* lists fields info */
+static char pgsource_listinfo__doc__[] =
+"listinfo() -- return information for all fields "
+"(position, name, type oid).";
+
+static PyObject *
+pgsource_listinfo(pgsourceobject * self, PyObject * args)
+{
+	int			i;
+	PyObject   *result,
+			   *info;
+
+	/* checks validity */
+	if (!check_source_obj(self, CHECK_RESULT | CHECK_DQL))
+		return NULL;
+
+	/* gets args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method listinfo() takes no parameter.");
+		return NULL;
+	}
+
+	/* builds result */
+	if ((result = PyTuple_New(self->num_fields)) == NULL)
+		return NULL;
+
+	for (i = 0; i < self->num_fields; i++)
+	{
+		info = pgsource_buildinfo(self, i);
+		if (!info)
+		{
+			Py_DECREF(result);
+			return NULL;
+		}
+		PyTuple_SET_ITEM(result, i, info);
+	}
+
+	/* returns result */
+	return result;
+};
+
+/* list fields information for last result */
+static char pgsource_fieldinfo__doc__[] =
+"fieldinfo(string|integer) -- return specified field information "
+"(position, name, type oid).";
+
+static PyObject *
+pgsource_fieldinfo(pgsourceobject * self, PyObject * args)
+{
+	static const char short_usage[] =
+	"fieldinfo(desc), with desc (string|integer).";
+	int			num;
+	PyObject   *param;
+
+	/* gets args */
+	if (!PyArg_ParseTuple(args, "O", &param))
+	{
+		PyErr_SetString(PyExc_TypeError, short_usage);
+		return NULL;
+	}
+
+	/* checks args and validity */
+	if ((num = pgsource_fieldindex(self, param, short_usage)) == -1)
+		return NULL;
+
+	/* returns result */
+	return pgsource_buildinfo(self, num);
+};
+
+/* retrieve field value */
+static char pgsource_field__doc__[] =
+"field(string|integer) -- return specified field value.";
+
+static PyObject *
+pgsource_field(pgsourceobject * self, PyObject * args)
+{
+	static const char short_usage[] =
+	"field(desc), with desc (string|integer).";
+	int			num;
+	PyObject   *param;
+
+	/* gets args */
+	if (!PyArg_ParseTuple(args, "O", &param))
+	{
+		PyErr_SetString(PyExc_TypeError, short_usage);
+		return NULL;
+	}
+
+	/* checks args and validity */
+	if ((num = pgsource_fieldindex(self, param, short_usage)) == -1)
+		return NULL;
+
+	return PyString_FromString(PQgetvalue(self->last_result,
+									self->current_row, num));
+}
+
+/* query object methods */
+static PyMethodDef pgsource_methods[] = {
+	{"close", (PyCFunction) pgsource_close, METH_VARARGS,
+			pgsource_close__doc__},
+	{"execute", (PyCFunction) pgsource_execute, METH_VARARGS,
+			pgsource_execute__doc__},
+	{"oidstatus", (PyCFunction) pgsource_oidstatus, METH_VARARGS,
+			pgsource_oidstatus__doc__},
+	{"fetch", (PyCFunction) pgsource_fetch, METH_VARARGS,
+			pgsource_fetch__doc__},
+	{"movefirst", (PyCFunction) pgsource_movefirst, METH_VARARGS,
+			pgsource_movefirst__doc__},
+	{"movelast", (PyCFunction) pgsource_movelast, METH_VARARGS,
+			pgsource_movelast__doc__},
+	{"movenext", (PyCFunction) pgsource_movenext, METH_VARARGS,
+			pgsource_movenext__doc__},
+	{"moveprev", (PyCFunction) pgsource_moveprev, METH_VARARGS,
+			pgsource_moveprev__doc__},
+	{"field", (PyCFunction) pgsource_field, METH_VARARGS,
+			pgsource_field__doc__},
+	{"fieldinfo", (PyCFunction) pgsource_fieldinfo, METH_VARARGS,
+			pgsource_fieldinfo__doc__},
+	{"listinfo", (PyCFunction) pgsource_listinfo, METH_VARARGS,
+			pgsource_listinfo__doc__},
+	{NULL, NULL}
+};
+
+/* gets query object attributes */
+static PyObject *
+pgsource_getattr(pgsourceobject * self, char *name)
+{
+	/* pg connection object */
+	if (!strcmp(name, "pgcnx"))
+	{
+		if (check_source_obj(self, 0))
+		{
+			Py_INCREF(self->pgcnx);
+			return (PyObject *) (self->pgcnx);
+		}
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+
+	/* arraysize */
+	if (!strcmp(name, "arraysize"))
+		return PyInt_FromLong(self->arraysize);
+
+	/* resulttype */
+	if (!strcmp(name, "resulttype"))
+		return PyInt_FromLong(self->result_type);
+
+	/* ntuples */
+	if (!strcmp(name, "ntuples"))
+		return PyInt_FromLong(self->max_row);
+
+	/* nfields */
+	if (!strcmp(name, "nfields"))
+		return PyInt_FromLong(self->num_fields);
+
+	/* attributes list */
+	if (!strcmp(name, "__members__"))
+	{
+		PyObject *list = PyList_New(5);
+
+		PyList_SET_ITEM(list, 0, PyString_FromString("pgcnx"));
+		PyList_SET_ITEM(list, 1, PyString_FromString("arraysize"));
+		PyList_SET_ITEM(list, 2, PyString_FromString("resulttype"));
+		PyList_SET_ITEM(list, 3, PyString_FromString("ntuples"));
+		PyList_SET_ITEM(list, 4, PyString_FromString("nfields"));
+
+		return list;
+	}
+
+	/* module name */
+	if (!strcmp(name, "__module__"))
+		return PyString_FromString(MODULE_NAME);
+
+	/* class name */
+	if (!strcmp(name, "__class__"))
+		return PyString_FromString("pgsource");
+
+	/* seeks name in methods (fallback) */
+	return Py_FindMethod(pgsource_methods, (PyObject *) self, name);
+}
+
+/* sets query object attributes */
+static int
+pgsource_setattr(pgsourceobject * self, char *name, PyObject * v)
+{
+	/* arraysize */
+	if (!strcmp(name, "arraysize"))
+	{
+		if (!PyInt_Check(v))
+		{
+			PyErr_SetString(PyExc_TypeError, "arraysize must be integer.");
+			return -1;
+		}
+
+		self->arraysize = PyInt_AsLong(v);
+		return 0;
+	}
+
+	/* unknown attribute */
+	PyErr_SetString(PyExc_TypeError, "not a writable attribute.");
+	return -1;
+}
+
+/* prints query object in human readable format */
+
+static int
+pgsource_print(pgsourceobject * self, FILE *fp, int flags)
+{
+	switch (self->result_type)
+	{
+		case RESULT_DQL:
+			print_result(fp, self->last_result);
+			break;
+		case RESULT_DDL:
+		case RESULT_DML:
+			fputs(PQcmdStatus(self->last_result), fp);
+			break;
+		case RESULT_EMPTY:
+		default:
+			fputs("Empty PostgreSQL source object.", fp);
+			break;
+	}
+
+	return 0;
+}
+
+/* query type definition */
+staticforward PyTypeObject PgSourceType = {
+	PyObject_HEAD_INIT(NULL)
+
+	0,							/* ob_size */
+	"pgsourceobject",			/* tp_name */
+	sizeof(pgsourceobject),		/* tp_basicsize */
+	0,							/* tp_itemsize */
+	/* methods */
+	(destructor) pgsource_dealloc,		/* tp_dealloc */
+	(printfunc) pgsource_print, /* tp_print */
+	(getattrfunc) pgsource_getattr,		/* tp_getattr */
+	(setattrfunc) pgsource_setattr,		/* tp_setattr */
+	0,							/* tp_compare */
+	0,							/* tp_repr */
+	0,							/* tp_as_number */
+	0,							/* tp_as_sequence */
+	0,							/* tp_as_mapping */
+	0,							/* tp_hash */
+};
+
+/* --------------------------------------------------------------------- */
+/* PG "LARGE" OBJECT IMPLEMENTATION */
+
+#ifdef LARGE_OBJECTS
+
+/* constructor (internal use only) */
+static pglargeobject *
+pglarge_new(pgobject * pgcnx, Oid oid)
+{
+	pglargeobject *npglo;
+
+	if ((npglo = PyObject_NEW(pglargeobject, &PglargeType)) == NULL)
+		return NULL;
+
+	Py_XINCREF(pgcnx);
+	npglo->pgcnx = pgcnx;
+	npglo->lo_fd = -1;
+	npglo->lo_oid = oid;
+
+	return npglo;
+}
+
+/* destructor */
+static void
+pglarge_dealloc(pglargeobject * self)
+{
+	if (self->lo_fd >= 0 && check_cnx_obj(self->pgcnx))
+		lo_close(self->pgcnx->cnx, self->lo_fd);
+
+	Py_XDECREF(self->pgcnx);
+	PyObject_Del(self);
+}
+
+/* opens large object */
+static char pglarge_open__doc__[] =
+"open(mode) -- open access to large object with specified mode "
+"(INV_READ, INV_WRITE constants defined by module).";
+
+static PyObject *
+pglarge_open(pglargeobject * self, PyObject * args)
+{
+	int			mode,
+				fd;
+
+	/* check validity */
+	if (!check_lo_obj(self, CHECK_CLOSE))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "i", &mode))
+	{
+		PyErr_SetString(PyExc_TypeError, "open(mode), with mode(integer).");
+		return NULL;
+	}
+
+	/* opens large object */
+	if ((fd = lo_open(self->pgcnx->cnx, self->lo_oid, mode)) < 0)
+	{
+		PyErr_SetString(PyExc_IOError, "can't open large object.");
+		return NULL;
+	}
+	self->lo_fd = fd;
+
+	/* no error : returns Py_None */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* close large object */
+static char pglarge_close__doc__[] =
+"close() -- close access to large object data.";
+
+static PyObject *
+pglarge_close(pglargeobject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method close() takes no parameters.");
+		return NULL;
+	}
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* closes large object */
+	if (lo_close(self->pgcnx->cnx, self->lo_fd))
+	{
+		PyErr_SetString(PyExc_IOError, "error while closing large object fd.");
+		return NULL;
+	}
+	self->lo_fd = -1;
+
+	/* no error : returns Py_None */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* reads from large object */
+static char pglarge_read__doc__[] =
+"read(integer) -- read from large object to sized string. "
+"Object must be opened in read mode before calling this method.";
+
+static PyObject *
+pglarge_read(pglargeobject * self, PyObject * args)
+{
+	int			size;
+	PyObject   *buffer;
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "i", &size))
+	{
+		PyErr_SetString(PyExc_TypeError, "read(size), wih size (integer).");
+		return NULL;
+	}
+
+	if (size <= 0)
+	{
+		PyErr_SetString(PyExc_ValueError, "size must be positive.");
+		return NULL;
+	}
+
+	/* allocate buffer and runs read */
+	buffer = PyString_FromStringAndSize((char *) NULL, size);
+
+	if ((size = lo_read(self->pgcnx->cnx, self->lo_fd, BUF(buffer), size)) < 0)
+	{
+		PyErr_SetString(PyExc_IOError, "error while reading.");
+		Py_XDECREF(buffer);
+		return NULL;
+	}
+
+	/* resize buffer and returns it */
+	_PyString_Resize(&buffer, size);
+	return buffer;
+}
+
+/* write to large object */
+static char pglarge_write__doc__[] =
+"write(string) -- write sized string to large object. "
+"Object must be opened in read mode before calling this method.";
+
+static PyObject *
+pglarge_write(pglargeobject * self, PyObject * args)
+{
+	char	   *buffer;
+	int			size,
+				bufsize;
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "s#", &buffer, &bufsize))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"write(buffer), with buffer (sized string).");
+		return NULL;
+	}
+
+	/* sends query */
+	if ((size = lo_write(self->pgcnx->cnx, self->lo_fd, buffer,
+						 bufsize)) < bufsize)
+	{
+		PyErr_SetString(PyExc_IOError, "buffer truncated during write.");
+		return NULL;
+	}
+
+	/* no error : returns Py_None */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* go to position in large object */
+static char pglarge_seek__doc__[] =
+"seek(off, whence) -- move to specified position. Object must be opened "
+"before calling this method. whence can be SEEK_SET, SEEK_CUR or SEEK_END, "
+"constants defined by module.";
+
+static PyObject *
+pglarge_lseek(pglargeobject * self, PyObject * args)
+{
+	/* offset and whence are initialized to keep compiler happy */
+	int			ret,
+				offset = 0,
+				whence = 0;
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "ii", &offset, &whence))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"lseek(offset, whence), with offset and whence (integers).");
+		return NULL;
+	}
+
+	/* sends query */
+	if ((ret = lo_lseek(self->pgcnx->cnx, self->lo_fd, offset, whence)) == -1)
+	{
+		PyErr_SetString(PyExc_IOError, "error while moving cursor.");
+		return NULL;
+	}
+
+	/* returns position */
+	return PyInt_FromLong(ret);
+}
+
+/* gets large object size */
+static char pglarge_size__doc__[] =
+"size() -- return large object size. "
+"Object must be opened before calling this method.";
+
+static PyObject *
+pglarge_size(pglargeobject * self, PyObject * args)
+{
+	int			start,
+				end;
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method size() takes no parameters.");
+		return NULL;
+	}
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* gets current position */
+	if ((start = lo_tell(self->pgcnx->cnx, self->lo_fd)) == -1)
+	{
+		PyErr_SetString(PyExc_IOError, "error while getting current position.");
+		return NULL;
+	}
+
+	/* gets end position */
+	if ((end = lo_lseek(self->pgcnx->cnx, self->lo_fd, 0, SEEK_END)) == -1)
+	{
+		PyErr_SetString(PyExc_IOError, "error while getting end position.");
+		return NULL;
+	}
+
+	/* move back to start position */
+	if ((start = lo_lseek(self->pgcnx->cnx, self->lo_fd, start, SEEK_SET)) == -1)
+	{
+		PyErr_SetString(PyExc_IOError,
+			"error while moving back to first position.");
+		return NULL;
+	}
+
+	/* returns size */
+	return PyInt_FromLong(end);
+}
+
+/* gets large object cursor position */
+static char pglarge_tell__doc__[] =
+"tell() -- give current position in large object. "
+"Object must be opened before calling this method.";
+
+static PyObject *
+pglarge_tell(pglargeobject * self, PyObject * args)
+{
+	int			start;
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method tell() takes no parameters.");
+		return NULL;
+	}
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_OPEN))
+		return NULL;
+
+	/* gets current position */
+	if ((start = lo_tell(self->pgcnx->cnx, self->lo_fd)) == -1)
+	{
+		PyErr_SetString(PyExc_IOError, "error while getting position.");
+		return NULL;
+	}
+
+	/* returns size */
+	return PyInt_FromLong(start);
+}
+
+/* exports large object as unix file */
+static char pglarge_export__doc__[] =
+"export(string) -- export large object data to specified file. "
+"Object must be closed when calling this method.";
+
+static PyObject *
+pglarge_export(pglargeobject * self, PyObject * args)
+{
+	char *name;
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_CLOSE))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "s", &name))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"export(filename), with filename (string).");
+		return NULL;
+	}
+
+	/* runs command */
+	if (!lo_export(self->pgcnx->cnx, self->lo_oid, name))
+	{
+		PyErr_SetString(PyExc_IOError, "error while exporting large object.");
+		return NULL;
+	}
+
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* deletes a large object */
+static char pglarge_unlink__doc__[] =
+"unlink() -- destroy large object. "
+"Object must be closed when calling this method.";
+
+static PyObject *
+pglarge_unlink(pglargeobject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method unlink() takes no parameters.");
+		return NULL;
+	}
+
+	/* checks validity */
+	if (!check_lo_obj(self, CHECK_CLOSE))
+		return NULL;
+
+	/* deletes the object, invalidate it on success */
+	if (!lo_unlink(self->pgcnx->cnx, self->lo_oid))
+	{
+		PyErr_SetString(PyExc_IOError, "error while unlinking large object");
+		return NULL;
+	}
+	self->lo_oid = 0;
+
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* large object methods */
+static struct PyMethodDef pglarge_methods[] = {
+	{"open", (PyCFunction) pglarge_open, METH_VARARGS, pglarge_open__doc__},
+	{"close", (PyCFunction) pglarge_close, METH_VARARGS, pglarge_close__doc__},
+	{"read", (PyCFunction) pglarge_read, METH_VARARGS, pglarge_read__doc__},
+	{"write", (PyCFunction) pglarge_write, METH_VARARGS, pglarge_write__doc__},
+	{"seek", (PyCFunction) pglarge_lseek, METH_VARARGS, pglarge_seek__doc__},
+	{"size", (PyCFunction) pglarge_size, METH_VARARGS, pglarge_size__doc__},
+	{"tell", (PyCFunction) pglarge_tell, METH_VARARGS, pglarge_tell__doc__},
+	{"export",(PyCFunction) pglarge_export,METH_VARARGS,pglarge_export__doc__},
+	{"unlink",(PyCFunction) pglarge_unlink,METH_VARARGS,pglarge_unlink__doc__},
+	{NULL, NULL}
+};
+
+/* get attribute */
+static PyObject *
+pglarge_getattr(pglargeobject * self, char *name)
+{
+	/* list postgreSQL large object fields */
+
+	/* associated pg connection object */
+	if (!strcmp(name, "pgcnx"))
+	{
+		if (check_lo_obj(self, 0))
+		{
+			Py_INCREF(self->pgcnx);
+			return (PyObject *) (self->pgcnx);
+		}
+
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+
+	/* large object oid */
+	if (!strcmp(name, "oid"))
+	{
+		if (check_lo_obj(self, 0))
+			return PyInt_FromLong(self->lo_oid);
+
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+
+	/* error (status) message */
+	if (!strcmp(name, "error"))
+		return PyString_FromString(PQerrorMessage(self->pgcnx->cnx));
+
+	/* attributes list */
+	if (!strcmp(name, "__members__"))
+	{
+		PyObject *list = PyList_New(3);
+
+		if (list)
+		{
+			PyList_SET_ITEM(list, 0, PyString_FromString("oid"));
+			PyList_SET_ITEM(list, 1, PyString_FromString("pgcnx"));
+			PyList_SET_ITEM(list, 2, PyString_FromString("error"));
+		}
+
+		return list;
+	}
+
+	/* module name */
+	if (!strcmp(name, "__module__"))
+		return PyString_FromString(MODULE_NAME);
+
+	/* class name */
+	if (!strcmp(name, "__class__"))
+		return PyString_FromString("pglarge");
+
+	/* seeks name in methods (fallback) */
+	return Py_FindMethod(pglarge_methods, (PyObject *) self, name);
+}
+
+/* prints query object in human readable format */
+static int
+pglarge_print(pglargeobject * self, FILE *fp, int flags)
+{
+	char		print_buffer[128];
+	PyOS_snprintf(print_buffer, sizeof(print_buffer),
+		self->lo_fd >= 0 ?
+			"Opened large object, oid %ld" :
+			"Closed large object, oid %ld", (long) self->lo_oid);
+	fputs(print_buffer, fp);
+	return 0;
+}
+
+/* object type definition */
+staticforward PyTypeObject PglargeType = {
+	PyObject_HEAD_INIT(NULL)
+	0,							/* ob_size */
+	"pglarge",					/* tp_name */
+	sizeof(pglargeobject),		/* tp_basicsize */
+	0,							/* tp_itemsize */
+
+	/* methods */
+	(destructor) pglarge_dealloc,		/* tp_dealloc */
+	(printfunc) pglarge_print,	/* tp_print */
+	(getattrfunc) pglarge_getattr,		/* tp_getattr */
+	0,							/* tp_setattr */
+	0,							/* tp_compare */
+	0,							/* tp_repr */
+	0,							/* tp_as_number */
+	0,							/* tp_as_sequence */
+	0,							/* tp_as_mapping */
+	0,							/* tp_hash */
+};
+#endif /* LARGE_OBJECTS */
+
+
+/* --------------------------------------------------------------------- */
+/* PG QUERY OBJECT IMPLEMENTATION */
+
+/* connects to a database */
+static char connect__doc__[] =
+"connect(dbname, host, port, opt, tty) -- connect to a PostgreSQL database "
+"using specified parameters (optionals, keywords aware).";
+
+static PyObject *
+pgconnect(pgobject * self, PyObject * args, PyObject * dict)
+{
+	static const char *kwlist[] = {"dbname", "host", "port", "opt",
+	"tty", "user", "passwd", NULL};
+
+	char	   *pghost,
+			   *pgopt,
+			   *pgtty,
+			   *pgdbname,
+			   *pguser,
+			   *pgpasswd;
+	int			pgport;
+	char		port_buffer[20];
+	pgobject   *npgobj;
+
+	pghost = pgopt = pgtty = pgdbname = pguser = pgpasswd = NULL;
+	pgport = -1;
+
+	/*
+	 * parses standard arguments With the right compiler warnings, this
+	 * will issue a diagnostic. There is really no way around it.  If I
+	 * don't declare kwlist as const char *kwlist[] then it complains when
+	 * I try to assign all those constant strings to it.
+	 */
+	if (!PyArg_ParseTupleAndKeywords(args, dict, "|zzizzzz", (char **) kwlist,
+		&pgdbname, &pghost, &pgport, &pgopt, &pgtty, &pguser, &pgpasswd))
+		return NULL;
+
+#ifdef DEFAULT_VARS
+	/* handles defaults variables (for uninitialised vars) */
+	if ((!pghost) && (pg_default_host != Py_None))
+		pghost = PyString_AsString(pg_default_host);
+
+	if ((pgport == -1) && (pg_default_port != Py_None))
+		pgport = PyInt_AsLong(pg_default_port);
+
+	if ((!pgopt) && (pg_default_opt != Py_None))
+		pgopt = PyString_AsString(pg_default_opt);
+
+	if ((!pgtty) && (pg_default_tty != Py_None))
+		pgtty = PyString_AsString(pg_default_tty);
+
+	if ((!pgdbname) && (pg_default_base != Py_None))
+		pgdbname = PyString_AsString(pg_default_base);
+
+	if ((!pguser) && (pg_default_user != Py_None))
+		pguser = PyString_AsString(pg_default_user);
+
+	if ((!pgpasswd) && (pg_default_passwd != Py_None))
+		pgpasswd = PyString_AsString(pg_default_passwd);
+#endif /* DEFAULT_VARS */
+
+	if ((npgobj = (pgobject *) pgobject_New()) == NULL)
+		return NULL;
+
+	if (pgport != -1)
+	{
+		memset(port_buffer, 0, sizeof(port_buffer));
+		sprintf(port_buffer, "%d", pgport);
+	}
+
+#ifdef PQsetdbLoginIsThreadSafe
+	Py_BEGIN_ALLOW_THREADS
+#endif
+	npgobj->cnx = PQsetdbLogin(pghost, pgport == -1 ? NULL : port_buffer,
+		pgopt, pgtty, pgdbname, pguser, pgpasswd);
+#ifdef PQsetdbLoginIsThreadSafe
+	Py_END_ALLOW_THREADS
+#endif
+
+	if (PQstatus(npgobj->cnx) == CONNECTION_BAD)
+	{
+		PyErr_SetString(InternalError, PQerrorMessage(npgobj->cnx));
+		Py_XDECREF(npgobj);
+		return NULL;
+	}
+
+#ifdef HANDLE_NOTICES
+        PQsetNoticeProcessor(npgobj->cnx, notice_processor, npgobj);
+#endif /* HANDLE_NOTICES */
+
+	return (PyObject *) npgobj;
+}
+
+/* pgobject methods */
+
+/* destructor */
+static void
+pg_dealloc(pgobject * self)
+{
+#ifdef HANDLE_NOTICES
+        free(self->notices);
+#endif /* HANDLE_NOTICES */
+	if (self->cnx)
+	{
+		Py_BEGIN_ALLOW_THREADS
+		PQfinish(self->cnx);
+		Py_END_ALLOW_THREADS
+	}
+	PyObject_Del(self);
+}
+
+/* close without deleting */
+static char pg_close__doc__[] =
+"close() -- close connection. All instances of the connection object and "
+"derived objects (queries and large objects) can no longer be used after "
+"this call.";
+
+static PyObject *
+pg_close(pgobject * self, PyObject * args)
+{
+	/* gets args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError, "close().");
+		return NULL;
+	}
+
+	/* connection object cannot already be closed */
+	if (!self->cnx)
+	{
+		PyErr_SetString(InternalError, "Connection already closed");
+		return NULL;
+	}
+
+	Py_BEGIN_ALLOW_THREADS
+	PQfinish(self->cnx);
+	Py_END_ALLOW_THREADS
+
+	self->cnx = NULL;
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+static void
+pgquery_dealloc(pgqueryobject * self)
+{
+	if (self->last_result)
+		PQclear(self->last_result);
+
+	PyObject_Del(self);
+}
+
+/* resets connection */
+static char pg_reset__doc__[] =
+"reset() -- reset connection with current parameters. All derived queries "
+"and large objects derived from this connection will not be usable after "
+"this call.";
+
+static PyObject *
+pg_reset(pgobject * self, PyObject * args)
+{
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method reset() takes no parameters.");
+		return NULL;
+	}
+
+	/* resets the connection */
+	PQreset(self->cnx);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* cancels current command */
+static char pg_cancel__doc__[] =
+"cancel() -- abandon processing of the current command.";
+
+static PyObject *
+pg_cancel(pgobject * self, PyObject * args)
+{
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method cancel() takes no parameters.");
+		return NULL;
+	}
+
+	/* request that the server abandon processing of the current command */
+	return PyInt_FromLong((long) PQrequestCancel(self->cnx));
+}
+
+/* get connection socket */
+static char pg_fileno__doc__[] =
+"fileno() -- return database connection socket file handle.";
+
+static PyObject *
+pg_fileno(pgobject * self, PyObject * args)
+{
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method fileno() takes no parameters.");
+		return NULL;
+	}
+
+#ifdef NO_PQSOCKET
+	return PyInt_FromLong((long) self->cnx->sock);
+#else
+	return PyInt_FromLong((long) PQsocket(self->cnx));
+#endif
+}
+
+/* get number of rows */
+static char pgquery_ntuples__doc__[] =
+"ntuples() -- returns number of tuples returned by query.";
+
+static PyObject *
+pgquery_ntuples(pgqueryobject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method ntuples() takes no parameters.");
+		return NULL;
+	}
+
+	return PyInt_FromLong((long) PQntuples(self->last_result));
+}
+
+/* list fields names from query result */
+static char pgquery_listfields__doc__[] =
+"listfields() -- Lists field names from result.";
+
+static PyObject *
+pgquery_listfields(pgqueryobject * self, PyObject * args)
+{
+	int			i,
+				n;
+	char	   *name;
+	PyObject   *fieldstuple,
+			   *str;
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method listfields() takes no parameters.");
+		return NULL;
+	}
+
+	/* builds tuple */
+	n = PQnfields(self->last_result);
+	fieldstuple = PyTuple_New(n);
+
+	for (i = 0; i < n; i++)
+	{
+		name = PQfname(self->last_result, i);
+		str = PyString_FromString(name);
+		PyTuple_SET_ITEM(fieldstuple, i, str);
+	}
+
+	return fieldstuple;
+}
+
+/* get field name from last result */
+static char pgquery_fieldname__doc__[] =
+"fieldname() -- returns name of field from result from its position.";
+
+static PyObject *
+pgquery_fieldname(pgqueryobject * self, PyObject * args)
+{
+	int		i;
+	char   *name;
+
+	/* gets args */
+	if (!PyArg_ParseTuple(args, "i", &i))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"fieldname(number), with number(integer).");
+		return NULL;
+	}
+
+	/* checks number validity */
+	if (i >= PQnfields(self->last_result))
+	{
+		PyErr_SetString(PyExc_ValueError, "invalid field number.");
+		return NULL;
+	}
+
+	/* gets fields name and builds object */
+	name = PQfname(self->last_result, i);
+	return PyString_FromString(name);
+}
+
+/* gets fields number from name in last result */
+static char pgquery_fieldnum__doc__[] =
+"fieldnum() -- returns position in query for field from its name.";
+
+static PyObject *
+pgquery_fieldnum(pgqueryobject * self, PyObject * args)
+{
+	int		num;
+	char   *name;
+
+	/* gets args */
+	if (!PyArg_ParseTuple(args, "s", &name))
+	{
+		PyErr_SetString(PyExc_TypeError, "fieldnum(name), with name (string).");
+		return NULL;
+	}
+
+	/* gets field number */
+	if ((num = PQfnumber(self->last_result, name)) == -1)
+	{
+		PyErr_SetString(PyExc_ValueError, "Unknown field.");
+		return NULL;
+	}
+
+	return PyInt_FromLong(num);
+}
+
+/* retrieves last result */
+static char pgquery_getresult__doc__[] =
+"getresult() -- Gets the result of a query.  The result is returned "
+"as a list of rows, each one a list of fields in the order returned "
+"by the server.";
+
+static PyObject *
+pgquery_getresult(pgqueryobject * self, PyObject * args)
+{
+	PyObject   *rowtuple,
+			   *reslist,
+			   *val;
+	int			i,
+				j,
+				m,
+				n,
+			   *typ;
+
+	/* checks args (args == NULL for an internal call) */
+	if ((args != NULL) && (!PyArg_ParseTuple(args, "")))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method getresult() takes no parameters.");
+		return NULL;
+	}
+
+	/* stores result in tuple */
+	m = PQntuples(self->last_result);
+	n = PQnfields(self->last_result);
+	reslist = PyList_New(m);
+
+	typ = get_type_array(self->last_result, n);
+
+	for (i = 0; i < m; i++)
+	{
+		if ((rowtuple = PyTuple_New(n)) == NULL)
+		{
+			Py_DECREF(reslist);
+			reslist = NULL;
+			goto exit;
+		}
+
+		for (j = 0; j < n; j++)
+		{
+			int			k;
+			char	   *s = PQgetvalue(self->last_result, i, j);
+			char		cashbuf[64];
+			PyObject   *tmp_obj;
+
+			if (PQgetisnull(self->last_result, i, j))
+			{
+				Py_INCREF(Py_None);
+				val = Py_None;
+			}
+			else
+				switch (typ[j])
+				{
+					case 1:
+						val = PyInt_FromString(s, NULL, 10);
+						break;
+
+					case 2:
+						val = PyLong_FromString(s, NULL, 10);
+						break;
+
+					case 3:
+						tmp_obj = PyString_FromString(s);
+						val = PyFloat_FromString(tmp_obj, NULL);
+						Py_DECREF(tmp_obj);
+						break;
+
+					case 5:
+						for (k = 0;
+							 *s && k < sizeof(cashbuf) / sizeof(cashbuf[0]) - 1;
+							 s++)
+						{
+							if (isdigit(*s) || *s == '.')
+								cashbuf[k++] = *s;
+							else if (*s == '(' || *s == '-')
+								cashbuf[k++] = '-';
+						}
+						cashbuf[k] = 0;
+						s = cashbuf;
+
+					case 4:
+						if (decimal)
+						{
+							tmp_obj = Py_BuildValue("(s)", s);
+							val = PyEval_CallObject(decimal, tmp_obj);
+						}
+						else
+						{
+							tmp_obj = PyString_FromString(s);
+							val = PyFloat_FromString(tmp_obj, NULL);
+						}
+						Py_DECREF(tmp_obj);
+						break;
+
+					default:
+						val = PyString_FromString(s);
+						break;
+				}
+
+			if (val == NULL)
+			{
+				Py_DECREF(reslist);
+				Py_DECREF(rowtuple);
+				reslist = NULL;
+				goto exit;
+			}
+
+			PyTuple_SET_ITEM(rowtuple, j, val);
+		}
+
+		PyList_SET_ITEM(reslist, i, rowtuple);
+	}
+
+exit:
+	free(typ);
+
+	/* returns list */
+	return reslist;
+}
+
+/* retrieves last result as a list of dictionaries*/
+static char pgquery_dictresult__doc__[] =
+"dictresult() -- Gets the result of a query.  The result is returned "
+"as a list of rows, each one a dictionary with the field names used "
+"as the labels.";
+
+static PyObject *
+pgquery_dictresult(pgqueryobject * self, PyObject * args)
+{
+	PyObject   *dict,
+			   *reslist,
+			   *val;
+	int			i,
+				j,
+				m,
+				n,
+			   *typ;
+
+	/* checks args (args == NULL for an internal call) */
+	if ((args != NULL) && (!PyArg_ParseTuple(args, "")))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method getresult() takes no parameters.");
+		return NULL;
+	}
+
+	/* stores result in list */
+	m = PQntuples(self->last_result);
+	n = PQnfields(self->last_result);
+	reslist = PyList_New(m);
+
+	typ = get_type_array(self->last_result, n);
+
+	for (i = 0; i < m; i++)
+	{
+		if ((dict = PyDict_New()) == NULL)
+		{
+			Py_DECREF(reslist);
+			reslist = NULL;
+			goto exit;
+		}
+
+		for (j = 0; j < n; j++)
+		{
+			int			k;
+			char	   *s = PQgetvalue(self->last_result, i, j);
+			char		cashbuf[64];
+			PyObject   *tmp_obj;
+
+			if (PQgetisnull(self->last_result, i, j))
+			{
+				Py_INCREF(Py_None);
+				val = Py_None;
+			}
+			else
+				switch (typ[j])
+				{
+					case 1:
+						val = PyInt_FromString(s, NULL, 10);
+						break;
+
+					case 2:
+						val = PyLong_FromString(s, NULL, 10);
+						break;
+
+					case 3:
+						tmp_obj = PyString_FromString(s);
+						val = PyFloat_FromString(tmp_obj, NULL);
+						Py_DECREF(tmp_obj);
+						break;
+
+					case 5:
+						for (k = 0;
+							 *s && k < sizeof(cashbuf) / sizeof(cashbuf[0]) - 1;
+							 s++)
+						{
+							if (isdigit(*s) || *s == '.')
+								cashbuf[k++] = *s;
+							else if (*s == '(' || *s == '-')
+								cashbuf[k++] = '-';
+						}
+						cashbuf[k] = 0;
+						s = cashbuf;
+
+					case 4:
+						if (decimal)
+						{
+							tmp_obj = Py_BuildValue("(s)", s);
+							val = PyEval_CallObject(decimal, tmp_obj);
+						}
+						else
+						{
+							tmp_obj = PyString_FromString(s);
+							val = PyFloat_FromString(tmp_obj, NULL);
+						}
+						Py_DECREF(tmp_obj);
+						break;
+
+					default:
+						val = PyString_FromString(s);
+						break;
+				}
+
+			if (val == NULL)
+			{
+				Py_DECREF(dict);
+				Py_DECREF(reslist);
+				reslist = NULL;
+				goto exit;
+			}
+
+			PyDict_SetItemString(dict, PQfname(self->last_result, j), val);
+			Py_DECREF(val);
+		}
+
+		PyList_SET_ITEM(reslist, i, dict);
+	}
+
+exit:
+	free(typ);
+
+	/* returns list */
+	return reslist;
+}
+
+/* gets asynchronous notify */
+static char pg_getnotify__doc__[] =
+"getnotify() -- get database notify for this connection.";
+
+static PyObject *
+pg_getnotify(pgobject * self, PyObject * args)
+{
+	PGnotify   *notify;
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method getnotify() takes no parameters.");
+		return NULL;
+	}
+
+	/* checks for NOTIFY messages */
+	PQconsumeInput(self->cnx);
+
+	if ((notify = PQnotifies(self->cnx)) == NULL)
+	{
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+	else
+	{
+		PyObject   *notify_result,
+				   *temp;
+
+		if ((notify_result = PyTuple_New(2)) == NULL ||
+			(temp = PyString_FromString(notify->relname)) == NULL)
+		{
+			return NULL;
+		}
+
+		PyTuple_SET_ITEM(notify_result, 0, temp);
+
+		if ((temp = PyInt_FromLong(notify->be_pid)) == NULL)
+		{
+			Py_DECREF(notify_result);
+			return NULL;
+		}
+
+		PyTuple_SET_ITEM(notify_result, 1, temp);
+		PQfreemem(notify);
+		return notify_result;
+	}
+}
+
+/* source creation */
+static char pg_source__doc__[] =
+"source() -- creates a new source object for this connection";
+
+static PyObject *
+pg_source(pgobject * self, PyObject * args)
+{
+	/* checks validity */
+	if (!check_cnx_obj(self))
+		return NULL;
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError, "method source() takes no parameter.");
+		return NULL;
+	}
+
+	/* allocate new pg query object */
+	return (PyObject *) pgsource_new(self);
+}
+
+/* database query */
+static char pg_query__doc__[] =
+"query(sql) -- creates a new query object for this connection,"
+" using sql (string) request.";
+
+static PyObject *
+pg_query(pgobject * self, PyObject * args)
+{
+	char	   *query;
+	PGresult   *result;
+	pgqueryobject *npgobj;
+	int			status;
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* get query args */
+	if (!PyArg_ParseTuple(args, "s", &query))
+	{
+		PyErr_SetString(PyExc_TypeError, "query(sql), with sql (string).");
+		return NULL;
+	}
+
+	/* frees previous result */
+	if (self->last_result)
+	{
+		PQclear(self->last_result);
+		self->last_result = NULL;
+	}
+
+	/* gets result */
+	Py_BEGIN_ALLOW_THREADS
+	result = PQexec(self->cnx, query);
+	Py_END_ALLOW_THREADS
+
+	/* checks result validity */
+	if (!result)
+	{
+		PyErr_SetString(PyExc_ValueError, PQerrorMessage(self->cnx));
+		return NULL;
+	}
+
+	/* checks result status */
+	if ((status = PQresultStatus(result)) != PGRES_TUPLES_OK)
+	{
+		switch (status)
+		{
+			case PGRES_EMPTY_QUERY:
+				PyErr_SetString(PyExc_ValueError, "empty query.");
+				break;
+			case PGRES_BAD_RESPONSE:
+			case PGRES_FATAL_ERROR:
+			case PGRES_NONFATAL_ERROR:
+				PyErr_SetString(ProgrammingError, PQerrorMessage(self->cnx));
+				break;
+			case PGRES_COMMAND_OK:
+				{						/* INSERT, UPDATE, DELETE */
+					Oid		oid = PQoidValue(result);
+					if (oid == InvalidOid)	/* not a single insert */
+					{
+						char	*ret = PQcmdTuples(result);
+
+						PQclear(result);
+						if (ret[0])		/* return number of rows affected */
+						{
+							return PyString_FromString(ret);
+						}
+						Py_INCREF(Py_None);
+						return Py_None;
+					}
+					/* for a single insert, return the oid */
+					PQclear(result);
+					return PyInt_FromLong(oid);
+				}
+			case PGRES_COPY_OUT:		/* no data will be received */
+			case PGRES_COPY_IN:
+				PQclear(result);
+				Py_INCREF(Py_None);
+				return Py_None;
+			default:
+				PyErr_SetString(InternalError, "internal error: "
+					"unknown result status.");
+				break;
+		}
+
+		PQclear(result);
+		return NULL;			/* error detected on query */
+	}
+
+	if ((npgobj = PyObject_NEW(pgqueryobject, &PgQueryType)) == NULL)
+		return NULL;
+
+	/* stores result and returns object */
+	npgobj->last_result = result;
+	return (PyObject *) npgobj;
+}
+
+#ifdef DIRECT_ACCESS
+static char pg_putline__doc__[] =
+"putline() -- sends a line directly to the backend";
+
+/* direct acces function : putline */
+static PyObject *
+pg_putline(pgobject * self, PyObject * args)
+{
+	char *line;
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* reads args */
+	if (!PyArg_ParseTuple(args, "s", &line))
+	{
+		PyErr_SetString(PyExc_TypeError, "putline(line), with line (string).");
+		return NULL;
+	}
+
+	/* sends line to backend */
+	if (PQputline(self->cnx, line))
+	{
+		PyErr_SetString(PyExc_IOError, PQerrorMessage(self->cnx));
+		return NULL;
+	}
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* direct access function : getline */
+static char pg_getline__doc__[] =
+"getline() -- gets a line directly from the backend.";
+
+static PyObject *
+pg_getline(pgobject * self, PyObject * args)
+{
+	char		line[MAX_BUFFER_SIZE];
+	PyObject   *str = NULL;		/* GCC */
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method getline() takes no parameters.");
+		return NULL;
+	}
+
+	/* gets line */
+	switch (PQgetline(self->cnx, line, MAX_BUFFER_SIZE))
+	{
+		case 0:
+			str = PyString_FromString(line);
+			break;
+		case 1:
+			PyErr_SetString(PyExc_MemoryError, "buffer overflow");
+			str = NULL;
+			break;
+		case EOF:
+			Py_INCREF(Py_None);
+			str = Py_None;
+			break;
+	}
+
+	return str;
+}
+
+/* direct access function : end copy */
+static char pg_endcopy__doc__[] =
+"endcopy() -- synchronizes client and server";
+
+static PyObject *
+pg_endcopy(pgobject * self, PyObject * args)
+{
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method endcopy() takes no parameters.");
+		return NULL;
+	}
+
+	/* ends direct copy */
+	if (PQendcopy(self->cnx))
+	{
+		PyErr_SetString(PyExc_IOError, PQerrorMessage(self->cnx));
+		return NULL;
+	}
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+#endif /* DIRECT_ACCESS */
+
+
+static PyObject *
+pgquery_print(pgqueryobject * self, FILE *fp, int flags)
+{
+	print_result(fp, self->last_result);
+	return 0;
+}
+
+static PyObject *
+pgquery_repr(pgqueryobject * self)
+{
+	return PyString_FromString("<pg query result>");
+}
+
+/* insert table */
+static char pg_inserttable__doc__[] =
+"inserttable(string, list) -- insert list in table. The fields in the "
+"list must be in the same order as in the table.";
+
+static PyObject *
+pg_inserttable(pgobject * self, PyObject * args)
+{
+	PGresult	*result;
+	char		*table,
+				*buffer,
+				*bufpt;
+	size_t		bufsiz;
+	PyObject	*list,
+				*sublist,
+				*item;
+	PyObject	*(*getitem) (PyObject *, Py_ssize_t);
+	PyObject	*(*getsubitem) (PyObject *, Py_ssize_t);
+	int			i,
+				j,
+				m,
+				n;
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "sO:filter", &table, &list))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"inserttable(table, content), with table (string) "
+			"and content (list).");
+		return NULL;
+	}
+
+	/* checks list type */
+	if (PyTuple_Check(list))
+	{
+		m = PyTuple_Size(list);
+		getitem = PyTuple_GetItem;
+	}
+	else if (PyList_Check(list))
+	{
+		m = PyList_Size(list);
+		getitem = PyList_GetItem;
+	}
+	else
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"second arg must be some kind of array.");
+		return NULL;
+	}
+
+	/* allocate buffer */
+	if (!(buffer = malloc(MAX_BUFFER_SIZE)))
+	{
+		PyErr_SetString(PyExc_MemoryError,
+			"can't allocate insert buffer.");
+		return NULL;
+	}
+
+	/* starts query */
+	sprintf(buffer, "copy %s from stdin", table);
+
+	Py_BEGIN_ALLOW_THREADS
+	result = PQexec(self->cnx, buffer);
+	Py_END_ALLOW_THREADS
+
+	if (!result)
+	{
+		free(buffer);
+		PyErr_SetString(PyExc_ValueError, PQerrorMessage(self->cnx));
+		return NULL;
+	}
+
+	PQclear(result);
+
+	n = 0; /* not strictly necessary but avoids warning */
+
+	/* feed table */
+	for (i = 0; i < m; i++)
+	{
+		sublist = getitem(list, i);
+		if (PyTuple_Check(sublist))
+		{
+			j = PyTuple_Size(sublist);
+			getsubitem = PyTuple_GetItem;
+		}
+		else if (PyList_Check(sublist))
+		{
+			j = PyList_Size(sublist);
+			getsubitem = PyList_GetItem;
+		}
+		else
+		{
+			PyErr_SetString(PyExc_TypeError,
+				"second arg must contain some kind of arrays.");
+			return NULL;
+		}
+		if (i)
+		{
+			if (j != n)
+			{
+				free(buffer);
+				PyErr_SetString(PyExc_TypeError,
+					"arrays contained in second arg must have same size.");
+				return NULL;
+			}
+		}
+		else
+		{
+			n = j; /* never used before this assignment */
+		}
+
+		/* builds insert line */
+		bufpt = buffer;
+		bufsiz = MAX_BUFFER_SIZE - 1;
+
+		for (j = 0; j < n; j++)
+		{
+			if (j)
+			{
+				*bufpt++ = '\t'; --bufsiz;
+			}
+
+			item = getsubitem(sublist, j);
+
+			/* convert item to string and append to buffer */
+			if (item == Py_None)
+			{
+				if (bufsiz > 2)
+				{
+					*bufpt++ = '\\'; *bufpt++ = 'N';
+					bufsiz -= 2;
+				}
+				else
+					bufsiz = 0;
+			}
+			else if (PyString_Check(item))
+			{
+				const char* t = PyString_AS_STRING(item);
+				while (*t && bufsiz)
+				{
+					if (*t == '\\' || *t == '\t' || *t == '\n')
+					{
+						*bufpt++ = '\\'; --bufsiz;
+						if (!bufsiz) break;
+					}
+					*bufpt++ = *t++; --bufsiz;
+				}
+			}
+			else if (PyInt_Check(item) || PyLong_Check(item))
+			{
+				PyObject* s = PyObject_Str(item);
+				const char* t = PyString_AsString(s);
+				while (*t && bufsiz)
+				{
+					*bufpt++ = *t++; --bufsiz;
+				}
+				Py_DECREF(s);
+			}
+			else
+			{
+				PyObject* s = PyObject_Repr(item);
+				const char* t = PyString_AsString(s);
+				while (*t && bufsiz)
+				{
+					if (*t == '\\' || *t == '\t' || *t == '\n')
+					{
+						*bufpt++ = '\\'; --bufsiz;
+						if (!bufsiz) break;
+					}
+					*bufpt++ = *t++; --bufsiz;
+				}
+				Py_DECREF(s);
+			}
+
+			if (bufsiz <= 0)
+			{
+				free(buffer);
+				PyErr_SetString(PyExc_MemoryError,
+					"insert buffer overflow.");
+				return NULL;
+			}
+
+		}
+
+		*bufpt++ = '\n'; *bufpt = '\0';
+
+		/* sends data */
+		if (PQputline(self->cnx, buffer))
+		{
+			PyErr_SetString(PyExc_IOError, PQerrorMessage(self->cnx));
+			PQendcopy(self->cnx);
+			free(buffer);
+			return NULL;
+		}
+	}
+
+	/* ends query */
+	if (PQputline(self->cnx, "\\.\n"))
+	{
+		PyErr_SetString(PyExc_IOError, PQerrorMessage(self->cnx));
+		PQendcopy(self->cnx);
+		free(buffer);
+		return NULL;
+	}
+
+	if (PQendcopy(self->cnx))
+	{
+		PyErr_SetString(PyExc_IOError, PQerrorMessage(self->cnx));
+		free(buffer);
+		return NULL;
+	}
+
+	free(buffer);
+
+	/* no error : returns nothing */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* get transaction state */
+static char pg_transaction__doc__[] =
+"Returns the current transaction status.";
+
+static PyObject *
+pg_transaction(pgobject * self, PyObject * args)
+{
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method transaction() takes no parameters.");
+		return NULL;
+	}
+
+	return PyInt_FromLong(PQtransactionStatus(self->cnx));
+}
+
+/* get parameter setting */
+static char pg_parameter__doc__[] =
+"Looks up a current parameter setting.";
+
+static PyObject *
+pg_parameter(pgobject * self, PyObject * args)
+{
+	const char *name;
+
+	if (!self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* get query args */
+	if (!PyArg_ParseTuple(args, "s", &name))
+	{
+		PyErr_SetString(PyExc_TypeError, "parameter(name), with name (string).");
+		return NULL;
+	}
+
+	name = PQparameterStatus(self->cnx, name);
+
+	if (name)
+		return PyString_FromString(name);
+
+	/* unknown parameter, return None */
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* escape string */
+static char pg_escape_string__doc__[] =
+"pg_escape_string(str) -- escape a string for use within SQL.";
+
+static PyObject *
+pg_escape_string(pgobject *self, PyObject *args) {
+	char *from; /* our string argument */
+	char *to=NULL; /* the result */
+	int from_length; /* length of string */
+	int to_length; /* length of result */
+	PyObject *ret; /* string object to return */
+
+	if (!PyArg_ParseTuple(args, "s#", &from, &from_length))
+		return NULL;
+	to_length = 2*from_length + 1;
+	if (to_length < from_length) { /* overflow */
+		to_length = from_length;
+		from_length = (from_length - 1)/2;
+	}
+	to = (char *)malloc(to_length);
+	to_length = (int)PQescapeStringConn(self->cnx,
+		to, from, (size_t)from_length, NULL);
+	ret = Py_BuildValue("s#", to, to_length);
+	if (to)
+		free(to);
+	if (!ret) /* pass on exception */
+		return NULL;
+	return ret;
+}
+
+/* escape bytea */
+static char pg_escape_bytea__doc__[] =
+"pg_escape_bytea(data) -- escape binary data for use within SQL as type bytea.";
+
+static PyObject *
+pg_escape_bytea(pgobject *self, PyObject *args) {
+	unsigned char *from; /* our string argument */
+	unsigned char *to; /* the result */
+	int from_length; /* length of string */
+	size_t to_length; /* length of result */
+	PyObject *ret; /* string object to return */
+
+	if (!PyArg_ParseTuple(args, "s#", &from, &from_length))
+		return NULL;
+	to = PQescapeByteaConn(self->cnx, from, (int)from_length, &to_length);
+	ret = Py_BuildValue("s", to);
+	if (to)
+		PQfreemem((void *)to);
+	if (!ret) /* pass on exception */
+		return NULL;
+	return ret;
+}
+
+#ifdef LARGE_OBJECTS
+/* creates large object */
+static char pg_locreate__doc__[] =
+"locreate() -- creates a new large object in the database.";
+
+static PyObject *
+pg_locreate(pgobject * self, PyObject * args)
+{
+	int			mode;
+	Oid			lo_oid;
+
+	/* checks validity */
+	if (!check_cnx_obj(self))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "i", &mode))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"locreate(mode), with mode (integer).");
+		return NULL;
+	}
+
+	/* creates large object */
+	lo_oid = lo_creat(self->cnx, mode);
+	if (lo_oid == 0)
+	{
+		PyErr_SetString(OperationalError, "can't create large object.");
+		return NULL;
+	}
+
+	return (PyObject *) pglarge_new(self, lo_oid);
+}
+
+/* init from already known oid */
+static char pg_getlo__doc__[] =
+"getlo(long) -- create a large object instance for the specified oid.";
+
+static PyObject *
+pg_getlo(pgobject * self, PyObject * args)
+{
+	int			lo_oid;
+
+	/* checks validity */
+	if (!check_cnx_obj(self))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "i", &lo_oid))
+	{
+		PyErr_SetString(PyExc_TypeError, "getlo(oid), with oid (integer).");
+		return NULL;
+	}
+
+	if (!lo_oid)
+	{
+		PyErr_SetString(PyExc_ValueError, "the object oid can't be null.");
+		return NULL;
+	}
+
+	/* creates object */
+	return (PyObject *) pglarge_new(self, lo_oid);
+}
+
+/* import unix file */
+static char pg_loimport__doc__[] =
+"loimport(string) -- create a new large object from specified file.";
+
+static PyObject *
+pg_loimport(pgobject * self, PyObject * args)
+{
+	char   *name;
+	Oid		lo_oid;
+
+	/* checks validity */
+	if (!check_cnx_obj(self))
+		return NULL;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "s", &name))
+	{
+		PyErr_SetString(PyExc_TypeError, "loimport(name), with name (string).");
+		return NULL;
+	}
+
+	/* imports file and checks result */
+	lo_oid = lo_import(self->cnx, name);
+	if (lo_oid == 0)
+	{
+		PyErr_SetString(OperationalError, "can't create large object.");
+		return NULL;
+	}
+
+	return (PyObject *) pglarge_new(self, lo_oid);
+}
+#endif /* LARGE_OBJECTS */
+
+#ifdef HANDLE_NOTICES
+ 
+/* fetch accumulated backend notices */
+static char pg_notices__doc__[] =
+  "notices() -- returns and clears the list of currently accumulated backend notices for the connection.";
+ 
+static void 
+notice_processor(void * arg, const char * message)
+{
+       
+       pgobject *pgobj = (pgobject *)arg;
+ 
+        /* skip if memory allocation failed */
+        if (pgobj->notices == NULL) 
+         {
+                   return;
+           }
+ 
+         pgobj->notices[pgobj->notices_next] = strdup(message);
+        pgobj->notices_next = (pgobj->notices_next + 1) % MAX_BUFFERED_NOTICES;
+        if (pgobj->notices_next == pgobj->notices_first)
+          {
+                    free(pgobj->notices[pgobj->notices_first]);
+                    pgobj->notices_first = (pgobj->notices_first + 1) % MAX_BUFFERED_NOTICES;
+            }
+ 
+   }
+ 
+static PyObject *
+  pg_notices(pgobject * self, PyObject * args)
+ {
+ 
+         PyObject *reslist,
+                      *str;
+        int      i;
+ 
+         /* allocate list for result */
+         if ((reslist = PyList_New(0)) == NULL)
+                 return NULL;
+ 
+         /* skip if memory allocation failed */
+         if (self->notices == NULL) 
+         {
+                   return reslist;
+           }
+ 
+         /* builds result */
+         while (self->notices_first != self->notices_next)
+         {
+               
+                 if (self->notices[self->notices_first] != NULL) /* skip if memory allocation failed */
+                 {
+                       
+                         str = PyString_FromString(self->notices[self->notices_first]);
+                        PyList_Append(reslist, str);
+                        Py_DECREF(str);
+ 
+                         free(self->notices[self->notices_first]);
+ 
+                 }
+ 
+                 self->notices_first = (self->notices_first + 1) % MAX_BUFFERED_NOTICES;
+ 
+         }
+ 
+         return reslist;
+ 
+  }
+ 
+#endif /* HANDLE_NOTICES */
+
+/* connection object methods */
+static struct PyMethodDef pgobj_methods[] = {
+	{"source", (PyCFunction) pg_source, METH_VARARGS, pg_source__doc__},
+	{"query", (PyCFunction) pg_query, METH_VARARGS, pg_query__doc__},
+	{"reset", (PyCFunction) pg_reset, METH_VARARGS, pg_reset__doc__},
+	{"cancel", (PyCFunction) pg_cancel, METH_VARARGS, pg_cancel__doc__},
+	{"close", (PyCFunction) pg_close, METH_VARARGS, pg_close__doc__},
+	{"fileno", (PyCFunction) pg_fileno, METH_VARARGS, pg_fileno__doc__},
+	{"getnotify", (PyCFunction) pg_getnotify, METH_VARARGS,
+			pg_getnotify__doc__},
+	{"inserttable", (PyCFunction) pg_inserttable, METH_VARARGS,
+			pg_inserttable__doc__},
+	{"transaction", (PyCFunction) pg_transaction, METH_VARARGS,
+			pg_transaction__doc__},
+	{"parameter", (PyCFunction) pg_parameter, METH_VARARGS,
+			pg_parameter__doc__},
+	{"escape_string", (PyCFunction) pg_escape_string, METH_VARARGS,
+			pg_escape_string__doc__},
+	{"escape_bytea", (PyCFunction) pg_escape_bytea, METH_VARARGS,
+			pg_escape_bytea__doc__},
+
+#ifdef DIRECT_ACCESS
+	{"putline", (PyCFunction) pg_putline, 1, pg_putline__doc__},
+	{"getline", (PyCFunction) pg_getline, 1, pg_getline__doc__},
+	{"endcopy", (PyCFunction) pg_endcopy, 1, pg_endcopy__doc__},
+#endif /* DIRECT_ACCESS */
+
+#ifdef LARGE_OBJECTS
+	{"locreate", (PyCFunction) pg_locreate, 1, pg_locreate__doc__},
+	{"getlo", (PyCFunction) pg_getlo, 1, pg_getlo__doc__},
+	{"loimport", (PyCFunction) pg_loimport, 1, pg_loimport__doc__},
+#endif /* LARGE_OBJECTS */
+
+#ifdef HANDLE_NOTICES
+        {"notices", (PyCFunction) pg_notices, 1, pg_notices__doc__},
+#endif /* HANDLE_NOTICES */
+
+	{NULL, NULL} /* sentinel */
+};
+
+/* get attribute */
+static PyObject *
+pg_getattr(pgobject * self, char *name)
+{
+	/*
+	 * Although we could check individually, there are only a few
+	 * attributes that don't require a live connection and unless someone
+	 * has an urgent need, this will have to do
+	 */
+
+	/* first exception - close which returns a different error */
+	if (strcmp(name, "close") && !self->cnx)
+	{
+		PyErr_SetString(PyExc_TypeError, "Connection is not valid.");
+		return NULL;
+	}
+
+	/* list postgreSQL connection fields */
+
+	/* postmaster host */
+	if (!strcmp(name, "host"))
+	{
+		char *r = PQhost(self->cnx);
+
+		return r ? PyString_FromString(r) : PyString_FromString("localhost");
+	}
+
+	/* postmaster port */
+	if (!strcmp(name, "port"))
+		return PyInt_FromLong(atol(PQport(self->cnx)));
+
+	/* selected database */
+	if (!strcmp(name, "db"))
+		return PyString_FromString(PQdb(self->cnx));
+
+	/* selected options */
+	if (!strcmp(name, "options"))
+		return PyString_FromString(PQoptions(self->cnx));
+
+	/* selected postgres tty */
+	if (!strcmp(name, "tty"))
+		return PyString_FromString(PQtty(self->cnx));
+
+	/* error (status) message */
+	if (!strcmp(name, "error"))
+		return PyString_FromString(PQerrorMessage(self->cnx));
+
+	/* connection status : 1 - OK, 0 - BAD */
+	if (!strcmp(name, "status"))
+		return PyInt_FromLong(PQstatus(self->cnx) == CONNECTION_OK ? 1 : 0);
+
+	/* provided user name */
+	if (!strcmp(name, "user"))
+		return PyString_FromString(PQuser(self->cnx));
+
+	/* protocol version */
+	if (!strcmp(name, "protocol_version"))
+		return PyInt_FromLong(PQprotocolVersion(self->cnx));
+
+	/* backend version */
+	if (!strcmp(name, "server_version"))
+#if PG_VERSION_NUM < 80000
+		return PyInt_FromLong(PG_VERSION_NUM);
+#else
+		return PyInt_FromLong(PQserverVersion(self->cnx));
+#endif
+
+	/* attributes list */
+	if (!strcmp(name, "__members__"))
+	{
+		PyObject *list = PyList_New(10);
+
+		if (list)
+		{
+			PyList_SET_ITEM(list, 0, PyString_FromString("host"));
+			PyList_SET_ITEM(list, 1, PyString_FromString("port"));
+			PyList_SET_ITEM(list, 2, PyString_FromString("db"));
+			PyList_SET_ITEM(list, 3, PyString_FromString("options"));
+			PyList_SET_ITEM(list, 4, PyString_FromString("tty"));
+			PyList_SET_ITEM(list, 5, PyString_FromString("error"));
+			PyList_SET_ITEM(list, 6, PyString_FromString("status"));
+			PyList_SET_ITEM(list, 7, PyString_FromString("user"));
+			PyList_SET_ITEM(list, 8, PyString_FromString("protocol_version"));
+			PyList_SET_ITEM(list, 9, PyString_FromString("server_version"));
+		}
+
+		return list;
+	}
+
+	return Py_FindMethod(pgobj_methods, (PyObject *) self, name);
+}
+
+/* object type definition */
+staticforward PyTypeObject PgType = {
+	PyObject_HEAD_INIT(NULL)
+	0,							/* ob_size */
+	"pgobject",					/* tp_name */
+	sizeof(pgobject),			/* tp_basicsize */
+	0,							/* tp_itemsize */
+	/* methods */
+	(destructor) pg_dealloc,	/* tp_dealloc */
+	0,							/* tp_print */
+	(getattrfunc) pg_getattr,	/* tp_getattr */
+	0,							/* tp_setattr */
+	0,							/* tp_compare */
+	0,							/* tp_repr */
+	0,							/* tp_as_number */
+	0,							/* tp_as_sequence */
+	0,							/* tp_as_mapping */
+	0,							/* tp_hash */
+};
+
+
+/* query object methods */
+static struct PyMethodDef pgquery_methods[] = {
+	{"getresult", (PyCFunction) pgquery_getresult, METH_VARARGS,
+			pgquery_getresult__doc__},
+	{"dictresult", (PyCFunction) pgquery_dictresult, METH_VARARGS,
+			pgquery_dictresult__doc__},
+	{"fieldname", (PyCFunction) pgquery_fieldname, METH_VARARGS,
+			 pgquery_fieldname__doc__},
+	{"fieldnum", (PyCFunction) pgquery_fieldnum, METH_VARARGS,
+			pgquery_fieldnum__doc__},
+	{"listfields", (PyCFunction) pgquery_listfields, METH_VARARGS,
+			pgquery_listfields__doc__},
+	{"ntuples", (PyCFunction) pgquery_ntuples, METH_VARARGS,
+			pgquery_ntuples__doc__},
+	{NULL, NULL}
+};
+
+/* gets query object attributes */
+static PyObject *
+pgquery_getattr(pgqueryobject * self, char *name)
+{
+	/* list postgreSQL connection fields */
+	return Py_FindMethod(pgquery_methods, (PyObject *) self, name);
+}
+
+/* query type definition */
+staticforward PyTypeObject PgQueryType = {
+	PyObject_HEAD_INIT(NULL)
+	0,							/* ob_size */
+	"pgqueryobject",			/* tp_name */
+	sizeof(pgqueryobject),		/* tp_basicsize */
+	0,							/* tp_itemsize */
+	/* methods */
+	(destructor) pgquery_dealloc,		/* tp_dealloc */
+	(printfunc) pgquery_print,	/* tp_print */
+	(getattrfunc) pgquery_getattr,		/* tp_getattr */
+	0,							/* tp_setattr */
+	0,							/* tp_compare */
+	(reprfunc) pgquery_repr,	/* tp_repr */
+	0,							/* tp_as_number */
+	0,							/* tp_as_sequence */
+	0,							/* tp_as_mapping */
+	0,							/* tp_hash */
+};
+
+
+/* --------------------------------------------------------------------- */
+
+/* MODULE FUNCTIONS */
+
+/* escape string */
+static char escape_string__doc__[] =
+"escape_string(str) -- escape a string for use within SQL.";
+
+static PyObject *
+escape_string(PyObject *self, PyObject *args) {
+	char *from; /* our string argument */
+	char *to=NULL; /* the result */
+	int from_length; /* length of string */
+	int to_length; /* length of result */
+	PyObject *ret; /* string object to return */
+
+	if (!PyArg_ParseTuple(args, "s#", &from, &from_length))
+		return NULL;
+	to_length = 2*from_length + 1;
+	if (to_length < from_length) { /* overflow */
+		to_length = from_length;
+		from_length = (from_length - 1)/2;
+	}
+	to = (char *)malloc(to_length);
+	to_length = (int)PQescapeString(to, from, (size_t)from_length);
+	ret = Py_BuildValue("s#", to, to_length);
+	if (to)
+		free(to);
+	if (!ret) /* pass on exception */
+		return NULL;
+	return ret;
+}
+
+/* escape bytea */
+static char escape_bytea__doc__[] =
+"escape_bytea(data) -- escape binary data for use within SQL as type bytea.";
+
+static PyObject *
+escape_bytea(PyObject *self, PyObject *args) {
+	unsigned char *from; /* our string argument */
+	unsigned char *to; /* the result */
+	int from_length; /* length of string */
+	size_t to_length; /* length of result */
+	PyObject *ret; /* string object to return */
+
+	if (!PyArg_ParseTuple(args, "s#", &from, &from_length))
+		return NULL;
+	to = PQescapeBytea(from, (int)from_length, &to_length);
+	ret = Py_BuildValue("s", to);
+	if (to)
+		PQfreemem((void *)to);
+	if (!ret) /* pass on exception */
+		return NULL;
+	return ret;
+}
+
+/* unescape bytea */
+static char unescape_bytea__doc__[] =
+"unescape_bytea(str) -- unescape bytea data that has been retrieved as text.";
+
+static PyObject
+*unescape_bytea(PyObject *self, PyObject *args) {
+	unsigned char *from; /* our string argument */
+	unsigned char *to; /* the result */
+	size_t to_length; /* length of result string */
+	PyObject *ret; /* string object to return */
+
+	if (!PyArg_ParseTuple(args, "s", &from))
+		return NULL;
+	to = PQunescapeBytea(from, &to_length);
+	ret = Py_BuildValue("s#", to, (int)to_length);
+	if (to)
+		PQfreemem((void *)to);
+	if (!ret) /* pass on exception */
+		return NULL;
+	return ret;
+}
+
+/* set decimal */
+static char set_decimal__doc__[] =
+"set_decimal(cls) -- set a decimal type to be used for numeric values.";
+
+static PyObject *
+set_decimal(PyObject * self, PyObject * args)
+{
+	PyObject *ret = NULL;
+	PyObject *cls;
+
+	if (PyArg_ParseTuple(args, "O", &cls))
+	{
+		if (cls == Py_None)
+		{
+			Py_XDECREF(decimal); decimal = NULL;
+			Py_INCREF(Py_None); ret = Py_None;
+		}
+		else if (PyCallable_Check(cls))
+		{
+			Py_XINCREF(cls); Py_XDECREF(decimal); decimal = cls;
+			Py_INCREF(Py_None); ret = Py_None;
+		}
+		else
+			PyErr_SetString(PyExc_TypeError, "decimal type must be None or callable");
+	}
+	return ret;
+}
+
+#ifdef DEFAULT_VARS
+
+/* gets default host */
+static char getdefhost__doc__[] =
+"get_defhost() -- return default database host.";
+
+static PyObject *
+pggetdefhost(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_defhost() takes no parameter.");
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_host);
+	return pg_default_host;
+}
+
+/* sets default host */
+static char setdefhost__doc__[] =
+"set_defhost(string) -- set default database host. Return previous value.";
+
+static PyObject *
+pgsetdefhost(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_defhost(name), with name (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_host;
+
+	if (temp)
+		pg_default_host = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_host = Py_None;
+	}
+
+	return old;
+}
+
+/* gets default base */
+static char getdefbase__doc__[] =
+"get_defbase() -- return default database name.";
+
+static PyObject *
+pggetdefbase(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_defbase() takes no parameter.");
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_base);
+	return pg_default_base;
+}
+
+/* sets default base */
+static char setdefbase__doc__[] =
+"set_defbase(string) -- set default database name. Return previous value";
+
+static PyObject *
+pgsetdefbase(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_defbase(name), with name (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_base;
+
+	if (temp)
+		pg_default_base = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_base = Py_None;
+	}
+
+	return old;
+}
+
+/* gets default options */
+static char getdefopt__doc__[] =
+"get_defopt() -- return default database options.";
+
+static PyObject *
+pggetdefopt(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_defopt() takes no parameter.");
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_opt);
+	return pg_default_opt;
+}
+
+/* sets default opt */
+static char setdefopt__doc__[] =
+"set_defopt(string) -- set default database options. Return previous value.";
+
+static PyObject *
+pgsetdefopt(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_defopt(name), with name (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_opt;
+
+	if (temp)
+		pg_default_opt = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_opt = Py_None;
+	}
+
+	return old;
+}
+
+/* gets default tty */
+static char getdeftty__doc__[] =
+"get_deftty() -- return default database debug terminal.";
+
+static PyObject *
+pggetdeftty(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_deftty() takes no parameter.");
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_tty);
+	return pg_default_tty;
+}
+
+/* sets default tty */
+static char setdeftty__doc__[] =
+"set_deftty(string) -- set default database debug terminal. "
+"Return previous value.";
+
+static PyObject *
+pgsetdeftty(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_deftty(name), with name (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_tty;
+
+	if (temp)
+		pg_default_tty = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_tty = Py_None;
+	}
+
+	return old;
+}
+
+/* gets default username */
+static char getdefuser__doc__[] =
+"get_defuser() -- return default database username.";
+
+static PyObject *
+pggetdefuser(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_defuser() takes no parameter.");
+
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_user);
+	return pg_default_user;
+}
+
+/* sets default username */
+static char setdefuser__doc__[] =
+"set_defuser() -- set default database username. Return previous value.";
+
+static PyObject *
+pgsetdefuser(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_defuser(name), with name (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_user;
+
+	if (temp)
+		pg_default_user = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_user = Py_None;
+	}
+
+	return old;
+}
+
+/* sets default password */
+static char setdefpasswd__doc__[] =
+"set_defpasswd() -- set default database password.";
+
+static PyObject *
+pgsetdefpasswd(PyObject * self, PyObject * args)
+{
+	char	   *temp = NULL;
+	PyObject   *old;
+
+	/* gets arguments */
+	if (!PyArg_ParseTuple(args, "z", &temp))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"set_defpasswd(password), with password (string/None).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_passwd;
+
+	if (temp)
+		pg_default_passwd = PyString_FromString(temp);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_passwd = Py_None;
+	}
+
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* gets default port */
+static char getdefport__doc__[] =
+"get_defport() -- return default database port.";
+
+static PyObject *
+pggetdefport(PyObject * self, PyObject * args)
+{
+	/* checks args */
+	if (!PyArg_ParseTuple(args, ""))
+	{
+		PyErr_SetString(PyExc_TypeError,
+			"method get_defport() takes no parameter.");
+		return NULL;
+	}
+
+	Py_XINCREF(pg_default_port);
+	return pg_default_port;
+}
+
+/* sets default port */
+static char setdefport__doc__[] =
+"set_defport(integer) -- set default database port. Return previous value.";
+
+static PyObject *
+pgsetdefport(PyObject * self, PyObject * args)
+{
+	long int	port = -2;
+	PyObject   *old;
+
+	/* gets arguments */
+	if ((!PyArg_ParseTuple(args, "l", &port)) || (port < -1))
+	{
+		PyErr_SetString(PyExc_TypeError, "set_defport(port), with port "
+			"(positive integer/-1).");
+		return NULL;
+	}
+
+	/* adjusts value */
+	old = pg_default_port;
+
+	if (port != -1)
+		pg_default_port = PyInt_FromLong(port);
+	else
+	{
+		Py_INCREF(Py_None);
+		pg_default_port = Py_None;
+	}
+
+	return old;
+}
+#endif /* DEFAULT_VARS */
+
+/* List of functions defined in the module */
+
+static struct PyMethodDef pg_methods[] = {
+	{"connect", (PyCFunction) pgconnect, METH_VARARGS|METH_KEYWORDS,
+			connect__doc__},
+	{"escape_string", (PyCFunction) escape_string, METH_VARARGS,
+			escape_string__doc__},
+	{"escape_bytea", (PyCFunction) escape_bytea, METH_VARARGS,
+			escape_bytea__doc__},
+	{"unescape_bytea", (PyCFunction) unescape_bytea, METH_VARARGS,
+			unescape_bytea__doc__},
+	{"set_decimal", (PyCFunction) set_decimal, METH_VARARGS,
+			set_decimal__doc__},
+
+#ifdef DEFAULT_VARS
+	{"get_defhost", pggetdefhost, METH_VARARGS, getdefhost__doc__},
+	{"set_defhost", pgsetdefhost, METH_VARARGS, setdefhost__doc__},
+	{"get_defbase", pggetdefbase, METH_VARARGS, getdefbase__doc__},
+	{"set_defbase", pgsetdefbase, METH_VARARGS, setdefbase__doc__},
+	{"get_defopt", pggetdefopt, METH_VARARGS, getdefopt__doc__},
+	{"set_defopt", pgsetdefopt, METH_VARARGS, setdefopt__doc__},
+	{"get_deftty", pggetdeftty, METH_VARARGS, getdeftty__doc__},
+	{"set_deftty", pgsetdeftty, METH_VARARGS, setdeftty__doc__},
+	{"get_defport", pggetdefport, METH_VARARGS, getdefport__doc__},
+	{"set_defport", pgsetdefport, METH_VARARGS, setdefport__doc__},
+	{"get_defuser", pggetdefuser, METH_VARARGS, getdefuser__doc__},
+	{"set_defuser", pgsetdefuser, METH_VARARGS, setdefuser__doc__},
+	{"set_defpasswd", pgsetdefpasswd, METH_VARARGS, setdefpasswd__doc__},
+#endif /* DEFAULT_VARS */
+	{NULL, NULL} /* sentinel */
+};
+
+static char pg__doc__[] = "Python interface to PostgreSQL DB";
+
+/* Initialization function for the module */
+DL_EXPORT(void)
+init_pg(void)
+{
+	PyObject   *mod,
+			   *dict,
+			   *v;
+
+	/* Initialize here because some WIN platforms get confused otherwise */
+	PglargeType.ob_type = PgType.ob_type = PgQueryType.ob_type =
+		PgSourceType.ob_type = &PyType_Type;
+
+	/* Create the module and add the functions */
+	

<TRUNCATED>


[16/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_proc33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_proc33.data b/src/test/regress/data/upgrade34/pg_proc33.data
new file mode 100644
index 0000000..869a784
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_proc33.data
@@ -0,0 +1,2708 @@
+oid,proname,pronamespace,proowner,prolang,proisagg,prosecdef,proisstrict,proretset,provolatile,pronargs,prorettype,proiswin,proargtypes,proallargtypes,proargmodes,proargnames,prosrc,probin,proacl
+1242,boolin,11,10,12,f,f,t,f,i,1,16,f,2275,,,,boolin,-,
+1243,boolout,11,10,12,f,f,t,f,i,1,2275,f,16,,,,boolout,-,
+1244,byteain,11,10,12,f,f,t,f,i,1,17,f,2275,,,,byteain,-,
+31,byteaout,11,10,12,f,f,t,f,i,1,2275,f,17,,,,byteaout,-,
+1245,charin,11,10,12,f,f,t,f,i,1,18,f,2275,,,,charin,-,
+33,charout,11,10,12,f,f,t,f,i,1,2275,f,18,,,,charout,-,
+34,namein,11,10,12,f,f,t,f,i,1,19,f,2275,,,,namein,-,
+35,nameout,11,10,12,f,f,t,f,i,1,2275,f,19,,,,nameout,-,
+38,int2in,11,10,12,f,f,t,f,i,1,21,f,2275,,,,int2in,-,
+39,int2out,11,10,12,f,f,t,f,i,1,2275,f,21,,,,int2out,-,
+40,int2vectorin,11,10,12,f,f,t,f,i,1,22,f,2275,,,,int2vectorin,-,
+41,int2vectorout,11,10,12,f,f,t,f,i,1,2275,f,22,,,,int2vectorout,-,
+42,int4in,11,10,12,f,f,t,f,i,1,23,f,2275,,,,int4in,-,
+43,int4out,11,10,12,f,f,t,f,i,1,2275,f,23,,,,int4out,-,
+44,regprocin,11,10,12,f,f,t,f,s,1,24,f,2275,,,,regprocin,-,
+45,regprocout,11,10,12,f,f,t,f,s,1,2275,f,24,,,,regprocout,-,
+46,textin,11,10,12,f,f,t,f,i,1,25,f,2275,,,,textin,-,
+47,textout,11,10,12,f,f,t,f,i,1,2275,f,25,,,,textout,-,
+48,tidin,11,10,12,f,f,t,f,i,1,27,f,2275,,,,tidin,-,
+49,tidout,11,10,12,f,f,t,f,i,1,2275,f,27,,,,tidout,-,
+50,xidin,11,10,12,f,f,t,f,i,1,28,f,2275,,,,xidin,-,
+51,xidout,11,10,12,f,f,t,f,i,1,2275,f,28,,,,xidout,-,
+52,cidin,11,10,12,f,f,t,f,i,1,29,f,2275,,,,cidin,-,
+53,cidout,11,10,12,f,f,t,f,i,1,2275,f,29,,,,cidout,-,
+54,oidvectorin,11,10,12,f,f,t,f,i,1,30,f,2275,,,,oidvectorin,-,
+55,oidvectorout,11,10,12,f,f,t,f,i,1,2275,f,30,,,,oidvectorout,-,
+56,boollt,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boollt,-,
+57,boolgt,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolgt,-,
+60,booleq,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,booleq,-,
+61,chareq,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,chareq,-,
+62,nameeq,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,nameeq,-,
+63,int2eq,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2eq,-,
+64,int2lt,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2lt,-,
+65,int4eq,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4eq,-,
+66,int4lt,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4lt,-,
+67,texteq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texteq,-,
+68,xideq,11,10,12,f,f,t,f,i,2,16,f,28 28,,,,xideq,-,
+69,cideq,11,10,12,f,f,t,f,i,2,16,f,29 29,,,,cideq,-,
+70,charne,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charne,-,
+1246,charlt,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charlt,-,
+72,charle,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charle,-,
+73,chargt,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,chargt,-,
+74,charge,11,10,12,f,f,t,f,i,2,16,f,18 18,,,,charge,-,
+77,int4,11,10,12,f,f,t,f,i,1,23,f,18,,,,chartoi4,-,
+78,char,11,10,12,f,f,t,f,i,1,18,f,23,,,,i4tochar,-,
+79,nameregexeq,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameregexeq,-,
+1252,nameregexne,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameregexne,-,
+1254,textregexeq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textregexeq,-,
+1256,textregexne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textregexne,-,
+1257,textlen,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1258,textcat,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,textcat,-,
+84,boolne,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolne,-,
+89,version,11,10,12,f,f,t,f,s,0,25,f,"",,,,pgsql_version,-,
+101,eqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,eqsel,-,
+102,neqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,neqsel,-,
+103,scalarltsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,scalarltsel,-,
+104,scalargtsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,scalargtsel,-,
+105,eqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,eqjoinsel,-,
+106,neqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,neqjoinsel,-,
+107,scalarltjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,scalarltjoinsel,-,
+108,scalargtjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,scalargtjoinsel,-,
+109,unknownin,11,10,12,f,f,t,f,i,1,705,f,2275,,,,unknownin,-,
+110,unknownout,11,10,12,f,f,t,f,i,1,2275,f,705,,,,unknownout,-,
+111,numeric_fac,11,10,12,f,f,t,f,i,1,1700,f,20,,,,numeric_fac,-,
+112,text,11,10,12,f,f,t,f,i,1,25,f,23,,,,int4_text,-,
+113,text,11,10,12,f,f,t,f,i,1,25,f,21,,,,int2_text,-,
+114,text,11,10,12,f,f,t,f,i,1,25,f,26,,,,oid_text,-,
+115,box_above_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_above_eq,-,
+116,box_below_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_below_eq,-,
+117,point_in,11,10,12,f,f,t,f,i,1,600,f,2275,,,,point_in,-,
+118,point_out,11,10,12,f,f,t,f,i,1,2275,f,600,,,,point_out,-,
+119,lseg_in,11,10,12,f,f,t,f,i,1,601,f,2275,,,,lseg_in,-,
+120,lseg_out,11,10,12,f,f,t,f,i,1,2275,f,601,,,,lseg_out,-,
+121,path_in,11,10,12,f,f,t,f,i,1,602,f,2275,,,,path_in,-,
+122,path_out,11,10,12,f,f,t,f,i,1,2275,f,602,,,,path_out,-,
+123,box_in,11,10,12,f,f,t,f,i,1,603,f,2275,,,,box_in,-,
+124,box_out,11,10,12,f,f,t,f,i,1,2275,f,603,,,,box_out,-,
+125,box_overlap,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overlap,-,
+126,box_ge,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_ge,-,
+127,box_gt,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_gt,-,
+128,box_eq,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_eq,-,
+129,box_lt,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_lt,-,
+130,box_le,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_le,-,
+131,point_above,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_above,-,
+132,point_left,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_left,-,
+133,point_right,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_right,-,
+134,point_below,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_below,-,
+135,point_eq,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_eq,-,
+136,on_pb,11,10,12,f,f,t,f,i,2,16,f,600 603,,,,on_pb,-,
+137,on_ppath,11,10,12,f,f,t,f,i,2,16,f,600 602,,,,on_ppath,-,
+138,box_center,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+139,areasel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,areasel,-,
+140,areajoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,areajoinsel,-,
+141,int4mul,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mul,-,
+144,int4ne,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4ne,-,
+145,int2ne,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2ne,-,
+146,int2gt,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2gt,-,
+147,int4gt,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4gt,-,
+148,int2le,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2le,-,
+149,int4le,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4le,-,
+150,int4ge,11,10,12,f,f,t,f,i,2,16,f,23 23,,,,int4ge,-,
+151,int2ge,11,10,12,f,f,t,f,i,2,16,f,21 21,,,,int2ge,-,
+152,int2mul,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mul,-,
+153,int2div,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2div,-,
+154,int4div,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4div,-,
+155,int2mod,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mod,-,
+156,int4mod,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mod,-,
+157,textne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textne,-,
+158,int24eq,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24eq,-,
+159,int42eq,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42eq,-,
+160,int24lt,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24lt,-,
+161,int42lt,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42lt,-,
+162,int24gt,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24gt,-,
+163,int42gt,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42gt,-,
+164,int24ne,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24ne,-,
+165,int42ne,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42ne,-,
+166,int24le,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24le,-,
+167,int42le,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42le,-,
+168,int24ge,11,10,12,f,f,t,f,i,2,16,f,21 23,,,,int24ge,-,
+169,int42ge,11,10,12,f,f,t,f,i,2,16,f,23 21,,,,int42ge,-,
+170,int24mul,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mul,-,
+171,int42mul,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mul,-,
+172,int24div,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24div,-,
+173,int42div,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42div,-,
+174,int24mod,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mod,-,
+175,int42mod,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mod,-,
+176,int2pl,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2pl,-,
+177,int4pl,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4pl,-,
+178,int24pl,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24pl,-,
+179,int42pl,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42pl,-,
+180,int2mi,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mi,-,
+181,int4mi,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mi,-,
+182,int24mi,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mi,-,
+183,int42mi,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mi,-,
+184,oideq,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oideq,-,
+185,oidne,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidne,-,
+186,box_same,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_same,-,
+187,box_contain,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_contain,-,
+188,box_left,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_left,-,
+189,box_overleft,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overleft,-,
+190,box_overright,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_overright,-,
+191,box_right,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_right,-,
+192,box_contained,11,10,12,f,f,t,f,i,2,16,f,603 603,,,,box_contained,-,
+200,float4in,11,10,12,f,f,t,f,i,1,700,f,2275,,,,float4in,-,
+201,float4out,11,10,12,f,f,t,f,i,1,2275,f,700,,,,float4out,-,
+202,float4mul,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4mul,-,
+203,float4div,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4div,-,
+204,float4pl,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4pl,-,
+205,float4mi,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4mi,-,
+206,float4um,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4um,-,
+207,float4abs,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4abs,-,
+208,float4_accum,11,10,12,f,f,t,f,i,2,1022,f,1022 700,,,,float4_accum,-,
+6024,float4_decum,11,10,12,f,f,t,f,i,2,1022,f,1022 700,,,,float4_decum,-,
+3106,float4_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 700,,,,float4_avg_accum,-,
+3107,float4_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 700,,,,float4_avg_decum,-,
+209,float4larger,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4larger,-,
+211,float4smaller,11,10,12,f,f,t,f,i,2,700,f,700 700,,,,float4smaller,-,
+212,int4um,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4um,-,
+213,int2um,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2um,-,
+214,float8in,11,10,12,f,f,t,f,i,1,701,f,2275,,,,float8in,-,
+215,float8out,11,10,12,f,f,t,f,i,1,2275,f,701,,,,float8out,-,
+216,float8mul,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8mul,-,
+217,float8div,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8div,-,
+218,float8pl,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8pl,-,
+219,float8mi,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8mi,-,
+220,float8um,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8um,-,
+221,float8abs,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8abs,-,
+222,float8_accum,11,10,12,f,f,t,f,i,2,1022,f,1022 701,,,,float8_accum,-,
+6025,float8_decum,11,10,12,f,f,t,f,i,2,1022,f,1022 701,,,,float8_decum,-,
+3108,float8_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 701,,,,float8_avg_accum,-,
+3109,float8_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 701,,,,float8_avg_decum,-,
+223,float8larger,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8larger,-,
+224,float8smaller,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,float8smaller,-,
+225,lseg_center,11,10,12,f,f,t,f,i,1,600,f,601,,,,lseg_center,-,
+226,path_center,11,10,12,f,f,t,f,i,1,600,f,602,,,,path_center,-,
+227,poly_center,11,10,12,f,f,t,f,i,1,600,f,604,,,,poly_center,-,
+228,dround,11,10,12,f,f,t,f,i,1,701,f,701,,,,dround,-,
+229,dtrunc,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtrunc,-,
+2308,ceil,11,10,12,f,f,t,f,i,1,701,f,701,,,,dceil,-,
+2320,ceiling,11,10,12,f,f,t,f,i,1,701,f,701,,,,dceil,-,
+2309,floor,11,10,12,f,f,t,f,i,1,701,f,701,,,,dfloor,-,
+2310,sign,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsign,-,
+230,dsqrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsqrt,-,
+231,dcbrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcbrt,-,
+232,dpow,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+233,dexp,11,10,12,f,f,t,f,i,1,701,f,701,,,,dexp,-,
+234,dlog1,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog1,-,
+235,float8,11,10,12,f,f,t,f,i,1,701,f,21,,,,i2tod,-,
+236,float4,11,10,12,f,f,t,f,i,1,700,f,21,,,,i2tof,-,
+237,int2,11,10,12,f,f,t,f,i,1,21,f,701,,,,dtoi2,-,
+238,int2,11,10,12,f,f,t,f,i,1,21,f,700,,,,ftoi2,-,
+239,line_distance,11,10,12,f,f,t,f,i,2,701,f,628 628,,,,line_distance,-,
+240,abstimein,11,10,12,f,f,t,f,s,1,702,f,2275,,,,abstimein,-,
+241,abstimeout,11,10,12,f,f,t,f,s,1,2275,f,702,,,,abstimeout,-,
+242,reltimein,11,10,12,f,f,t,f,s,1,703,f,2275,,,,reltimein,-,
+243,reltimeout,11,10,12,f,f,t,f,s,1,2275,f,703,,,,reltimeout,-,
+244,timepl,11,10,12,f,f,t,f,i,2,702,f,702 703,,,,timepl,-,
+245,timemi,11,10,12,f,f,t,f,i,2,702,f,702 703,,,,timemi,-,
+246,tintervalin,11,10,12,f,f,t,f,s,1,704,f,2275,,,,tintervalin,-,
+247,tintervalout,11,10,12,f,f,t,f,s,1,2275,f,704,,,,tintervalout,-,
+248,intinterval,11,10,12,f,f,t,f,i,2,16,f,702 704,,,,intinterval,-,
+249,tintervalrel,11,10,12,f,f,t,f,i,1,703,f,704,,,,tintervalrel,-,
+250,timenow,11,10,12,f,f,t,f,s,0,702,f,"",,,,timenow,-,
+251,abstimeeq,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimeeq,-,
+252,abstimene,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimene,-,
+253,abstimelt,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimelt,-,
+254,abstimegt,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimegt,-,
+255,abstimele,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimele,-,
+256,abstimege,11,10,12,f,f,t,f,i,2,16,f,702 702,,,,abstimege,-,
+257,reltimeeq,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimeeq,-,
+258,reltimene,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimene,-,
+259,reltimelt,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimelt,-,
+260,reltimegt,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimegt,-,
+261,reltimele,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimele,-,
+262,reltimege,11,10,12,f,f,t,f,i,2,16,f,703 703,,,,reltimege,-,
+263,tintervalsame,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalsame,-,
+264,tintervalct,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalct,-,
+265,tintervalov,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalov,-,
+266,tintervalleneq,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervalleneq,-,
+267,tintervallenne,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenne,-,
+268,tintervallenlt,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenlt,-,
+269,tintervallengt,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallengt,-,
+270,tintervallenle,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenle,-,
+271,tintervallenge,11,10,12,f,f,t,f,i,2,16,f,704 703,,,,tintervallenge,-,
+272,tintervalstart,11,10,12,f,f,t,f,i,1,702,f,704,,,,tintervalstart,-,
+273,tintervalend,11,10,12,f,f,t,f,i,1,702,f,704,,,,tintervalend,-,
+274,timeofday,11,10,12,f,f,t,f,v,0,25,f,"",,,,timeofday,-,
+275,isfinite,11,10,12,f,f,t,f,i,1,16,f,702,,,,abstime_finite,-,
+277,inter_sl,11,10,12,f,f,t,f,i,2,16,f,601 628,,,,inter_sl,-,
+278,inter_lb,11,10,12,f,f,t,f,i,2,16,f,628 603,,,,inter_lb,-,
+279,float48mul,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48mul,-,
+280,float48div,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48div,-,
+281,float48pl,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48pl,-,
+282,float48mi,11,10,12,f,f,t,f,i,2,701,f,700 701,,,,float48mi,-,
+283,float84mul,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84mul,-,
+284,float84div,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84div,-,
+285,float84pl,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84pl,-,
+286,float84mi,11,10,12,f,f,t,f,i,2,701,f,701 700,,,,float84mi,-,
+287,float4eq,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4eq,-,
+288,float4ne,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4ne,-,
+289,float4lt,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4lt,-,
+290,float4le,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4le,-,
+291,float4gt,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4gt,-,
+292,float4ge,11,10,12,f,f,t,f,i,2,16,f,700 700,,,,float4ge,-,
+293,float8eq,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8eq,-,
+294,float8ne,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8ne,-,
+295,float8lt,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8lt,-,
+296,float8le,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8le,-,
+297,float8gt,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8gt,-,
+298,float8ge,11,10,12,f,f,t,f,i,2,16,f,701 701,,,,float8ge,-,
+299,float48eq,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48eq,-,
+300,float48ne,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48ne,-,
+301,float48lt,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48lt,-,
+302,float48le,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48le,-,
+303,float48gt,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48gt,-,
+304,float48ge,11,10,12,f,f,t,f,i,2,16,f,700 701,,,,float48ge,-,
+305,float84eq,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84eq,-,
+306,float84ne,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84ne,-,
+307,float84lt,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84lt,-,
+308,float84le,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84le,-,
+309,float84gt,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84gt,-,
+310,float84ge,11,10,12,f,f,t,f,i,2,16,f,701 700,,,,float84ge,-,
+311,float8,11,10,12,f,f,t,f,i,1,701,f,700,,,,ftod,-,
+312,float4,11,10,12,f,f,t,f,i,1,700,f,701,,,,dtof,-,
+313,int4,11,10,12,f,f,t,f,i,1,23,f,21,,,,i2toi4,-,
+314,int2,11,10,12,f,f,t,f,i,1,21,f,23,,,,i4toi2,-,
+315,int2vectoreq,11,10,12,f,f,t,f,i,2,16,f,22 22,,,,int2vectoreq,-,
+316,float8,11,10,12,f,f,t,f,i,1,701,f,23,,,,i4tod,-,
+317,int4,11,10,12,f,f,t,f,i,1,23,f,701,,,,dtoi4,-,
+318,float4,11,10,12,f,f,t,f,i,1,700,f,23,,,,i4tof,-,
+319,int4,11,10,12,f,f,t,f,i,1,23,f,700,,,,ftoi4,-,
+330,btgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,btgettuple,-,
+636,btgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,btgetmulti,-,
+331,btinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,btinsert,-,
+333,btbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,btbeginscan,-,
+334,btrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,btrescan,-,
+335,btendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btendscan,-,
+336,btmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btmarkpos,-,
+337,btrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,btrestrpos,-,
+338,btbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,btbuild,-,
+332,btbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,btbulkdelete,-,
+972,btvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,btvacuumcleanup,-,
+1268,btcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,btcostestimate,-,
+2785,btoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,btoptions,-,
+339,poly_same,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_same,-,
+340,poly_contain,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_contain,-,
+341,poly_left,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_left,-,
+342,poly_overleft,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overleft,-,
+343,poly_overright,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overright,-,
+344,poly_right,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_right,-,
+345,poly_contained,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_contained,-,
+346,poly_overlap,11,10,12,f,f,t,f,i,2,16,f,604 604,,,,poly_overlap,-,
+347,poly_in,11,10,12,f,f,t,f,i,1,604,f,2275,,,,poly_in,-,
+348,poly_out,11,10,12,f,f,t,f,i,1,2275,f,604,,,,poly_out,-,
+350,btint2cmp,11,10,12,f,f,t,f,i,2,23,f,21 21,,,,btint2cmp,-,
+351,btint4cmp,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,btint4cmp,-,
+842,btint8cmp,11,10,12,f,f,t,f,i,2,23,f,20 20,,,,btint8cmp,-,
+354,btfloat4cmp,11,10,12,f,f,t,f,i,2,23,f,700 700,,,,btfloat4cmp,-,
+355,btfloat8cmp,11,10,12,f,f,t,f,i,2,23,f,701 701,,,,btfloat8cmp,-,
+356,btoidcmp,11,10,12,f,f,t,f,i,2,23,f,26 26,,,,btoidcmp,-,
+404,btoidvectorcmp,11,10,12,f,f,t,f,i,2,23,f,30 30,,,,btoidvectorcmp,-,
+357,btabstimecmp,11,10,12,f,f,t,f,i,2,23,f,702 702,,,,btabstimecmp,-,
+358,btcharcmp,11,10,12,f,f,t,f,i,2,23,f,18 18,,,,btcharcmp,-,
+359,btnamecmp,11,10,12,f,f,t,f,i,2,23,f,19 19,,,,btnamecmp,-,
+360,bttextcmp,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,bttextcmp,-,
+377,cash_cmp,11,10,12,f,f,t,f,i,2,23,f,790 790,,,,cash_cmp,-,
+380,btreltimecmp,11,10,12,f,f,t,f,i,2,23,f,703 703,,,,btreltimecmp,-,
+381,bttintervalcmp,11,10,12,f,f,t,f,i,2,23,f,704 704,,,,bttintervalcmp,-,
+382,btarraycmp,11,10,12,f,f,t,f,i,2,23,f,2277 2277,,,,btarraycmp,-,
+361,lseg_distance,11,10,12,f,f,t,f,i,2,701,f,601 601,,,,lseg_distance,-,
+362,lseg_interpt,11,10,12,f,f,t,f,i,2,600,f,601 601,,,,lseg_interpt,-,
+363,dist_ps,11,10,12,f,f,t,f,i,2,701,f,600 601,,,,dist_ps,-,
+364,dist_pb,11,10,12,f,f,t,f,i,2,701,f,600 603,,,,dist_pb,-,
+365,dist_sb,11,10,12,f,f,t,f,i,2,701,f,601 603,,,,dist_sb,-,
+366,close_ps,11,10,12,f,f,t,f,i,2,600,f,600 601,,,,close_ps,-,
+367,close_pb,11,10,12,f,f,t,f,i,2,600,f,600 603,,,,close_pb,-,
+368,close_sb,11,10,12,f,f,t,f,i,2,600,f,601 603,,,,close_sb,-,
+369,on_ps,11,10,12,f,f,t,f,i,2,16,f,600 601,,,,on_ps,-,
+370,path_distance,11,10,12,f,f,t,f,i,2,701,f,602 602,,,,path_distance,-,
+371,dist_ppath,11,10,12,f,f,t,f,i,2,701,f,600 602,,,,dist_ppath,-,
+372,on_sb,11,10,12,f,f,t,f,i,2,16,f,601 603,,,,on_sb,-,
+373,inter_sb,11,10,12,f,f,t,f,i,2,16,f,601 603,,,,inter_sb,-,
+401,text,11,10,12,f,f,t,f,i,1,25,f,1042,,,,rtrim1,-,
+406,text,11,10,12,f,f,t,f,i,1,25,f,19,,,,name_text,-,
+407,name,11,10,12,f,f,t,f,i,1,19,f,25,,,,text_name,-,
+408,bpchar,11,10,12,f,f,t,f,i,1,1042,f,19,,,,name_bpchar,-,
+409,name,11,10,12,f,f,t,f,i,1,19,f,1042,,,,bpchar_name,-,
+440,hashgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,hashgettuple,-,
+637,hashgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,hashgetmulti,-,
+441,hashinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,hashinsert,-,
+443,hashbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,hashbeginscan,-,
+444,hashrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,hashrescan,-,
+445,hashendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashendscan,-,
+446,hashmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashmarkpos,-,
+447,hashrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,hashrestrpos,-,
+448,hashbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,hashbuild,-,
+442,hashbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,hashbulkdelete,-,
+425,hashvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,hashvacuumcleanup,-,
+438,hashcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,hashcostestimate,-,
+2786,hashoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,hashoptions,-,
+449,hashint2,11,10,12,f,f,t,f,i,1,23,f,21,,,,hashint2,-,
+450,hashint4,11,10,12,f,f,t,f,i,1,23,f,23,,,,hashint4,-,
+949,hashint8,11,10,12,f,f,t,f,i,1,23,f,20,,,,hashint8,-,
+451,hashfloat4,11,10,12,f,f,t,f,i,1,23,f,700,,,,hashfloat4,-,
+452,hashfloat8,11,10,12,f,f,t,f,i,1,23,f,701,,,,hashfloat8,-,
+453,hashoid,11,10,12,f,f,t,f,i,1,23,f,26,,,,hashoid,-,
+454,hashchar,11,10,12,f,f,t,f,i,1,23,f,18,,,,hashchar,-,
+455,hashname,11,10,12,f,f,t,f,i,1,23,f,19,,,,hashname,-,
+400,hashtext,11,10,12,f,f,t,f,i,1,23,f,25,,,,hashtext,-,
+456,hashvarlena,11,10,12,f,f,t,f,i,1,23,f,2281,,,,hashvarlena,-,
+457,hashoidvector,11,10,12,f,f,t,f,i,1,23,f,30,,,,hashoidvector,-,
+329,hash_aclitem,11,10,12,f,f,t,f,i,1,23,f,1033,,,,hash_aclitem,-,
+398,hashint2vector,11,10,12,f,f,t,f,i,1,23,f,22,,,,hashint2vector,-,
+399,hashmacaddr,11,10,12,f,f,t,f,i,1,23,f,829,,,,hashmacaddr,-,
+422,hashinet,11,10,12,f,f,t,f,i,1,23,f,869,,,,hashinet,-,
+6432,hash_numeric,11,10,12,f,f,t,f,i,1,23,f,1700,,,,hash_numeric,-,
+458,text_larger,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,text_larger,-,
+459,text_smaller,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,text_smaller,-,
+460,int8in,11,10,12,f,f,t,f,i,1,20,f,2275,,,,int8in,-,
+461,int8out,11,10,12,f,f,t,f,i,1,2275,f,20,,,,int8out,-,
+462,int8um,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8um,-,
+463,int8pl,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8pl,-,
+464,int8mi,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mi,-,
+465,int8mul,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mul,-,
+466,int8div,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8div,-,
+467,int8eq,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8eq,-,
+468,int8ne,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8ne,-,
+469,int8lt,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8lt,-,
+470,int8gt,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8gt,-,
+471,int8le,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8le,-,
+472,int8ge,11,10,12,f,f,t,f,i,2,16,f,20 20,,,,int8ge,-,
+474,int84eq,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84eq,-,
+475,int84ne,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84ne,-,
+476,int84lt,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84lt,-,
+477,int84gt,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84gt,-,
+478,int84le,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84le,-,
+479,int84ge,11,10,12,f,f,t,f,i,2,16,f,20 23,,,,int84ge,-,
+480,int4,11,10,12,f,f,t,f,i,1,23,f,20,,,,int84,-,
+481,int8,11,10,12,f,f,t,f,i,1,20,f,23,,,,int48,-,
+482,float8,11,10,12,f,f,t,f,i,1,701,f,20,,,,i8tod,-,
+483,int8,11,10,12,f,f,t,f,i,1,20,f,701,,,,dtoi8,-,
+652,float4,11,10,12,f,f,t,f,i,1,700,f,20,,,,i8tof,-,
+653,int8,11,10,12,f,f,t,f,i,1,20,f,700,,,,ftoi8,-,
+714,int2,11,10,12,f,f,t,f,i,1,21,f,20,,,,int82,-,
+754,int8,11,10,12,f,f,t,f,i,1,20,f,21,,,,int28,-,
+1285,int4notin,11,10,12,f,f,t,f,s,2,16,f,23 25,,,,int4notin,-,
+1286,oidnotin,11,10,12,f,f,t,f,s,2,16,f,26 25,,,,oidnotin,-,
+655,namelt,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namelt,-,
+656,namele,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namele,-,
+657,namegt,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namegt,-,
+658,namege,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namege,-,
+659,namene,11,10,12,f,f,t,f,i,2,16,f,19 19,,,,namene,-,
+668,bpchar,11,10,12,f,f,t,f,i,3,1042,f,1042 23 16,,,,bpchar,-,
+669,varchar,11,10,12,f,f,t,f,i,3,1043,f,1043 23 16,,,,varchar,-,
+676,mktinterval,11,10,12,f,f,t,f,i,2,704,f,702 702,,,,mktinterval,-,
+619,oidvectorne,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorne,-,
+677,oidvectorlt,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorlt,-,
+678,oidvectorle,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorle,-,
+679,oidvectoreq,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectoreq,-,
+680,oidvectorge,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorge,-,
+681,oidvectorgt,11,10,12,f,f,t,f,i,2,16,f,30 30,,,,oidvectorgt,-,
+710,getpgusername,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_user,-,
+716,oidlt,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidlt,-,
+717,oidle,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidle,-,
+720,octet_length,11,10,12,f,f,t,f,i,1,23,f,17,,,,byteaoctetlen,-,
+721,get_byte,11,10,12,f,f,t,f,i,2,23,f,17 23,,,,byteaGetByte,-,
+722,set_byte,11,10,12,f,f,t,f,i,3,17,f,17 23 23,,,,byteaSetByte,-,
+723,get_bit,11,10,12,f,f,t,f,i,2,23,f,17 23,,,,byteaGetBit,-,
+724,set_bit,11,10,12,f,f,t,f,i,3,17,f,17 23 23,,,,byteaSetBit,-,
+725,dist_pl,11,10,12,f,f,t,f,i,2,701,f,600 628,,,,dist_pl,-,
+726,dist_lb,11,10,12,f,f,t,f,i,2,701,f,628 603,,,,dist_lb,-,
+727,dist_sl,11,10,12,f,f,t,f,i,2,701,f,601 628,,,,dist_sl,-,
+728,dist_cpoly,11,10,12,f,f,t,f,i,2,701,f,718 604,,,,dist_cpoly,-,
+729,poly_distance,11,10,12,f,f,t,f,i,2,701,f,604 604,,,,poly_distance,-,
+740,text_lt,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_lt,-,
+741,text_le,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_le,-,
+742,text_gt,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_gt,-,
+743,text_ge,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,text_ge,-,
+745,current_user,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_user,-,
+746,session_user,11,10,12,f,f,t,f,s,0,19,f,"",,,,session_user,-,
+744,array_eq,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_eq,-,
+390,array_ne,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_ne,-,
+391,array_lt,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_lt,-,
+392,array_gt,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_gt,-,
+393,array_le,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_le,-,
+396,array_ge,11,10,12,f,f,t,f,i,2,16,f,2277 2277,,,,array_ge,-,
+747,array_dims,11,10,12,f,f,t,f,i,1,25,f,2277,,,,array_dims,-,
+750,array_in,11,10,12,f,f,t,f,s,3,2277,f,2275 26 23,,,,array_in,-,
+751,array_out,11,10,12,f,f,t,f,s,1,2275,f,2277,,,,array_out,-,
+2091,array_lower,11,10,12,f,f,t,f,i,2,23,f,2277 23,,,,array_lower,-,
+2092,array_upper,11,10,12,f,f,t,f,i,2,23,f,2277 23,,,,array_upper,-,
+378,array_append,11,10,12,f,f,f,f,i,2,2277,f,2277 2283,,,,array_push,-,
+379,array_prepend,11,10,12,f,f,f,f,i,2,2277,f,2283 2277,,,,array_push,-,
+383,array_cat,11,10,12,f,f,f,f,i,2,2277,f,2277 2277,,,,array_cat,-,
+384,array_coerce,11,10,12,f,f,t,f,s,1,2277,f,2277,,,,array_type_coerce,-,
+394,string_to_array,11,10,12,f,f,t,f,i,2,1009,f,25 25,,,,text_to_array,-,
+395,array_to_string,11,10,12,f,f,t,f,i,2,25,f,2277 25,,,,array_to_text,-,
+515,array_larger,11,10,12,f,f,t,f,i,2,2277,f,2277 2277,,,,array_larger,-,
+516,array_smaller,11,10,12,f,f,t,f,i,2,2277,f,2277 2277,,,,array_smaller,-,
+6012,array_add,11,10,12,f,f,t,f,i,2,1007,f,1007 1007,,,,array_int4_add,-,
+760,smgrin,11,10,12,f,f,t,f,s,1,210,f,2275,,,,smgrin,-,
+761,smgrout,11,10,12,f,f,t,f,s,1,2275,f,210,,,,smgrout,-,
+762,smgreq,11,10,12,f,f,t,f,i,2,16,f,210 210,,,,smgreq,-,
+763,smgrne,11,10,12,f,f,t,f,i,2,16,f,210 210,,,,smgrne,-,
+764,lo_import,11,10,12,f,f,t,f,v,1,26,f,25,,,,lo_import,-,
+765,lo_export,11,10,12,f,f,t,f,v,2,23,f,26 25,,,,lo_export,-,
+766,int4inc,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4inc,-,
+768,int4larger,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4larger,-,
+769,int4smaller,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4smaller,-,
+770,int2larger,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2larger,-,
+771,int2smaller,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2smaller,-,
+774,gistgettuple,11,10,12,f,f,t,f,v,2,16,f,2281 2281,,,,gistgettuple,-,
+638,gistgetmulti,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,gistgetmulti,-,
+775,gistinsert,11,10,12,f,f,t,f,v,6,16,f,2281 2281 2281 2281 2281 2281,,,,gistinsert,-,
+777,gistbeginscan,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,gistbeginscan,-,
+778,gistrescan,11,10,12,f,f,t,f,v,2,2278,f,2281 2281,,,,gistrescan,-,
+779,gistendscan,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistendscan,-,
+780,gistmarkpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistmarkpos,-,
+781,gistrestrpos,11,10,12,f,f,t,f,v,1,2278,f,2281,,,,gistrestrpos,-,
+782,gistbuild,11,10,12,f,f,t,f,v,3,2281,f,2281 2281 2281,,,,gistbuild,-,
+776,gistbulkdelete,11,10,12,f,f,t,f,v,4,2281,f,2281 2281 2281 2281,,,,gistbulkdelete,-,
+2561,gistvacuumcleanup,11,10,12,f,f,t,f,v,2,2281,f,2281 2281,,,,gistvacuumcleanup,-,
+772,gistcostestimate,11,10,12,f,f,t,f,v,8,2278,f,2281 2281 2281 2281 2281 2281 2281 2281,,,,gistcostestimate,-,
+2787,gistoptions,11,10,12,f,f,t,f,s,2,17,f,1009 16,,,,gistoptions,-,
+784,tintervaleq,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervaleq,-,
+785,tintervalne,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalne,-,
+786,tintervallt,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervallt,-,
+787,tintervalgt,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalgt,-,
+788,tintervalle,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalle,-,
+789,tintervalge,11,10,12,f,f,t,f,i,2,16,f,704 704,,,,tintervalge,-,
+817,oid,11,10,12,f,f,t,f,i,1,26,f,25,,,,text_oid,-,
+818,int2,11,10,12,f,f,t,f,i,1,21,f,25,,,,text_int2,-,
+819,int4,11,10,12,f,f,t,f,i,1,23,f,25,,,,text_int4,-,
+838,float8,11,10,12,f,f,t,f,i,1,701,f,25,,,,text_float8,-,
+839,float4,11,10,12,f,f,t,f,i,1,700,f,25,,,,text_float4,-,
+840,text,11,10,12,f,f,t,f,i,1,25,f,701,,,,float8_text,-,
+841,text,11,10,12,f,f,t,f,i,1,25,f,700,,,,float4_text,-,
+846,cash_mul_flt4,11,10,12,f,f,t,f,i,2,790,f,790 700,,,,cash_mul_flt4,-,
+847,cash_div_flt4,11,10,12,f,f,t,f,i,2,790,f,790 700,,,,cash_div_flt4,-,
+848,flt4_mul_cash,11,10,12,f,f,t,f,i,2,790,f,700 790,,,,flt4_mul_cash,-,
+849,position,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,textpos,-,
+850,textlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textlike,-,
+851,textnlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textnlike,-,
+852,int48eq,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48eq,-,
+853,int48ne,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48ne,-,
+854,int48lt,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48lt,-,
+855,int48gt,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48gt,-,
+856,int48le,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48le,-,
+857,int48ge,11,10,12,f,f,t,f,i,2,16,f,23 20,,,,int48ge,-,
+858,namelike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namelike,-,
+859,namenlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namenlike,-,
+860,bpchar,11,10,12,f,f,t,f,i,1,1042,f,18,,,,char_bpchar,-,
+861,current_database,11,10,12,f,f,t,f,i,0,19,f,"",,,,current_database,-,
+862,int4_mul_cash,11,10,12,f,f,t,f,i,2,790,f,23 790,,,,int4_mul_cash,-,
+863,int2_mul_cash,11,10,12,f,f,t,f,i,2,790,f,21 790,,,,int2_mul_cash,-,
+864,cash_mul_int4,11,10,12,f,f,t,f,i,2,790,f,790 23,,,,cash_mul_int4,-,
+865,cash_div_int4,11,10,12,f,f,t,f,i,2,790,f,790 23,,,,cash_div_int4,-,
+866,cash_mul_int2,11,10,12,f,f,t,f,i,2,790,f,790 21,,,,cash_mul_int2,-,
+867,cash_div_int2,11,10,12,f,f,t,f,i,2,790,f,790 21,,,,cash_div_int2,-,
+886,cash_in,11,10,12,f,f,t,f,i,1,790,f,2275,,,,cash_in,-,
+887,cash_out,11,10,12,f,f,t,f,i,1,2275,f,790,,,,cash_out,-,
+888,cash_eq,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_eq,-,
+889,cash_ne,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_ne,-,
+890,cash_lt,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_lt,-,
+891,cash_le,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_le,-,
+892,cash_gt,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_gt,-,
+893,cash_ge,11,10,12,f,f,t,f,i,2,16,f,790 790,,,,cash_ge,-,
+894,cash_pl,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cash_pl,-,
+895,cash_mi,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cash_mi,-,
+896,cash_mul_flt8,11,10,12,f,f,t,f,i,2,790,f,790 701,,,,cash_mul_flt8,-,
+897,cash_div_flt8,11,10,12,f,f,t,f,i,2,790,f,790 701,,,,cash_div_flt8,-,
+898,cashlarger,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cashlarger,-,
+899,cashsmaller,11,10,12,f,f,t,f,i,2,790,f,790 790,,,,cashsmaller,-,
+919,flt8_mul_cash,11,10,12,f,f,t,f,i,2,790,f,701 790,,,,flt8_mul_cash,-,
+935,cash_words,11,10,12,f,f,t,f,i,1,25,f,790,,,,cash_words,-,
+940,mod,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2mod,-,
+941,mod,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4mod,-,
+942,mod,11,10,12,f,f,t,f,i,2,23,f,21 23,,,,int24mod,-,
+943,mod,11,10,12,f,f,t,f,i,2,23,f,23 21,,,,int42mod,-,
+945,int8mod,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mod,-,
+947,mod,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8mod,-,
+944,char,11,10,12,f,f,t,f,i,1,18,f,25,,,,text_char,-,
+946,text,11,10,12,f,f,t,f,i,1,25,f,18,,,,char_text,-,
+950,istrue,11,10,12,f,f,f,f,i,1,16,f,16,,,,istrue,-,
+951,isfalse,11,10,12,f,f,f,f,i,1,16,f,16,,,,isfalse,-,
+952,lo_open,11,10,12,f,f,t,f,v,2,23,f,26 23,,,,lo_open,-,
+953,lo_close,11,10,12,f,f,t,f,v,1,23,f,23,,,,lo_close,-,
+954,loread,11,10,12,f,f,t,f,v,2,17,f,23 23,,,,loread,-,
+955,lowrite,11,10,12,f,f,t,f,v,2,23,f,23 17,,,,lowrite,-,
+956,lo_lseek,11,10,12,f,f,t,f,v,3,23,f,23 23 23,,,,lo_lseek,-,
+957,lo_creat,11,10,12,f,f,t,f,v,1,26,f,23,,,,lo_creat,-,
+715,lo_create,11,10,12,f,f,t,f,v,1,26,f,26,,,,lo_create,-,
+958,lo_tell,11,10,12,f,f,t,f,v,1,23,f,23,,,,lo_tell,-,
+828,lo_truncate,11,10,12,f,f,t,f,v,2,23,f,23 23,,,,lo_truncate,-,
+959,on_pl,11,10,12,f,f,t,f,i,2,16,f,600 628,,,,on_pl,-,
+960,on_sl,11,10,12,f,f,t,f,i,2,16,f,601 628,,,,on_sl,-,
+961,close_pl,11,10,12,f,f,t,f,i,2,600,f,600 628,,,,close_pl,-,
+962,close_sl,11,10,12,f,f,t,f,i,2,600,f,601 628,,,,close_sl,-,
+963,close_lb,11,10,12,f,f,t,f,i,2,600,f,628 603,,,,close_lb,-,
+964,lo_unlink,11,10,12,f,f,t,f,v,1,23,f,26,,,,lo_unlink,-,
+973,path_inter,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_inter,-,
+975,area,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_area,-,
+976,width,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_width,-,
+977,height,11,10,12,f,f,t,f,i,1,701,f,603,,,,box_height,-,
+978,box_distance,11,10,12,f,f,t,f,i,2,701,f,603 603,,,,box_distance,-,
+979,area,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_area,-,
+980,box_intersect,11,10,12,f,f,t,f,i,2,603,f,603 603,,,,box_intersect,-,
+981,diagonal,11,10,12,f,f,t,f,i,1,601,f,603,,,,box_diagonal,-,
+982,path_n_lt,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_lt,-,
+983,path_n_gt,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_gt,-,
+984,path_n_eq,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_eq,-,
+985,path_n_le,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_le,-,
+986,path_n_ge,11,10,12,f,f,t,f,i,2,16,f,602 602,,,,path_n_ge,-,
+987,path_length,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_length,-,
+988,point_ne,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_ne,-,
+989,point_vert,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_vert,-,
+990,point_horiz,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_horiz,-,
+991,point_distance,11,10,12,f,f,t,f,i,2,701,f,600 600,,,,point_distance,-,
+992,slope,11,10,12,f,f,t,f,i,2,701,f,600 600,,,,point_slope,-,
+993,lseg,11,10,12,f,f,t,f,i,2,601,f,600 600,,,,lseg_construct,-,
+994,lseg_intersect,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_intersect,-,
+995,lseg_parallel,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_parallel,-,
+996,lseg_perp,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_perp,-,
+997,lseg_vertical,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_vertical,-,
+998,lseg_horizontal,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_horizontal,-,
+999,lseg_eq,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_eq,-,
+748,date,11,10,12,f,f,t,f,s,1,1082,f,25,,,,text_date,-,
+749,text,11,10,12,f,f,t,f,s,1,25,f,1082,,,,date_text,-,
+837,time,11,10,12,f,f,t,f,s,1,1083,f,25,,,,text_time,-,
+948,text,11,10,12,f,f,t,f,i,1,25,f,1083,,,,time_text,-,
+938,timetz,11,10,12,f,f,t,f,s,1,1266,f,25,,,,text_timetz,-,
+939,text,11,10,12,f,f,t,f,i,1,25,f,1266,,,,timetz_text,-,
+1026,timezone,11,10,12,f,f,t,f,i,2,1114,f,1186 1184,,,,timestamptz_izone,-,
+1029,nullvalue,11,10,12,f,f,f,f,i,1,16,f,2276,,,,nullvalue,-,
+1030,nonnullvalue,11,10,12,f,f,f,f,i,1,16,f,2276,,,,nonnullvalue,-,
+1031,aclitemin,11,10,12,f,f,t,f,s,1,1033,f,2275,,,,aclitemin,-,
+1032,aclitemout,11,10,12,f,f,t,f,s,1,2275,f,1033,,,,aclitemout,-,
+1035,aclinsert,11,10,12,f,f,t,f,i,2,1034,f,1034 1033,,,,aclinsert,-,
+1036,aclremove,11,10,12,f,f,t,f,i,2,1034,f,1034 1033,,,,aclremove,-,
+1037,aclcontains,11,10,12,f,f,t,f,i,2,16,f,1034 1033,,,,aclcontains,-,
+1062,aclitemeq,11,10,12,f,f,t,f,i,2,16,f,1033 1033,,,,aclitem_eq,-,
+1365,makeaclitem,11,10,12,f,f,t,f,i,4,1033,f,26 26 25 16,,,,makeaclitem,-,
+1044,bpcharin,11,10,12,f,f,t,f,i,3,1042,f,2275 26 23,,,,bpcharin,-,
+1045,bpcharout,11,10,12,f,f,t,f,i,1,2275,f,1042,,,,bpcharout,-,
+1046,varcharin,11,10,12,f,f,t,f,i,3,1043,f,2275 26 23,,,,varcharin,-,
+1047,varcharout,11,10,12,f,f,t,f,i,1,2275,f,1043,,,,varcharout,-,
+1048,bpchareq,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpchareq,-,
+1049,bpcharlt,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharlt,-,
+1050,bpcharle,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharle,-,
+1051,bpchargt,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpchargt,-,
+1052,bpcharge,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharge,-,
+1053,bpcharne,11,10,12,f,f,t,f,i,2,16,f,1042 1042,,,,bpcharne,-,
+1063,bpchar_larger,11,10,12,f,f,t,f,i,2,1042,f,1042 1042,,,,bpchar_larger,-,
+1064,bpchar_smaller,11,10,12,f,f,t,f,i,2,1042,f,1042 1042,,,,bpchar_smaller,-,
+1078,bpcharcmp,11,10,12,f,f,t,f,i,2,23,f,1042 1042,,,,bpcharcmp,-,
+1080,hashbpchar,11,10,12,f,f,t,f,i,1,23,f,1042,,,,hashbpchar,-,
+1081,format_type,11,10,12,f,f,f,f,s,2,25,f,26 23,,,,format_type,-,
+1084,date_in,11,10,12,f,f,t,f,s,1,1082,f,2275,,,,date_in,-,
+1085,date_out,11,10,12,f,f,t,f,s,1,2275,f,1082,,,,date_out,-,
+1086,date_eq,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_eq,-,
+1087,date_lt,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_lt,-,
+1088,date_le,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_le,-,
+1089,date_gt,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_gt,-,
+1090,date_ge,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_ge,-,
+1091,date_ne,11,10,12,f,f,t,f,i,2,16,f,1082 1082,,,,date_ne,-,
+1092,date_cmp,11,10,12,f,f,t,f,i,2,23,f,1082 1082,,,,date_cmp,-,
+1102,time_lt,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_lt,-,
+1103,time_le,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_le,-,
+1104,time_gt,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_gt,-,
+1105,time_ge,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_ge,-,
+1106,time_ne,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_ne,-,
+1107,time_cmp,11,10,12,f,f,t,f,i,2,23,f,1083 1083,,,,time_cmp,-,
+1138,date_larger,11,10,12,f,f,t,f,i,2,1082,f,1082 1082,,,,date_larger,-,
+1139,date_smaller,11,10,12,f,f,t,f,i,2,1082,f,1082 1082,,,,date_smaller,-,
+1140,date_mi,11,10,12,f,f,t,f,i,2,23,f,1082 1082,,,,date_mi,-,
+1141,date_pli,11,10,12,f,f,t,f,i,2,1082,f,1082 23,,,,date_pli,-,
+1142,date_mii,11,10,12,f,f,t,f,i,2,1082,f,1082 23,,,,date_mii,-,
+1143,time_in,11,10,12,f,f,t,f,s,3,1083,f,2275 26 23,,,,time_in,-,
+1144,time_out,11,10,12,f,f,t,f,i,1,2275,f,1083,,,,time_out,-,
+1145,time_eq,11,10,12,f,f,t,f,i,2,16,f,1083 1083,,,,time_eq,-,
+1146,circle_add_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_add_pt,-,
+1147,circle_sub_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_sub_pt,-,
+1148,circle_mul_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_mul_pt,-,
+1149,circle_div_pt,11,10,12,f,f,t,f,i,2,718,f,718 600,,,,circle_div_pt,-,
+1150,timestamptz_in,11,10,12,f,f,t,f,s,3,1184,f,2275 26 23,,,,timestamptz_in,-,
+1151,timestamptz_out,11,10,12,f,f,t,f,s,1,2275,f,1184,,,,timestamptz_out,-,
+1152,timestamptz_eq,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_eq,-,
+1153,timestamptz_ne,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_ne,-,
+1154,timestamptz_lt,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_lt,-,
+1155,timestamptz_le,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_le,-,
+1156,timestamptz_ge,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_ge,-,
+1157,timestamptz_gt,11,10,12,f,f,t,f,i,2,16,f,1184 1184,,,,timestamp_gt,-,
+1158,to_timestamp,11,10,14,f,f,t,f,i,1,1184,f,701,,,,select ('epoch'::timestamptz + $1 * '1 second'::interval),-,
+1159,timezone,11,10,12,f,f,t,f,i,2,1114,f,25 1184,,,,timestamptz_zone,-,
+1160,interval_in,11,10,12,f,f,t,f,s,3,1186,f,2275 26 23,,,,interval_in,-,
+1161,interval_out,11,10,12,f,f,t,f,i,1,2275,f,1186,,,,interval_out,-,
+1162,interval_eq,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_eq,-,
+1163,interval_ne,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_ne,-,
+1164,interval_lt,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_lt,-,
+1165,interval_le,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_le,-,
+1166,interval_ge,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_ge,-,
+1167,interval_gt,11,10,12,f,f,t,f,i,2,16,f,1186 1186,,,,interval_gt,-,
+1168,interval_um,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_um,-,
+1169,interval_pl,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_pl,-,
+1170,interval_mi,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_mi,-,
+1171,date_part,11,10,12,f,f,t,f,s,2,701,f,25 1184,,,,timestamptz_part,-,
+1172,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1186,,,,interval_part,-,
+1173,timestamptz,11,10,12,f,f,t,f,i,1,1184,f,702,,,,abstime_timestamptz,-,
+1174,timestamptz,11,10,12,f,f,t,f,s,1,1184,f,1082,,,,date_timestamptz,-,
+2711,justify_interval,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_interval,-,
+1175,justify_hours,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_hours,-,
+1295,justify_days,11,10,12,f,f,t,f,i,1,1186,f,1186,,,,interval_justify_days,-,
+1176,timestamptz,11,10,14,f,f,t,f,s,2,1184,f,1082 1083,,,,select cast(($1 + $2) as timestamp with time zone),-,
+1177,interval,11,10,12,f,f,t,f,i,1,1186,f,703,,,,reltime_interval,-,
+1178,date,11,10,12,f,f,t,f,s,1,1082,f,1184,,,,timestamptz_date,-,
+1179,date,11,10,12,f,f,t,f,s,1,1082,f,702,,,,abstime_date,-,
+1180,abstime,11,10,12,f,f,t,f,i,1,702,f,1184,,,,timestamptz_abstime,-,
+1181,age,11,10,12,f,f,t,f,s,1,23,f,28,,,,xid_age,-,
+1188,timestamptz_mi,11,10,12,f,f,t,f,i,2,1186,f,1184 1184,,,,timestamp_mi,-,
+1189,timestamptz_pl_interval,11,10,12,f,f,t,f,s,2,1184,f,1184 1186,,,,timestamptz_pl_interval,-,
+1190,timestamptz_mi_interval,11,10,12,f,f,t,f,s,2,1184,f,1184 1186,,,,timestamptz_mi_interval,-,
+1191,timestamptz,11,10,12,f,f,t,f,s,1,1184,f,25,,,,text_timestamptz,-,
+1192,text,11,10,12,f,f,t,f,s,1,25,f,1184,,,,timestamptz_text,-,
+1193,text,11,10,12,f,f,t,f,i,1,25,f,1186,,,,interval_text,-,
+1194,reltime,11,10,12,f,f,t,f,i,1,703,f,1186,,,,interval_reltime,-,
+1195,timestamptz_smaller,11,10,12,f,f,t,f,i,2,1184,f,1184 1184,,,,timestamp_smaller,-,
+1196,timestamptz_larger,11,10,12,f,f,t,f,i,2,1184,f,1184 1184,,,,timestamp_larger,-,
+1197,interval_smaller,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_smaller,-,
+1198,interval_larger,11,10,12,f,f,t,f,i,2,1186,f,1186 1186,,,,interval_larger,-,
+1199,age,11,10,12,f,f,t,f,i,2,1186,f,1184 1184,,,,timestamptz_age,-,
+1200,interval,11,10,12,f,f,t,f,i,2,1186,f,1186 23,,,,interval_scale,-,
+1215,obj_description,11,10,14,f,f,t,f,s,2,25,f,26 19,,,,select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) and objsubid = 0,-,
+1216,col_description,11,10,14,f,f,t,f,s,2,25,f,26 23,,,,select description from pg_catalog.pg_description where objoid = $1 and classoid = 'pg_catalog.pg_class'::regclass and objsubid = $2,-,
+1993,shobj_description,11,10,14,f,f,t,f,s,2,25,f,26 19,,,,select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11),-,
+1217,date_trunc,11,10,12,f,f,t,f,s,2,1184,f,25 1184,,,,timestamptz_trunc,-,
+1218,date_trunc,11,10,12,f,f,t,f,i,2,1186,f,25 1186,,,,interval_trunc,-,
+1219,int8inc,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8inc,-,
+2857,int8dec,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8dec,-,
+2804,int8inc_any,11,10,12,f,f,t,f,i,2,20,f,20 2276,,,,int8inc_any,-,
+1230,int8abs,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8abs,-,
+1236,int8larger,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8larger,-,
+1237,int8smaller,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8smaller,-,
+1238,texticregexeq,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticregexeq,-,
+1239,texticregexne,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticregexne,-,
+1240,nameicregexeq,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicregexeq,-,
+1241,nameicregexne,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicregexne,-,
+1251,int4abs,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4abs,-,
+1253,int2abs,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2abs,-,
+1263,interval,11,10,12,f,f,t,f,s,1,1186,f,25,,,,text_interval,-,
+1271,overlaps,11,10,12,f,f,f,f,i,4,16,f,1266 1266 1266 1266,,,,overlaps_timetz,-,
+1272,datetime_pl,11,10,12,f,f,t,f,i,2,1114,f,1082 1083,,,,datetime_timestamp,-,
+1273,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1266,,,,timetz_part,-,
+1274,int84pl,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84pl,-,
+1275,int84mi,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84mi,-,
+1276,int84mul,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84mul,-,
+1277,int84div,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int84div,-,
+1278,int48pl,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48pl,-,
+1279,int48mi,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48mi,-,
+1280,int48mul,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48mul,-,
+1281,int48div,11,10,12,f,f,t,f,i,2,20,f,23 20,,,,int48div,-,
+1287,oid,11,10,12,f,f,t,f,i,1,26,f,20,,,,i8tooid,-,
+1288,int8,11,10,12,f,f,t,f,i,1,20,f,26,,,,oidtoi8,-,
+1289,text,11,10,12,f,f,t,f,i,1,25,f,20,,,,int8_text,-,
+1290,int8,11,10,12,f,f,t,f,i,1,20,f,25,,,,text_int8,-,
+1291,array_length_coerce,11,10,12,f,f,t,f,s,3,2277,f,2277 23 16,,,,array_length_coerce,-,
+1292,tideq,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tideq,-,
+1293,currtid,11,10,12,f,f,t,f,v,2,27,f,26 27,,,,currtid_byreloid,-,
+1294,currtid2,11,10,12,f,f,t,f,v,2,27,f,25 27,,,,currtid_byrelname,-,
+1265,tidne,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidne,-,
+2790,tidgt,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidgt,-,
+2791,tidlt,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidlt,-,
+2792,tidge,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidge,-,
+2793,tidle,11,10,12,f,f,t,f,i,2,16,f,27 27,,,,tidle,-,
+2794,bttidcmp,11,10,12,f,f,t,f,i,2,23,f,27 27,,,,bttidcmp,-,
+2795,tidlarger,11,10,12,f,f,t,f,i,2,27,f,27 27,,,,tidlarger,-,
+2796,tidsmaller,11,10,12,f,f,t,f,i,2,27,f,27 27,,,,tidsmaller,-,
+1296,timedate_pl,11,10,14,f,f,t,f,i,2,1114,f,1083 1082,,,,select ($2 + $1),-,
+1297,datetimetz_pl,11,10,12,f,f,t,f,i,2,1184,f,1082 1266,,,,datetimetz_timestamptz,-,
+1298,timetzdate_pl,11,10,14,f,f,t,f,i,2,1184,f,1266 1082,,,,select ($2 + $1),-,
+1299,now,11,10,12,f,f,t,f,s,0,1184,f,"",,,,now,-,
+2647,transaction_timestamp,11,10,12,f,f,t,f,s,0,1184,f,"",,,,now,-,
+2648,statement_timestamp,11,10,12,f,f,t,f,s,0,1184,f,"",,,,statement_timestamp,-,
+2649,clock_timestamp,11,10,12,f,f,t,f,v,0,1184,f,"",,,,clock_timestamp,-,
+1300,positionsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,positionsel,-,
+1301,positionjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,positionjoinsel,-,
+1302,contsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,contsel,-,
+1303,contjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,contjoinsel,-,
+1304,overlaps,11,10,12,f,f,f,f,i,4,16,f,1184 1184 1184 1184,,,,overlaps_timestamp,-,
+1305,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1186 1184 1186,,,,"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))",-,
+1306,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1184 1184 1186,,,,"select ($1, $2) overlaps ($3, ($3 + $4))",-,
+1307,overlaps,11,10,14,f,f,f,f,s,4,16,f,1184 1186 1184 1184,,,,"select ($1, ($1 + $2)) overlaps ($3, $4)",-,
+1308,overlaps,11,10,12,f,f,f,f,i,4,16,f,1083 1083 1083 1083,,,,overlaps_time,-,
+1309,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1186 1083 1186,,,,"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))",-,
+1310,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1083 1083 1186,,,,"select ($1, $2) overlaps ($3, ($3 + $4))",-,
+1311,overlaps,11,10,14,f,f,f,f,i,4,16,f,1083 1186 1083 1083,,,,"select ($1, ($1 + $2)) overlaps ($3, $4)",-,
+1312,timestamp_in,11,10,12,f,f,t,f,s,3,1114,f,2275 26 23,,,,timestamp_in,-,
+1313,timestamp_out,11,10,12,f,f,t,f,s,1,2275,f,1114,,,,timestamp_out,-,
+1314,timestamptz_cmp,11,10,12,f,f,t,f,i,2,23,f,1184 1184,,,,timestamp_cmp,-,
+1315,interval_cmp,11,10,12,f,f,t,f,i,2,23,f,1186 1186,,,,interval_cmp,-,
+1316,time,11,10,12,f,f,t,f,i,1,1083,f,1114,,,,timestamp_time,-,
+1317,length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1318,length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1319,xideqint4,11,10,12,f,f,t,f,i,2,16,f,28 23,,,,xideq,-,
+1326,interval_div,11,10,12,f,f,t,f,i,2,1186,f,1186 701,,,,interval_div,-,
+1339,dlog10,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog10,-,
+1340,log,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog10,-,
+1341,ln,11,10,12,f,f,t,f,i,1,701,f,701,,,,dlog1,-,
+1342,round,11,10,12,f,f,t,f,i,1,701,f,701,,,,dround,-,
+1343,trunc,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtrunc,-,
+1344,sqrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsqrt,-,
+1345,cbrt,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcbrt,-,
+1346,pow,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+1368,power,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,dpow,-,
+1347,exp,11,10,12,f,f,t,f,i,1,701,f,701,,,,dexp,-,
+1348,obj_description,11,10,14,f,f,t,f,s,1,25,f,26,,,,select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0,-,
+1349,oidvectortypes,11,10,12,f,f,t,f,s,1,25,f,30,,,,oidvectortypes,-,
+1350,timetz_in,11,10,12,f,f,t,f,s,3,1266,f,2275 26 23,,,,timetz_in,-,
+1351,timetz_out,11,10,12,f,f,t,f,i,1,2275,f,1266,,,,timetz_out,-,
+1352,timetz_eq,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_eq,-,
+1353,timetz_ne,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_ne,-,
+1354,timetz_lt,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_lt,-,
+1355,timetz_le,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_le,-,
+1356,timetz_ge,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_ge,-,
+1357,timetz_gt,11,10,12,f,f,t,f,i,2,16,f,1266 1266,,,,timetz_gt,-,
+1358,timetz_cmp,11,10,12,f,f,t,f,i,2,23,f,1266 1266,,,,timetz_cmp,-,
+1359,timestamptz,11,10,12,f,f,t,f,i,2,1184,f,1082 1266,,,,datetimetz_timestamptz,-,
+1364,time,11,10,14,f,f,t,f,s,1,1083,f,702,,,,select cast(cast($1 as timestamp without time zone) as time),-,
+1367,character_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1369,character_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1370,interval,11,10,12,f,f,t,f,i,1,1186,f,1083,,,,time_interval,-,
+1372,char_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharlen,-,
+1373,array_type_length_coerce,11,10,12,f,f,t,f,s,3,2277,f,2277 23 16,,,,array_type_length_coerce,-,
+1374,octet_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textoctetlen,-,
+1375,octet_length,11,10,12,f,f,t,f,i,1,23,f,1042,,,,bpcharoctetlen,-,
+1377,time_larger,11,10,12,f,f,t,f,i,2,1083,f,1083 1083,,,,time_larger,-,
+1378,time_smaller,11,10,12,f,f,t,f,i,2,1083,f,1083 1083,,,,time_smaller,-,
+1379,timetz_larger,11,10,12,f,f,t,f,i,2,1266,f,1266 1266,,,,timetz_larger,-,
+1380,timetz_smaller,11,10,12,f,f,t,f,i,2,1266,f,1266 1266,,,,timetz_smaller,-,
+1381,char_length,11,10,12,f,f,t,f,i,1,23,f,25,,,,textlen,-,
+1382,date_part,11,10,14,f,f,t,f,s,2,701,f,25 702,,,,"select pg_catalog.date_part($1, cast($2 as timestamp with time zone))",-,
+1383,date_part,11,10,14,f,f,t,f,s,2,701,f,25 703,,,,"select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))",-,
+1384,date_part,11,10,14,f,f,t,f,i,2,701,f,25 1082,,,,"select pg_catalog.date_part($1, cast($2 as timestamp without time zone))",-,
+1385,date_part,11,10,12,f,f,t,f,i,2,701,f,25 1083,,,,time_part,-,
+1386,age,11,10,14,f,f,t,f,s,1,1186,f,1184,,,,"select pg_catalog.age(cast(current_date as timestamp with time zone), $1)",-,
+1388,timetz,11,10,12,f,f,t,f,s,1,1266,f,1184,,,,timestamptz_timetz,-,
+1389,isfinite,11,10,12,f,f,t,f,i,1,16,f,1184,,,,timestamp_finite,-,
+1390,isfinite,11,10,12,f,f,t,f,i,1,16,f,1186,,,,interval_finite,-,
+1376,factorial,11,10,12,f,f,t,f,i,1,1700,f,20,,,,numeric_fac,-,
+1394,abs,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4abs,-,
+1395,abs,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8abs,-,
+1396,abs,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8abs,-,
+1397,abs,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4abs,-,
+1398,abs,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2abs,-,
+1400,name,11,10,12,f,f,t,f,i,1,19,f,1043,,,,text_name,-,
+1401,varchar,11,10,12,f,f,t,f,i,1,1043,f,19,,,,name_text,-,
+1402,current_schema,11,10,12,f,f,t,f,s,0,19,f,"",,,,current_schema,-,
+1403,current_schemas,11,10,12,f,f,t,f,s,1,1003,f,16,,,,current_schemas,-,
+1404,overlay,11,10,14,f,f,t,f,i,4,25,f,25 25 23 23,,,,"select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + $4))",-,
+1405,overlay,11,10,14,f,f,t,f,i,3,25,f,25 25 23,,,,"select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + pg_catalog.char_length($2)))",-,
+1406,isvertical,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_vert,-,
+1407,ishorizontal,11,10,12,f,f,t,f,i,2,16,f,600 600,,,,point_horiz,-,
+1408,isparallel,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_parallel,-,
+1409,isperp,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_perp,-,
+1410,isvertical,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_vertical,-,
+1411,ishorizontal,11,10,12,f,f,t,f,i,1,16,f,601,,,,lseg_horizontal,-,
+1412,isparallel,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_parallel,-,
+1413,isperp,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_perp,-,
+1414,isvertical,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_vertical,-,
+1415,ishorizontal,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_horizontal,-,
+1416,point,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1417,isnottrue,11,10,12,f,f,f,f,i,1,16,f,16,,,,isnottrue,-,
+1418,isnotfalse,11,10,12,f,f,f,f,i,1,16,f,16,,,,isnotfalse,-,
+1419,time,11,10,12,f,f,t,f,i,1,1083,f,1186,,,,interval_time,-,
+1421,box,11,10,12,f,f,t,f,i,2,603,f,600 600,,,,points_box,-,
+1422,box_add,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_add,-,
+1423,box_sub,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_sub,-,
+1424,box_mul,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_mul,-,
+1425,box_div,11,10,12,f,f,t,f,i,2,603,f,603 600,,,,box_div,-,
+1426,path_contain_pt,11,10,14,f,f,t,f,i,2,16,f,602 600,,,,"select pg_catalog.on_ppath($2, $1)",-,
+1428,poly_contain_pt,11,10,12,f,f,t,f,i,2,16,f,604 600,,,,poly_contain_pt,-,
+1429,pt_contained_poly,11,10,12,f,f,t,f,i,2,16,f,600 604,,,,pt_contained_poly,-,
+1430,isclosed,11,10,12,f,f,t,f,i,1,16,f,602,,,,path_isclosed,-,
+1431,isopen,11,10,12,f,f,t,f,i,1,16,f,602,,,,path_isopen,-,
+1432,path_npoints,11,10,12,f,f,t,f,i,1,23,f,602,,,,path_npoints,-,
+1433,pclose,11,10,12,f,f,t,f,i,1,602,f,602,,,,path_close,-,
+1434,popen,11,10,12,f,f,t,f,i,1,602,f,602,,,,path_open,-,
+1435,path_add,11,10,12,f,f,t,f,i,2,602,f,602 602,,,,path_add,-,
+1436,path_add_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_add_pt,-,
+1437,path_sub_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_sub_pt,-,
+1438,path_mul_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_mul_pt,-,
+1439,path_div_pt,11,10,12,f,f,t,f,i,2,602,f,602 600,,,,path_div_pt,-,
+1440,point,11,10,12,f,f,t,f,i,2,600,f,701 701,,,,construct_point,-,
+1441,point_add,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_add,-,
+1442,point_sub,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_sub,-,
+1443,point_mul,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_mul,-,
+1444,point_div,11,10,12,f,f,t,f,i,2,600,f,600 600,,,,point_div,-,
+1445,poly_npoints,11,10,12,f,f,t,f,i,1,23,f,604,,,,poly_npoints,-,
+1446,box,11,10,12,f,f,t,f,i,1,603,f,604,,,,poly_box,-,
+1447,path,11,10,12,f,f,t,f,i,1,602,f,604,,,,poly_path,-,
+1448,polygon,11,10,12,f,f,t,f,i,1,604,f,603,,,,box_poly,-,
+1449,polygon,11,10,12,f,f,t,f,i,1,604,f,602,,,,path_poly,-,
+1450,circle_in,11,10,12,f,f,t,f,i,1,718,f,2275,,,,circle_in,-,
+1451,circle_out,11,10,12,f,f,t,f,i,1,2275,f,718,,,,circle_out,-,
+1452,circle_same,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_same,-,
+1453,circle_contain,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_contain,-,
+1454,circle_left,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_left,-,
+1455,circle_overleft,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overleft,-,
+1456,circle_overright,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overright,-,
+1457,circle_right,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_right,-,
+1458,circle_contained,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_contained,-,
+1459,circle_overlap,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_overlap,-,
+1460,circle_below,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_below,-,
+1461,circle_above,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_above,-,
+1462,circle_eq,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_eq,-,
+1463,circle_ne,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_ne,-,
+1464,circle_lt,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_lt,-,
+1465,circle_gt,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_gt,-,
+1466,circle_le,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_le,-,
+1467,circle_ge,11,10,12,f,f,t,f,i,2,16,f,718 718,,,,circle_ge,-,
+1468,area,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_area,-,
+1469,diameter,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_diameter,-,
+1470,radius,11,10,12,f,f,t,f,i,1,701,f,718,,,,circle_radius,-,
+1471,circle_distance,11,10,12,f,f,t,f,i,2,701,f,718 718,,,,circle_distance,-,
+1472,circle_center,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1473,circle,11,10,12,f,f,t,f,i,2,718,f,600 701,,,,cr_circle,-,
+1474,circle,11,10,12,f,f,t,f,i,1,718,f,604,,,,poly_circle,-,
+1475,polygon,11,10,12,f,f,t,f,i,2,604,f,23 718,,,,circle_poly,-,
+1476,dist_pc,11,10,12,f,f,t,f,i,2,701,f,600 718,,,,dist_pc,-,
+1477,circle_contain_pt,11,10,12,f,f,t,f,i,2,16,f,718 600,,,,circle_contain_pt,-,
+1478,pt_contained_circle,11,10,12,f,f,t,f,i,2,16,f,600 718,,,,pt_contained_circle,-,
+1479,circle,11,10,12,f,f,t,f,i,1,718,f,603,,,,box_circle,-,
+1480,box,11,10,12,f,f,t,f,i,1,603,f,718,,,,circle_box,-,
+1481,tinterval,11,10,12,f,f,t,f,i,2,704,f,702 702,,,,mktinterval,-,
+1482,lseg_ne,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_ne,-,
+1483,lseg_lt,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_lt,-,
+1484,lseg_le,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_le,-,
+1485,lseg_gt,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_gt,-,
+1486,lseg_ge,11,10,12,f,f,t,f,i,2,16,f,601 601,,,,lseg_ge,-,
+1487,lseg_length,11,10,12,f,f,t,f,i,1,701,f,601,,,,lseg_length,-,
+1488,close_ls,11,10,12,f,f,t,f,i,2,600,f,628 601,,,,close_ls,-,
+1489,close_lseg,11,10,12,f,f,t,f,i,2,600,f,601 601,,,,close_lseg,-,
+1490,line_in,11,10,12,f,f,t,f,i,1,628,f,2275,,,,line_in,-,
+1491,line_out,11,10,12,f,f,t,f,i,1,2275,f,628,,,,line_out,-,
+1492,line_eq,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_eq,-,
+1493,line,11,10,12,f,f,t,f,i,2,628,f,600 600,,,,line_construct_pp,-,
+1494,line_interpt,11,10,12,f,f,t,f,i,2,600,f,628 628,,,,line_interpt,-,
+1495,line_intersect,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_intersect,-,
+1496,line_parallel,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_parallel,-,
+1497,line_perp,11,10,12,f,f,t,f,i,2,16,f,628 628,,,,line_perp,-,
+1498,line_vertical,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_vertical,-,
+1499,line_horizontal,11,10,12,f,f,t,f,i,1,16,f,628,,,,line_horizontal,-,
+1530,length,11,10,12,f,f,t,f,i,1,701,f,601,,,,lseg_length,-,
+1531,length,11,10,12,f,f,t,f,i,1,701,f,602,,,,path_length,-,
+1532,point,11,10,12,f,f,t,f,i,1,600,f,601,,,,lseg_center,-,
+1533,point,11,10,12,f,f,t,f,i,1,600,f,602,,,,path_center,-,
+1534,point,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+1540,point,11,10,12,f,f,t,f,i,1,600,f,604,,,,poly_center,-,
+1541,lseg,11,10,12,f,f,t,f,i,1,601,f,603,,,,box_diagonal,-,
+1542,center,11,10,12,f,f,t,f,i,1,600,f,603,,,,box_center,-,
+1543,center,11,10,12,f,f,t,f,i,1,600,f,718,,,,circle_center,-,
+1544,polygon,11,10,14,f,f,t,f,i,1,604,f,718,,,,"select pg_catalog.polygon(12, $1)",-,
+1545,npoints,11,10,12,f,f,t,f,i,1,23,f,602,,,,path_npoints,-,
+1556,npoints,11,10,12,f,f,t,f,i,1,23,f,604,,,,poly_npoints,-,
+1564,bit_in,11,10,12,f,f,t,f,i,3,1560,f,2275 26 23,,,,bit_in,-,
+1565,bit_out,11,10,12,f,f,t,f,i,1,2275,f,1560,,,,bit_out,-,
+1569,like,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textlike,-,
+1570,notlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,textnlike,-,
+1571,like,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namelike,-,
+1572,notlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,namenlike,-,
+1574,nextval,11,10,12,f,f,t,f,v,1,20,f,2205,,,,nextval_oid,-,
+1575,currval,11,10,12,f,f,t,f,v,1,20,f,2205,,,,currval_oid,-,
+1576,setval,11,10,12,f,f,t,f,v,2,20,f,2205 20,,,,setval_oid,-,
+1765,setval,11,10,12,f,f,t,f,v,3,20,f,2205 20 16,,,,setval3_oid,-,
+1579,varbit_in,11,10,12,f,f,t,f,i,3,1562,f,2275 26 23,,,,varbit_in,-,
+1580,varbit_out,11,10,12,f,f,t,f,i,1,2275,f,1562,,,,varbit_out,-,
+1581,biteq,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,biteq,-,
+1582,bitne,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitne,-,
+1592,bitge,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitge,-,
+1593,bitgt,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitgt,-,
+1594,bitle,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitle,-,
+1595,bitlt,11,10,12,f,f,t,f,i,2,16,f,1560 1560,,,,bitlt,-,
+1596,bitcmp,11,10,12,f,f,t,f,i,2,23,f,1560 1560,,,,bitcmp,-,
+1598,random,11,10,12,f,f,t,f,v,0,701,f,"",,,,drandom,-,
+1599,setseed,11,10,12,f,f,t,f,v,1,23,f,701,,,,setseed,-,
+1600,asin,11,10,12,f,f,t,f,i,1,701,f,701,,,,dasin,-,
+1601,acos,11,10,12,f,f,t,f,i,1,701,f,701,,,,dacos,-,
+1602,atan,11,10,12,f,f,t,f,i,1,701,f,701,,,,datan,-,
+1603,atan2,11,10,12,f,f,t,f,i,2,701,f,701 701,,,,datan2,-,
+1604,sin,11,10,12,f,f,t,f,i,1,701,f,701,,,,dsin,-,
+1605,cos,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcos,-,
+1606,tan,11,10,12,f,f,t,f,i,1,701,f,701,,,,dtan,-,
+1607,cot,11,10,12,f,f,t,f,i,1,701,f,701,,,,dcot,-,
+1608,degrees,11,10,12,f,f,t,f,i,1,701,f,701,,,,degrees,-,
+1609,radians,11,10,12,f,f,t,f,i,1,701,f,701,,,,radians,-,
+1610,pi,11,10,12,f,f,t,f,i,0,701,f,"",,,,dpi,-,
+1618,interval_mul,11,10,12,f,f,t,f,i,2,1186,f,1186 701,,,,interval_mul,-,
+1620,ascii,11,10,12,f,f,t,f,i,1,23,f,25,,,,ascii,-,
+1621,chr,11,10,12,f,f,t,f,i,1,25,f,23,,,,chr,-,
+1622,repeat,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,repeat,-,
+1623,similar_escape,11,10,12,f,f,f,f,i,2,25,f,25 25,,,,similar_escape,-,
+1624,mul_d_interval,11,10,12,f,f,t,f,i,2,1186,f,701 1186,,,,mul_d_interval,-,
+1631,bpcharlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textlike,-,
+1632,bpcharnlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textnlike,-,
+1633,texticlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticlike,-,
+1634,texticnlike,11,10,12,f,f,t,f,i,2,16,f,25 25,,,,texticnlike,-,
+1635,nameiclike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameiclike,-,
+1636,nameicnlike,11,10,12,f,f,t,f,i,2,16,f,19 25,,,,nameicnlike,-,
+1637,like_escape,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,like_escape,-,
+1656,bpcharicregexeq,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticregexeq,-,
+1657,bpcharicregexne,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticregexne,-,
+1658,bpcharregexeq,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textregexeq,-,
+1659,bpcharregexne,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,textregexne,-,
+1660,bpchariclike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticlike,-,
+1661,bpcharicnlike,11,10,12,f,f,t,f,i,2,16,f,1042 25,,,,texticnlike,-,
+1689,flatfile_update_trigger,11,10,12,f,f,t,f,v,0,2279,f,"",,,,flatfile_update_trigger,-,
+868,strpos,11,10,12,f,f,t,f,i,2,23,f,25 25,,,,textpos,-,
+870,lower,11,10,12,f,f,t,f,i,1,25,f,25,,,,lower,-,
+871,upper,11,10,12,f,f,t,f,i,1,25,f,25,,,,upper,-,
+872,initcap,11,10,12,f,f,t,f,i,1,25,f,25,,,,initcap,-,
+873,lpad,11,10,12,f,f,t,f,i,3,25,f,25 23 25,,,,lpad,-,
+874,rpad,11,10,12,f,f,t,f,i,3,25,f,25 23 25,,,,rpad,-,
+875,ltrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,ltrim,-,
+876,rtrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,rtrim,-,
+877,substr,11,10,12,f,f,t,f,i,3,25,f,25 23 23,,,,text_substr,-,
+878,translate,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,translate,-,
+879,lpad,11,10,14,f,f,t,f,i,2,25,f,25 23,,,,"select pg_catalog.lpad($1, $2, ' ')",-,
+880,rpad,11,10,14,f,f,t,f,i,2,25,f,25 23,,,,"select pg_catalog.rpad($1, $2, ' ')",-,
+881,ltrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,ltrim1,-,
+882,rtrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,rtrim1,-,
+883,substr,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,text_substr_no_len,-,
+884,btrim,11,10,12,f,f,t,f,i,2,25,f,25 25,,,,btrim,-,
+885,btrim,11,10,12,f,f,t,f,i,1,25,f,25,,,,btrim1,-,
+936,substring,11,10,12,f,f,t,f,i,3,25,f,25 23 23,,,,text_substr,-,
+937,substring,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,text_substr_no_len,-,
+2087,replace,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,replace_text,-,
+2284,regexp_replace,11,10,12,f,f,t,f,i,3,25,f,25 25 25,,,,textregexreplace_noopt,-,
+2285,regexp_replace,11,10,12,f,f,t,f,i,4,25,f,25 25 25 25,,,,textregexreplace,-,
+5018,regexp_matches,11,10,12,f,f,t,t,i,2,1009,f,25 25,,,,regexp_matches_no_flags,-,
+5019,regexp_matches,11,10,12,f,f,t,t,i,3,1009,f,25 25 25,,,,regexp_matches,-,
+5020,regexp_split_to_table,11,10,12,f,f,t,t,i,2,25,f,25 25,,,,regexp_split_to_table_no_flags,-,
+5021,regexp_split_to_table,11,10,12,f,f,t,t,i,3,25,f,25 25 25,,,,regexp_split_to_table,-,
+5022,regexp_split_to_array,11,10,12,f,f,t,f,i,2,1009,f,25 25,,,,regexp_split_to_array_no_flags,-,
+5023,regexp_split_to_array,11,10,12,f,f,t,f,i,3,1009,f,25 25 25,,,,regexp_split_to_array,-,
+2088,split_part,11,10,12,f,f,t,f,i,3,25,f,25 25 23,,,,split_text,-,
+2089,to_hex,11,10,12,f,f,t,f,i,1,25,f,23,,,,to_hex32,-,
+2090,to_hex,11,10,12,f,f,t,f,i,1,25,f,20,,,,to_hex64,-,
+1039,getdatabaseencoding,11,10,12,f,f,t,f,s,0,19,f,"",,,,getdatabaseencoding,-,
+810,pg_client_encoding,11,10,12,f,f,t,f,s,0,19,f,"",,,,pg_client_encoding,-,
+1717,convert,11,10,12,f,f,t,f,s,2,25,f,25 19,,,,pg_convert,-,
+1813,convert,11,10,12,f,f,t,f,s,3,25,f,25 19 19,,,,pg_convert2,-,
+1619,convert_using,11,10,12,f,f,t,f,s,2,25,f,25 25,,,,pg_convert_using,-,
+1264,pg_char_to_encoding,11,10,12,f,f,t,f,s,1,23,f,19,,,,PG_char_to_encoding,-,
+1597,pg_encoding_to_char,11,10,12,f,f,t,f,s,1,19,f,23,,,,PG_encoding_to_char,-,
+1638,oidgt,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidgt,-,
+1639,oidge,11,10,12,f,f,t,f,i,2,16,f,26 26,,,,oidge,-,
+1573,pg_get_ruledef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_ruledef,-,
+1640,pg_get_viewdef,11,10,12,f,f,t,f,s,1,25,f,25,,,,pg_get_viewdef_name,-,
+1641,pg_get_viewdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_viewdef,-,
+1642,pg_get_userbyid,11,10,12,f,f,t,f,s,1,19,f,26,,,,pg_get_userbyid,-,
+1643,pg_get_indexdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_indexdef,-,
+1662,pg_get_triggerdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_triggerdef,-,
+1387,pg_get_constraintdef,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_constraintdef,-,
+1716,pg_get_expr,11,10,12,f,f,t,f,s,2,25,f,25 26,,,,pg_get_expr,-,
+1665,pg_get_serial_sequence,11,10,12,f,f,t,f,s,2,25,f,25 25,,,,pg_get_serial_sequence,-,
+5024,pg_get_partition_def,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_partition_def,-,
+5025,pg_get_partition_def,11,10,12,f,f,t,f,s,2,25,f,26 16,,,,pg_get_partition_def_ext,-,
+5027,pg_get_partition_rule_def,11,10,12,f,f,t,f,s,1,25,f,26,,,,pg_get_partition_rule_def,-,
+5028,pg_get_partition_rule_def,11,10,12,f,f,t,f,s,2,25,f,26 16,,,,pg_get_partition_rule_def_ext,-,
+1644,RI_FKey_check_ins,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_check_ins,-,
+1645,RI_FKey_check_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_check_upd,-,
+1646,RI_FKey_cascade_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_cascade_del,-,
+1647,RI_FKey_cascade_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_cascade_upd,-,
+1648,RI_FKey_restrict_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_restrict_del,-,
+1649,RI_FKey_restrict_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_restrict_upd,-,
+1650,RI_FKey_setnull_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setnull_del,-,
+1651,RI_FKey_setnull_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setnull_upd,-,
+1652,RI_FKey_setdefault_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setdefault_del,-,
+1653,RI_FKey_setdefault_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_setdefault_upd,-,
+1654,RI_FKey_noaction_del,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_noaction_del,-,
+1655,RI_FKey_noaction_upd,11,10,12,f,f,t,f,v,0,2279,f,"",,,,RI_FKey_noaction_upd,-,
+1666,varbiteq,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,biteq,-,
+1667,varbitne,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitne,-,
+1668,varbitge,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitge,-,
+1669,varbitgt,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitgt,-,
+1670,varbitle,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitle,-,
+1671,varbitlt,11,10,12,f,f,t,f,i,2,16,f,1562 1562,,,,bitlt,-,
+1672,varbitcmp,11,10,12,f,f,t,f,i,2,23,f,1562 1562,,,,bitcmp,-,
+1673,bitand,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitand,-,
+1674,bitor,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitor,-,
+1675,bitxor,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitxor,-,
+1676,bitnot,11,10,12,f,f,t,f,i,1,1560,f,1560,,,,bitnot,-,
+1677,bitshiftleft,11,10,12,f,f,t,f,i,2,1560,f,1560 23,,,,bitshiftleft,-,
+1678,bitshiftright,11,10,12,f,f,t,f,i,2,1560,f,1560 23,,,,bitshiftright,-,
+1679,bitcat,11,10,12,f,f,t,f,i,2,1560,f,1560 1560,,,,bitcat,-,
+1680,substring,11,10,12,f,f,t,f,i,3,1560,f,1560 23 23,,,,bitsubstr,-,
+1681,length,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bitlength,-,
+1682,octet_length,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bitoctetlength,-,
+1683,bit,11,10,12,f,f,t,f,i,2,1560,f,23 23,,,,bitfromint4,-,
+1684,int4,11,10,12,f,f,t,f,i,1,23,f,1560,,,,bittoint4,-,
+1685,bit,11,10,12,f,f,t,f,i,3,1560,f,1560 23 16,,,,bit,-,
+1687,varbit,11,10,12,f,f,t,f,i,3,1562,f,1562 23 16,,,,varbit,-,
+1698,position,11,10,12,f,f,t,f,i,2,23,f,1560 1560,,,,bitposition,-,
+1699,substring,11,10,14,f,f,t,f,i,2,1560,f,1560 23,,,,"select pg_catalog.substring($1, $2, -1)",-,
+436,macaddr_in,11,10,12,f,f,t,f,i,1,829,f,2275,,,,macaddr_in,-,
+437,macaddr_out,11,10,12,f,f,t,f,i,1,2275,f,829,,,,macaddr_out,-,
+752,text,11,10,12,f,f,t,f,i,1,25,f,829,,,,macaddr_text,-,
+753,trunc,11,10,12,f,f,t,f,i,1,829,f,829,,,,macaddr_trunc,-,
+767,macaddr,11,10,12,f,f,t,f,i,1,829,f,25,,,,text_macaddr,-,
+830,macaddr_eq,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_eq,-,
+831,macaddr_lt,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_lt,-,
+832,macaddr_le,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_le,-,
+833,macaddr_gt,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_gt,-,
+834,macaddr_ge,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_ge,-,
+835,macaddr_ne,11,10,12,f,f,t,f,i,2,16,f,829 829,,,,macaddr_ne,-,
+836,macaddr_cmp,11,10,12,f,f,t,f,i,2,23,f,829 829,,,,macaddr_cmp,-,
+910,inet_in,11,10,12,f,f,t,f,i,1,869,f,2275,,,,inet_in,-,
+911,inet_out,11,10,12,f,f,t,f,i,1,2275,f,869,,,,inet_out,-,
+1267,cidr_in,11,10,12,f,f,t,f,i,1,650,f,2275,,,,cidr_in,-,
+1427,cidr_out,11,10,12,f,f,t,f,i,1,2275,f,650,,,,cidr_out,-,
+920,network_eq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_eq,-,
+921,network_lt,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_lt,-,
+922,network_le,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_le,-,
+923,network_gt,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_gt,-,
+924,network_ge,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_ge,-,
+925,network_ne,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_ne,-,
+926,network_cmp,11,10,12,f,f,t,f,i,2,23,f,869 869,,,,network_cmp,-,
+927,network_sub,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_sub,-,
+928,network_subeq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_subeq,-,
+929,network_sup,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_sup,-,
+930,network_supeq,11,10,12,f,f,t,f,i,2,16,f,869 869,,,,network_supeq,-,
+598,abbrev,11,10,12,f,f,t,f,i,1,25,f,869,,,,inet_abbrev,-,
+599,abbrev,11,10,12,f,f,t,f,i,1,25,f,650,,,,cidr_abbrev,-,
+605,set_masklen,11,10,12,f,f,t,f,i,2,869,f,869 23,,,,inet_set_masklen,-,
+635,set_masklen,11,10,12,f,f,t,f,i,2,650,f,650 23,,,,cidr_set_masklen,-,
+711,family,11,10,12,f,f,t,f,i,1,23,f,869,,,,network_family,-,
+683,network,11,10,12,f,f,t,f,i,1,650,f,869,,,,network_network,-,
+696,netmask,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_netmask,-,
+697,masklen,11,10,12,f,f,t,f,i,1,23,f,869,,,,network_masklen,-,
+698,broadcast,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_broadcast,-,
+699,host,11,10,12,f,f,t,f,i,1,25,f,869,,,,network_host,-,
+730,text,11,10,12,f,f,t,f,i,1,25,f,869,,,,network_show,-,
+1362,hostmask,11,10,12,f,f,t,f,i,1,869,f,869,,,,network_hostmask,-,
+1713,inet,11,10,12,f,f,t,f,i,1,869,f,25,,,,text_inet,-,
+1714,cidr,11,10,12,f,f,t,f,i,1,650,f,25,,,,text_cidr,-,
+1715,cidr,11,10,12,f,f,t,f,i,1,650,f,869,,,,inet_to_cidr,-,
+2196,inet_client_addr,11,10,12,f,f,f,f,s,0,869,f,"",,,,inet_client_addr,-,
+2197,inet_client_port,11,10,12,f,f,f,f,s,0,23,f,"",,,,inet_client_port,-,
+2198,inet_server_addr,11,10,12,f,f,f,f,s,0,869,f,"",,,,inet_server_addr,-,
+2199,inet_server_port,11,10,12,f,f,f,f,s,0,23,f,"",,,,inet_server_port,-,
+2627,inetnot,11,10,12,f,f,t,f,i,1,869,f,869,,,,inetnot,-,
+2628,inetand,11,10,12,f,f,t,f,i,2,869,f,869 869,,,,inetand,-,
+2629,inetor,11,10,12,f,f,t,f,i,2,869,f,869 869,,,,inetor,-,
+2630,inetpl,11,10,12,f,f,t,f,i,2,869,f,869 20,,,,inetpl,-,
+2631,int8pl_inet,11,10,14,f,f,t,f,i,2,869,f,20 869,,,,select $2 + $1,-,
+2632,inetmi_int8,11,10,12,f,f,t,f,i,2,869,f,869 20,,,,inetmi_int8,-,
+2633,inetmi,11,10,12,f,f,t,f,i,2,20,f,869 869,,,,inetmi,-,
+1686,numeric,11,10,12,f,f,t,f,i,1,1700,f,25,,,,text_numeric,-,
+1688,text,11,10,12,f,f,t,f,i,1,25,f,1700,,,,numeric_text,-,
+1690,time_mi_time,11,10,12,f,f,t,f,i,2,1186,f,1083 1083,,,,time_mi_time,-,
+1691,boolle,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolle,-,
+1692,boolge,11,10,12,f,f,t,f,i,2,16,f,16 16,,,,boolge,-,
+1693,btboolcmp,11,10,12,f,f,t,f,i,2,23,f,16 16,,,,btboolcmp,-,
+1696,timetz_hash,11,10,12,f,f,t,f,i,1,23,f,1266,,,,timetz_hash,-,
+1697,interval_hash,11,10,12,f,f,t,f,i,1,23,f,1186,,,,interval_hash,-,
+1701,numeric_in,11,10,12,f,f,t,f,i,3,1700,f,2275 26 23,,,,numeric_in,-,
+1702,numeric_out,11,10,12,f,f,t,f,i,1,2275,f,1700,,,,numeric_out,-,
+1703,numeric,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric,-,
+1704,numeric_abs,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_abs,-,
+1705,abs,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_abs,-,
+1706,sign,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sign,-,
+1707,round,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric_round,-,
+1708,round,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.round($1,0)",-,
+1709,trunc,11,10,12,f,f,t,f,i,2,1700,f,1700 23,,,,numeric_trunc,-,
+1710,trunc,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.trunc($1,0)",-,
+1711,ceil,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ceil,-,
+2167,ceiling,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ceil,-,
+1712,floor,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_floor,-,
+1718,numeric_eq,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_eq,-,
+1719,numeric_ne,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_ne,-,
+1720,numeric_gt,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_gt,-,
+1721,numeric_ge,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_ge,-,
+1722,numeric_lt,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_lt,-,
+1723,numeric_le,11,10,12,f,f,t,f,i,2,16,f,1700 1700,,,,numeric_le,-,
+1724,numeric_add,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_add,-,
+1725,numeric_sub,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_sub,-,
+1726,numeric_mul,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mul,-,
+1727,numeric_div,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_div,-,
+1728,mod,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mod,-,
+1729,numeric_mod,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_mod,-,
+1730,sqrt,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sqrt,-,
+1731,numeric_sqrt,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_sqrt,-,
+1732,exp,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_exp,-,
+1733,numeric_exp,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_exp,-,
+1734,ln,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ln,-,
+1735,numeric_ln,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_ln,-,
+1736,log,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_log,-,
+1737,numeric_log,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_log,-,
+1738,pow,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+2169,power,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+1739,numeric_power,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_power,-,
+1740,numeric,11,10,12,f,f,t,f,i,1,1700,f,23,,,,int4_numeric,-,
+1741,log,11,10,14,f,f,t,f,i,1,1700,f,1700,,,,"select pg_catalog.log(10, $1)",-,
+1742,numeric,11,10,12,f,f,t,f,i,1,1700,f,700,,,,float4_numeric,-,
+1743,numeric,11,10,12,f,f,t,f,i,1,1700,f,701,,,,float8_numeric,-,
+1744,int4,11,10,12,f,f,t,f,i,1,23,f,1700,,,,numeric_int4,-,
+1745,float4,11,10,12,f,f,t,f,i,1,700,f,1700,,,,numeric_float4,-,
+1746,float8,11,10,12,f,f,t,f,i,1,701,f,1700,,,,numeric_float8,-,
+2170,width_bucket,11,10,12,f,f,t,f,i,4,23,f,1700 1700 1700 23,,,,width_bucket_numeric,-,
+1747,time_pl_interval,11,10,12,f,f,t,f,i,2,1083,f,1083 1186,,,,time_pl_interval,-,
+1748,time_mi_interval,11,10,12,f,f,t,f,i,2,1083,f,1083 1186,,,,time_mi_interval,-,
+1749,timetz_pl_interval,11,10,12,f,f,t,f,i,2,1266,f,1266 1186,,,,timetz_pl_interval,-,
+1750,timetz_mi_interval,11,10,12,f,f,t,f,i,2,1266,f,1266 1186,,,,timetz_mi_interval,-,
+1764,numeric_inc,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_inc,-,
+1004,numeric_dec,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_dec,-,
+1766,numeric_smaller,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_smaller,-,
+1767,numeric_larger,11,10,12,f,f,t,f,i,2,1700,f,1700 1700,,,,numeric_larger,-,
+1769,numeric_cmp,11,10,12,f,f,t,f,i,2,23,f,1700 1700,,,,numeric_cmp,-,
+1771,numeric_uminus,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_uminus,-,
+1779,int8,11,10,12,f,f,t,f,i,1,20,f,1700,,,,numeric_int8,-,
+1781,numeric,11,10,12,f,f,t,f,i,1,1700,f,20,,,,int8_numeric,-,
+1782,numeric,11,10,12,f,f,t,f,i,1,1700,f,21,,,,int2_numeric,-,
+1783,int2,11,10,12,f,f,t,f,i,1,21,f,1700,,,,numeric_int2,-,
+1770,to_char,11,10,12,f,f,t,f,s,2,25,f,1184 25,,,,timestamptz_to_char,-,
+1772,to_char,11,10,12,f,f,t,f,s,2,25,f,1700 25,,,,numeric_to_char,-,
+1773,to_char,11,10,12,f,f,t,f,s,2,25,f,23 25,,,,int4_to_char,-,
+1774,to_char,11,10,12,f,f,t,f,s,2,25,f,20 25,,,,int8_to_char,-,
+1775,to_char,11,10,12,f,f,t,f,s,2,25,f,700 25,,,,float4_to_char,-,
+1776,to_char,11,10,12,f,f,t,f,s,2,25,f,701 25,,,,float8_to_char,-,
+1777,to_number,11,10,12,f,f,t,f,s,2,1700,f,25 25,,,,numeric_to_number,-,
+1778,to_timestamp,11,10,12,f,f,t,f,s,2,1184,f,25 25,,,,to_timestamp,-,
+1780,to_date,11,10,12,f,f,t,f,s,2,1082,f,25 25,,,,to_date,-,
+1768,to_char,11,10,12,f,f,t,f,s,2,25,f,1186 25,,,,interval_to_char,-,
+1282,quote_ident,11,10,12,f,f,t,f,i,1,25,f,25,,,,quote_ident,-,
+1283,quote_literal,11,10,12,f,f,t,f,i,1,25,f,25,,,,quote_literal,-,
+1798,oidin,11,10,12,f,f,t,f,i,1,26,f,2275,,,,oidin,-,
+1799,oidout,11,10,12,f,f,t,f,i,1,2275,f,26,,,,oidout,-,
+1810,bit_length,11,10,14,f,f,t,f,i,1,23,f,17,,,,select pg_catalog.octet_length($1) * 8,-,
+1811,bit_length,11,10,14,f,f,t,f,i,1,23,f,25,,,,select pg_catalog.octet_length($1) * 8,-,
+1812,bit_length,11,10,14,f,f,t,f,i,1,23,f,1560,,,,select pg_catalog.length($1),-,
+1814,iclikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,iclikesel,-,
+1815,icnlikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icnlikesel,-,
+1816,iclikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,iclikejoinsel,-,
+1817,icnlikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icnlikejoinsel,-,
+1818,regexeqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,regexeqsel,-,
+1819,likesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,likesel,-,
+1820,icregexeqsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icregexeqsel,-,
+1821,regexnesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,regexnesel,-,
+1822,nlikesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,nlikesel,-,
+1823,icregexnesel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 23,,,,icregexnesel,-,
+1824,regexeqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,regexeqjoinsel,-,
+1825,likejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,likejoinsel,-,
+1826,icregexeqjoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icregexeqjoinsel,-,
+1827,regexnejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,regexnejoinsel,-,
+1828,nlikejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,nlikejoinsel,-,
+1829,icregexnejoinsel,11,10,12,f,f,t,f,s,4,701,f,2281 26 2281 21,,,,icregexnejoinsel,-,
+1830,float8_avg,11,10,12,f,f,t,f,i,1,701,f,17,,,,float8_avg,-,
+2512,float8_var_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_var_pop,-,
+1831,float8_var_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_var_samp,-,
+2513,float8_stddev_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_stddev_pop,-,
+1832,float8_stddev_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_stddev_samp,-,
+1833,numeric_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 1700,,,,numeric_accum,-,
+3102,numeric_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 1700,,,,numeric_avg_accum,-,
+7309,numeric_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 1700,,,,numeric_decum,-,
+3103,numeric_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 1700,,,,numeric_avg_decum,-,
+1834,int2_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 21,,,,int2_accum,-,
+1835,int4_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 23,,,,int4_accum,-,
+1836,int8_accum,11,10,12,f,f,t,f,i,2,1231,f,1231 20,,,,int8_accum,-,
+7306,int2_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 21,,,,int2_decum,-,
+7307,int4_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 23,,,,int4_decum,-,
+7308,int8_decum,11,10,12,f,f,t,f,i,2,1231,f,1231 20,,,,int8_decum,-,
+1837,numeric_avg,11,10,12,f,f,t,f,i,1,1700,f,17,,,,numeric_avg,-,
+2514,numeric_var_pop,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_var_pop,-,
+1838,numeric_var_samp,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_var_samp,-,
+2596,numeric_stddev_pop,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_stddev_pop,-,
+1839,numeric_stddev_samp,11,10,12,f,f,t,f,i,1,1700,f,1231,,,,numeric_stddev_samp,-,
+1840,int2_sum,11,10,12,f,f,f,f,i,2,20,f,20 21,,,,int2_sum,-,
+1841,int4_sum,11,10,12,f,f,f,f,i,2,20,f,20 23,,,,int4_sum,-,
+1842,int8_sum,11,10,12,f,f,f,f,i,2,1700,f,1700 20,,,,int8_sum,-,
+7008,int2_invsum,11,10,12,f,f,f,f,i,2,20,f,20 21,,,,int2_invsum,-,
+7009,int4_invsum,11,10,12,f,f,f,f,i,2,20,f,20 23,,,,int4_invsum,-,
+7010,int8_invsum,11,10,12,f,f,f,f,i,2,1700,f,1700 20,,,,int8_invsum,-,
+1843,interval_accum,11,10,12,f,f,t,f,i,2,1187,f,1187 1186,,,,interval_accum,-,
+6038,interval_decum,11,10,12,f,f,t,f,i,2,1187,f,1187 1186,,,,interval_decum,-,
+1844,interval_avg,11,10,12,f,f,t,f,i,1,1186,f,1187,,,,interval_avg,-,
+1962,int2_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 21,,,,int2_avg_accum,-,
+1963,int4_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 23,,,,int4_avg_accum,-,
+3100,int8_avg_accum,11,10,12,f,f,t,f,i,2,17,f,17 20,,,,int8_avg_accum,-,
+6019,int2_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 21,,,,int2_avg_decum,-,
+6020,int4_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 23,,,,int4_avg_decum,-,
+3101,int8_avg_decum,11,10,12,f,f,t,f,i,2,17,f,17 20,,,,int8_avg_decum,-,
+1964,int8_avg,11,10,12,f,f,t,f,i,1,1700,f,17,,,,int8_avg,-,
+2805,int8inc_float8_float8,11,10,12,f,f,t,f,i,3,20,f,20 701 701,,,,int8inc_float8_float8,-,
+2806,float8_regr_accum,11,10,12,f,f,t,f,i,3,1022,f,1022 701 701,,,,float8_regr_accum,-,
+2807,float8_regr_sxx,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_sxx,-,
+2808,float8_regr_syy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_syy,-,
+2809,float8_regr_sxy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_sxy,-,
+2810,float8_regr_avgx,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_avgx,-,
+2811,float8_regr_avgy,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_avgy,-,
+2812,float8_regr_r2,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_r2,-,
+2813,float8_regr_slope,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_slope,-,
+2814,float8_regr_intercept,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_regr_intercept,-,
+2815,float8_covar_pop,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_covar_pop,-,
+2816,float8_covar_samp,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_covar_samp,-,
+2817,float8_corr,11,10,12,f,f,t,f,i,1,701,f,1022,,,,float8_corr,-,
+1845,to_ascii,11,10,12,f,f,t,f,i,1,25,f,25,,,,to_ascii_default,-,
+1846,to_ascii,11,10,12,f,f,t,f,i,2,25,f,25 23,,,,to_ascii_enc,-,
+1847,to_ascii,11,10,12,f,f,t,f,i,2,25,f,25 19,,,,to_ascii_encname,-,
+1848,interval_pl_time,11,10,14,f,f,t,f,i,2,1083,f,1186 1083,,,,select $2 + $1,-,
+1850,int28eq,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28eq,-,
+1851,int28ne,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28ne,-,
+1852,int28lt,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28lt,-,
+1853,int28gt,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28gt,-,
+1854,int28le,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28le,-,
+1855,int28ge,11,10,12,f,f,t,f,i,2,16,f,21 20,,,,int28ge,-,
+1856,int82eq,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82eq,-,
+1857,int82ne,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82ne,-,
+1858,int82lt,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82lt,-,
+1859,int82gt,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82gt,-,
+1860,int82le,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82le,-,
+1861,int82ge,11,10,12,f,f,t,f,i,2,16,f,20 21,,,,int82ge,-,
+1892,int2and,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2and,-,
+1893,int2or,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2or,-,
+1894,int2xor,11,10,12,f,f,t,f,i,2,21,f,21 21,,,,int2xor,-,
+1895,int2not,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2not,-,
+1896,int2shl,11,10,12,f,f,t,f,i,2,21,f,21 23,,,,int2shl,-,
+1897,int2shr,11,10,12,f,f,t,f,i,2,21,f,21 23,,,,int2shr,-,
+1898,int4and,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4and,-,
+1899,int4or,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4or,-,
+1900,int4xor,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4xor,-,
+1901,int4not,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4not,-,
+1902,int4shl,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4shl,-,
+1903,int4shr,11,10,12,f,f,t,f,i,2,23,f,23 23,,,,int4shr,-,
+1904,int8and,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8and,-,
+1905,int8or,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8or,-,
+1906,int8xor,11,10,12,f,f,t,f,i,2,20,f,20 20,,,,int8xor,-,
+1907,int8not,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8not,-,
+1908,int8shl,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int8shl,-,
+1909,int8shr,11,10,12,f,f,t,f,i,2,20,f,20 23,,,,int8shr,-,
+1910,int8up,11,10,12,f,f,t,f,i,1,20,f,20,,,,int8up,-,
+1911,int2up,11,10,12,f,f,t,f,i,1,21,f,21,,,,int2up,-,
+1912,int4up,11,10,12,f,f,t,f,i,1,23,f,23,,,,int4up,-,
+1913,float4up,11,10,12,f,f,t,f,i,1,700,f,700,,,,float4up,-,
+1914,float8up,11,10,12,f,f,t,f,i,1,701,f,701,,,,float8up,-,
+1915,numeric_uplus,11,10,12,f,f,t,f,i,1,1700,f,1700,,,,numeric_uplus,-,
+1922,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,19 25 25,,,,has_table_privilege_name_name,-,
+1923,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,19 26 25,,,,has_table_privilege_name_id,-,
+1924,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,26 25 25,,,,has_table_privilege_id_name,-,
+1925,has_table_privilege,11,10,12,f,f,t,f,s,3,16,f,26 26 25,,,,has_table_privilege_id_id,-,
+1926,has_table_privilege,11,10,12,f,f,t,f,s,2,16,f,25 25,,,,has_table_privilege_name,-,
+1927,has_table_privilege,11,10,12,f,f,t,f,s,2,16,f,26 25,,,,has_table_privilege_id,-,
+1928,pg_stat_get_numscans,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_numscans,-,
+1929,pg_stat_get_tuples_returned,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_returned,-,
+1930,pg_stat_get_tuples_fetched,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_fetched,-,
+1931,pg_stat_get_tuples_inserted,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_inserted,-,
+1932,pg_stat_get_tuples_updated,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_updated,-,
+1933,pg_stat_get_tuples_deleted,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_tuples_deleted,-,
+1934,pg_stat_get_blocks_fetched,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_blocks_fetched,-,
+1935,pg_stat_get_blocks_hit,11,10,12,f,f,t,f,s,1,20,f,26,,,,pg_stat_get_blocks_hit,-,
+2781,pg_stat_get_last_vacuum_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_vacuum_time,-,
+2782,pg_stat_get_last_autovacuum_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_autovacuum_time,-,
+2783,pg_stat_get_last_analyze_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_analyze_time,-,
+2784,pg_stat_get_last_autoanalyze_time,11,10,12,f,f,t,f,s,1,1184,f,26,,,,pg_stat_get_last_autoanalyze_time,-,
+1936,pg_stat_get_backend_idset,11,10,12,f,f,t,t,s,0,23,f,"",,,,pg_stat_get_backend_idset,-,
+2026,pg_backend_pid,11,10,12,f,f,t,f,s,0,23,f,"",,,,pg_backend_pid,-,
+2274,pg_stat_reset,11,10,12,f,f,f,f,v,0,16,f,"",,,,pg_stat_reset,-,
+1937,pg_stat_get_backend_pid,11,10,12,f,f,t,f,s,1,23,f,23,,,,pg_stat_get_backend_pid,-,
+1938,pg_stat_get_backend_dbid,11,10,12,f,f,t,f,s,1

<TRUNCATED>


[26/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_class32.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_class32.data.in b/src/test/regress/data/upgrade33/pg_class32.data.in
new file mode 100755
index 0000000..b1d3d4c
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_class32.data.in
@@ -0,0 +1,243 @@
+relname,relnamespace,reltype,relowner,relam,relfilenode,reltablespace,relpages,reltuples,reltoastrelid,reltoastidxid,relaosegrelid,relaosegidxid,relhasindex,relisshared,relkind,relstorage,relnatts,relchecks,reltriggers,relukeys,relfkeys,relrefs,relhasoids,relhaspkey,relhasrules,relhassubclass,relfrozenxid,relacl,reloptions
+10707,enabled_roles,10643,10708,10,0,10707,0,0,0,0,0,0,0,f,f,v,v,1,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10710,key_column_usage,10643,10711,10,0,10710,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10713,parameters,10643,10714,10,0,10713,0,0,0,0,0,0,0,f,f,v,v,31,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10716,referential_constraints,10643,10717,10,0,10716,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+3250,nb_classification,11,3251,10,0,3250,0,0,0,0,0,0,0,f,f,c,v,3,0,0,0,0,0,f,f,f,f,0,,
+10719,role_column_grants,10643,10720,10,0,10719,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10722,role_routine_grants,10643,10723,10,0,10722,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10725,role_table_grants,10643,10726,10,0,10725,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10728,role_usage_grants,10643,10729,10,0,10728,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10731,routine_privileges,10643,10732,10,0,10731,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10734,routines,10643,10735,10,0,10734,0,0,0,0,0,0,0,f,f,v,v,82,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10737,schemata,10643,10738,10,0,10737,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10740,sequences,10643,10741,10,0,10740,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10745,pg_toast_10743,99,10746,10,0,10745,0,0,0,0,10747,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,549,,
+10747,pg_toast_10743_index,99,0,10,403,10747,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10743,sql_features,10643,10744,10,0,10743,0,2,439,10745,0,0,0,f,f,r,h,7,0,0,0,0,0,f,f,f,f,548,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10750,pg_toast_10748,99,10751,10,0,10750,0,0,0,0,10752,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,551,,
+10752,pg_toast_10748_index,99,0,10,403,10752,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10748,sql_implementation_info,10643,10749,10,0,10748,0,1,12,10750,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,550,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10755,pg_toast_10753,99,10756,10,0,10755,0,0,0,0,10757,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,553,,
+10757,pg_toast_10753_index,99,0,10,403,10757,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10753,sql_languages,10643,10754,10,0,10753,0,1,4,10755,0,0,0,f,f,r,h,7,0,0,0,0,0,f,f,f,f,552,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10760,pg_toast_10758,99,10761,10,0,10760,0,0,0,0,10762,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,555,,
+10762,pg_toast_10758_index,99,0,10,403,10762,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10758,sql_packages,10643,10759,10,0,10758,0,1,10,10760,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,554,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10765,pg_toast_10763,99,10766,10,0,10765,0,0,0,0,10767,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,557,,
+10767,pg_toast_10763_index,99,0,10,403,10767,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10763,sql_parts,10643,10764,10,0,10763,0,1,9,10765,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,556,,
+10770,pg_toast_10768,99,10771,10,0,10770,0,0,0,0,10772,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,559,,
+10772,pg_toast_10768_index,99,0,10,403,10772,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10768,sql_sizing,10643,10769,10,0,10768,0,1,23,10770,0,0,0,f,f,r,h,4,0,0,0,0,0,f,f,f,f,558,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10775,pg_toast_10773,99,10776,10,0,10775,0,0,0,0,10777,0,0,t,f,t,h,3,0,0,0,0,0,f,t,f,f,561,,
+10777,pg_toast_10773_index,99,0,10,403,10777,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+10773,sql_sizing_profiles,10643,10774,10,0,10773,0,0,0,10775,0,0,0,f,f,r,h,5,0,0,0,0,0,f,f,f,f,560,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10778,table_constraints,10643,10779,10,0,10778,0,0,0,0,0,0,0,f,f,v,v,9,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10781,table_privileges,10643,10782,10,0,10781,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10784,tables,10643,10785,10,0,10784,0,0,0,0,0,0,0,f,f,v,v,12,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10787,triggered_update_columns,10643,10788,10,0,10787,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10790,triggers,10643,10791,10,0,10790,0,0,0,0,0,0,0,f,f,v,v,17,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10793,usage_privileges,10643,10794,10,0,10793,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10796,view_column_usage,10643,10797,10,0,10796,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10799,view_routine_usage,10643,10800,10,0,10799,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10802,view_table_usage,10643,10803,10,0,10802,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10805,views,10643,10806,10,0,10805,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10808,data_type_privileges,10643,10809,10,0,10808,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+2830,pg_toast_2604,99,10297,10,0,2830,0,0,0,0,2831,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,571,,
+2831,pg_toast_2604_index,99,0,10,403,2831,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2832,pg_toast_2606,99,10298,10,0,2832,0,0,0,0,2833,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,573,,
+2833,pg_toast_2606_index,99,0,10,403,2833,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2834,pg_toast_2609,99,10299,10,0,2834,0,0,0,0,2835,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,591,,
+2835,pg_toast_2609_index,99,0,10,403,2835,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2836,pg_toast_1255,99,10300,10,0,2836,0,0,0,0,2837,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,567,,
+2837,pg_toast_1255_index,99,0,10,403,2837,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2838,pg_toast_2618,99,10301,10,0,2838,0,0,0,0,2839,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,587,,
+2839,pg_toast_2618_index,99,0,10,403,2839,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2840,pg_toast_2619,99,10302,10,0,2840,0,0,0,0,2841,0,0,t,f,t,h,3,0,0,0,0,0,f,f,f,f,584,,
+2841,pg_toast_2619_index,99,0,10,403,2841,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2842,pg_toast_1260,99,10303,10,0,2842,1664,0,0,0,2843,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,563,,
+2843,pg_toast_1260_index,99,0,10,403,2843,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2844,pg_toast_1262,99,10304,10,0,2844,1664,0,0,0,2845,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,613,,
+2845,pg_toast_1262_index,99,0,10,403,2845,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2846,pg_toast_2396,99,10305,10,0,2846,1664,0,0,0,2847,0,0,t,t,t,h,3,0,0,0,0,0,f,f,f,f,600,,
+2847,pg_toast_2396_index,99,0,10,403,2847,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2650,pg_aggregate_fnoid_index,11,0,10,403,2650,0,2,125,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2651,pg_am_name_index,11,0,10,403,2651,0,2,5,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2652,pg_am_oid_index,11,0,10,403,2652,0,2,5,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2653,pg_amop_opc_strat_index,11,0,10,403,2653,0,2,691,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2654,pg_amop_opr_opc_index,11,0,10,403,2654,0,2,691,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2655,pg_amproc_opc_proc_index,11,0,10,403,2655,0,2,274,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2656,pg_attrdef_adrelid_adnum_index,11,0,10,403,2656,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2657,pg_attrdef_oid_index,11,0,10,403,2657,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2658,pg_attribute_relid_attnam_index,11,0,10,403,2658,0,8,1950,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2659,pg_attribute_relid_attnum_index,11,0,10,403,2659,0,4,1950,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2676,pg_authid_rolname_index,11,0,10,403,2676,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2677,pg_authid_oid_index,11,0,10,403,2677,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2694,pg_auth_members_role_member_index,11,0,10,403,2694,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2695,pg_auth_members_member_role_index,11,0,10,403,2695,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6027,pg_resqueue_oid_index,11,0,10,403,6027,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6028,pg_resqueue_rsqname_index,11,0,10,403,6028,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6041,pg_exttable_reloid_index,11,0,10,403,6041,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+1250,pg_autovacuum_vacrelid_index,11,0,10,403,1250,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2660,pg_cast_oid_index,11,0,10,403,2660,0,2,257,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2661,pg_cast_source_target_index,11,0,10,403,2661,0,2,257,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2662,pg_class_oid_index,11,0,10,403,2662,0,2,242,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2663,pg_class_relname_nsp_index,11,0,10,403,2663,0,4,242,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6029,pg_authid_rolresqueue_index,11,0,10,403,6029,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2664,pg_constraint_conname_nsp_index,11,0,10,403,2664,0,2,1,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2665,pg_constraint_conrelid_index,11,0,10,403,2665,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2666,pg_constraint_contypid_index,11,0,10,403,2666,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2667,pg_constraint_oid_index,11,0,10,403,2667,0,2,1,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2668,pg_conversion_default_index,11,0,10,403,2668,0,2,124,0,0,0,0,f,f,i,h,4,0,0,0,0,0,f,f,f,f,0,,
+2669,pg_conversion_name_nsp_index,11,0,10,403,2669,0,2,124,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2670,pg_conversion_oid_index,11,0,10,403,2670,0,2,124,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2671,pg_database_datname_index,11,0,10,403,2671,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2672,pg_database_oid_index,11,0,10,403,2672,1664,2,1,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2673,pg_depend_depender_index,11,0,10,403,2673,0,8,5116,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2674,pg_depend_reference_index,11,0,10,403,2674,0,10,5116,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2675,pg_description_o_c_o_index,11,0,10,403,2675,0,4,1861,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2397,pg_shdescription_o_c_index,11,0,10,403,2397,1664,2,1,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2678,pg_index_indrelid_index,11,0,10,403,2678,0,2,92,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2679,pg_index_indexrelid_index,11,0,10,403,2679,0,2,92,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2680,pg_inherits_relid_seqno_index,11,0,10,403,2680,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2681,pg_language_name_index,11,0,10,403,2681,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2682,pg_language_oid_index,11,0,10,403,2682,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2683,pg_largeobject_loid_pn_index,11,0,10,403,2683,0,1,0,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2684,pg_namespace_nspname_index,11,0,10,403,2684,0,2,6,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2685,pg_namespace_oid_index,11,0,10,403,2685,0,2,6,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2686,pg_opclass_am_name_nsp_index,11,0,10,403,2686,0,2,138,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2687,pg_opclass_oid_index,11,0,10,403,2687,0,2,138,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2688,pg_operator_oid_index,11,0,10,403,2688,0,2,666,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2689,pg_operator_oprname_l_r_n_index,11,0,10,403,2689,0,4,666,0,0,0,0,f,f,i,h,4,0,0,0,0,0,f,f,f,f,0,,
+1137,pg_pltemplate_name_index,11,0,10,403,1137,1664,2,7,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2690,pg_proc_oid_index,11,0,10,403,2690,0,4,2628,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2691,pg_proc_proname_args_nsp_index,11,0,10,403,2691,0,12,2628,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+2692,pg_rewrite_oid_index,11,0,10,403,2692,0,2,84,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2693,pg_rewrite_rel_rulename_index,11,0,10,403,2693,0,2,84,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+1232,pg_shdepend_depender_index,11,0,10,403,1232,1664,2,1,0,0,0,0,f,t,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+1233,pg_shdepend_reference_index,11,0,10,403,1233,1664,2,1,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2696,pg_statistic_relid_att_index,11,0,10,403,2696,0,2,324,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2697,pg_tablespace_oid_index,11,0,10,403,2697,1664,2,2,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2698,pg_tablespace_spcname_index,11,0,10,403,2698,1664,2,2,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2699,pg_trigger_tgconstrname_index,11,0,10,403,2699,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2700,pg_trigger_tgconstrrelid_index,11,0,10,403,2700,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2701,pg_trigger_tgrelid_tgname_index,11,0,10,403,2701,0,2,3,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+2702,pg_trigger_oid_index,11,0,10,403,2702,0,2,3,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2703,pg_type_oid_index,11,0,10,403,2703,0,2,264,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+2704,pg_type_typname_nsp_index,11,0,10,403,2704,0,2,264,0,0,0,0,f,f,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6101,gp_configuration_content_definedprimary_index,11,0,10,403,6101,1664,1,0,0,0,0,0,f,t,i,h,2,0,0,0,0,0,f,f,f,f,0,,
+6102,gp_configuration_dbid_index,11,0,10,403,6102,1664,1,0,0,0,0,0,f,t,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+6103,gp_policy_localoid_index,11,0,10,403,6103,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5005,pg_window_fnoid_index,11,0,10,403,5005,0,2,288,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5007,pg_appendonly_relid_index,11,0,10,403,5007,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5012,pg_partition_oid_index,11,0,10,403,5012,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5017,pg_partition_parrelid_parlevel_istemplate_index,11,0,10,403,5017,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+5013,pg_partition_parrelid_index,11,0,10,403,5013,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5014,pg_partition_rule_oid_index,11,0,10,403,5014,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5015,pg_partition_rule_parchildrelid_parparentrule_parruleord_index,11,0,10,403,5015,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+5016,pg_partition_rule_parchildrelid_index,11,0,10,403,5016,0,1,0,0,0,0,0,f,f,i,h,1,0,0,0,0,0,f,f,f,f,0,,
+5026,pg_partition_rule_paroid_parentrule_ruleord_index,11,0,10,403,5026,0,1,0,0,0,0,0,f,f,i,h,3,0,0,0,0,0,f,f,f,f,0,,
+10811,element_types,10643,10812,10,0,10811,0,0,0,0,0,0,0,f,f,v,v,29,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10814,gp_pgdatabase,11,10815,10,0,10814,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10817,gp_distributed_xacts,11,10818,10,0,10817,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+1260,pg_authid,11,10282,10,0,1260,1664,1,1,2842,0,0,0,t,t,r,h,12,0,1,0,0,0,t,f,f,f,562,{@gpcurusername@=arwdxt/@gpcurusername@},
+10820,gp_transaction_log,11,10821,10,0,10820,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10823,gp_distributed_log,11,10824,10,0,10823,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+1247,pg_type,11,71,10,0,1247,0,2,264,0,0,0,0,t,f,r,h,23,0,0,0,0,0,t,f,f,f,564,{=r/@gpcurusername@},
+1249,pg_attribute,11,75,10,0,1249,0,8,1950,0,0,0,0,t,f,r,h,17,0,0,0,0,0,f,f,f,f,565,{=r/@gpcurusername@},
+10312,pg_shadow,11,10313,10,0,10312,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{@gpcurusername@=arwdxt/@gpcurusername@},
+1255,pg_proc,11,81,10,0,1255,0,15,2628,2836,0,0,0,t,f,r,h,19,0,0,0,0,0,t,f,f,f,566,{=r/@gpcurusername@},
+1259,pg_class,11,83,10,0,1259,0,2,242,0,0,0,0,t,f,r,h,30,0,0,0,0,0,t,f,f,f,568,{=r/@gpcurusername@},
+1248,pg_autovacuum,11,10000,10,0,1248,0,0,0,0,0,0,0,t,f,r,h,10,0,0,0,0,0,f,f,f,f,569,{=r/@gpcurusername@},
+2604,pg_attrdef,11,10001,10,0,2604,0,0,0,2830,0,0,0,t,f,r,h,4,0,0,0,0,0,t,f,f,f,570,{=r/@gpcurusername@},
+2606,pg_constraint,11,10002,10,0,2606,0,1,1,2832,0,0,0,t,f,r,h,15,0,0,0,0,0,t,f,f,f,572,{=r/@gpcurusername@},
+2611,pg_inherits,11,10003,10,0,2611,0,0,0,0,0,0,0,t,f,r,h,3,0,0,0,0,0,f,f,f,f,574,{=r/@gpcurusername@},
+2610,pg_index,11,10004,10,0,2610,0,1,92,0,0,0,0,t,f,r,h,11,0,0,0,0,0,f,f,f,f,575,{=r/@gpcurusername@},
+2617,pg_operator,11,10005,10,0,2617,0,4,666,0,0,0,0,t,f,r,h,17,0,0,0,0,0,t,f,f,f,576,{=r/@gpcurusername@},
+2616,pg_opclass,11,10006,10,0,2616,0,1,138,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,577,{=r/@gpcurusername@},
+2601,pg_am,11,10007,10,0,2601,0,1,5,0,0,0,0,t,f,r,h,24,0,0,0,0,0,t,f,f,f,578,{=r/@gpcurusername@},
+2602,pg_amop,11,10008,10,0,2602,0,1,691,0,0,0,0,t,f,r,h,5,0,0,0,0,0,f,f,f,f,579,{=r/@gpcurusername@},
+2603,pg_amproc,11,10009,10,0,2603,0,1,274,0,0,0,0,t,f,r,h,4,0,0,0,0,0,f,f,f,f,580,{=r/@gpcurusername@},
+2612,pg_language,11,10010,10,0,2612,0,1,3,0,0,0,0,t,f,r,h,6,0,0,0,0,0,t,f,f,f,581,{=r/@gpcurusername@},
+2613,pg_largeobject,11,10011,10,0,2613,0,0,0,0,0,0,0,t,f,r,h,3,0,0,0,0,0,f,f,f,f,582,{=r/@gpcurusername@},
+2619,pg_statistic,11,10013,10,0,2619,0,3,324,2840,0,0,0,t,f,r,h,21,0,0,0,0,0,f,f,f,f,583,{@gpcurusername@=arwdxt/@gpcurusername@},
+2600,pg_aggregate,11,10012,10,0,2600,0,1,125,0,0,0,0,t,f,r,h,9,0,0,0,0,0,f,f,f,f,585,{=r/@gpcurusername@},
+2618,pg_rewrite,11,10014,10,0,2618,0,11,84,2838,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,586,{=r/@gpcurusername@},
+2620,pg_trigger,11,10015,10,0,2620,0,1,3,0,0,0,0,t,f,r,h,13,0,0,0,0,0,t,f,f,f,588,{=r/@gpcurusername@},
+2614,pg_listener,11,10016,10,0,2614,0,0,0,0,0,0,0,f,f,r,h,3,0,0,0,0,0,f,f,f,f,589,{=r/@gpcurusername@},
+2609,pg_description,11,10017,10,0,2609,0,4,1861,2834,0,0,0,t,f,r,h,4,0,0,0,0,0,f,f,f,f,590,{=r/@gpcurusername@},
+2605,pg_cast,11,10018,10,0,2605,0,1,257,0,0,0,0,t,f,r,h,4,0,0,0,0,0,t,f,f,f,592,{=r/@gpcurusername@},
+2615,pg_namespace,11,10276,10,0,2615,0,1,6,0,0,0,0,t,f,r,h,3,0,0,0,0,0,t,f,f,f,593,{=r/@gpcurusername@},
+2607,pg_conversion,11,10277,10,0,2607,0,1,124,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,594,{=r/@gpcurusername@},
+2608,pg_depend,11,10278,10,0,2608,0,9,5116,0,0,0,0,t,f,r,h,7,0,0,0,0,0,f,f,f,f,595,{=r/@gpcurusername@},
+1213,pg_tablespace,11,10280,10,0,1213,1664,1,2,0,0,0,0,t,t,r,h,6,0,0,0,0,0,t,f,f,f,596,{=r/@gpcurusername@},
+10348,pg_settings,11,10349,10,0,10348,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=rw/@gpcurusername@}",
+1136,pg_pltemplate,11,10281,10,0,1136,1664,1,7,0,0,0,0,t,t,r,h,6,0,0,0,0,0,f,f,f,f,597,{=r/@gpcurusername@},
+1214,pg_shdepend,11,10284,10,0,1214,1664,1,1,0,0,0,0,t,t,r,h,6,0,0,0,0,0,f,f,f,f,598,{=r/@gpcurusername@},
+2396,pg_shdescription,11,10285,10,0,2396,1664,1,1,2846,0,0,0,t,t,r,h,3,0,0,0,0,0,f,f,f,f,599,{=r/@gpcurusername@},
+6026,pg_resqueue,11,10286,10,0,6026,1664,0,0,0,0,0,0,t,t,r,h,5,0,0,0,0,0,t,f,f,f,601,{=r/@gpcurusername@},
+5000,gp_configuration,11,10287,10,0,5000,1664,0,0,0,0,0,0,t,t,r,h,8,0,0,0,0,0,f,f,f,f,602,{=r/@gpcurusername@},
+5001,gp_id,11,10288,10,0,5001,1664,0,0,0,0,0,0,f,t,r,h,4,0,0,0,0,0,f,f,f,f,603,{=r/@gpcurusername@},
+5002,gp_distribution_policy,11,10289,10,0,5002,0,0,0,0,0,0,0,t,f,r,h,2,0,0,0,0,0,f,f,f,f,604,{=r/@gpcurusername@},
+5003,gp_version_at_initdb,11,10290,10,0,5003,1664,1,1,0,0,0,0,f,t,r,h,2,0,0,0,0,0,f,f,f,f,605,{=r/@gpcurusername@},
+5004,pg_window,11,10291,10,0,5004,0,1,288,0,0,0,0,t,f,r,h,10,0,0,0,0,0,f,f,f,f,606,{=r/@gpcurusername@},
+6040,pg_exttable,11,10292,10,0,6040,0,0,0,0,0,0,0,t,f,r,h,9,0,0,0,0,0,f,f,f,f,607,{=r/@gpcurusername@},
+6105,pg_appendonly,11,10293,10,0,6105,0,0,0,0,0,0,0,t,f,r,h,7,0,0,0,0,0,f,f,f,f,608,{=r/@gpcurusername@},
+5008,gp_master_mirroring,11,10294,10,0,5008,1664,1,1,0,0,0,0,f,t,r,h,4,0,0,0,0,0,f,f,f,f,609,{=r/@gpcurusername@},
+5010,pg_partition,11,10295,10,0,5010,0,0,0,0,0,0,0,t,f,r,h,7,0,0,0,0,0,t,f,f,f,610,{=r/@gpcurusername@},
+5011,pg_partition_rule,11,10296,10,0,5011,0,0,0,0,0,0,0,t,f,r,h,13,0,0,0,0,0,t,f,f,f,611,{=r/@gpcurusername@},
+1262,pg_database,11,10279,10,0,1262,1664,1,1,2844,0,0,0,t,t,r,h,11,0,1,0,0,0,t,f,f,f,612,{=r/@gpcurusername@},
+1261,pg_auth_members,11,10283,10,0,1261,1664,0,0,0,0,0,0,t,t,r,h,4,0,1,0,0,0,f,f,f,f,614,{=r/@gpcurusername@},
+10309,pg_roles,11,10310,10,0,10309,0,0,0,0,0,0,0,f,f,v,v,13,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10315,pg_group,11,10316,10,0,10315,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10318,pg_user,11,10319,10,0,10318,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10321,pg_rules,11,10322,10,0,10321,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10324,pg_views,11,10325,10,0,10324,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10327,pg_tables,11,10328,10,0,10327,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10330,pg_indexes,11,10331,10,0,10330,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10333,pg_stats,11,10334,10,0,10333,0,0,0,0,0,0,0,f,f,v,v,10,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10336,pg_locks,11,10337,10,0,10336,0,0,0,0,0,0,0,f,f,v,v,15,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10339,pg_cursors,11,10340,10,0,10339,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10342,pg_prepared_xacts,11,10343,10,0,10342,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10345,pg_prepared_statements,11,10346,10,0,10345,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10353,pg_timezone_abbrevs,11,10354,10,0,10353,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10356,pg_timezone_names,11,10357,10,0,10356,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10359,pg_stat_all_tables,11,10360,10,0,10359,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10362,pg_stat_sys_tables,11,10363,10,0,10362,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10365,pg_stat_user_tables,11,10366,10,0,10365,0,0,0,0,0,0,0,f,f,v,v,14,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10368,pg_statio_all_tables,11,10369,10,0,10368,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10371,pg_statio_sys_tables,11,10372,10,0,10371,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10374,pg_statio_user_tables,11,10375,10,0,10374,0,0,0,0,0,0,0,f,f,v,v,11,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10377,pg_stat_all_indexes,11,10378,10,0,10377,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10380,pg_stat_sys_indexes,11,10381,10,0,10380,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10383,pg_stat_user_indexes,11,10384,10,0,10383,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10386,pg_statio_all_indexes,11,10387,10,0,10386,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10389,pg_statio_sys_indexes,11,10390,10,0,10389,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10392,pg_statio_user_indexes,11,10393,10,0,10392,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10395,pg_statio_all_sequences,11,10396,10,0,10395,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10398,pg_statio_sys_sequences,11,10399,10,0,10398,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10401,pg_statio_user_sequences,11,10402,10,0,10401,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10404,pg_stat_activity,11,10405,10,0,10404,0,0,0,0,0,0,0,f,f,v,v,12,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10407,pg_stat_database,11,10408,10,0,10407,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10410,pg_stat_resqueues,11,10411,10,0,10410,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10413,pg_resqueue_status,11,10414,10,0,10413,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10416,pg_max_external_files,11,10417,10,0,10416,0,0,0,0,0,0,0,f,f,v,v,2,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10419,pg_partitions,11,10420,10,0,10419,0,0,0,0,0,0,0,f,f,v,v,19,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10422,pg_partition_columns,11,10423,10,0,10422,0,0,0,0,0,0,0,f,f,v,v,5,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10425,pg_partition_templates,11,10426,10,0,10425,0,0,0,0,0,0,0,f,f,v,v,15,0,0,0,0,0,f,f,t,f,0,{=r/@gpcurusername@},
+10661,information_schema_catalog_name,10643,10662,10,0,10661,0,0,0,0,0,0,0,f,f,v,v,1,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10665,applicable_roles,10643,10666,10,0,10665,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10668,administrable_role_authorizations,10643,10669,10,0,10668,0,0,0,0,0,0,0,f,f,v,v,3,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10671,attributes,10643,10672,10,0,10671,0,0,0,0,0,0,0,f,f,v,v,31,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10674,check_constraint_routine_usage,10643,10675,10,0,10674,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10677,check_constraints,10643,10678,10,0,10677,0,0,0,0,0,0,0,f,f,v,v,4,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10680,column_domain_usage,10643,10681,10,0,10680,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10683,column_privileges,10643,10684,10,0,10683,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10686,column_udt_usage,10643,10687,10,0,10686,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10689,columns,10643,10690,10,0,10689,0,0,0,0,0,0,0,f,f,v,v,44,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10692,constraint_column_usage,10643,10693,10,0,10692,0,0,0,0,0,0,0,f,f,v,v,7,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10695,constraint_table_usage,10643,10696,10,0,10695,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10698,domain_constraints,10643,10699,10,0,10698,0,0,0,0,0,0,0,f,f,v,v,8,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10701,domain_udt_usage,10643,10702,10,0,10701,0,0,0,0,0,0,0,f,f,v,v,6,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",
+10704,domains,10643,10705,10,0,10704,0,0,0,0,0,0,0,f,f,v,v,27,0,0,0,0,0,f,f,t,f,0,"{@gpcurusername@=arwdxt/@gpcurusername@,=r/@gpcurusername@}",

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_conversion32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_conversion32.data b/src/test/regress/data/upgrade33/pg_conversion32.data
new file mode 100644
index 0000000..76c1e3a
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_conversion32.data
@@ -0,0 +1,125 @@
+conname,connamespace,conowner,conforencoding,contoencoding,conproc,condefault
+ascii_to_mic,11,10,0,7,ascii_to_mic,t
+mic_to_ascii,11,10,7,0,mic_to_ascii,t
+koi8_r_to_mic,11,10,22,7,koi8r_to_mic,t
+mic_to_koi8_r,11,10,7,22,mic_to_koi8r,t
+iso_8859_5_to_mic,11,10,25,7,iso_to_mic,t
+mic_to_iso_8859_5,11,10,7,25,mic_to_iso,t
+windows_1251_to_mic,11,10,23,7,win1251_to_mic,t
+mic_to_windows_1251,11,10,7,23,mic_to_win1251,t
+windows_866_to_mic,11,10,20,7,win866_to_mic,t
+mic_to_windows_866,11,10,7,20,mic_to_win866,t
+koi8_r_to_windows_1251,11,10,22,23,koi8r_to_win1251,t
+windows_1251_to_koi8_r,11,10,23,22,win1251_to_koi8r,t
+koi8_r_to_windows_866,11,10,22,20,koi8r_to_win866,t
+windows_866_to_koi8_r,11,10,20,22,win866_to_koi8r,t
+windows_866_to_windows_1251,11,10,20,23,win866_to_win1251,t
+windows_1251_to_windows_866,11,10,23,20,win1251_to_win866,t
+iso_8859_5_to_koi8_r,11,10,25,22,iso_to_koi8r,t
+koi8_r_to_iso_8859_5,11,10,22,25,koi8r_to_iso,t
+iso_8859_5_to_windows_1251,11,10,25,23,iso_to_win1251,t
+windows_1251_to_iso_8859_5,11,10,23,25,win1251_to_iso,t
+iso_8859_5_to_windows_866,11,10,25,20,iso_to_win866,t
+windows_866_to_iso_8859_5,11,10,20,25,win866_to_iso,t
+euc_cn_to_mic,11,10,2,7,euc_cn_to_mic,t
+mic_to_euc_cn,11,10,7,2,mic_to_euc_cn,t
+euc_jp_to_sjis,11,10,1,34,euc_jp_to_sjis,t
+sjis_to_euc_jp,11,10,34,1,sjis_to_euc_jp,t
+euc_jp_to_mic,11,10,1,7,euc_jp_to_mic,t
+sjis_to_mic,11,10,34,7,sjis_to_mic,t
+mic_to_euc_jp,11,10,7,1,mic_to_euc_jp,t
+mic_to_sjis,11,10,7,34,mic_to_sjis,t
+euc_kr_to_mic,11,10,3,7,euc_kr_to_mic,t
+mic_to_euc_kr,11,10,7,3,mic_to_euc_kr,t
+euc_tw_to_big5,11,10,4,35,euc_tw_to_big5,t
+big5_to_euc_tw,11,10,35,4,big5_to_euc_tw,t
+euc_tw_to_mic,11,10,4,7,euc_tw_to_mic,t
+big5_to_mic,11,10,35,7,big5_to_mic,t
+mic_to_euc_tw,11,10,7,4,mic_to_euc_tw,t
+mic_to_big5,11,10,7,35,mic_to_big5,t
+iso_8859_2_to_mic,11,10,9,7,latin2_to_mic,t
+mic_to_iso_8859_2,11,10,7,9,mic_to_latin2,t
+windows_1250_to_mic,11,10,29,7,win1250_to_mic,t
+mic_to_windows_1250,11,10,7,29,mic_to_win1250,t
+iso_8859_2_to_windows_1250,11,10,9,29,latin2_to_win1250,t
+windows_1250_to_iso_8859_2,11,10,29,9,win1250_to_latin2,t
+iso_8859_1_to_mic,11,10,8,7,latin1_to_mic,t
+mic_to_iso_8859_1,11,10,7,8,mic_to_latin1,t
+iso_8859_3_to_mic,11,10,10,7,latin3_to_mic,t
+mic_to_iso_8859_3,11,10,7,10,mic_to_latin3,t
+iso_8859_4_to_mic,11,10,11,7,latin4_to_mic,t
+mic_to_iso_8859_4,11,10,7,11,mic_to_latin4,t
+ascii_to_utf8,11,10,0,6,ascii_to_utf8,t
+utf8_to_ascii,11,10,6,0,utf8_to_ascii,t
+big5_to_utf8,11,10,35,6,big5_to_utf8,t
+utf8_to_big5,11,10,6,35,utf8_to_big5,t
+utf8_to_koi8_r,11,10,6,22,utf8_to_koi8r,t
+koi8_r_to_utf8,11,10,22,6,koi8r_to_utf8,t
+utf8_to_windows_866,11,10,6,20,utf8_to_win,t
+windows_866_to_utf8,11,10,20,6,win_to_utf8,t
+utf8_to_windows_874,11,10,6,21,utf8_to_win,t
+windows_874_to_utf8,11,10,21,6,win_to_utf8,t
+utf8_to_windows_1250,11,10,6,29,utf8_to_win,t
+windows_1250_to_utf8,11,10,29,6,win_to_utf8,t
+utf8_to_windows_1251,11,10,6,23,utf8_to_win,t
+windows_1251_to_utf8,11,10,23,6,win_to_utf8,t
+utf8_to_windows_1252,11,10,6,24,utf8_to_win,t
+windows_1252_to_utf8,11,10,24,6,win_to_utf8,t
+utf8_to_windows_1253,11,10,6,30,utf8_to_win,t
+windows_1253_to_utf8,11,10,30,6,win_to_utf8,t
+utf8_to_windows_1254,11,10,6,31,utf8_to_win,t
+windows_1254_to_utf8,11,10,31,6,win_to_utf8,t
+utf8_to_windows_1255,11,10,6,32,utf8_to_win,t
+windows_1255_to_utf8,11,10,32,6,win_to_utf8,t
+utf8_to_windows_1256,11,10,6,18,utf8_to_win,t
+windows_1256_to_utf8,11,10,18,6,win_to_utf8,t
+utf8_to_windows_1257,11,10,6,33,utf8_to_win,t
+windows_1257_to_utf8,11,10,33,6,win_to_utf8,t
+utf8_to_windows_1258,11,10,6,19,utf8_to_win,t
+windows_1258_to_utf8,11,10,19,6,win_to_utf8,t
+euc_cn_to_utf8,11,10,2,6,euc_cn_to_utf8,t
+utf8_to_euc_cn,11,10,6,2,utf8_to_euc_cn,t
+euc_jp_to_utf8,11,10,1,6,euc_jp_to_utf8,t
+utf8_to_euc_jp,11,10,6,1,utf8_to_euc_jp,t
+euc_kr_to_utf8,11,10,3,6,euc_kr_to_utf8,t
+utf8_to_euc_kr,11,10,6,3,utf8_to_euc_kr,t
+euc_tw_to_utf8,11,10,4,6,euc_tw_to_utf8,t
+utf8_to_euc_tw,11,10,6,4,utf8_to_euc_tw,t
+gb18030_to_utf8,11,10,38,6,gb18030_to_utf8,t
+utf8_to_gb18030,11,10,6,38,utf8_to_gb18030,t
+gbk_to_utf8,11,10,36,6,gbk_to_utf8,t
+utf8_to_gbk,11,10,6,36,utf8_to_gbk,t
+utf8_to_iso_8859_2,11,10,6,9,utf8_to_iso8859,t
+iso_8859_2_to_utf8,11,10,9,6,iso8859_to_utf8,t
+utf8_to_iso_8859_3,11,10,6,10,utf8_to_iso8859,t
+iso_8859_3_to_utf8,11,10,10,6,iso8859_to_utf8,t
+utf8_to_iso_8859_4,11,10,6,11,utf8_to_iso8859,t
+iso_8859_4_to_utf8,11,10,11,6,iso8859_to_utf8,t
+utf8_to_iso_8859_9,11,10,6,12,utf8_to_iso8859,t
+iso_8859_9_to_utf8,11,10,12,6,iso8859_to_utf8,t
+utf8_to_iso_8859_10,11,10,6,13,utf8_to_iso8859,t
+iso_8859_10_to_utf8,11,10,13,6,iso8859_to_utf8,t
+utf8_to_iso_8859_13,11,10,6,14,utf8_to_iso8859,t
+iso_8859_13_to_utf8,11,10,14,6,iso8859_to_utf8,t
+utf8_to_iso_8859_14,11,10,6,15,utf8_to_iso8859,t
+iso_8859_14_to_utf8,11,10,15,6,iso8859_to_utf8,t
+utf8_to_iso_8859_15,11,10,6,16,utf8_to_iso8859,t
+iso_8859_15_to_utf8,11,10,16,6,iso8859_to_utf8,t
+utf8_to_iso_8859_16,11,10,6,17,utf8_to_iso8859,t
+iso_8859_16_to_utf8,11,10,17,6,iso8859_to_utf8,t
+utf8_to_iso_8859_5,11,10,6,25,utf8_to_iso8859,t
+iso_8859_5_to_utf8,11,10,25,6,iso8859_to_utf8,t
+utf8_to_iso_8859_6,11,10,6,26,utf8_to_iso8859,t
+iso_8859_6_to_utf8,11,10,26,6,iso8859_to_utf8,t
+utf8_to_iso_8859_7,11,10,6,27,utf8_to_iso8859,t
+iso_8859_7_to_utf8,11,10,27,6,iso8859_to_utf8,t
+utf8_to_iso_8859_8,11,10,6,28,utf8_to_iso8859,t
+iso_8859_8_to_utf8,11,10,28,6,iso8859_to_utf8,t
+iso_8859_1_to_utf8,11,10,8,6,iso8859_1_to_utf8,t
+utf8_to_iso_8859_1,11,10,6,8,utf8_to_iso8859_1,t
+johab_to_utf8,11,10,5,6,johab_to_utf8,t
+utf8_to_johab,11,10,6,5,utf8_to_johab,t
+sjis_to_utf8,11,10,34,6,sjis_to_utf8,t
+utf8_to_sjis,11,10,6,34,utf8_to_sjis,t
+uhc_to_utf8,11,10,37,6,uhc_to_utf8,t
+utf8_to_uhc,11,10,6,37,utf8_to_uhc,t


[10/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/__init__.py b/tools/bin/ext/yaml/__init__.py
new file mode 100644
index 0000000..bd233a8
--- /dev/null
+++ b/tools/bin/ext/yaml/__init__.py
@@ -0,0 +1,290 @@
+
+from error import *
+
+from tokens import *
+from events import *
+from nodes import *
+
+from loader import *
+from dumper import *
+
+try:
+    from cyaml import *
+except ImportError:
+    pass
+
+def scan(stream, Loader=Loader):
+    """
+    Scan a YAML stream and produce scanning tokens.
+    """
+    loader = Loader(stream)
+    while loader.check_token():
+        yield loader.get_token()
+
+def parse(stream, Loader=Loader):
+    """
+    Parse a YAML stream and produce parsing events.
+    """
+    loader = Loader(stream)
+    while loader.check_event():
+        yield loader.get_event()
+
+def compose(stream, Loader=Loader):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding representation tree.
+    """
+    loader = Loader(stream)
+    if loader.check_node():
+        return loader.get_node()
+
+def compose_all(stream, Loader=Loader):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponsing representation trees.
+    """
+    loader = Loader(stream)
+    while loader.check_node():
+        yield loader.get_node()
+
+def load_all(stream, Loader=Loader):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponding Python objects.
+    """
+    loader = Loader(stream)
+    while loader.check_data():
+        yield loader.get_data()
+
+def load(stream, Loader=Loader):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding Python object.
+    """
+    loader = Loader(stream)
+    if loader.check_data():
+        return loader.get_data()
+
+def safe_load_all(stream):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponding Python objects.
+    Resolve only basic YAML tags.
+    """
+    return load_all(stream, SafeLoader)
+
+def safe_load(stream):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding Python object.
+    Resolve only basic YAML tags.
+    """
+    return load(stream, SafeLoader)
+
+def emit(events, stream=None, Dumper=Dumper,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None):
+    """
+    Emit YAML parsing events into a stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break)
+    for event in events:
+        dumper.emit(event)
+    if getvalue:
+        return getvalue()
+
+def serialize_all(nodes, stream=None, Dumper=Dumper,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None,
+        encoding='utf-8', explicit_start=None, explicit_end=None,
+        version=None, tags=None):
+    """
+    Serialize a sequence of representation trees into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break,
+            encoding=encoding, version=version, tags=tags,
+            explicit_start=explicit_start, explicit_end=explicit_end)
+    dumper.open()
+    for node in nodes:
+        dumper.serialize(node)
+    dumper.close()
+    if getvalue:
+        return getvalue()
+
+def serialize(node, stream=None, Dumper=Dumper, **kwds):
+    """
+    Serialize a representation tree into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    return serialize_all([node], stream, Dumper=Dumper, **kwds)
+
+def dump_all(documents, stream=None, Dumper=Dumper,
+        default_style=None, default_flow_style=None,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None,
+        encoding='utf-8', explicit_start=None, explicit_end=None,
+        version=None, tags=None):
+    """
+    Serialize a sequence of Python objects into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, default_style=default_style,
+            default_flow_style=default_flow_style,
+            canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break,
+            encoding=encoding, version=version, tags=tags,
+            explicit_start=explicit_start, explicit_end=explicit_end)
+    dumper.open()
+    for data in documents:
+        dumper.represent(data)
+    dumper.close()
+    if getvalue:
+        return getvalue()
+
+def dump(data, stream=None, Dumper=Dumper, **kwds):
+    """
+    Serialize a Python object into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all([data], stream, Dumper=Dumper, **kwds)
+
+def safe_dump_all(documents, stream=None, **kwds):
+    """
+    Serialize a sequence of Python objects into a YAML stream.
+    Produce only basic YAML tags.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all(documents, stream, Dumper=SafeDumper, **kwds)
+
+def safe_dump(data, stream=None, **kwds):
+    """
+    Serialize a Python object into a YAML stream.
+    Produce only basic YAML tags.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all([data], stream, Dumper=SafeDumper, **kwds)
+
+def add_implicit_resolver(tag, regexp, first=None,
+        Loader=Loader, Dumper=Dumper):
+    """
+    Add an implicit scalar detector.
+    If an implicit scalar value matches the given regexp,
+    the corresponding tag is assigned to the scalar.
+    first is a sequence of possible initial characters or None.
+    """
+    Loader.add_implicit_resolver(tag, regexp, first)
+    Dumper.add_implicit_resolver(tag, regexp, first)
+
+def add_path_resolver(tag, path, kind=None, Loader=Loader, Dumper=Dumper):
+    """
+    Add a path based resolver for the given tag.
+    A path is a list of keys that forms a path
+    to a node in the representation tree.
+    Keys can be string values, integers, or None.
+    """
+    Loader.add_path_resolver(tag, path, kind)
+    Dumper.add_path_resolver(tag, path, kind)
+
+def add_constructor(tag, constructor, Loader=Loader):
+    """
+    Add a constructor for the given tag.
+    Constructor is a function that accepts a Loader instance
+    and a node object and produces the corresponding Python object.
+    """
+    Loader.add_constructor(tag, constructor)
+
+def add_multi_constructor(tag_prefix, multi_constructor, Loader=Loader):
+    """
+    Add a multi-constructor for the given tag prefix.
+    Multi-constructor is called for a node if its tag starts with tag_prefix.
+    Multi-constructor accepts a Loader instance, a tag suffix,
+    and a node object and produces the corresponding Python object.
+    """
+    Loader.add_multi_constructor(tag_prefix, multi_constructor)
+
+def add_representer(data_type, representer, Dumper=Dumper):
+    """
+    Add a representer for the given type.
+    Representer is a function accepting a Dumper instance
+    and an instance of the given data type
+    and producing the corresponding representation node.
+    """
+    Dumper.add_representer(data_type, representer)
+
+def add_multi_representer(data_type, multi_representer, Dumper=Dumper):
+    """
+    Add a representer for the given type.
+    Multi-representer is a function accepting a Dumper instance
+    and an instance of the given data type or subtype
+    and producing the corresponding representation node.
+    """
+    Dumper.add_multi_representer(data_type, multi_representer)
+
+class YAMLObjectMetaclass(type):
+    """
+    The metaclass for YAMLObject.
+    """
+    def __init__(cls, name, bases, kwds):
+        super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds)
+        if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None:
+            cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+            cls.yaml_dumper.add_representer(cls, cls.to_yaml)
+
+class YAMLObject(object):
+    """
+    An object that can dump itself to a YAML stream
+    and load itself from a YAML stream.
+    """
+
+    __metaclass__ = YAMLObjectMetaclass
+    __slots__ = ()  # no direct instantiation, so allow immutable subclasses
+
+    yaml_loader = Loader
+    yaml_dumper = Dumper
+
+    yaml_tag = None
+    yaml_flow_style = None
+
+    def from_yaml(cls, loader, node):
+        """
+        Convert a representation node to a Python object.
+        """
+        return loader.construct_yaml_object(node, cls)
+    from_yaml = classmethod(from_yaml)
+
+    def to_yaml(cls, dumper, data):
+        """
+        Convert a Python object to a representation node.
+        """
+        return dumper.represent_yaml_object(cls.yaml_tag, data, cls,
+                flow_style=cls.yaml_flow_style)
+    to_yaml = classmethod(to_yaml)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/__init__.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/__init__.pyc b/tools/bin/ext/yaml/__init__.pyc
new file mode 100644
index 0000000..003ad21
Binary files /dev/null and b/tools/bin/ext/yaml/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/composer.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/composer.py b/tools/bin/ext/yaml/composer.py
new file mode 100644
index 0000000..9f5cd87
--- /dev/null
+++ b/tools/bin/ext/yaml/composer.py
@@ -0,0 +1,118 @@
+
+__all__ = ['Composer', 'ComposerError']
+
+from error import MarkedYAMLError
+from events import *
+from nodes import *
+
+class ComposerError(MarkedYAMLError):
+    pass
+
+class Composer(object):
+
+    def __init__(self):
+        self.anchors = {}
+
+    def check_node(self):
+        # Drop the STREAM-START event.
+        if self.check_event(StreamStartEvent):
+            self.get_event()
+
+        # If there are more documents available?
+        return not self.check_event(StreamEndEvent)
+
+    def get_node(self):
+        # Get the root node of the next document.
+        if not self.check_event(StreamEndEvent):
+            return self.compose_document()
+
+    def compose_document(self):
+        # Drop the DOCUMENT-START event.
+        self.get_event()
+
+        # Compose the root node.
+        node = self.compose_node(None, None)
+
+        # Drop the DOCUMENT-END event.
+        self.get_event()
+
+        self.anchors = {}
+        return node
+
+    def compose_node(self, parent, index):
+        if self.check_event(AliasEvent):
+            event = self.get_event()
+            anchor = event.anchor
+            if anchor not in self.anchors:
+                raise ComposerError(None, None, "found undefined alias %r"
+                        % anchor.encode('utf-8'), event.start_mark)
+            return self.anchors[anchor]
+        event = self.peek_event()
+        anchor = event.anchor
+        if anchor is not None:
+            if anchor in self.anchors:
+                raise ComposerError("found duplicate anchor %r; first occurence"
+                        % anchor.encode('utf-8'), self.anchors[anchor].start_mark,
+                        "second occurence", event.start_mark)
+        self.descend_resolver(parent, index)
+        if self.check_event(ScalarEvent):
+            node = self.compose_scalar_node(anchor)
+        elif self.check_event(SequenceStartEvent):
+            node = self.compose_sequence_node(anchor)
+        elif self.check_event(MappingStartEvent):
+            node = self.compose_mapping_node(anchor)
+        self.ascend_resolver()
+        return node
+
+    def compose_scalar_node(self, anchor):
+        event = self.get_event()
+        tag = event.tag
+        if tag is None or tag == u'!':
+            tag = self.resolve(ScalarNode, event.value, event.implicit)
+        node = ScalarNode(tag, event.value,
+                event.start_mark, event.end_mark, style=event.style)
+        if anchor is not None:
+            self.anchors[anchor] = node
+        return node
+
+    def compose_sequence_node(self, anchor):
+        start_event = self.get_event()
+        tag = start_event.tag
+        if tag is None or tag == u'!':
+            tag = self.resolve(SequenceNode, None, start_event.implicit)
+        node = SequenceNode(tag, [],
+                start_event.start_mark, None,
+                flow_style=start_event.flow_style)
+        if anchor is not None:
+            self.anchors[anchor] = node
+        index = 0
+        while not self.check_event(SequenceEndEvent):
+            node.value.append(self.compose_node(node, index))
+            index += 1
+        end_event = self.get_event()
+        node.end_mark = end_event.end_mark
+        return node
+
+    def compose_mapping_node(self, anchor):
+        start_event = self.get_event()
+        tag = start_event.tag
+        if tag is None or tag == u'!':
+            tag = self.resolve(MappingNode, None, start_event.implicit)
+        node = MappingNode(tag, [],
+                start_event.start_mark, None,
+                flow_style=start_event.flow_style)
+        if anchor is not None:
+            self.anchors[anchor] = node
+        while not self.check_event(MappingEndEvent):
+            #key_event = self.peek_event()
+            item_key = self.compose_node(node, None)
+            #if item_key in node.value:
+            #    raise ComposerError("while composing a mapping", start_event.start_mark,
+            #            "found duplicate key", key_event.start_mark)
+            item_value = self.compose_node(node, item_key)
+            #node.value[item_key] = item_value
+            node.value.append((item_key, item_value))
+        end_event = self.get_event()
+        node.end_mark = end_event.end_mark
+        return node
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/composer.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/composer.pyc b/tools/bin/ext/yaml/composer.pyc
new file mode 100644
index 0000000..ea754d3
Binary files /dev/null and b/tools/bin/ext/yaml/composer.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/constructor.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/constructor.py b/tools/bin/ext/yaml/constructor.py
new file mode 100644
index 0000000..a1295c8
--- /dev/null
+++ b/tools/bin/ext/yaml/constructor.py
@@ -0,0 +1,675 @@
+
+__all__ = ['BaseConstructor', 'SafeConstructor', 'Constructor',
+    'ConstructorError']
+
+from error import *
+from nodes import *
+
+import datetime
+
+try:
+    set
+except NameError:
+    from sets import Set as set
+
+import binascii, re, sys, types
+
+class ConstructorError(MarkedYAMLError):
+    pass
+
+class BaseConstructor(object):
+
+    yaml_constructors = {}
+    yaml_multi_constructors = {}
+
+    def __init__(self):
+        self.constructed_objects = {}
+        self.recursive_objects = {}
+        self.state_generators = []
+        self.deep_construct = False
+
+    def check_data(self):
+        # If there are more documents available?
+        return self.check_node()
+
+    def get_data(self):
+        # Construct and return the next document.
+        if self.check_node():
+            return self.construct_document(self.get_node())
+
+    def construct_document(self, node):
+        data = self.construct_object(node)
+        while self.state_generators:
+            state_generators = self.state_generators
+            self.state_generators = []
+            for generator in state_generators:
+                for dummy in generator:
+                    pass
+        self.constructed_objects = {}
+        self.recursive_objects = {}
+        self.deep_construct = False
+        return data
+
+    def construct_object(self, node, deep=False):
+        if deep:
+            old_deep = self.deep_construct
+            self.deep_construct = True
+        if node in self.constructed_objects:
+            return self.constructed_objects[node]
+        if node in self.recursive_objects:
+            raise ConstructorError(None, None,
+                    "found unconstructable recursive node", node.start_mark)
+        self.recursive_objects[node] = None
+        constructor = None
+        state_constructor = None
+        tag_suffix = None
+        if node.tag in self.yaml_constructors:
+            constructor = self.yaml_constructors[node.tag]
+        else:
+            for tag_prefix in self.yaml_multi_constructors:
+                if node.tag.startswith(tag_prefix):
+                    tag_suffix = node.tag[len(tag_prefix):]
+                    constructor = self.yaml_multi_constructors[tag_prefix]
+                    break
+            else:
+                if None in self.yaml_multi_constructors:
+                    tag_suffix = node.tag
+                    constructor = self.yaml_multi_constructors[None]
+                elif None in self.yaml_constructors:
+                    constructor = self.yaml_constructors[None]
+                elif isinstance(node, ScalarNode):
+                    constructor = self.__class__.construct_scalar
+                elif isinstance(node, SequenceNode):
+                    constructor = self.__class__.construct_sequence
+                elif isinstance(node, MappingNode):
+                    constructor = self.__class__.construct_mapping
+        if tag_suffix is None:
+            data = constructor(self, node)
+        else:
+            data = constructor(self, tag_suffix, node)
+        if isinstance(data, types.GeneratorType):
+            generator = data
+            data = generator.next()
+            if self.deep_construct:
+                for dummy in generator:
+                    pass
+            else:
+                self.state_generators.append(generator)
+        self.constructed_objects[node] = data
+        del self.recursive_objects[node]
+        if deep:
+            self.deep_construct = old_deep
+        return data
+
+    def construct_scalar(self, node):
+        if not isinstance(node, ScalarNode):
+            raise ConstructorError(None, None,
+                    "expected a scalar node, but found %s" % node.id,
+                    node.start_mark)
+        return node.value
+
+    def construct_sequence(self, node, deep=False):
+        if not isinstance(node, SequenceNode):
+            raise ConstructorError(None, None,
+                    "expected a sequence node, but found %s" % node.id,
+                    node.start_mark)
+        return [self.construct_object(child, deep=deep)
+                for child in node.value]
+
+    def construct_mapping(self, node, deep=False):
+        if not isinstance(node, MappingNode):
+            raise ConstructorError(None, None,
+                    "expected a mapping node, but found %s" % node.id,
+                    node.start_mark)
+        mapping = {}
+        for key_node, value_node in node.value:
+            key = self.construct_object(key_node, deep=deep)
+            try:
+                hash(key)
+            except TypeError, exc:
+                raise ConstructorError("while constructing a mapping", node.start_mark,
+                        "found unacceptable key (%s)" % exc, key_node.start_mark)
+            value = self.construct_object(value_node, deep=deep)
+            mapping[key] = value
+        return mapping
+
+    def construct_pairs(self, node, deep=False):
+        if not isinstance(node, MappingNode):
+            raise ConstructorError(None, None,
+                    "expected a mapping node, but found %s" % node.id,
+                    node.start_mark)
+        pairs = []
+        for key_node, value_node in node.value:
+            key = self.construct_object(key_node, deep=deep)
+            value = self.construct_object(value_node, deep=deep)
+            pairs.append((key, value))
+        return pairs
+
+    def add_constructor(cls, tag, constructor):
+        if not 'yaml_constructors' in cls.__dict__:
+            cls.yaml_constructors = cls.yaml_constructors.copy()
+        cls.yaml_constructors[tag] = constructor
+    add_constructor = classmethod(add_constructor)
+
+    def add_multi_constructor(cls, tag_prefix, multi_constructor):
+        if not 'yaml_multi_constructors' in cls.__dict__:
+            cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy()
+        cls.yaml_multi_constructors[tag_prefix] = multi_constructor
+    add_multi_constructor = classmethod(add_multi_constructor)
+
+class SafeConstructor(BaseConstructor):
+
+    def construct_scalar(self, node):
+        if isinstance(node, MappingNode):
+            for key_node, value_node in node.value:
+                if key_node.tag == u'tag:yaml.org,2002:value':
+                    return self.construct_scalar(value_node)
+        return BaseConstructor.construct_scalar(self, node)
+
+    def flatten_mapping(self, node):
+        merge = []
+        index = 0
+        while index < len(node.value):
+            key_node, value_node = node.value[index]
+            if key_node.tag == u'tag:yaml.org,2002:merge':
+                del node.value[index]
+                if isinstance(value_node, MappingNode):
+                    self.flatten_mapping(value_node)
+                    merge.extend(value_node.value)
+                elif isinstance(value_node, SequenceNode):
+                    submerge = []
+                    for subnode in value_node.value:
+                        if not isinstance(subnode, MappingNode):
+                            raise ConstructorError("while constructing a mapping",
+                                    node.start_mark,
+                                    "expected a mapping for merging, but found %s"
+                                    % subnode.id, subnode.start_mark)
+                        self.flatten_mapping(subnode)
+                        submerge.append(subnode.value)
+                    submerge.reverse()
+                    for value in submerge:
+                        merge.extend(value)
+                else:
+                    raise ConstructorError("while constructing a mapping", node.start_mark,
+                            "expected a mapping or list of mappings for merging, but found %s"
+                            % value_node.id, value_node.start_mark)
+            elif key_node.tag == u'tag:yaml.org,2002:value':
+                key_node.tag = u'tag:yaml.org,2002:str'
+                index += 1
+            else:
+                index += 1
+        if merge:
+            node.value = merge + node.value
+
+    def construct_mapping(self, node, deep=False):
+        if isinstance(node, MappingNode):
+            self.flatten_mapping(node)
+        return BaseConstructor.construct_mapping(self, node, deep=deep)
+
+    def construct_yaml_null(self, node):
+        self.construct_scalar(node)
+        return None
+
+    bool_values = {
+        u'yes':     True,
+        u'no':      False,
+        u'true':    True,
+        u'false':   False,
+        u'on':      True,
+        u'off':     False,
+    }
+
+    def construct_yaml_bool(self, node):
+        value = self.construct_scalar(node)
+        return self.bool_values[value.lower()]
+
+    def construct_yaml_int(self, node):
+        value = str(self.construct_scalar(node))
+        value = value.replace('_', '')
+        sign = +1
+        if value[0] == '-':
+            sign = -1
+        if value[0] in '+-':
+            value = value[1:]
+        if value == '0':
+            return 0
+        elif value.startswith('0b'):
+            return sign*int(value[2:], 2)
+        elif value.startswith('0x'):
+            return sign*int(value[2:], 16)
+        elif value[0] == '0':
+            return sign*int(value, 8)
+        elif ':' in value:
+            digits = [int(part) for part in value.split(':')]
+            digits.reverse()
+            base = 1
+            value = 0
+            for digit in digits:
+                value += digit*base
+                base *= 60
+            return sign*value
+        else:
+            return sign*int(value)
+
+    inf_value = 1e300
+    while inf_value != inf_value*inf_value:
+        inf_value *= inf_value
+    nan_value = -inf_value/inf_value   # Trying to make a quiet NaN (like C99).
+
+    def construct_yaml_float(self, node):
+        value = str(self.construct_scalar(node))
+        value = value.replace('_', '').lower()
+        sign = +1
+        if value[0] == '-':
+            sign = -1
+        if value[0] in '+-':
+            value = value[1:]
+        if value == '.inf':
+            return sign*self.inf_value
+        elif value == '.nan':
+            return self.nan_value
+        elif ':' in value:
+            digits = [float(part) for part in value.split(':')]
+            digits.reverse()
+            base = 1
+            value = 0.0
+            for digit in digits:
+                value += digit*base
+                base *= 60
+            return sign*value
+        else:
+            return sign*float(value)
+
+    def construct_yaml_binary(self, node):
+        value = self.construct_scalar(node)
+        try:
+            return str(value).decode('base64')
+        except (binascii.Error, UnicodeEncodeError), exc:
+            raise ConstructorError(None, None,
+                    "failed to decode base64 data: %s" % exc, node.start_mark) 
+
+    timestamp_regexp = re.compile(
+            ur'''^(?P<year>[0-9][0-9][0-9][0-9])
+                -(?P<month>[0-9][0-9]?)
+                -(?P<day>[0-9][0-9]?)
+                (?:(?:[Tt]|[ \t]+)
+                (?P<hour>[0-9][0-9]?)
+                :(?P<minute>[0-9][0-9])
+                :(?P<second>[0-9][0-9])
+                (?:\.(?P<fraction>[0-9]*))?
+                (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
+                (?::(?P<tz_minute>[0-9][0-9]))?))?)?$''', re.X)
+
+    def construct_yaml_timestamp(self, node):
+        value = self.construct_scalar(node)
+        match = self.timestamp_regexp.match(node.value)
+        values = match.groupdict()
+        year = int(values['year'])
+        month = int(values['month'])
+        day = int(values['day'])
+        if not values['hour']:
+            return datetime.date(year, month, day)
+        hour = int(values['hour'])
+        minute = int(values['minute'])
+        second = int(values['second'])
+        fraction = 0
+        if values['fraction']:
+            fraction = int(values['fraction'][:6].ljust(6, '0'))
+        delta = None
+        if values['tz_sign']:
+            tz_hour = int(values['tz_hour'])
+            tz_minute = int(values['tz_minute'] or 0)
+            delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute)
+            if values['tz_sign'] == '-':
+                delta = -delta
+        data = datetime.datetime(year, month, day, hour, minute, second, fraction)
+        if delta:
+            data -= delta
+        return data
+
+    def construct_yaml_omap(self, node):
+        # Note: we do not check for duplicate keys, because it's too
+        # CPU-expensive.
+        omap = []
+        yield omap
+        if not isinstance(node, SequenceNode):
+            raise ConstructorError("while constructing an ordered map", node.start_mark,
+                    "expected a sequence, but found %s" % node.id, node.start_mark)
+        for subnode in node.value:
+            if not isinstance(subnode, MappingNode):
+                raise ConstructorError("while constructing an ordered map", node.start_mark,
+                        "expected a mapping of length 1, but found %s" % subnode.id,
+                        subnode.start_mark)
+            if len(subnode.value) != 1:
+                raise ConstructorError("while constructing an ordered map", node.start_mark,
+                        "expected a single mapping item, but found %d items" % len(subnode.value),
+                        subnode.start_mark)
+            key_node, value_node = subnode.value[0]
+            key = self.construct_object(key_node)
+            value = self.construct_object(value_node)
+            omap.append((key, value))
+
+    def construct_yaml_pairs(self, node):
+        # Note: the same code as `construct_yaml_omap`.
+        pairs = []
+        yield pairs
+        if not isinstance(node, SequenceNode):
+            raise ConstructorError("while constructing pairs", node.start_mark,
+                    "expected a sequence, but found %s" % node.id, node.start_mark)
+        for subnode in node.value:
+            if not isinstance(subnode, MappingNode):
+                raise ConstructorError("while constructing pairs", node.start_mark,
+                        "expected a mapping of length 1, but found %s" % subnode.id,
+                        subnode.start_mark)
+            if len(subnode.value) != 1:
+                raise ConstructorError("while constructing pairs", node.start_mark,
+                        "expected a single mapping item, but found %d items" % len(subnode.value),
+                        subnode.start_mark)
+            key_node, value_node = subnode.value[0]
+            key = self.construct_object(key_node)
+            value = self.construct_object(value_node)
+            pairs.append((key, value))
+
+    def construct_yaml_set(self, node):
+        data = set()
+        yield data
+        value = self.construct_mapping(node)
+        data.update(value)
+
+    def construct_yaml_str(self, node):
+        value = self.construct_scalar(node)
+        try:
+            return value.encode('ascii')
+        except UnicodeEncodeError:
+            return value
+
+    def construct_yaml_seq(self, node):
+        data = []
+        yield data
+        data.extend(self.construct_sequence(node))
+
+    def construct_yaml_map(self, node):
+        data = {}
+        yield data
+        value = self.construct_mapping(node)
+        data.update(value)
+
+    def construct_yaml_object(self, node, cls):
+        data = cls.__new__(cls)
+        yield data
+        if hasattr(data, '__setstate__'):
+            state = self.construct_mapping(node, deep=True)
+            data.__setstate__(state)
+        else:
+            state = self.construct_mapping(node)
+            data.__dict__.update(state)
+
+    def construct_undefined(self, node):
+        raise ConstructorError(None, None,
+                "could not determine a constructor for the tag %r" % node.tag.encode('utf-8'),
+                node.start_mark)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:null',
+        SafeConstructor.construct_yaml_null)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:bool',
+        SafeConstructor.construct_yaml_bool)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:int',
+        SafeConstructor.construct_yaml_int)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:float',
+        SafeConstructor.construct_yaml_float)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:binary',
+        SafeConstructor.construct_yaml_binary)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:timestamp',
+        SafeConstructor.construct_yaml_timestamp)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:omap',
+        SafeConstructor.construct_yaml_omap)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:pairs',
+        SafeConstructor.construct_yaml_pairs)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:set',
+        SafeConstructor.construct_yaml_set)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:str',
+        SafeConstructor.construct_yaml_str)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:seq',
+        SafeConstructor.construct_yaml_seq)
+
+SafeConstructor.add_constructor(
+        u'tag:yaml.org,2002:map',
+        SafeConstructor.construct_yaml_map)
+
+SafeConstructor.add_constructor(None,
+        SafeConstructor.construct_undefined)
+
+class Constructor(SafeConstructor):
+
+    def construct_python_str(self, node):
+        return self.construct_scalar(node).encode('utf-8')
+
+    def construct_python_unicode(self, node):
+        return self.construct_scalar(node)
+
+    def construct_python_long(self, node):
+        return long(self.construct_yaml_int(node))
+
+    def construct_python_complex(self, node):
+       return complex(self.construct_scalar(node))
+
+    def construct_python_tuple(self, node):
+        return tuple(self.construct_sequence(node))
+
+    def find_python_module(self, name, mark):
+        if not name:
+            raise ConstructorError("while constructing a Python module", mark,
+                    "expected non-empty name appended to the tag", mark)
+        try:
+            __import__(name)
+        except ImportError, exc:
+            raise ConstructorError("while constructing a Python module", mark,
+                    "cannot find module %r (%s)" % (name.encode('utf-8'), exc), mark)
+        return sys.modules[name]
+
+    def find_python_name(self, name, mark):
+        if not name:
+            raise ConstructorError("while constructing a Python object", mark,
+                    "expected non-empty name appended to the tag", mark)
+        if u'.' in name:
+            # Python 2.4 only
+            #module_name, object_name = name.rsplit('.', 1)
+            items = name.split('.')
+            object_name = items.pop()
+            module_name = '.'.join(items)
+        else:
+            module_name = '__builtin__'
+            object_name = name
+        try:
+            __import__(module_name)
+        except ImportError, exc:
+            raise ConstructorError("while constructing a Python object", mark,
+                    "cannot find module %r (%s)" % (module_name.encode('utf-8'), exc), mark)
+        module = sys.modules[module_name]
+        if not hasattr(module, object_name):
+            raise ConstructorError("while constructing a Python object", mark,
+                    "cannot find %r in the module %r" % (object_name.encode('utf-8'),
+                        module.__name__), mark)
+        return getattr(module, object_name)
+
+    def construct_python_name(self, suffix, node):
+        value = self.construct_scalar(node)
+        if value:
+            raise ConstructorError("while constructing a Python name", node.start_mark,
+                    "expected the empty value, but found %r" % value.encode('utf-8'),
+                    node.start_mark)
+        return self.find_python_name(suffix, node.start_mark)
+
+    def construct_python_module(self, suffix, node):
+        value = self.construct_scalar(node)
+        if value:
+            raise ConstructorError("while constructing a Python module", node.start_mark,
+                    "expected the empty value, but found %r" % value.encode('utf-8'),
+                    node.start_mark)
+        return self.find_python_module(suffix, node.start_mark)
+
+    class classobj: pass
+
+    def make_python_instance(self, suffix, node,
+            args=None, kwds=None, newobj=False):
+        if not args:
+            args = []
+        if not kwds:
+            kwds = {}
+        cls = self.find_python_name(suffix, node.start_mark)
+        if newobj and isinstance(cls, type(self.classobj))  \
+                and not args and not kwds:
+            instance = self.classobj()
+            instance.__class__ = cls
+            return instance
+        elif newobj and isinstance(cls, type):
+            return cls.__new__(cls, *args, **kwds)
+        else:
+            return cls(*args, **kwds)
+
+    def set_python_instance_state(self, instance, state):
+        if hasattr(instance, '__setstate__'):
+            instance.__setstate__(state)
+        else:
+            slotstate = {}
+            if isinstance(state, tuple) and len(state) == 2:
+                state, slotstate = state
+            if hasattr(instance, '__dict__'):
+                instance.__dict__.update(state)
+            elif state:
+                slotstate.update(state)
+            for key, value in slotstate.items():
+                setattr(object, key, value)
+
+    def construct_python_object(self, suffix, node):
+        # Format:
+        #   !!python/object:module.name { ... state ... }
+        instance = self.make_python_instance(suffix, node, newobj=True)
+        yield instance
+        deep = hasattr(instance, '__setstate__')
+        state = self.construct_mapping(node, deep=deep)
+        self.set_python_instance_state(instance, state)
+
+    def construct_python_object_apply(self, suffix, node, newobj=False):
+        # Format:
+        #   !!python/object/apply       # (or !!python/object/new)
+        #   args: [ ... arguments ... ]
+        #   kwds: { ... keywords ... }
+        #   state: ... state ...
+        #   listitems: [ ... listitems ... ]
+        #   dictitems: { ... dictitems ... }
+        # or short format:
+        #   !!python/object/apply [ ... arguments ... ]
+        # The difference between !!python/object/apply and !!python/object/new
+        # is how an object is created, check make_python_instance for details.
+        if isinstance(node, SequenceNode):
+            args = self.construct_sequence(node, deep=True)
+            kwds = {}
+            state = {}
+            listitems = []
+            dictitems = {}
+        else:
+            value = self.construct_mapping(node, deep=True)
+            args = value.get('args', [])
+            kwds = value.get('kwds', {})
+            state = value.get('state', {})
+            listitems = value.get('listitems', [])
+            dictitems = value.get('dictitems', {})
+        instance = self.make_python_instance(suffix, node, args, kwds, newobj)
+        if state:
+            self.set_python_instance_state(instance, state)
+        if listitems:
+            instance.extend(listitems)
+        if dictitems:
+            for key in dictitems:
+                instance[key] = dictitems[key]
+        return instance
+
+    def construct_python_object_new(self, suffix, node):
+        return self.construct_python_object_apply(suffix, node, newobj=True)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/none',
+    Constructor.construct_yaml_null)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/bool',
+    Constructor.construct_yaml_bool)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/str',
+    Constructor.construct_python_str)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/unicode',
+    Constructor.construct_python_unicode)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/int',
+    Constructor.construct_yaml_int)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/long',
+    Constructor.construct_python_long)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/float',
+    Constructor.construct_yaml_float)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/complex',
+    Constructor.construct_python_complex)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/list',
+    Constructor.construct_yaml_seq)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/tuple',
+    Constructor.construct_python_tuple)
+
+Constructor.add_constructor(
+    u'tag:yaml.org,2002:python/dict',
+    Constructor.construct_yaml_map)
+
+Constructor.add_multi_constructor(
+    u'tag:yaml.org,2002:python/name:',
+    Constructor.construct_python_name)
+
+Constructor.add_multi_constructor(
+    u'tag:yaml.org,2002:python/module:',
+    Constructor.construct_python_module)
+
+Constructor.add_multi_constructor(
+    u'tag:yaml.org,2002:python/object:',
+    Constructor.construct_python_object)
+
+Constructor.add_multi_constructor(
+    u'tag:yaml.org,2002:python/object/apply:',
+    Constructor.construct_python_object_apply)
+
+Constructor.add_multi_constructor(
+    u'tag:yaml.org,2002:python/object/new:',
+    Constructor.construct_python_object_new)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/constructor.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/constructor.pyc b/tools/bin/ext/yaml/constructor.pyc
new file mode 100644
index 0000000..c127d54
Binary files /dev/null and b/tools/bin/ext/yaml/constructor.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/cyaml.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/cyaml.py b/tools/bin/ext/yaml/cyaml.py
new file mode 100644
index 0000000..14acb07
--- /dev/null
+++ b/tools/bin/ext/yaml/cyaml.py
@@ -0,0 +1,85 @@
+
+__all__ = ['CBaseLoader', 'CSafeLoader', 'CLoader',
+        'CBaseDumper', 'CSafeDumper', 'CDumper']
+
+from _yaml import CParser, CEmitter
+
+from constructor import *
+
+from serializer import *
+from representer import *
+
+from resolver import *
+
+class CBaseLoader(CParser, BaseConstructor, BaseResolver):
+
+    def __init__(self, stream):
+        CParser.__init__(self, stream)
+        BaseConstructor.__init__(self)
+        BaseResolver.__init__(self)
+
+class CSafeLoader(CParser, SafeConstructor, Resolver):
+
+    def __init__(self, stream):
+        CParser.__init__(self, stream)
+        SafeConstructor.__init__(self)
+        Resolver.__init__(self)
+
+class CLoader(CParser, Constructor, Resolver):
+
+    def __init__(self, stream):
+        CParser.__init__(self, stream)
+        Constructor.__init__(self)
+        Resolver.__init__(self)
+
+class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        CEmitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_unicode=allow_unicode, line_break=line_break,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        Representer.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+
+class CSafeDumper(CEmitter, SafeRepresenter, Resolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        CEmitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_unicode=allow_unicode, line_break=line_break,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        SafeRepresenter.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+
+class CDumper(CEmitter, Serializer, Representer, Resolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        CEmitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_unicode=allow_unicode, line_break=line_break,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        Representer.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/cyaml.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/cyaml.pyc b/tools/bin/ext/yaml/cyaml.pyc
new file mode 100644
index 0000000..5829abe
Binary files /dev/null and b/tools/bin/ext/yaml/cyaml.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/dumper.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/dumper.py b/tools/bin/ext/yaml/dumper.py
new file mode 100644
index 0000000..355c1e2
--- /dev/null
+++ b/tools/bin/ext/yaml/dumper.py
@@ -0,0 +1,62 @@
+
+__all__ = ['BaseDumper', 'SafeDumper', 'Dumper']
+
+from emitter import *
+from serializer import *
+from representer import *
+from resolver import *
+
+class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        Emitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_uncode=allow_unicode, line_break=line_break)
+        Serializer.__init__(self, encoding=encoding,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        Representer.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+
+class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        Emitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_unicode=allow_unicode, line_break=line_break)
+        Serializer.__init__(self, encoding=encoding,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        SafeRepresenter.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+
+class Dumper(Emitter, Serializer, Representer, Resolver):
+
+    def __init__(self, stream,
+            default_style=None, default_flow_style=None,
+            canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None,
+            encoding=None, explicit_start=None, explicit_end=None,
+            version=None, tags=None):
+        Emitter.__init__(self, stream, canonical=canonical,
+                indent=indent, width=width,
+                allow_unicode=allow_unicode, line_break=line_break)
+        Serializer.__init__(self, encoding=encoding,
+                explicit_start=explicit_start, explicit_end=explicit_end,
+                version=version, tags=tags)
+        Representer.__init__(self, default_style=default_style,
+                default_flow_style=default_flow_style)
+        Resolver.__init__(self)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/dumper.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/dumper.pyc b/tools/bin/ext/yaml/dumper.pyc
new file mode 100644
index 0000000..611730d
Binary files /dev/null and b/tools/bin/ext/yaml/dumper.pyc differ


[34/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/basedef.json
----------------------------------------------------------------------
diff --git a/src/backend/access/index/basedef.json b/src/backend/access/index/basedef.json
new file mode 100644
index 0000000..a67bb33
--- /dev/null
+++ b/src/backend/access/index/basedef.json
@@ -0,0 +1,5492 @@
+{
+   "insert into gp_distribution_policy" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbcat.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_class" : {
+            "(oid) <- (localoid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_1(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = GpPolicyRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(GpPolicyRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_1",
+      "func_note" : "",
+      "func_number" : "1",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_1(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tGpPolicyLocalOidIndexId: localoid\n\t*/\n\t/* gp_distribution_policy: do not get exclusive lock */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_class (oid) <- (localoid) \n\t\t*/\n\n\t
 \t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_1 */\n",
+      "iud_func_name" : "caql_iud_fn_1",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "gp_distribution_policy"
+   },
+   "insert into gp_segment_configuration" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/gp/segadmin.c" : 1
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_2(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = GpSegmentConfigRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(GpSegmentConfigRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_2",
+      "func_note" : "",
+      "func_number" : "2",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_2(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tGpSegmentConfigRegistration_orderIndexId: registration_order\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_gp_segment_configuration_registration_order,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT4OID);\n\t\n\t\tcaql_lockwell(pCtx, GpSegmentConfigRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"gp_segment_c
 onfiguration\",\n\t\t\t\t\t  \"registration_order\",\n\t\t\t\t\t  GpSegmentConfigRegistration_orderIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_gp_segment_configuration_registration_order,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT4OID);\n\t\n\t\tcaql_lockwell(pCtx, GpSegmentConfigRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"gp_segment_configuration\",\n\t\t\t\t\t  \"registration_order\",\n\t\t\t\t\t  GpSegmentConfigRegistration_orderIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n
 \t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* INSERT/UPDATE/DELETE: no references\n\t\t   gp_segment_configuration is unrelated to any other table */\n\t\t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_2 */\n",
+      "iud_func_name" : "caql_iud_fn_2",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "gp_segment_configuration"
+   },
+   "insert into pg_aggregate" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_aggregate.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_operator" : {
+            "(oid) <- (aggsortop)" : 1
+         },
+         "pg_proc" : {
+            "(oid) <- (aggfinalfn)" : 1,
+            "(oid) <- (aggfnoid)" : 1,
+            "(oid) <- (agginvprelimfn)" : 1,
+            "(oid) <- (agginvtransfn)" : 1,
+            "(oid) <- (aggprelimfn)" : 1,
+            "(oid) <- (aggtransfn)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (aggtranstype)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_3(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AggregateRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AggregateRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_3",
+      "func_note" : "",
+      "func_number" : "3",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_3(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAggregateAggfnoidIndexId: aggfnoid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfnoid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AggregateRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_aggregate\",\n\t\t\t\t\t  \"aggfnoid\",\n\t\t\t\t\t  AggregateAg
 gfnoidIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfnoid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AggregateRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_aggregate\",\n\t\t\t\t\t  \"aggfnoid\",\n\t\t\t\t\t  AggregateAggfnoidIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_operator (o
 id) <- (aggsortop)\n\t\t  pg_proc (oid) <- (aggfinalfn)\n\t\t  pg_proc (oid) <- (aggfnoid)\n\t\t  pg_proc (oid) <- (agginvprelimfn)\n\t\t  pg_proc (oid) <- (agginvtransfn)\n\t\t  pg_proc (oid) <- (aggprelimfn)\n\t\t  pg_proc (oid) <- (aggtransfn)\n\t\t  pg_type (oid) <- (aggtranstype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggsortop,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_operator\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OperatorOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td =
  caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggsortop,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_operator\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OperatorOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfinalfn,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tupl
 e */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfinalfn,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfnoid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t
 \t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfnoid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_agginvprelimfn,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, 
 isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_agginvprelimfn,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tn
 ewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_agginvtransfn,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_agginvtransfn,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  f
 alse /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggprelimfn,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggprelimfn,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\
 t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggtransfn,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggtransfn,  &isnull);\n\t\t\toldha
 sh = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggtranstype,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\
 tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggtranstype,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_3 */\n",
+      "iud_func_name" : "caql_iud_fn_3",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_aggregate"
+   },
+   "insert into pg_amop" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_opclass" : {
+            "(oid) <- (amopclaid)" : 1
+         },
+         "pg_operator" : {
+            "(oid) <- (amopopr)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (amopsubtype)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_4(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AccessMethodOperatorRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AccessMethodOperatorRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_4",
+      "func_note" : "",
+      "func_number" : "4",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_4(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAccessMethodStrategyIndexId: amopclaid, amopsubtype, amopstrategy\n\tAccessMethodOperatorIndexId: amopopr, amopclaid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopsubtype,  &isnull)
 ;\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopstrategy,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_amop\",\n\t\t\t\t\t  \"amopclaid, amopsubtype, amopstrategy\",\n\t\t\t\t\t  AccessMethodStrategyIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopsubtype,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_p
 g_amop_amopstrategy,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_amop\",\n\t\t\t\t\t  \"amopclaid, amopsubtype, amopstrategy\",\n\t\t\t\t\t  AccessMethodStrategyIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopopr,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_amop\",\n\t\t\t\t\t  \"amopopr, amopclaid\",\n\t\t\t\t\t  AccessMetho
 dOperatorIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopopr,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_amop\",\n\t\t\t\t\t  \"amopopr, amopclaid\",\n\t\t\t\t\t  AccessMethodOperatorIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\tel
 se\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_opclass (oid) <- (amopclaid)\n\t\t  pg_operator (oid) <- (amopopr)\n\t\t  pg_type (oid) <- (amopsubtype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_opclass\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OpclassOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, o
 ldtup, Anum_pg_amop_amopclaid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_opclass\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OpclassOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopopr,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_operator\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OperatorOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapT
 upleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopopr,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_operator\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OperatorOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopsubtype,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t
 \t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopsubtype,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_4 */\n",
+      "iud_func_name" : "caql_iud_fn_4",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_amop"
+   },
+   "insert into pg_amproc" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_opclass" : {
+            "(oid) <- (amopclaid)" : 1
+         },
+         "pg_proc" : {
+            "(oid) <- (amproc)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (amprocsubtype)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_5(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AccessMethodProcedureRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AccessMethodProcedureRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_5",
+      "func_note" : "",
+      "func_number" : "5",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_5(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAccessMethodProcedureIndexId: amopclaid, amprocsubtype, amprocnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amopclaid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocsubtype,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, 
 isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocnum,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodProcedureRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_amproc\",\n\t\t\t\t\t  \"amopclaid, amprocsubtype, amprocnum\",\n\t\t\t\t\t  AccessMethodProcedureIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amopclaid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocsubtype,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocnum,  &isnull);\n\t\told
 hash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodProcedureRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_amproc\",\n\t\t\t\t\t  \"amopclaid, amprocsubtype, amprocnum\",\n\t\t\t\t\t  AccessMethodProcedureIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_opclass (oid) <- (amopclaid)\n\t\t  pg_proc (oid) <- (amproc)\n\t\t  pg_type (oid) <- (amprocsubtype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_
 amopclaid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_opclass\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OpclassOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amopclaid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_opclass\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  OpclassOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(n
 ewtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amproc,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amproc,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t 
  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocsubtype,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocsubtype,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\
 t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_5 */\n",
+      "iud_func_name" : "caql_iud_fn_5",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_amproc"
+   },
+   "insert into pg_appendonly" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_appendonly.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_class" : {
+            "(oid) <- (relid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_6(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AppendOnlyRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AppendOnlyRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_6",
+      "func_note" : "",
+      "func_number" : "6",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_6(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAppendOnlyRelidIndexId: relid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_appendonly_relid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AppendOnlyRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_appendonly\",\n\t\t\t\t\t  \"relid\",\n\t\t\t\t\t  AppendOnlyRelidInde
 xId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_appendonly_relid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AppendOnlyRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_appendonly\",\n\t\t\t\t\t  \"relid\",\n\t\t\t\t\t  AppendOnlyRelidIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_class (oid) <- (relid) \n\
 t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_appendonly_relid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ClassOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_appendonly_relid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t
   ClassOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_6 */\n",
+      "iud_func_name" : "caql_iud_fn_6",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_appendonly"
+   },
+   "insert into pg_attrdef" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_attribute" : {
+            "(attrelid) <- (adrelid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_7(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttrDefaultRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttrDefaultRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_7",
+      "func_note" : "",
+      "func_number" : "7",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_7(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAttrDefaultIndexId: adrelid, adnum\n\tAttrDefaultOidIndexId: oid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attrdef_adrelid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attrdef_adnum,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull,
  INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_attrdef\",\n\t\t\t\t\t  \"adrelid, adnum\",\n\t\t\t\t\t  AttrDefaultIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attrdef_adrelid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attrdef_adnum,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_attrdef\",\n\t\t\t\t\t  \"adrelid, adnum\",\n\t\t\t\t\t  AttrDefaultIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (
 HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_attrdef\",\n\t\t\t\t\t  \"oid\",\n\t\t\t\t\t  AttrDefaultOidIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_attrdef\",\n\t\t\t\t\t  \"oid\",\n\t\t\t\t\t  AttrDefaultOidIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t
   false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_attribute (attrelid) <- (adrelid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t\t  \"attrelid\",\n\t\t\t\t\t\t  InvalidOid,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\t{ d = 0; 
 isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t\t  \"attrelid\",\n\t\t\t\t\t\t  InvalidOid,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_7 */\n",
+      "iud_func_name" : "caql_iud_fn_7",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_attrdef"
+   },
+   "insert into pg_attribute" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1,
+         "../../../..//src/backend/catalog/index.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_class" : {
+            "(oid) <- (attrelid)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (atttypid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_8(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttributeRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttributeRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_8",
+      "func_note" : "",
+      "func_number" : "8",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_8(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAttributeRelidNameIndexId: attrelid, attname\n\tAttributeRelidNumIndexId: attrelid, attnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attname,  &isnull);\n\t\tnewhash = caql
 _pkhash(pCtx, newhash, d, isnull, NAMEOID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t  \"attrelid, attname\",\n\t\t\t\t\t  AttributeRelidNameIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attname,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, NAMEOID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t  \"attrelid, attname\",\n\t\t\t\t\t  AttributeRelidNameIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  f
 alse /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attnum,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t  \"attrelid, attnum\",\n\t\t\t\t\t  AttributeRelidNumIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOI
 D);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attnum,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t  \"attrelid, attnum\",\n\t\t\t\t\t  AttributeRelidNumIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t  if deleting, pg_attribute primary key may be referenced in:\n\t\t  pg_attrdef (adrelid) <- (attrelid)\n\t\t  pg_attribute_encoding (attrelid) <- (attrelid)\n\t\t  pg_rewrite (ev_class) <- (attrelid)\n\t\t  pg_statistic (starelid) <- (attrelid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update
 , check foreign keys against:\t\n\t\t  pg_class (oid) <- (attrelid)\n\t\t  pg_type (oid) <- (atttypid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ClassOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationI
 d, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ClassOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_atttypid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attt
 ypid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_8 */\n",
+      "iud_func_name" : "caql_iud_fn_8",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 3,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_attribute"
+   },
+   "insert into pg_attribute_encoding" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_attribute_encoding.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_attribute" : {
+            "(attrelid) <- (attrelid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_9(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttributeEncodingRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttributeEncodingRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_9",
+      "func_note" : "",
+      "func_number" : "9",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_9(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAttributeEncodingAttrelidAttnumIndexId: attrelid, attnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_encoding_attrelid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_encoding_attnum,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newha
 sh, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeEncodingRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_attribute_encoding\",\n\t\t\t\t\t  \"attrelid, attnum\",\n\t\t\t\t\t  AttributeEncodingAttrelidAttnumIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_encoding_attrelid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_encoding_attnum,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeEncodingRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_attribute_encoding\",\n\t\t\t\t\t  \"attrelid, attnum\",\n\t\t\t\t\t  AttributeEncodingAttrelidAttnumIndexId,\n\t
 \t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_attribute (attrelid) <- (attrelid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t\t  \"attrelid\",\n\t\t\t\t\t\t  InvalidOid,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tis
 null;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_attribute\",\n\t\t\t\t\t\t  \"attrelid\",\n\t\t\t\t\t\t  InvalidOid,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_9 */\n",
+      "iud_func_name" : "caql_iud_fn_9",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_attribute_encoding"
+   },
+   "insert into pg_auth_members" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_authid" : {
+            "(oid) <- (member)" : 1,
+            "(oid) <- (roleid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_10(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthMemRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthMemRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_10",
+      "func_note" : "",
+      "func_number" : "10",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_10(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAuthMemRoleMemIndexId: roleid, member\n\tAuthMemMemRoleIndexId: member, roleid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_member,  &isnull);\n\t\tnewhash = caql_pkhash(
 pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_auth_members\",\n\t\t\t\t\t  \"roleid, member\",\n\t\t\t\t\t  AuthMemRoleMemIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_auth_members\",\n\t\t\t\t\t  \"roleid, member\",\n\t\t\t\t\t  AuthMemRoleMemIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignor
 e invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_member,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_auth_members\",\n\t\t\t\t\t  \"member, roleid\",\n\t\t\t\t\t  AuthMemMemRoleIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = 
 caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_auth_members\",\n\t\t\t\t\t  \"member, roleid\",\n\t\t\t\t\t  AuthMemMemRoleIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_authid (oid) <- (member)\n\t\t  pg_authid (oid) <- (roleid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_au
 th_members_member,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))
 \n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  ol
 dhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_10 */\n",
+      "iud_func_name" : "caql_iud_fn_10",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_auth_members"
+   },
+   "insert into pg_auth_time_constraint" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_authid" : {
+            "(oid) <- (authid)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_11(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthTimeConstraintRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthTimeConstraintRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_11",
+      "func_note" : "",
+      "func_number" : "11",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_11(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/* ZERO indexes */\n\t/* Cannot obtain exclusive lock on tuple !! */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_authid (oid) <- (authid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\t
 d;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_time_constraint_authid,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_time_constraint_authid,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_authid\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AuthIdOidIndexId,\n\t\t\t\t\t\t  oldhash,\n
 \t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_11 */\n",
+      "iud_func_name" : "caql_iud_fn_11",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_auth_time_constraint"
+   },
+   "insert into pg_authid" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_resqueue" : {
+            "(oid) <- (rolresqueue)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_12(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthIdRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthIdRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_12",
+      "func_note" : "",
+      "func_number" : "12",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_12(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAuthIdRolnameIndexId: rolname\n\tAuthIdOidIndexId: oid\n\t*/\n\t/* pg_authid: do not get exclusive lock */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t  if deleting, pg_authid primary key may be referenced in:\n\t\t  pg_auth_members (member) <- (oid)\n\t\t  pg_auth_members (roleid) <- (oid)\n\t\t  pg_auth_time_constraint (authid) <- 
 (oid)\n\t\t  pg_class (relowner) <- (oid)\n\t\t  pg_compression (compowner) <- (oid)\n\t\t  pg_conversion (conowner) <- (oid)\n\t\t  pg_database (datdba) <- (oid)\n\t\t  pg_foreign_data_wrapper (fdwowner) <- (oid)\n\t\t  pg_foreign_server (srvowner) <- (oid)\n\t\t  pg_namespace (nspowner) <- (oid)\n\t\t  pg_opclass (opcowner) <- (oid)\n\t\t  pg_operator (oprowner) <- (oid)\n\t\t  pg_proc (proowner) <- (oid)\n\t\t  pg_remote_credentials (rcowner) <- (oid)\n\t\t  pg_tablespace (spcowner) <- (oid)\n\t\t  pg_type (typowner) <- (oid)\n\t\t  pg_user_mapping (umuser) <- (oid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_resqueue (oid) <- (rolresqueue) \n\t\t*/\n\n\t\t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_12 */\n",
+      "iud_func_name" : "caql_iud_fn_12",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_authid"
+   },
+   "insert into pg_cast" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_proc" : {
+            "(oid) <- (castfunc)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (castsource)" : 1,
+            "(oid) <- (casttarget)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_13(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = CastRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(CastRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_13",
+      "func_note" : "",
+      "func_number" : "13",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_13(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tCastOidIndexId: oid\n\tCastSourceTargetIndexId: castsource, casttarget\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_cast\",\n\t\t\t\t\t  \"oid\",\n\t
 \t\t\t\t  CastOidIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_cast\",\n\t\t\t\t\t  \"oid\",\n\t\t\t\t\t  CastOidIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castsource,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_casttarget,  &isnull);\n\t\tnewhash =
  caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_cast\",\n\t\t\t\t\t  \"castsource, casttarget\",\n\t\t\t\t\t  CastSourceTargetIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castsource,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_casttarget,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_cast\",\n\t\t\t\t\t  \"castsource, casttarget\",\n\t\t\t\t\t  CastSourceTargetIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ig
 nore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_proc (oid) <- (castfunc)\n\t\t  pg_type (oid) <- (castsource)\n\t\t  pg_type (oid) <- (casttarget) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castfunc,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore in
 valid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castfunc,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_proc\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  ProcedureOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castsource,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \
 "oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castsource,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_casttarget,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tca
 ql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_casttarget,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_type\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  TypeOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_13 */\n",
+      "iud_func_name" : "caql_iud_fn_13",
+      "num_del_ops" : 0,
+      "num_ins_ops" : 1,
+      "num_upd_ops" : 0,
+      "tablename" : "pg_cast"
+   },
+   "insert into pg_class" : {
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "foreign_key_tables" : {
+         "pg_am" : {
+            "(oid) <- (relam)" : 1
+         },
+         "pg_authid" : {
+            "(oid) <- (relowner)" : 1
+         },
+         "pg_class" : {
+            "(oid) <- (reltoastidxid)" : 1,
+            "(oid) <- (reltoastrelid)" : 1
+         },
+         "pg_namespace" : {
+            "(oid) <- (relnamespace)" : 1
+         },
+         "pg_tablespace" : {
+            "(oid) <- (reltablespace)" : 1
+         },
+         "pg_type" : {
+            "(oid) <- (reltype)" : 1
+         }
+      },
+      "func" : "static\nSysScanDesc\ncaql_basic_fn_14(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = RelationRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t  pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(RelationRelationId == \n\t\t\t\t   RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc  = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+      "func_name" : "caql_basic_fn_14",
+      "func_note" : "",
+      "func_number" : "14",
+      "indexes" : {},
+      "iud_func" : "\nstatic\nvoid caql_iud_fn_14(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tClassOidIndexId: oid\n\tClassNameNspIndexId: relname, relnamespace\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t  \"oid\",\n\
 t\t\t\t\t  ClassOidIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t  \"oid\",\n\t\t\t\t\t  ClassOidIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_class_relname,  &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, NAMEOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_class_relnamespace,  &isnull);\n\t\
 tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t  pklockmode, newtup,\n\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t  \"relname, relnamespace\",\n\t\t\t\t\t  ClassNameNspIndexId,\n\t\t\t\t\t  newhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relname,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, NAMEOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relnamespace,  &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t  pklockmode, oldtup,\n\t\t\t\t\t  \"pg_class\",\n\t\t\t\t\t  \"relname, relnamespace\",\n\t\t\t\t\t  ClassNameNspIndexId,\n\t\t\t\t\t  oldhash,\n\t\t\t\t\t  dontWait,\n\t\t\t\t\t  false
  /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t  if deleting, pg_class primary key may be referenced in:\n\t\t  gp_distribution_policy (localoid) <- (oid)\n\t\t  gp_fastsequence (objid) <- (oid)\n\t\t  gp_relfile_node (relfilenode_oid) <- (oid)\n\t\t  pg_appendonly (relid) <- (oid)\n\t\t  pg_appendonly_alter_column (relid) <- (oid)\n\t\t  pg_attribute (attrelid) <- (oid)\n\t\t  pg_class (reltoastidxid) <- (oid)\n\t\t  pg_class (reltoastrelid) <- (oid)\n\t\t  pg_constraint (confrelid) <- (oid)\n\t\t  pg_constraint (conrelid) <- (oid)\n\t\t  pg_depend (classid) <- (oid)\n\t\t  pg_depend (refclassid) <- (oid)\n\t\t  pg_description (classoid) <- (oid)\n\t\t  pg_exttable (fmterrtbl) <- (oid)\n\t\t  pg_exttable (reloid) <- (oid)\n\t\t  pg_foreign_table (reloid) <- (oid)\n\t\t  pg_index (indexrelid) <- (oid)\n\t\t  pg_index (in
 drelid) <- (oid)\n\t\t  pg_inherits (inhparent) <- (oid)\n\t\t  pg_inherits (inhrelid) <- (oid)\n\t\t  pg_partition (parrelid) <- (oid)\n\t\t  pg_partition_rule (parchildrelid) <- (oid)\n\t\t  pg_shdepend (classid) <- (oid)\n\t\t  pg_shdepend (refclassid) <- (oid)\n\t\t  pg_shdescription (classoid) <- (oid)\n\t\t  pg_trigger (tgconstrrelid) <- (oid)\n\t\t  pg_trigger (tgrelid) <- (oid)\n\t\t  pg_type (typrelid) <- (oid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t  if insert/update, check foreign keys against:\t\n\t\t  pg_am (oid) <- (relam)\n\t\t  pg_authid (oid) <- (relowner)\n\t\t  pg_class (oid) <- (reltoastidxid)\n\t\t  pg_class (oid) <- (reltoastrelid)\n\t\t  pg_namespace (oid) <- (relnamespace)\n\t\t  pg_tablespace (oid) <- (reltablespace)\n\t\t  pg_type (oid) <- (reltype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td 
 = caql_getattr_internal(pCtx, newtup, Anum_pg_class_relam,  &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AccessMethodRelationId, \n\t\t\t\t\t\t  AccessShareLock, newtup,\n\t\t\t\t\t\t  \"pg_am\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AmOidIndexId,\n\t\t\t\t\t\t  newhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relam,  &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AccessMethodRelationId, \n\t\t\t\t\t\t  AccessShareLock, oldtup,\n\t\t\t\t\t\t  \"pg_am\",\n\t\t\t\t\t\t  \"oid\",\n\t\t\t\t\t\t  AmOidIndexId,\n\t\t\t\t\t\t  oldhash,\n\t\t\t\t\t\t  dontWait,\n\t\t\t\t\t\t  false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\ti
 f (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\

<TRUNCATED>


[05/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.html
new file mode 100644
index 0000000..2e90378
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.html
@@ -0,0 +1,2429 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL Programming Information</title>
+<meta content="The classic PyGreSQL interface (pg module)" name="description" />
+<meta content="PyGreSQL, pg, PostGreSQL, Python" name="keywords" />
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-programming-information">
+<h1 class="title">PyGreSQL Programming Information</h1>
+<h2 class="subtitle" id="the-classic-pygresql-interface-pg-module">The classic PyGreSQL interface (pg module)</h2>
+<div class="contents topic">
+<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
+<ul class="auto-toc simple">
+<li><a class="reference" href="#introduction" id="id5" name="id5">1&nbsp;&nbsp;&nbsp;Introduction</a></li>
+<li><a class="reference" href="#module-functions-and-constants" id="id6" name="id6">2&nbsp;&nbsp;&nbsp;Module functions and constants</a><ul class="auto-toc">
+<li><a class="reference" href="#connect-opens-a-pg-connection" id="id7" name="id7">2.1&nbsp;&nbsp;&nbsp;connect - opens a pg connection</a></li>
+<li><a class="reference" href="#get-defhost-set-defhost-default-server-host-dv" id="id8" name="id8">2.2&nbsp;&nbsp;&nbsp;get_defhost, set_defhost - default server host [DV]</a></li>
+<li><a class="reference" href="#get-defport-set-defport-default-server-port-dv" id="id9" name="id9">2.3&nbsp;&nbsp;&nbsp;get_defport, set_defport - default server port [DV]</a></li>
+<li><a class="reference" href="#get-defopt-set-defopt-default-connection-options-dv" id="id10" name="id10">2.4&nbsp;&nbsp;&nbsp;get_defopt, set_defopt - default connection options [DV]</a></li>
+<li><a class="reference" href="#get-deftty-set-deftty-default-debug-tty-dv" id="id11" name="id11">2.5&nbsp;&nbsp;&nbsp;get_deftty, set_deftty - default debug tty [DV]</a></li>
+<li><a class="reference" href="#get-defbase-set-defbase-default-database-name-dv" id="id12" name="id12">2.6&nbsp;&nbsp;&nbsp;get_defbase, set_defbase - default database name [DV]</a></li>
+<li><a class="reference" href="#escape-string-escape-a-string-for-use-within-sql" id="id13" name="id13">2.7&nbsp;&nbsp;&nbsp;escape_string - escape a string for use within SQL</a></li>
+<li><a class="reference" href="#escape-bytea-escape-binary-data-for-use-within-sql-as-type-bytea" id="id14" name="id14">2.8&nbsp;&nbsp;&nbsp;escape_bytea - escape binary data for use within SQL as type <cite>bytea</cite></a></li>
+<li><a class="reference" href="#unescape-bytea-unescape-bytea-data-that-has-been-retrieved-as-text" id="id15" name="id15">2.9&nbsp;&nbsp;&nbsp;unescape_bytea -- unescape <cite>bytea</cite> data that has been retrieved as text</a></li>
+<li><a class="reference" href="#set-decimal-set-a-decimal-type-to-be-used-for-numeric-values" id="id16" name="id16">2.10&nbsp;&nbsp;&nbsp;set_decimal -- set a decimal type to be used for numeric values</a></li>
+<li><a class="reference" href="#module-constants" id="id17" name="id17">2.11&nbsp;&nbsp;&nbsp;Module constants</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#connection-objects-pgobject" id="id18" name="id18">3&nbsp;&nbsp;&nbsp;Connection objects: pgobject</a><ul class="auto-toc">
+<li><a class="reference" href="#query-executes-a-sql-command-string" id="id19" name="id19">3.1&nbsp;&nbsp;&nbsp;query - executes a SQL command string</a></li>
+<li><a class="reference" href="#reset-resets-the-connection" id="id20" name="id20">3.2&nbsp;&nbsp;&nbsp;reset - resets the connection</a></li>
+<li><a class="reference" href="#cancel-abandon-processing-of-current-sql-command" id="id21" name="id21">3.3&nbsp;&nbsp;&nbsp;cancel - abandon processing of current SQL command</a></li>
+<li><a class="reference" href="#close-close-the-database-connection" id="id22" name="id22">3.4&nbsp;&nbsp;&nbsp;close - close the database connection</a></li>
+<li><a class="reference" href="#fileno-returns-the-socket-used-to-connect-to-the-database" id="id23" name="id23">3.5&nbsp;&nbsp;&nbsp;fileno - returns the socket used to connect to the database</a></li>
+<li><a class="reference" href="#getnotify-gets-the-last-notify-from-the-server" id="id24" name="id24">3.6&nbsp;&nbsp;&nbsp;getnotify - gets the last notify from the server</a></li>
+<li><a class="reference" href="#inserttable-insert-a-list-into-a-table" id="id25" name="id25">3.7&nbsp;&nbsp;&nbsp;inserttable - insert a list into a table</a></li>
+<li><a class="reference" href="#putline-writes-a-line-to-the-server-socket-da" id="id26" name="id26">3.8&nbsp;&nbsp;&nbsp;putline - writes a line to the server socket [DA]</a></li>
+<li><a class="reference" href="#getline-gets-a-line-from-server-socket-da" id="id27" name="id27">3.9&nbsp;&nbsp;&nbsp;getline - gets a line from server socket [DA]</a></li>
+<li><a class="reference" href="#endcopy-synchronizes-client-and-server-da" id="id28" name="id28">3.10&nbsp;&nbsp;&nbsp;endcopy - synchronizes client and server [DA]</a></li>
+<li><a class="reference" href="#locreate-create-a-large-object-in-the-database-lo" id="id29" name="id29">3.11&nbsp;&nbsp;&nbsp;locreate - create a large object in the database [LO]</a></li>
+<li><a class="reference" href="#getlo-build-a-large-object-from-given-oid-lo" id="id30" name="id30">3.12&nbsp;&nbsp;&nbsp;getlo - build a large object from given oid [LO]</a></li>
+<li><a class="reference" href="#loimport-import-a-file-to-a-large-object-lo" id="id31" name="id31">3.13&nbsp;&nbsp;&nbsp;loimport - import a file to a large object [LO]</a></li>
+<li><a class="reference" href="#object-attributes" id="id32" name="id32">3.14&nbsp;&nbsp;&nbsp;Object attributes</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#the-db-wrapper-class" id="id33" name="id33">4&nbsp;&nbsp;&nbsp;The DB wrapper class</a><ul class="auto-toc">
+<li><a class="reference" href="#initialization" id="id34" name="id34">4.1&nbsp;&nbsp;&nbsp;Initialization</a></li>
+<li><a class="reference" href="#pkey-return-the-primary-key-of-a-table" id="id35" name="id35">4.2&nbsp;&nbsp;&nbsp;pkey - return the primary key of a table</a></li>
+<li><a class="reference" href="#get-databases-get-list-of-databases-in-the-system" id="id36" name="id36">4.3&nbsp;&nbsp;&nbsp;get_databases - get list of databases in the system</a></li>
+<li><a class="reference" href="#get-relations-get-list-of-relations-in-connected-database" id="id37" name="id37">4.4&nbsp;&nbsp;&nbsp;get_relations - get list of relations in connected database</a></li>
+<li><a class="reference" href="#get-tables-get-list-of-tables-in-connected-database" id="id38" name="id38">4.5&nbsp;&nbsp;&nbsp;get_tables - get list of tables in connected database</a></li>
+<li><a class="reference" href="#get-attnames-get-the-attribute-names-of-a-table" id="id39" name="id39">4.6&nbsp;&nbsp;&nbsp;get_attnames - get the attribute names of a table</a></li>
+<li><a class="reference" href="#has-table-privilege-check-whether-current-user-has-specified-table-privilege" id="id40" name="id40">4.7&nbsp;&nbsp;&nbsp;has_table_privilege - check whether current user has specified table privilege</a></li>
+<li><a class="reference" href="#get-get-a-row-from-a-database-table-or-view" id="id41" name="id41">4.8&nbsp;&nbsp;&nbsp;get - get a row from a database table or view</a></li>
+<li><a class="reference" href="#insert-insert-a-row-into-a-database-table" id="id42" name="id42">4.9&nbsp;&nbsp;&nbsp;insert - insert a row into a database table</a></li>
+<li><a class="reference" href="#update-update-a-row-in-a-database-table" id="id43" name="id43">4.10&nbsp;&nbsp;&nbsp;update - update a row in a database table</a></li>
+<li><a class="reference" href="#clear-clears-row-values-in-memory" id="id44" name="id44">4.11&nbsp;&nbsp;&nbsp;clear - clears row values in memory</a></li>
+<li><a class="reference" href="#delete-delete-a-row-from-a-database-table" id="id45" name="id45">4.12&nbsp;&nbsp;&nbsp;delete - delete a row from a database table</a></li>
+<li><a class="reference" href="#id1" id="id46" name="id46">4.13&nbsp;&nbsp;&nbsp;escape_string - escape a string for use within SQL</a></li>
+<li><a class="reference" href="#id2" id="id47" name="id47">4.14&nbsp;&nbsp;&nbsp;escape_bytea - escape binary data for use within SQL as type <cite>bytea</cite></a></li>
+<li><a class="reference" href="#id3" id="id48" name="id48">4.15&nbsp;&nbsp;&nbsp;unescape_bytea -- unescape <cite>bytea</cite> data that has been retrieved as text</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#pgqueryobject-methods" id="id49" name="id49">5&nbsp;&nbsp;&nbsp;pgqueryobject methods</a><ul class="auto-toc">
+<li><a class="reference" href="#getresult-get-query-values-as-list-of-tuples" id="id50" name="id50">5.1&nbsp;&nbsp;&nbsp;getresult - get query values as list of tuples</a></li>
+<li><a class="reference" href="#dictresult-get-query-values-as-list-of-dictionaries" id="id51" name="id51">5.2&nbsp;&nbsp;&nbsp;dictresult - get query values as list of dictionaries</a></li>
+<li><a class="reference" href="#listfields-lists-fields-names-of-previous-query-result" id="id52" name="id52">5.3&nbsp;&nbsp;&nbsp;listfields - lists fields names of previous query result</a></li>
+<li><a class="reference" href="#fieldname-fieldnum-field-name-number-conversion" id="id53" name="id53">5.4&nbsp;&nbsp;&nbsp;fieldname, fieldnum - field name/number conversion</a></li>
+<li><a class="reference" href="#ntuples-return-number-of-tuples-in-query-object" id="id54" name="id54">5.5&nbsp;&nbsp;&nbsp;ntuples - return number of tuples in query object</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#large-objects-pglarge" id="id55" name="id55">6&nbsp;&nbsp;&nbsp;Large objects: pglarge</a><ul class="auto-toc">
+<li><a class="reference" href="#open-opens-a-large-object" id="id56" name="id56">6.1&nbsp;&nbsp;&nbsp;open - opens a large object</a></li>
+<li><a class="reference" href="#close-closes-a-large-object" id="id57" name="id57">6.2&nbsp;&nbsp;&nbsp;close - closes a large object</a></li>
+<li><a class="reference" href="#read-write-tell-seek-unlink-file-like-large-object-handling" id="id58" name="id58">6.3&nbsp;&nbsp;&nbsp;read, write, tell, seek, unlink - file like large object handling</a></li>
+<li><a class="reference" href="#size-gives-the-large-object-size" id="id59" name="id59">6.4&nbsp;&nbsp;&nbsp;size - gives the large object size</a></li>
+<li><a class="reference" href="#export-saves-a-large-object-to-a-file" id="id60" name="id60">6.5&nbsp;&nbsp;&nbsp;export - saves a large object to a file</a></li>
+<li><a class="reference" href="#id4" id="id61" name="id61">6.6&nbsp;&nbsp;&nbsp;Object attributes</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id5" id="introduction" name="introduction">1&nbsp;&nbsp;&nbsp;Introduction</a></h1>
+<p>You may either choose to use the
+<a class="reference" href="pg.html">&quot;classic&quot; PyGreSQL interface</a>
+provided by the <cite>pg</cite> module or else the
+<a class="reference" href="pgdb.html">DB-API 2.0 compliant interface</a>
+provided by the <cite>pgdb</cite> module.</p>
+<p>The following documentation covers only the older <cite>pg</cite> API.</p>
+<p>The <cite>pg</cite> module handles three types of objects,</p>
+<ul class="simple">
+<li>the <cite>pgobject</cite>, which handles the connection
+and all the requests to the database,</li>
+<li>the <cite>pglarge</cite> object, which handles
+all the accesses to PostgreSQL large objects,</li>
+<li>the <cite>pgqueryobject</cite> that handles query results</li>
+</ul>
+<p>and it provides a convenient wrapper class <cite>DB</cite> for the <cite>pgobject</cite>.</p>
+<p>If you want to see a simple example of the use of some of these functions,
+see <a class="reference" href="http://ontario.bikerides.ca">http://ontario.bikerides.ca</a> where you can find a link at the bottom to the
+actual Python code for the page.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id6" id="module-functions-and-constants" name="module-functions-and-constants">2&nbsp;&nbsp;&nbsp;Module functions and constants</a></h1>
+<p>The <cite>pg</cite> module defines a few functions that allow to connect
+to a database and to define &quot;default variables&quot; that override
+the environment variables used by PostgreSQL.</p>
+<p>These &quot;default variables&quot; were designed to allow you to handle general
+connection parameters without heavy code in your programs. You can prompt the
+user for a value, put it in the default variable, and forget it, without
+having to modify your environment. The support for default variables can be
+disabled by setting the -DNO_DEF_VAR option in the Python setup file. Methods
+relative to this are specified by the tag [DV].</p>
+<p>All variables are set to <cite>None</cite> at module initialization, specifying that
+standard environment variables should be used.</p>
+<div class="section">
+<h2><a class="toc-backref" href="#id7" id="connect-opens-a-pg-connection" name="connect-opens-a-pg-connection">2.1&nbsp;&nbsp;&nbsp;connect - opens a pg connection</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+connect([dbname], [host], [port], [opt], [tty], [user], [passwd])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dbname:</th><td class="field-body">name of connected database (string/None)</td>
+</tr>
+<tr class="field"><th class="field-name">host:</th><td class="field-body">name of the server host (string/None)</td>
+</tr>
+<tr class="field"><th class="field-name">port:</th><td class="field-body">port used by the database server (integer/-1)</td>
+</tr>
+<tr class="field"><th class="field-name">opt:</th><td class="field-body">connection options (string/None)</td>
+</tr>
+<tr class="field"><th class="field-name">tty:</th><td class="field-body">debug terminal (string/None)</td>
+</tr>
+<tr class="field"><th class="field-name">user:</th><td class="field-body">PostgreSQL user (string/None)</td>
+</tr>
+<tr class="field"><th class="field-name">passwd:</th><td class="field-body">password for user (string/None)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">pgobject:</th><td class="field-body">If successful, the <cite>pgobject</cite> handling the connection</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+<tr class="field"><th class="field-name">SyntaxError:</th><td class="field-body">duplicate argument definition</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">some error occurred during pg connection definition</td>
+</tr>
+</tbody>
+</table>
+<p class="last">(plus all exceptions relative to object allocation)</p>
+</dd>
+<dt>Description:</dt>
+<dd>This function opens a connection to a specified database on a given
+PostgreSQL server. You can use keywords here, as described in the
+Python tutorial. The names of the keywords are the name of the
+parameters given in the syntax line. For a precise description
+of the parameters, please refer to the PostgreSQL user manual.</dd>
+</dl>
+<p>Examples:</p>
+<pre class="literal-block">
+import pg
+
+con1 = pg.connect('testdb', 'myhost', 5432, None, None, 'bob', None)
+con2 = pg.connect(dbname='testdb', host='localhost', user='bob')
+</pre>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id8" id="get-defhost-set-defhost-default-server-host-dv" name="get-defhost-set-defhost-default-server-host-dv">2.2&nbsp;&nbsp;&nbsp;get_defhost, set_defhost - default server host [DV]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_defhost()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">default host specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the current default host specification,
+or <cite>None</cite> if the environment variables should be used.
+Environment variables won't be looked up.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_defhost(host)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">host:</th><td class="field-body">new default host (string/None)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">previous default host specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods sets the default host value for new connections.
+If <cite>None</cite> is supplied as parameter, environment variables will
+be used in future connections. It returns the previous setting
+for default host.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id9" id="get-defport-set-defport-default-server-port-dv" name="get-defport-set-defport-default-server-port-dv">2.3&nbsp;&nbsp;&nbsp;get_defport, set_defport - default server port [DV]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_defport()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">integer, None:</th><td class="field-body">default port specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the current default port specification,
+or <cite>None</cite> if the environment variables should be used.
+Environment variables won't be looked up.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_defport(port)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">port:</th><td class="field-body">new default port (integer/-1)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">integer, None:</th><td class="field-body">previous default port specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods sets the default port value for new connections. If -1 is
+supplied as parameter, environment variables will be used in future
+connections. It returns the previous setting for default port.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id10" id="get-defopt-set-defopt-default-connection-options-dv" name="get-defopt-set-defopt-default-connection-options-dv">2.4&nbsp;&nbsp;&nbsp;get_defopt, set_defopt - default connection options [DV]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_defopt()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">default options specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the current default connection options  specification,
+or <cite>None</cite> if the environment variables should be used. Environment variables
+won't be looked up.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_defopt(options)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">options:</th><td class="field-body">new default connection options (string/None)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">previous default options specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods sets the default connection options value for new connections.
+If <cite>None</cite> is supplied as parameter, environment variables will be used in
+future connections. It returns the previous setting for default options.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id11" id="get-deftty-set-deftty-default-debug-tty-dv" name="get-deftty-set-deftty-default-debug-tty-dv">2.5&nbsp;&nbsp;&nbsp;get_deftty, set_deftty - default debug tty [DV]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_deftty()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">default debug terminal specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the current default debug terminal specification, or
+<cite>None</cite> if the environment variables should be used. Environment variables
+won't be looked up.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_deftty(terminal)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">terminal:</th><td class="field-body">new default debug terminal (string/None)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">previous default debug terminal specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods sets the default debug terminal value for new connections. If
+<cite>None</cite> is supplied as parameter, environment variables will be used in future
+connections. It returns the previous setting for default terminal.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id12" id="get-defbase-set-defbase-default-database-name-dv" name="get-defbase-set-defbase-default-database-name-dv">2.6&nbsp;&nbsp;&nbsp;get_defbase, set_defbase - default database name [DV]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_defbase()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">default database name specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the current default database name specification, or
+<cite>None</cite> if the environment variables should be used. Environment variables
+won't be looked up.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_defbase(base)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">base:</th><td class="field-body">new default base name (string/None)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string, None:</th><td class="field-body">previous default database name specification</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method sets the default database name value for new connections. If
+<cite>None</cite> is supplied as parameter, environment variables will be used in
+future connections. It returns the previous setting for default host.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id13" id="escape-string-escape-a-string-for-use-within-sql" name="escape-string-escape-a-string-for-use-within-sql">2.7&nbsp;&nbsp;&nbsp;escape_string - escape a string for use within SQL</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+escape_string(string)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string:</th><td class="field-body">the string that is to be escaped</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">the escaped string</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This function escapes a string for use within an SQL command.
+This is useful when inserting data values as literal constants
+in SQL commands. Certain characters (such as quotes and backslashes)
+must be escaped to prevent them from being interpreted specially
+by the SQL parser. <cite>escape_string</cite> performs this operation.
+Note that there is also a <cite>pgobject</cite> method with the same name
+which takes connection properties into account.</dd>
+</dl>
+<div class="caution">
+<p class="first admonition-title">Caution!</p>
+<p class="last">It is especially important to do proper escaping when
+handling strings that were received from an untrustworthy source.
+Otherwise there is a security risk: you are vulnerable to &quot;SQL injection&quot;
+attacks wherein unwanted SQL commands are fed to your database.</p>
+</div>
+<p>Example:</p>
+<pre class="literal-block">
+name = raw_input(&quot;Name? &quot;)
+phone = con.query(&quot;select phone from employees&quot;
+  &quot; where name='%s'&quot; % escape_string(name)).getresult()
+</pre>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id14" id="escape-bytea-escape-binary-data-for-use-within-sql-as-type-bytea" name="escape-bytea-escape-binary-data-for-use-within-sql-as-type-bytea">2.8&nbsp;&nbsp;&nbsp;escape_bytea - escape binary data for use within SQL as type <cite>bytea</cite></a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+escape_bytea(datastring)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">datastring:</th><td class="field-body">string containing the binary data that is to be escaped</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">the escaped string</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Escapes binary data for use within an SQL command with the type <cite>bytea</cite>.
+As with <cite>escape_string</cite>, this is only used when inserting data directly
+into an SQL command string.
+Note that there is also a <cite>pgobject</cite> method with the same name
+which takes connection properties into account.</dd>
+</dl>
+<p>Example:</p>
+<pre class="literal-block">
+picture = file('garfield.gif', 'rb').read()
+con.query(&quot;update pictures set img='%s' where name='Garfield'&quot;
+  % escape_bytea(picture))
+</pre>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id15" id="unescape-bytea-unescape-bytea-data-that-has-been-retrieved-as-text" name="unescape-bytea-unescape-bytea-data-that-has-been-retrieved-as-text">2.9&nbsp;&nbsp;&nbsp;unescape_bytea -- unescape <cite>bytea</cite> data that has been retrieved as text</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+unescape_bytea(string)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">datastring:</th><td class="field-body">the <cite>bytea</cite> data string that has been retrieved as text</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">string containing the binary data</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Converts an escaped string representation of binary data into binary
+data - the reverse of <cite>escape_bytea</cite>. This is needed when retrieving
+<cite>bytea</cite> data with the <cite>getresult()</cite> or <cite>dictresult()</cite> method.</dd>
+</dl>
+<p>Example:</p>
+<pre class="literal-block">
+picture = unescape_bytea(con.query(
+  &quot;select img from pictures where name='Garfield'&quot;).getresult[0][0])
+file('garfield.gif', 'wb').write(picture)
+</pre>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id16" id="set-decimal-set-a-decimal-type-to-be-used-for-numeric-values" name="set-decimal-set-a-decimal-type-to-be-used-for-numeric-values">2.10&nbsp;&nbsp;&nbsp;set_decimal -- set a decimal type to be used for numeric values</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+set_decimal(cls)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">cls:</th><td class="field-body">the Python class to be used for PostgreSQL numeric values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This function can be used to specify the Python class that shall be
+used by PyGreSQL to hold PostgreSQL numeric values. The default class
+is decimal.Decimal if available, otherwise the float type is used.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id17" id="module-constants" name="module-constants">2.11&nbsp;&nbsp;&nbsp;Module constants</a></h2>
+<p>Some constants are defined in the module dictionary.
+They are intended to be used as parameters for methods calls.
+You should refer to the libpq description in the PostgreSQL user manual
+for more information about them. These constants are:</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name" colspan="2">version, __version__:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">constants that give the current version.</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">INV_READ, INV_WRITE:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">large objects access modes,
+used by <cite>(pgobject.)locreate</cite> and <cite>(pglarge.)open</cite></td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">SEEK_SET, SEEK_CUR, SEEK_END:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">positional flags,
+used by <cite>(pglarge.)seek</cite></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id18" id="connection-objects-pgobject" name="connection-objects-pgobject">3&nbsp;&nbsp;&nbsp;Connection objects: pgobject</a></h1>
+<p>This object handles a connection to a PostgreSQL database. It embeds and
+hides all the parameters that define this connection, thus just leaving really
+significant parameters in function calls.</p>
+<div class="caution">
+<p class="first admonition-title">Caution!</p>
+<p>Some methods give direct access to the connection socket.
+<em>Do not use them unless you really know what you are doing.</em>
+If you prefer disabling them,
+set the -DNO_DIRECT option in the Python setup file.</p>
+<p class="last"><strong>These methods are specified by the tag [DA].</strong></p>
+</div>
+<div class="note">
+<p class="first admonition-title">Note</p>
+<p>Some other methods give access to large objects
+(refer to PostgreSQL user manual for more information about these).
+If you want to forbid access to these from the module,
+set the -DNO_LARGE option in the Python setup file.</p>
+<p class="last"><strong>These methods are specified by the tag [LO].</strong></p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id19" id="query-executes-a-sql-command-string" name="query-executes-a-sql-command-string">3.1&nbsp;&nbsp;&nbsp;query - executes a SQL command string</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+query(command)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">command:</th><td class="field-body">SQL command (string)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name" colspan="2">pgqueryobject, None:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">result values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">bad argument type, or too many arguments</td>
+</tr>
+<tr class="field"><th class="field-name">ValueError:</th><td class="field-body">empty SQL query or lost connection</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.ProgrammingError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">error in query</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError':</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">error during query processing</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method simply sends a SQL query to the database. If the query is an
+insert statement that inserted exactly one row into a table that has OIDs, the
+return value is the OID of the newly inserted row. If the query is an update
+or delete statement, or an insert statement that did not insert exactly one
+row in a table with OIDs, then the numer of rows affected is returned as a
+string. If it is a statement that returns rows as a result (usually a select
+statement, but maybe also an &quot;insert/update ... returning&quot; statement), this
+method returns a <cite>pgqueryobject</cite> that can be accessed via the <cite>getresult()</cite>
+or <cite>dictresult()</cite> method or simply printed. Otherwise, it returns <cite>None</cite>.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id20" id="reset-resets-the-connection" name="reset-resets-the-connection">3.2&nbsp;&nbsp;&nbsp;reset - resets the connection</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+reset()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many (any) arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method resets the current database connection.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id21" id="cancel-abandon-processing-of-current-sql-command" name="cancel-abandon-processing-of-current-sql-command">3.3&nbsp;&nbsp;&nbsp;cancel - abandon processing of current SQL command</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+cancel()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many (any) arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method requests that the server abandon processing
+of the current SQL command.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id22" id="close-close-the-database-connection" name="close-close-the-database-connection">3.4&nbsp;&nbsp;&nbsp;close - close the database connection</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+close()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many (any) arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method closes the database connection. The connection will
+be closed in any case when the connection is deleted but this
+allows you to explicitly close it. It is mainly here to allow
+the DB-SIG API wrapper to implement a close function.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id23" id="fileno-returns-the-socket-used-to-connect-to-the-database" name="fileno-returns-the-socket-used-to-connect-to-the-database">3.5&nbsp;&nbsp;&nbsp;fileno - returns the socket used to connect to the database</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+fileno()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many (any) arguments</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the underlying socket id used to connect
+to the database. This is useful for use in select calls, etc.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id24" id="getnotify-gets-the-last-notify-from-the-server" name="getnotify-gets-the-last-notify-from-the-server">3.6&nbsp;&nbsp;&nbsp;getnotify - gets the last notify from the server</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+getnotify()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">tuple, None:</th><td class="field-body">last notify from server</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods try to get a notify from the server (from the SQL statement
+NOTIFY). If the server returns no notify, the methods returns None.
+Otherwise, it returns a tuple (couple) <cite>(relname, pid)</cite>, where <cite>relname</cite>
+is the name of the notify and <cite>pid</cite> the process id of the connection that
+triggered the notify. Remember to do a listen query first otherwise
+getnotify() will always return <cite>None</cite>.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id25" id="inserttable-insert-a-list-into-a-table" name="inserttable-insert-a-list-into-a-table">3.7&nbsp;&nbsp;&nbsp;inserttable - insert a list into a table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+inserttable(table, values)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">the table name (string)</td>
+</tr>
+<tr class="field"><th class="field-name">values:</th><td class="field-body">list of rows values (list)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad argument type, or too many arguments</td>
+</tr>
+<tr class="field"><th class="field-name">MemoryError:</th><td class="field-body">insert buffer could not be allocated</td>
+</tr>
+<tr class="field"><th class="field-name">ValueError:</th><td class="field-body">unsupported values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method allow to <em>quickly</em> insert large blocks of data in a table:
+It inserts the whole values list into the given table. Internally, it
+uses the COPY command of the PostgreSQL database. The list is a list
+of tuples/lists that define the values for each inserted row. The rows
+values may contain string, integer, long or double (real) values.</dd>
+</dl>
+<div class="caution">
+<p class="first admonition-title">Caution!</p>
+<p class="last"><em>Be very careful</em>:
+This method doesn't typecheck the fields according to the table definition;
+it just look whether or not it knows how to handle such types.</p>
+</div>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id26" id="putline-writes-a-line-to-the-server-socket-da" name="putline-writes-a-line-to-the-server-socket-da">3.8&nbsp;&nbsp;&nbsp;putline - writes a line to the server socket [DA]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+putline(line)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">line:</th><td class="field-body">line to be written (string)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad parameter type, or too many parameters</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method allows to directly write a string to the server socket.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id27" id="getline-gets-a-line-from-server-socket-da" name="getline-gets-a-line-from-server-socket-da">3.9&nbsp;&nbsp;&nbsp;getline - gets a line from server socket [DA]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+getline()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string:</th><td class="field-body">the line read</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection</td>
+</tr>
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name">MemoryError:</th><td class="field-body">buffer overflow</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method allows to directly read a string from the server socket.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id28" id="endcopy-synchronizes-client-and-server-da" name="endcopy-synchronizes-client-and-server-da">3.10&nbsp;&nbsp;&nbsp;endcopy - synchronizes client and server [DA]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+endcopy()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd>None</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection</td>
+</tr>
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>The use of direct access methods may desynchonize client and server.
+This method ensure that client and server will be synchronized.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id29" id="locreate-create-a-large-object-in-the-database-lo" name="locreate-create-a-large-object-in-the-database-lo">3.11&nbsp;&nbsp;&nbsp;locreate - create a large object in the database [LO]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+locreate(mode)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">mode:</th><td class="field-body">large object create mode</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">pglarge:</th><td class="field-body">object handling the PostGreSQL large object</td>
+</tr>
+</tbody>
+</table>
+</dd>
+</dl>
+<p>Exceptions raised:</p>
+<blockquote>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad parameter type, or too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.OperationalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">creation error</td>
+</tr>
+</tbody>
+</table>
+</blockquote>
+<dl class="docutils">
+<dt>Description:</dt>
+<dd>This method creates a large object in the database. The mode can be defined
+by OR-ing the constants defined in the pg module (INV_READ, INV_WRITE and
+INV_ARCHIVE). Please refer to PostgreSQL user manual for a description of
+the mode values.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id30" id="getlo-build-a-large-object-from-given-oid-lo" name="getlo-build-a-large-object-from-given-oid-lo">3.12&nbsp;&nbsp;&nbsp;getlo - build a large object from given oid [LO]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+getlo(oid)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">oid:</th><td class="field-body">OID of the existing large object (integer)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">pglarge:</th><td class="field-body">object handling the PostGreSQL large object</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad parameter type, or too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name">ValueError:</th><td class="field-body">bad OID value (0 is invalid_oid)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method allows to reuse a formerly created large object through the
+<cite>pglarge</cite> interface, providing the user have its OID.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id31" id="loimport-import-a-file-to-a-large-object-lo" name="loimport-import-a-file-to-a-large-object-lo">3.13&nbsp;&nbsp;&nbsp;loimport - import a file to a large object [LO]</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+loimport(name)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">name:</th><td class="field-body">the name of the file to be imported (string)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">pglarge:</th><td class="field-body">object handling the PostGreSQL large object</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad argument type, or too many arguments</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.OperationalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">error during file import</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This methods allows to create large objects in a very simple way. You just
+give the name of a file containing the data to be use.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id32" id="object-attributes" name="object-attributes">3.14&nbsp;&nbsp;&nbsp;Object attributes</a></h2>
+<p>Every <cite>pgobject</cite> defines a set of read-only attributes that describe the
+connection and its status. These attributes are:</p>
+<blockquote>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">host:</th><td class="field-body">the host name of the server (string)</td>
+</tr>
+<tr class="field"><th class="field-name">port:</th><td class="field-body">the port of the server (integer)</td>
+</tr>
+<tr class="field"><th class="field-name">db:</th><td class="field-body">the selected database (string)</td>
+</tr>
+<tr class="field"><th class="field-name">options:</th><td class="field-body">the connection options (string)</td>
+</tr>
+<tr class="field"><th class="field-name">tty:</th><td class="field-body">the connection debug terminal (string)</td>
+</tr>
+<tr class="field"><th class="field-name">user:</th><td class="field-body">user name on the database system (string)</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">protocol_version:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">the frontend/backend protocol being used (integer)</td>
+</tr>
+<tr class="field"><th class="field-name">server_version:</th><td class="field-body">the backend version (integer, e.g. 80305 for 8.3.5)</td>
+</tr>
+<tr class="field"><th class="field-name">status:</th><td class="field-body">the status of the connection (integer: 1 - OK, 0 - bad)</td>
+</tr>
+<tr class="field"><th class="field-name">error:</th><td class="field-body">the last warning/error message from the server (string)</td>
+</tr>
+</tbody>
+</table>
+</blockquote>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id33" id="the-db-wrapper-class" name="the-db-wrapper-class">4&nbsp;&nbsp;&nbsp;The DB wrapper class</a></h1>
+<p>The <cite>pgobject</cite> methods are wrapped in the class <cite>DB</cite>.
+The preferred way to use this module is as follows:</p>
+<pre class="literal-block">
+import pg
+
+db = pg.DB(...) # see below
+
+for r in db.query( # just for example
+    &quot;&quot;&quot;SELECT foo,bar
+       FROM foo_bar_table
+       WHERE foo !~ bar&quot;&quot;&quot;
+    ).dictresult():
+
+    print '%(foo)s %(bar)s' % r
+</pre>
+<p>This class can be subclassed as in this example:</p>
+<pre class="literal-block">
+import pg
+
+class DB_ride(pg.DB):
+  &quot;&quot;&quot;This class encapsulates the database functions and the specific
+     methods for the ride database.&quot;&quot;&quot;
+
+  def __init__(self):
+      &quot;&quot;&quot;Opens a database connection to the rides database&quot;&quot;&quot;
+
+      pg.DB.__init__(self, dbname = 'ride')
+      self.query(&quot;&quot;&quot;SET DATESTYLE TO 'ISO'&quot;&quot;&quot;)
+
+  [Add or override methods here]
+</pre>
+<p>The following describes the methods and variables of this class.</p>
+<div class="section">
+<h2><a class="toc-backref" href="#id34" id="initialization" name="initialization">4.1&nbsp;&nbsp;&nbsp;Initialization</a></h2>
+<p>The DB class is initialized with the same arguments as the connect
+function described in section 2. It also initializes a few
+internal variables. The statement <cite>db = DB()</cite> will open the
+local database with the name of the user just like connect() does.</p>
+<p>You can also initialize the DB class with an existing <cite>_pg</cite> or <cite>pgdb</cite>
+connection. Pass this connection as a single unnamed parameter, or as a
+single parameter named <cite>db</cite>. This allows you to use all of the methods
+of the DB class with a DB-API 2 compliant connection. Note that the
+<cite>close()</cite> and <cite>reopen()</cite> methods are inoperative in this case.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id35" id="pkey-return-the-primary-key-of-a-table" name="pkey-return-the-primary-key-of-a-table">4.2&nbsp;&nbsp;&nbsp;pkey - return the primary key of a table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+pkey(table)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string:</th><td class="field-body">Name of the field which is the primary key of the table</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the primary key of a table. For composite primary
+keys, the return value will be a frozenset. Note that this raises an
+exception if the table does not have a primary key.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id36" id="get-databases-get-list-of-databases-in-the-system" name="get-databases-get-list-of-databases-in-the-system">4.3&nbsp;&nbsp;&nbsp;get_databases - get list of databases in the system</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_databases()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">list:</th><td class="field-body">all databases in the system</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Although you can do this with a simple select, it is added here for
+convenience.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id37" id="get-relations-get-list-of-relations-in-connected-database" name="get-relations-get-list-of-relations-in-connected-database">4.4&nbsp;&nbsp;&nbsp;get_relations - get list of relations in connected database</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_relations(kinds)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">kinds:</th><td class="field-body">a string or sequence of type letters</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>The type letters are <cite>r</cite> = ordinary table, <cite>i</cite> = index, <cite>S</cite> = sequence,
+<cite>v</cite> = view, <cite>c</cite> = composite type, <cite>s</cite> = special, <cite>t</cite> = TOAST table.
+If <cite>kinds</cite> is None or an empty string, all relations are returned (this is
+also the default). Although you can do this with a simple select, it is
+added here for convenience.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id38" id="get-tables-get-list-of-tables-in-connected-database" name="get-tables-get-list-of-tables-in-connected-database">4.5&nbsp;&nbsp;&nbsp;get_tables - get list of tables in connected database</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_tables()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Returns:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">list:</th><td class="field-body">all tables in connected database</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Although you can do this with a simple select, it is added here for
+convenience.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id39" id="get-attnames-get-the-attribute-names-of-a-table" name="get-attnames-get-the-attribute-names-of-a-table">4.6&nbsp;&nbsp;&nbsp;get_attnames - get the attribute names of a table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get_attnames(table)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Returns:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dictionary:</th><td class="field-body">The keys are the attribute names,
+the values are the type names of the attributes.</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Given the name of a table, digs out the set of attribute names.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id40" id="has-table-privilege-check-whether-current-user-has-specified-table-privilege" name="has-table-privilege-check-whether-current-user-has-specified-table-privilege">4.7&nbsp;&nbsp;&nbsp;has_table_privilege - check whether current user has specified table privilege</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+has_table_privilege(table, privilege)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+<tr class="field"><th class="field-name">privilege:</th><td class="field-body">privilege to be checked - default is 'select'</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Returns True if the current user has the specified privilege for the table.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id41" id="get-get-a-row-from-a-database-table-or-view" name="get-get-a-row-from-a-database-table-or-view">4.8&nbsp;&nbsp;&nbsp;get - get a row from a database table or view</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+get(table, arg, [keyname])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table or view</td>
+</tr>
+<tr class="field"><th class="field-name">arg:</th><td class="field-body">either a dictionary or the value to be looked up</td>
+</tr>
+<tr class="field"><th class="field-name">keyname:</th><td class="field-body">name of field to use as key (optional)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dictionary:</th><td class="field-body">The keys are the attribute names,
+the values are the row values.</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method is the basic mechanism to get a single row. It assumes
+that the key specifies a unique row. If <cite>keyname</cite> is not specified
+then the primary key for the table is used. If <cite>arg</cite> is a dictionary
+then the value for the key is taken from it and it is modified to
+include the new values, replacing existing values where necessary.
+For a composite key, <cite>keyname</cite> can also be a sequence of key names.
+The OID is also put into the dictionary if the table has one, but in
+order to allow the caller to work with multiple tables, it is munged
+as <cite>oid(schema.table)</cite>.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id42" id="insert-insert-a-row-into-a-database-table" name="insert-insert-a-row-into-a-database-table">4.9&nbsp;&nbsp;&nbsp;insert - insert a row into a database table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+insert(table, [d,] [return_changes,] [key = val, ...])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+<tr class="field"><th class="field-name">d:</th><td class="field-body">optional dictionary of values</td>
+</tr>
+<tr class="field"><th class="field-name">return_changes:</th><td class="field-body">Return values in new row - default True</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dictionary:</th><td class="field-body">The dictionary of values inserted</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd><p class="first">This method inserts a row into a table.  If the optional dictionary is
+not supplied then the required values must be included as keyword/value
+pairs.  If a dictionary is supplied then any keywords provided will be
+added to or replace the entry in the dictionary.</p>
+<p>The dictionary is then, if possible, reloaded with the values actually
+inserted in order to pick up values modified by rules, triggers, etc.</p>
+<p>Due to the way that this function works in PostgreSQL versions below
+8.2, you may find inserts taking longer and longer as your table gets
+bigger.  If this happens and it is a table with OID but no primary key
+you can overcome this problem by simply adding an index onto the OID of
+any table that you think may get large over time. You may also consider
+using the inserttable() method described in section 3.</p>
+<p>Note: With PostgreSQL versions before 8.2 the table being inserted to
+must have a primary key or an OID to use this method properly.  If not
+then the dictionary will not be filled in as described.  Also, if this
+method is called within a transaction, the transaction will abort.</p>
+<p class="last">Note: The method currently doesn't support insert into views
+although PostgreSQL does.</p>
+</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id43" id="update-update-a-row-in-a-database-table" name="update-update-a-row-in-a-database-table">4.10&nbsp;&nbsp;&nbsp;update - update a row in a database table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+update(table, [d,] [key = val, ...])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+<tr class="field"><th class="field-name">d:</th><td class="field-body">optional dictionary of values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dictionary:</th><td class="field-body">the new row</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd><p class="first">Similar to insert but updates an existing row.  The update is based on the
+OID value as munged by get or passed as keyword, or on the primary key of
+the table.  The dictionary is modified, if possible, to reflect any changes
+caused by the update due to triggers, rules, default values, etc.</p>
+<p class="last">Like insert, the dictionary is optional and updates will be performed
+on the fields in the keywords.  There must be an OID or primary key
+either in the dictionary where the OID must be munged, or in the keywords
+where it can be simply the string &quot;oid&quot;.</p>
+</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id44" id="clear-clears-row-values-in-memory" name="clear-clears-row-values-in-memory">4.11&nbsp;&nbsp;&nbsp;clear - clears row values in memory</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+clear(table, [a])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+<tr class="field"><th class="field-name">a:</th><td class="field-body">optional dictionary of values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">dictionary:</th><td class="field-body">an empty row</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd><p class="first">This method clears all the attributes to values determined by the types.
+Numeric types are set to 0, Booleans are set to 'f', dates are set
+to 'now()' and everything else is set to the empty string.
+If the array argument is present, it is used as the array and any entries
+matching attribute names are cleared with everything else left unchanged.</p>
+<p class="last">If the dictionary is not supplied a new one is created.</p>
+</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id45" id="delete-delete-a-row-from-a-database-table" name="delete-delete-a-row-from-a-database-table">4.12&nbsp;&nbsp;&nbsp;delete - delete a row from a database table</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+delete(table, [d,] [key = val, ...])
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">table:</th><td class="field-body">name of table</td>
+</tr>
+<tr class="field"><th class="field-name">d:</th><td class="field-body">optional dictionary of values</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Returns:</dt>
+<dd>None</dd>
+<dt>Description:</dt>
+<dd>This method deletes the row from a table.  It deletes based on the OID value
+as munged by get or passed as keyword, or on the primary key of the table.
+The return value is the number of deleted rows (i.e. 0 if the row did not
+exist and 1 if the row was deleted).</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id46" id="id1" name="id1">4.13&nbsp;&nbsp;&nbsp;escape_string - escape a string for use within SQL</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+escape_string(string)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string:</th><td class="field-body">the string that is to be escaped</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">the escaped string</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Similar to the module function with the same name, but the
+behavior of this method is adjusted depending on the connection properties
+(such as character encoding).</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id47" id="id2" name="id2">4.14&nbsp;&nbsp;&nbsp;escape_bytea - escape binary data for use within SQL as type <cite>bytea</cite></a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+escape_bytea(datastring)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">datastring:</th><td class="field-body">string containing the binary data that is to be escaped</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">the escaped string</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>Similar to the module function with the same name, but the
+behavior of this method is adjusted depending on the connection properties
+(in particular, whether standard-conforming strings are enabled).</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id48" id="id3" name="id3">4.15&nbsp;&nbsp;&nbsp;unescape_bytea -- unescape <cite>bytea</cite> data that has been retrieved as text</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+unescape_bytea(string)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">datastring:</th><td class="field-body">the <cite>bytea</cite> data string that has been retrieved as text</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">str:</th><td class="field-body">string containing the binary data</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>See the module function with the same name.</dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id49" id="pgqueryobject-methods" name="pgqueryobject-methods">5&nbsp;&nbsp;&nbsp;pgqueryobject methods</a></h1>
+<div class="section">
+<h2><a class="toc-backref" href="#id50" id="getresult-get-query-values-as-list-of-tuples" name="getresult-get-query-values-as-list-of-tuples">5.1&nbsp;&nbsp;&nbsp;getresult - get query values as list of tuples</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+getresult()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">list:</th><td class="field-body">result values as a list of tuples</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">invalid previous result</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the list of the values returned by the query.
+More information about this result may be accessed using listfields(),
+fieldname() and fieldnum() methods.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id51" id="dictresult-get-query-values-as-list-of-dictionaries" name="dictresult-get-query-values-as-list-of-dictionaries">5.2&nbsp;&nbsp;&nbsp;dictresult - get query values as list of dictionaries</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+dictresult()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">list:</th><td class="field-body">result values as a list of dictionaries</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">invalid previous result</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the list of the values returned by the query
+with each tuple returned as a dictionary with the field names
+used as the dictionary index.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id52" id="listfields-lists-fields-names-of-previous-query-result" name="listfields-lists-fields-names-of-previous-query-result">5.3&nbsp;&nbsp;&nbsp;listfields - lists fields names of previous query result</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+listfields()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">list:</th><td class="field-body">field names</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">invalid previous result, or lost connection</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the list of names of the fields defined for the
+query result. The fields are in the same order as the result values.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id53" id="fieldname-fieldnum-field-name-number-conversion" name="fieldname-fieldnum-field-name-number-conversion">5.4&nbsp;&nbsp;&nbsp;fieldname, fieldnum - field name/number conversion</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+fieldname(i)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">i:</th><td class="field-body">field number (integer)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">string:</th><td class="field-body">field name</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad parameter type, or too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name">ValueError:</th><td class="field-body">invalid field number</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">invalid previous result, or lost connection</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method allows to find a field name from its rank number. It can be
+useful for displaying a result. The fields are in the same order as the
+result values.</dd>
+</dl>
+<p>Syntax:</p>
+<pre class="literal-block">
+fieldnum(name)
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">name:</th><td class="field-body">field name (string)</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">integer:</th><td class="field-body">field number</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">invalid connection, bad parameter type, or too many parameters</td>
+</tr>
+<tr class="field"><th class="field-name">ValueError:</th><td class="field-body">unknown field name</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">pg.InternalError:</th></tr>
+<tr><td>&nbsp;</td><td class="field-body">invalid previous result, or lost connection</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns a field number from its name. It can be used to
+build a function that converts result list strings to their correct
+type, using a hardcoded table definition. The number returned is the
+field rank in the result values list.</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id54" id="ntuples-return-number-of-tuples-in-query-object" name="ntuples-return-number-of-tuples-in-query-object">5.5&nbsp;&nbsp;&nbsp;ntuples - return number of tuples in query object</a></h2>
+<p>Syntax:</p>
+<pre class="literal-block">
+ntuples()
+</pre>
+<dl class="docutils">
+<dt>Parameters:</dt>
+<dd>None</dd>
+<dt>Return type:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">integer:</th><td class="field-body">number of tuples in <cite>pgqueryobject</cite></td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Exceptions raised:</dt>
+<dd><table class="first last docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">TypeError:</th><td class="field-body">Too many arguments.</td>
+</tr>
+</tbody>
+</table>
+</dd>
+<dt>Description:</dt>
+<dd>This method returns the number of tuples found in a query.</dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id55" i

<TRUNCATED>


[17/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_description33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_description33.data b/src/test/regress/data/upgrade34/pg_description33.data
new file mode 100644
index 0000000..aeee19a
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_description33.data
@@ -0,0 +1,2094 @@
+objoid,classoid,objsubid,description
+1242,1255,0,I/O
+1243,1255,0,I/O
+1244,1255,0,I/O
+31,1255,0,I/O
+1245,1255,0,I/O
+33,1255,0,I/O
+34,1255,0,I/O
+35,1255,0,I/O
+38,1255,0,I/O
+39,1255,0,I/O
+40,1255,0,I/O
+41,1255,0,I/O
+42,1255,0,I/O
+43,1255,0,I/O
+44,1255,0,I/O
+45,1255,0,I/O
+46,1255,0,I/O
+47,1255,0,I/O
+48,1255,0,I/O
+49,1255,0,I/O
+50,1255,0,I/O
+51,1255,0,I/O
+52,1255,0,I/O
+53,1255,0,I/O
+54,1255,0,I/O
+55,1255,0,I/O
+56,1255,0,less-than
+57,1255,0,greater-than
+60,1255,0,equal
+61,1255,0,equal
+62,1255,0,equal
+63,1255,0,equal
+64,1255,0,less-than
+65,1255,0,equal
+66,1255,0,less-than
+67,1255,0,equal
+68,1255,0,equal
+69,1255,0,equal
+70,1255,0,not equal
+1246,1255,0,less-than
+72,1255,0,less-than-or-equal
+73,1255,0,greater-than
+74,1255,0,greater-than-or-equal
+77,1255,0,convert char to int4
+78,1255,0,convert int4 to char
+79,1255,0,"matches regex., case-sensitive"
+1252,1255,0,"does not match regex., case-sensitive"
+1254,1255,0,"matches regex., case-sensitive"
+1256,1255,0,"does not match regex., case-sensitive"
+1257,1255,0,length
+1258,1255,0,concatenate
+84,1255,0,not equal
+89,1255,0,PostgreSQL version string
+101,1255,0,restriction selectivity of = and related operators
+102,1255,0,restriction selectivity of <> and related operators
+103,1255,0,restriction selectivity of < and related operators on scalar datatypes
+104,1255,0,restriction selectivity of > and related operators on scalar datatypes
+105,1255,0,join selectivity of = and related operators
+106,1255,0,join selectivity of <> and related operators
+107,1255,0,join selectivity of < and related operators on scalar datatypes
+108,1255,0,join selectivity of > and related operators on scalar datatypes
+109,1255,0,I/O
+110,1255,0,I/O
+112,1255,0,convert int4 to text
+113,1255,0,convert int2 to text
+114,1255,0,convert oid to text
+115,1255,0,is above (allows touching)
+116,1255,0,is below (allows touching)
+117,1255,0,I/O
+118,1255,0,I/O
+119,1255,0,I/O
+120,1255,0,I/O
+121,1255,0,I/O
+122,1255,0,I/O
+123,1255,0,I/O
+124,1255,0,I/O
+125,1255,0,overlaps
+126,1255,0,greater-than-or-equal by area
+127,1255,0,greater-than by area
+128,1255,0,equal by area
+129,1255,0,less-than by area
+130,1255,0,less-than-or-equal by area
+131,1255,0,is above
+132,1255,0,is left of
+133,1255,0,is right of
+134,1255,0,is below
+135,1255,0,same as?
+136,1255,0,point inside box?
+137,1255,0,"point within closed path, or point on open path"
+138,1255,0,center of
+139,1255,0,restriction selectivity for area-comparison operators
+140,1255,0,join selectivity for area-comparison operators
+141,1255,0,multiply
+144,1255,0,not equal
+145,1255,0,not equal
+146,1255,0,greater-than
+147,1255,0,greater-than
+148,1255,0,less-than-or-equal
+149,1255,0,less-than-or-equal
+150,1255,0,greater-than-or-equal
+151,1255,0,greater-than-or-equal
+152,1255,0,multiply
+153,1255,0,divide
+154,1255,0,divide
+155,1255,0,modulus
+156,1255,0,modulus
+157,1255,0,not equal
+158,1255,0,equal
+159,1255,0,equal
+160,1255,0,less-than
+161,1255,0,less-than
+162,1255,0,greater-than
+163,1255,0,greater-than
+164,1255,0,not equal
+165,1255,0,not equal
+166,1255,0,less-than-or-equal
+167,1255,0,less-than-or-equal
+168,1255,0,greater-than-or-equal
+169,1255,0,greater-than-or-equal
+170,1255,0,multiply
+171,1255,0,multiply
+172,1255,0,divide
+173,1255,0,divide
+174,1255,0,modulus
+175,1255,0,modulus
+176,1255,0,add
+177,1255,0,add
+178,1255,0,add
+179,1255,0,add
+180,1255,0,subtract
+181,1255,0,subtract
+182,1255,0,subtract
+183,1255,0,subtract
+184,1255,0,equal
+185,1255,0,not equal
+186,1255,0,same as?
+187,1255,0,contains?
+188,1255,0,is left of
+189,1255,0,overlaps or is left of
+190,1255,0,overlaps or is right of
+191,1255,0,is right of
+192,1255,0,is contained by?
+200,1255,0,I/O
+201,1255,0,I/O
+202,1255,0,multiply
+203,1255,0,divide
+204,1255,0,add
+205,1255,0,subtract
+206,1255,0,negate
+207,1255,0,absolute value
+208,1255,0,aggregate transition function
+6024,1255,0,aggregate inverse transition function
+3106,1255,0,aggregate transition function
+3107,1255,0,aggregate inverse transition function
+209,1255,0,larger of two
+211,1255,0,smaller of two
+212,1255,0,negate
+213,1255,0,negate
+214,1255,0,I/O
+215,1255,0,I/O
+216,1255,0,multiply
+217,1255,0,divide
+218,1255,0,add
+219,1255,0,subtract
+220,1255,0,negate
+221,1255,0,absolute value
+222,1255,0,aggregate transition function
+6025,1255,0,aggregate inverse transition function
+3108,1255,0,aggregate transition function
+3109,1255,0,aggregate inverse transition function
+223,1255,0,larger of two
+224,1255,0,smaller of two
+225,1255,0,center of
+226,1255,0,center of
+227,1255,0,center of
+228,1255,0,round to nearest integer
+229,1255,0,truncate to integer
+2308,1255,0,smallest integer >= value
+2320,1255,0,smallest integer >= value
+2309,1255,0,largest integer <= value
+2310,1255,0,sign of value
+230,1255,0,square root
+231,1255,0,cube root
+232,1255,0,exponentiation (x^y)
+233,1255,0,natural exponential (e^x)
+234,1255,0,natural logarithm
+235,1255,0,convert int2 to float8
+236,1255,0,convert int2 to float4
+237,1255,0,convert float8 to int2
+238,1255,0,convert float4 to int2
+239,1255,0,distance between
+240,1255,0,I/O
+241,1255,0,I/O
+242,1255,0,I/O
+243,1255,0,I/O
+244,1255,0,add
+245,1255,0,subtract
+246,1255,0,I/O
+247,1255,0,I/O
+248,1255,0,abstime in tinterval
+249,1255,0,tinterval to reltime
+250,1255,0,Current date and time (abstime)
+251,1255,0,equal
+252,1255,0,not equal
+253,1255,0,less-than
+254,1255,0,greater-than
+255,1255,0,less-than-or-equal
+256,1255,0,greater-than-or-equal
+257,1255,0,equal
+258,1255,0,not equal
+259,1255,0,less-than
+260,1255,0,greater-than
+261,1255,0,less-than-or-equal
+262,1255,0,greater-than-or-equal
+263,1255,0,same as?
+264,1255,0,contains?
+265,1255,0,overlaps
+266,1255,0,length equal
+267,1255,0,length not equal to
+268,1255,0,length less-than
+269,1255,0,length greater-than
+270,1255,0,length less-than-or-equal
+271,1255,0,length greater-than-or-equal
+272,1255,0,start of interval
+273,1255,0,end of interval
+274,1255,0,Current date and time - increments during transactions
+275,1255,0,finite abstime?
+277,1255,0,intersect?
+278,1255,0,intersect?
+279,1255,0,multiply
+280,1255,0,divide
+281,1255,0,add
+282,1255,0,subtract
+283,1255,0,multiply
+284,1255,0,divide
+285,1255,0,add
+286,1255,0,subtract
+287,1255,0,equal
+288,1255,0,not equal
+289,1255,0,less-than
+290,1255,0,less-than-or-equal
+291,1255,0,greater-than
+292,1255,0,greater-than-or-equal
+293,1255,0,equal
+294,1255,0,not equal
+295,1255,0,less-than
+296,1255,0,less-than-or-equal
+297,1255,0,greater-than
+298,1255,0,greater-than-or-equal
+299,1255,0,equal
+300,1255,0,not equal
+301,1255,0,less-than
+302,1255,0,less-than-or-equal
+303,1255,0,greater-than
+304,1255,0,greater-than-or-equal
+305,1255,0,equal
+306,1255,0,not equal
+307,1255,0,less-than
+308,1255,0,less-than-or-equal
+309,1255,0,greater-than
+310,1255,0,greater-than-or-equal
+311,1255,0,convert float4 to float8
+312,1255,0,convert float8 to float4
+313,1255,0,convert int2 to int4
+314,1255,0,convert int4 to int2
+315,1255,0,equal
+316,1255,0,convert int4 to float8
+317,1255,0,convert float8 to int4
+318,1255,0,convert int4 to float4
+319,1255,0,convert float4 to int4
+330,1255,0,btree(internal)
+636,1255,0,btree(internal)
+331,1255,0,btree(internal)
+333,1255,0,btree(internal)
+334,1255,0,btree(internal)
+335,1255,0,btree(internal)
+336,1255,0,btree(internal)
+337,1255,0,btree(internal)
+338,1255,0,btree(internal)
+332,1255,0,btree(internal)
+972,1255,0,btree(internal)
+1268,1255,0,btree(internal)
+2785,1255,0,btree(internal)
+339,1255,0,same as?
+340,1255,0,contains?
+341,1255,0,is left of
+342,1255,0,overlaps or is left of
+343,1255,0,overlaps or is right of
+344,1255,0,is right of
+345,1255,0,is contained by?
+346,1255,0,overlaps
+347,1255,0,I/O
+348,1255,0,I/O
+350,1255,0,btree less-equal-greater
+351,1255,0,btree less-equal-greater
+842,1255,0,btree less-equal-greater
+354,1255,0,btree less-equal-greater
+355,1255,0,btree less-equal-greater
+356,1255,0,btree less-equal-greater
+404,1255,0,btree less-equal-greater
+357,1255,0,btree less-equal-greater
+358,1255,0,btree less-equal-greater
+359,1255,0,btree less-equal-greater
+360,1255,0,btree less-equal-greater
+377,1255,0,btree less-equal-greater
+380,1255,0,btree less-equal-greater
+381,1255,0,btree less-equal-greater
+382,1255,0,btree less-equal-greater
+361,1255,0,distance between
+362,1255,0,intersection point
+363,1255,0,distance between
+364,1255,0,distance between point and box
+365,1255,0,distance between segment and box
+366,1255,0,closest point on line segment
+367,1255,0,closest point on box
+368,1255,0,closest point to line segment on box
+369,1255,0,point contained in segment?
+370,1255,0,distance between paths
+371,1255,0,distance between point and path
+372,1255,0,lseg contained in box?
+373,1255,0,intersect?
+401,1255,0,convert char(n) to text
+406,1255,0,convert name to text
+407,1255,0,convert text to name
+408,1255,0,convert name to char(n)
+409,1255,0,convert char(n) to name
+440,1255,0,hash(internal)
+637,1255,0,hash(internal)
+441,1255,0,hash(internal)
+443,1255,0,hash(internal)
+444,1255,0,hash(internal)
+445,1255,0,hash(internal)
+446,1255,0,hash(internal)
+447,1255,0,hash(internal)
+448,1255,0,hash(internal)
+442,1255,0,hash(internal)
+425,1255,0,hash(internal)
+438,1255,0,hash(internal)
+2786,1255,0,hash(internal)
+449,1255,0,hash
+450,1255,0,hash
+949,1255,0,hash
+451,1255,0,hash
+452,1255,0,hash
+453,1255,0,hash
+454,1255,0,hash
+455,1255,0,hash
+400,1255,0,hash
+456,1255,0,hash any varlena type
+457,1255,0,hash
+329,1255,0,hash
+398,1255,0,hash
+399,1255,0,hash
+422,1255,0,hash
+6432,1255,0,hash
+458,1255,0,larger of two
+459,1255,0,smaller of two
+460,1255,0,I/O
+461,1255,0,I/O
+462,1255,0,negate
+463,1255,0,add
+464,1255,0,subtract
+465,1255,0,multiply
+466,1255,0,divide
+467,1255,0,equal
+468,1255,0,not equal
+469,1255,0,less-than
+470,1255,0,greater-than
+471,1255,0,less-than-or-equal
+472,1255,0,greater-than-or-equal
+474,1255,0,equal
+475,1255,0,not equal
+476,1255,0,less-than
+477,1255,0,greater-than
+478,1255,0,less-than-or-equal
+479,1255,0,greater-than-or-equal
+480,1255,0,convert int8 to int4
+481,1255,0,convert int4 to int8
+482,1255,0,convert int8 to float8
+483,1255,0,convert float8 to int8
+652,1255,0,convert int8 to float4
+653,1255,0,convert float4 to int8
+714,1255,0,convert int8 to int2
+754,1255,0,convert int2 to int8
+1285,1255,0,not in
+1286,1255,0,not in
+655,1255,0,less-than
+656,1255,0,less-than-or-equal
+657,1255,0,greater-than
+658,1255,0,greater-than-or-equal
+659,1255,0,not equal
+668,1255,0,adjust char() to typmod length
+669,1255,0,adjust varchar() to typmod length
+676,1255,0,convert to tinterval
+619,1255,0,not equal
+677,1255,0,less-than
+678,1255,0,less-than-or-equal
+679,1255,0,equal
+680,1255,0,greater-than-or-equal
+681,1255,0,greater-than
+710,1255,0,deprecated -- use current_user
+716,1255,0,less-than
+717,1255,0,less-than-or-equal
+720,1255,0,octet length
+721,1255,0,get byte
+722,1255,0,set byte
+723,1255,0,get bit
+724,1255,0,set bit
+725,1255,0,distance between point and line
+726,1255,0,distance between line and box
+727,1255,0,distance between lseg and line
+728,1255,0,distance between
+729,1255,0,distance between
+740,1255,0,less-than
+741,1255,0,less-than-or-equal
+742,1255,0,greater-than
+743,1255,0,greater-than-or-equal
+745,1255,0,current user name
+746,1255,0,session user name
+744,1255,0,array equal
+390,1255,0,array not equal
+391,1255,0,array less than
+392,1255,0,array greater than
+393,1255,0,array less than or equal
+396,1255,0,array greater than or equal
+747,1255,0,array dimensions
+750,1255,0,I/O
+751,1255,0,I/O
+2091,1255,0,array lower dimension
+2092,1255,0,array upper dimension
+378,1255,0,append element onto end of array
+379,1255,0,prepend element onto front of array
+383,1255,0,concatenate two arrays
+384,1255,0,coerce array to another array type
+394,1255,0,split delimited text into text[]
+395,1255,0,"concatenate array elements, using delimiter, into text"
+515,1255,0,larger of two
+516,1255,0,smaller of two
+6012,1255,0,itemwise add two integer arrays
+760,1255,0,I/O
+761,1255,0,I/O
+762,1255,0,storage manager
+763,1255,0,storage manager
+764,1255,0,large object import
+765,1255,0,large object export
+766,1255,0,increment
+768,1255,0,larger of two
+769,1255,0,smaller of two
+770,1255,0,larger of two
+771,1255,0,smaller of two
+774,1255,0,gist(internal)
+638,1255,0,gist(internal)
+775,1255,0,gist(internal)
+777,1255,0,gist(internal)
+778,1255,0,gist(internal)
+779,1255,0,gist(internal)
+780,1255,0,gist(internal)
+781,1255,0,gist(internal)
+782,1255,0,gist(internal)
+776,1255,0,gist(internal)
+2561,1255,0,gist(internal)
+772,1255,0,gist(internal)
+2787,1255,0,gist(internal)
+784,1255,0,equal
+785,1255,0,not equal
+786,1255,0,less-than
+787,1255,0,greater-than
+788,1255,0,less-than-or-equal
+789,1255,0,greater-than-or-equal
+817,1255,0,convert text to oid
+818,1255,0,convert text to int2
+819,1255,0,convert text to int4
+838,1255,0,convert text to float8
+839,1255,0,convert text to float4
+840,1255,0,convert float8 to text
+841,1255,0,convert float4 to text
+846,1255,0,multiply
+847,1255,0,divide
+848,1255,0,multiply
+849,1255,0,return position of substring
+850,1255,0,matches LIKE expression
+851,1255,0,does not match LIKE expression
+852,1255,0,equal
+853,1255,0,not equal
+854,1255,0,less-than
+855,1255,0,greater-than
+856,1255,0,less-than-or-equal
+857,1255,0,greater-than-or-equal
+858,1255,0,matches LIKE expression
+859,1255,0,does not match LIKE expression
+860,1255,0,convert char to char()
+861,1255,0,returns the current database
+862,1255,0,multiply
+863,1255,0,multiply
+864,1255,0,multiply
+865,1255,0,divide
+866,1255,0,multiply
+867,1255,0,divide
+886,1255,0,I/O
+887,1255,0,I/O
+888,1255,0,equal
+889,1255,0,not equal
+890,1255,0,less-than
+891,1255,0,less-than-or-equal
+892,1255,0,greater-than
+893,1255,0,greater-than-or-equal
+894,1255,0,add
+895,1255,0,subtract
+896,1255,0,multiply
+897,1255,0,divide
+898,1255,0,larger of two
+899,1255,0,smaller of two
+919,1255,0,multiply
+935,1255,0,output amount as words
+940,1255,0,modulus
+941,1255,0,modulus
+942,1255,0,modulus
+943,1255,0,modulus
+945,1255,0,modulus
+947,1255,0,modulus
+944,1255,0,convert text to char
+946,1255,0,convert char to text
+950,1255,0,bool is true (not false or unknown)
+951,1255,0,bool is false (not true or unknown)
+952,1255,0,large object open
+953,1255,0,large object close
+954,1255,0,large object read
+955,1255,0,large object write
+956,1255,0,large object seek
+957,1255,0,large object create
+715,1255,0,large object create
+958,1255,0,large object position
+828,1255,0,truncate large object
+959,1255,0,point on line?
+960,1255,0,lseg on line?
+961,1255,0,closest point on line
+962,1255,0,closest point to line segment on line
+963,1255,0,closest point to line on box
+964,1255,0,large object unlink(delete)
+973,1255,0,intersect?
+975,1255,0,box area
+976,1255,0,box width
+977,1255,0,box height
+978,1255,0,distance between boxes
+979,1255,0,area of a closed path
+980,1255,0,box intersection (another box)
+981,1255,0,box diagonal
+982,1255,0,less-than
+983,1255,0,greater-than
+984,1255,0,equal
+985,1255,0,less-than-or-equal
+986,1255,0,greater-than-or-equal
+987,1255,0,sum of path segment lengths
+988,1255,0,not equal
+989,1255,0,vertically aligned?
+990,1255,0,horizontally aligned?
+991,1255,0,distance between
+992,1255,0,slope between points
+993,1255,0,convert points to line segment
+994,1255,0,intersect?
+995,1255,0,parallel?
+996,1255,0,perpendicular?
+997,1255,0,vertical?
+998,1255,0,horizontal?
+999,1255,0,equal
+748,1255,0,convert text to date
+749,1255,0,convert date to text
+837,1255,0,convert text to time
+948,1255,0,convert time to text
+938,1255,0,convert text to timetz
+939,1255,0,convert timetz to text
+1026,1255,0,adjust timestamp to new time zone
+1029,1255,0,(internal)
+1030,1255,0,(internal)
+1031,1255,0,I/O
+1032,1255,0,I/O
+1035,1255,0,add/update ACL item
+1036,1255,0,remove ACL item
+1037,1255,0,ACL contains item?
+1062,1255,0,equality operator for ACL items
+1365,1255,0,make ACL item
+1044,1255,0,I/O
+1045,1255,0,I/O
+1046,1255,0,I/O
+1047,1255,0,I/O
+1048,1255,0,equal
+1049,1255,0,less-than
+1050,1255,0,less-than-or-equal
+1051,1255,0,greater-than
+1052,1255,0,greater-than-or-equal
+1053,1255,0,not equal
+1063,1255,0,larger of two
+1064,1255,0,smaller of two
+1078,1255,0,less-equal-greater
+1080,1255,0,hash
+1081,1255,0,format a type oid and atttypmod to canonical SQL
+1084,1255,0,I/O
+1085,1255,0,I/O
+1086,1255,0,equal
+1087,1255,0,less-than
+1088,1255,0,less-than-or-equal
+1089,1255,0,greater-than
+1090,1255,0,greater-than-or-equal
+1091,1255,0,not equal
+1092,1255,0,less-equal-greater
+1102,1255,0,less-than
+1103,1255,0,less-than-or-equal
+1104,1255,0,greater-than
+1105,1255,0,greater-than-or-equal
+1106,1255,0,not equal
+1107,1255,0,less-equal-greater
+1138,1255,0,larger of two
+1139,1255,0,smaller of two
+1140,1255,0,subtract
+1141,1255,0,add
+1142,1255,0,subtract
+1143,1255,0,I/O
+1144,1255,0,I/O
+1145,1255,0,equal
+1146,1255,0,add
+1147,1255,0,subtract
+1148,1255,0,multiply
+1149,1255,0,divide
+1150,1255,0,I/O
+1151,1255,0,I/O
+1152,1255,0,equal
+1153,1255,0,not equal
+1154,1255,0,less-than
+1155,1255,0,less-than-or-equal
+1156,1255,0,greater-than-or-equal
+1157,1255,0,greater-than
+1158,1255,0,convert UNIX epoch to timestamptz
+1159,1255,0,adjust timestamp to new time zone
+1160,1255,0,I/O
+1161,1255,0,I/O
+1162,1255,0,equal
+1163,1255,0,not equal
+1164,1255,0,less-than
+1165,1255,0,less-than-or-equal
+1166,1255,0,greater-than-or-equal
+1167,1255,0,greater-than
+1168,1255,0,subtract
+1169,1255,0,add
+1170,1255,0,subtract
+1171,1255,0,extract field from timestamp with time zone
+1172,1255,0,extract field from interval
+1173,1255,0,convert abstime to timestamp with time zone
+1174,1255,0,convert date to timestamp with time zone
+2711,1255,0,promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months
+1175,1255,0,promote groups of 24 hours to numbers of days
+1295,1255,0,promote groups of 30 days to numbers of months
+1176,1255,0,convert date and time to timestamp with time zone
+1177,1255,0,convert reltime to interval
+1178,1255,0,convert timestamp with time zone to date
+1179,1255,0,convert abstime to date
+1180,1255,0,convert timestamp with time zone to abstime
+1181,1255,0,"age of a transaction ID, in transactions before current transaction"
+1188,1255,0,subtract
+1189,1255,0,plus
+1190,1255,0,minus
+1191,1255,0,convert text to timestamp with time zone
+1192,1255,0,convert timestamp with time zone to text
+1193,1255,0,convert interval to text
+1194,1255,0,convert interval to reltime
+1195,1255,0,smaller of two
+1196,1255,0,larger of two
+1197,1255,0,smaller of two
+1198,1255,0,larger of two
+1199,1255,0,date difference preserving months and years
+1200,1255,0,adjust interval precision
+1215,1255,0,get description for object id and catalog name
+1216,1255,0,get description for table column
+1993,1255,0,get description for object id and shared catalog name
+1217,1255,0,truncate timestamp with time zone to specified units
+1218,1255,0,truncate interval to specified units
+1219,1255,0,increment
+2804,1255,0,"increment, ignores second argument"
+1230,1255,0,absolute value
+1236,1255,0,larger of two
+1237,1255,0,smaller of two
+1238,1255,0,"matches regex., case-insensitive"
+1239,1255,0,"does not match regex., case-insensitive"
+1240,1255,0,"matches regex., case-insensitive"
+1241,1255,0,"does not match regex., case-insensitive"
+1251,1255,0,absolute value
+1253,1255,0,absolute value
+1263,1255,0,convert text to interval
+1271,1255,0,SQL92 interval comparison
+1272,1255,0,convert date and time to timestamp
+1273,1255,0,extract field from time with time zone
+1274,1255,0,add
+1275,1255,0,subtract
+1276,1255,0,multiply
+1277,1255,0,divide
+1278,1255,0,add
+1279,1255,0,subtract
+1280,1255,0,multiply
+1281,1255,0,divide
+1287,1255,0,convert int8 to oid
+1288,1255,0,convert oid to int8
+1289,1255,0,convert int8 to text
+1290,1255,0,convert text to int8
+1291,1255,0,adjust any array to new element typmod
+1292,1255,0,equal
+1293,1255,0,latest tid of a tuple
+1294,1255,0,latest tid of a tuple
+1265,1255,0,not equal
+2790,1255,0,greater-than
+2791,1255,0,less-than
+2792,1255,0,greater-than-or-equal
+2793,1255,0,less-than-or-equal
+2794,1255,0,btree less-equal-greater
+2795,1255,0,larger of two
+2796,1255,0,smaller of two
+1296,1255,0,convert time and date to timestamp
+1297,1255,0,convert date and time with time zone to timestamp with time zone
+1298,1255,0,convert time with time zone and date to timestamp with time zone
+1299,1255,0,current transaction time
+2647,1255,0,current transaction time
+2648,1255,0,current statement time
+2649,1255,0,current clock time
+1300,1255,0,restriction selectivity for position-comparison operators
+1301,1255,0,join selectivity for position-comparison operators
+1302,1255,0,restriction selectivity for containment comparison operators
+1303,1255,0,join selectivity for containment comparison operators
+1304,1255,0,SQL92 interval comparison
+1305,1255,0,SQL92 interval comparison
+1306,1255,0,SQL92 interval comparison
+1307,1255,0,SQL92 interval comparison
+1308,1255,0,SQL92 interval comparison
+1309,1255,0,SQL92 interval comparison
+1310,1255,0,SQL92 interval comparison
+1311,1255,0,SQL92 interval comparison
+1312,1255,0,I/O
+1313,1255,0,I/O
+1314,1255,0,less-equal-greater
+1315,1255,0,less-equal-greater
+1316,1255,0,convert timestamp to time
+1317,1255,0,length
+1318,1255,0,character length
+1319,1255,0,equal
+1326,1255,0,divide
+1339,1255,0,base 10 logarithm
+1340,1255,0,base 10 logarithm
+1341,1255,0,natural logarithm
+1342,1255,0,round to nearest integer
+1343,1255,0,truncate to integer
+1344,1255,0,square root
+1345,1255,0,cube root
+1346,1255,0,exponentiation
+1368,1255,0,exponentiation
+1347,1255,0,exponential
+1348,1255,0,get description for object id (deprecated)
+1349,1255,0,print type names of oidvector field
+1350,1255,0,I/O
+1351,1255,0,I/O
+1352,1255,0,equal
+1353,1255,0,not equal
+1354,1255,0,less-than
+1355,1255,0,less-than-or-equal
+1356,1255,0,greater-than-or-equal
+1357,1255,0,greater-than
+1358,1255,0,less-equal-greater
+1359,1255,0,convert date and time with time zone to timestamp with time zone
+1364,1255,0,convert abstime to time
+1367,1255,0,character length
+1369,1255,0,character length
+1370,1255,0,convert time to interval
+1372,1255,0,character length
+1373,1255,0,coerce array to another type and adjust element typmod
+1374,1255,0,octet length
+1375,1255,0,octet length
+1377,1255,0,larger of two
+1378,1255,0,smaller of two
+1379,1255,0,larger of two
+1380,1255,0,smaller of two
+1381,1255,0,character length
+1382,1255,0,extract field from abstime
+1383,1255,0,extract field from reltime
+1384,1255,0,extract field from date
+1385,1255,0,extract field from time
+1386,1255,0,date difference from today preserving months and years
+1388,1255,0,convert timestamptz to timetz
+1389,1255,0,finite timestamp?
+1390,1255,0,finite interval?
+1376,1255,0,factorial
+1394,1255,0,absolute value
+1395,1255,0,absolute value
+1396,1255,0,absolute value
+1397,1255,0,absolute value
+1398,1255,0,absolute value
+1400,1255,0,convert varchar to name
+1401,1255,0,convert name to varchar
+1402,1255,0,current schema name
+1403,1255,0,current schema search list
+1404,1255,0,substitute portion of string
+1405,1255,0,substitute portion of string
+1406,1255,0,vertically aligned?
+1407,1255,0,horizontally aligned?
+1408,1255,0,parallel?
+1409,1255,0,perpendicular?
+1410,1255,0,vertical?
+1411,1255,0,horizontal?
+1412,1255,0,parallel?
+1413,1255,0,perpendicular?
+1414,1255,0,vertical?
+1415,1255,0,horizontal?
+1416,1255,0,center of
+1417,1255,0,"bool is not true (ie, false or unknown)"
+1418,1255,0,"bool is not false (ie, true or unknown)"
+1419,1255,0,convert interval to time
+1421,1255,0,convert points to box
+1422,1255,0,add point to box (translate)
+1423,1255,0,subtract point from box (translate)
+1424,1255,0,multiply box by point (scale)
+1425,1255,0,divide box by point (scale)
+1426,1255,0,path contains point?
+1428,1255,0,polygon contains point?
+1429,1255,0,point contained in polygon?
+1430,1255,0,path closed?
+1431,1255,0,path open?
+1432,1255,0,number of points in path
+1433,1255,0,close path
+1434,1255,0,open path
+1435,1255,0,concatenate open paths
+1436,1255,0,add (translate path)
+1437,1255,0,subtract (translate path)
+1438,1255,0,multiply (rotate/scale path)
+1439,1255,0,divide (rotate/scale path)
+1440,1255,0,"convert x, y to point"
+1441,1255,0,add points (translate)
+1442,1255,0,subtract points (translate)
+1443,1255,0,multiply points (scale/rotate)
+1444,1255,0,divide points (scale/rotate)
+1445,1255,0,number of points in polygon
+1446,1255,0,convert polygon to bounding box
+1447,1255,0,convert polygon to path
+1448,1255,0,convert box to polygon
+1449,1255,0,convert path to polygon
+1450,1255,0,I/O
+1451,1255,0,I/O
+1452,1255,0,same as?
+1453,1255,0,contains?
+1454,1255,0,is left of
+1455,1255,0,overlaps or is left of
+1456,1255,0,overlaps or is right of
+1457,1255,0,is right of
+1458,1255,0,is contained by?
+1459,1255,0,overlaps
+1460,1255,0,is below
+1461,1255,0,is above
+1462,1255,0,equal by area
+1463,1255,0,not equal by area
+1464,1255,0,less-than by area
+1465,1255,0,greater-than by area
+1466,1255,0,less-than-or-equal by area
+1467,1255,0,greater-than-or-equal by area
+1468,1255,0,area of circle
+1469,1255,0,diameter of circle
+1470,1255,0,radius of circle
+1471,1255,0,distance between
+1472,1255,0,center of
+1473,1255,0,convert point and radius to circle
+1474,1255,0,convert polygon to circle
+1475,1255,0,convert vertex count and circle to polygon
+1476,1255,0,distance between point and circle
+1477,1255,0,circle contains point?
+1478,1255,0,point contained in circle?
+1479,1255,0,convert box to circle
+1480,1255,0,convert circle to box
+1481,1255,0,convert to tinterval
+1482,1255,0,not equal
+1483,1255,0,less-than by length
+1484,1255,0,less-than-or-equal by length
+1485,1255,0,greater-than by length
+1486,1255,0,greater-than-or-equal by length
+1487,1255,0,distance between endpoints
+1488,1255,0,closest point to line on line segment
+1489,1255,0,closest point to line segment on line segment
+1490,1255,0,I/O
+1491,1255,0,I/O
+1492,1255,0,lines equal?
+1493,1255,0,line from points
+1494,1255,0,intersection point
+1495,1255,0,intersect?
+1496,1255,0,parallel?
+1497,1255,0,perpendicular?
+1498,1255,0,vertical?
+1499,1255,0,horizontal?
+1530,1255,0,distance between endpoints
+1531,1255,0,sum of path segments
+1532,1255,0,center of
+1533,1255,0,center of
+1534,1255,0,center of
+1540,1255,0,center of
+1541,1255,0,diagonal of
+1542,1255,0,center of
+1543,1255,0,center of
+1544,1255,0,convert circle to 12-vertex polygon
+1545,1255,0,number of points in path
+1556,1255,0,number of points in polygon
+1564,1255,0,I/O
+1565,1255,0,I/O
+1569,1255,0,matches LIKE expression
+1570,1255,0,does not match LIKE expression
+1571,1255,0,matches LIKE expression
+1572,1255,0,does not match LIKE expression
+1574,1255,0,sequence next value
+1575,1255,0,sequence current value
+1576,1255,0,set sequence value
+1765,1255,0,set sequence value and iscalled status
+1579,1255,0,I/O
+1580,1255,0,I/O
+1581,1255,0,equal
+1582,1255,0,not equal
+1592,1255,0,greater than or equal
+1593,1255,0,greater than
+1594,1255,0,less than or equal
+1595,1255,0,less than
+1596,1255,0,compare
+1598,1255,0,random value
+1599,1255,0,set random seed
+1600,1255,0,arcsine
+1601,1255,0,arccosine
+1602,1255,0,arctangent
+1603,1255,0,"arctangent, two arguments"
+1604,1255,0,sine
+1605,1255,0,cosine
+1606,1255,0,tangent
+1607,1255,0,cotangent
+1608,1255,0,radians to degrees
+1609,1255,0,degrees to radians
+1610,1255,0,PI
+1618,1255,0,multiply interval
+1620,1255,0,convert first char to int4
+1621,1255,0,convert int4 to char
+1622,1255,0,replicate string int4 times
+1623,1255,0,convert SQL99 regexp pattern to POSIX style
+1631,1255,0,matches LIKE expression
+1632,1255,0,does not match LIKE expression
+1633,1255,0,"matches LIKE expression, case-insensitive"
+1634,1255,0,"does not match LIKE expression, case-insensitive"
+1635,1255,0,"matches LIKE expression, case-insensitive"
+1636,1255,0,"does not match LIKE expression, case-insensitive"
+1637,1255,0,convert LIKE pattern to use backslash escapes
+1656,1255,0,"matches regex., case-insensitive"
+1657,1255,0,"does not match regex., case-insensitive"
+1658,1255,0,"matches regex., case-sensitive"
+1659,1255,0,"does not match regex., case-sensitive"
+1660,1255,0,"matches LIKE expression, case-insensitive"
+1661,1255,0,"does not match LIKE expression, case-insensitive"
+1689,1255,0,update flat-file copy of a shared catalog
+868,1255,0,find position of substring
+870,1255,0,lowercase
+871,1255,0,uppercase
+872,1255,0,capitalize each word
+873,1255,0,left-pad string to length
+874,1255,0,right-pad string to length
+875,1255,0,trim selected characters from left end of string
+876,1255,0,trim selected characters from right end of string
+877,1255,0,return portion of string
+878,1255,0,map a set of character appearing in string
+879,1255,0,left-pad string to length
+880,1255,0,right-pad string to length
+881,1255,0,trim spaces from left end of string
+882,1255,0,trim spaces from right end of string
+883,1255,0,return portion of string
+884,1255,0,trim selected characters from both ends of string
+885,1255,0,trim spaces from both ends of string
+936,1255,0,return portion of string
+937,1255,0,return portion of string
+2087,1255,0,replace all occurrences of old_substr with new_substr in string
+2284,1255,0,replace text using regexp
+2285,1255,0,replace text using regexp
+5018,1255,0,return all match groups for regexp
+5019,1255,0,return all match groups for regexp
+5020,1255,0,split string by pattern
+5021,1255,0,split string by pattern
+5022,1255,0,split string by pattern
+5023,1255,0,split string by pattern
+2088,1255,0,split string by field_sep and return field_num
+2089,1255,0,convert int4 number to hex
+2090,1255,0,convert int8 number to hex
+1039,1255,0,encoding name of current database
+810,1255,0,encoding name of current database
+1717,1255,0,convert string with specified destination encoding name
+1813,1255,0,convert string with specified encoding names
+1619,1255,0,convert string with specified conversion name
+1264,1255,0,convert encoding name to encoding id
+1597,1255,0,convert encoding id to encoding name
+1638,1255,0,greater-than
+1639,1255,0,greater-than-or-equal
+1573,1255,0,source text of a rule
+1640,1255,0,select statement of a view
+1641,1255,0,select statement of a view
+1642,1255,0,role name by OID (with fallback)
+1643,1255,0,index description
+1662,1255,0,trigger description
+1387,1255,0,constraint description
+1716,1255,0,deparse an encoded expression
+1665,1255,0,name of sequence for a serial column
+5025,1255,0,partition configuration for a given relation
+5028,1255,0,partition configuration for a given rule
+1644,1255,0,referential integrity FOREIGN KEY ... REFERENCES
+1645,1255,0,referential integrity FOREIGN KEY ... REFERENCES
+1646,1255,0,referential integrity ON DELETE CASCADE
+1647,1255,0,referential integrity ON UPDATE CASCADE
+1648,1255,0,referential integrity ON DELETE RESTRICT
+1649,1255,0,referential integrity ON UPDATE RESTRICT
+1650,1255,0,referential integrity ON DELETE SET NULL
+1651,1255,0,referential integrity ON UPDATE SET NULL
+1652,1255,0,referential integrity ON DELETE SET DEFAULT
+1653,1255,0,referential integrity ON UPDATE SET DEFAULT
+1654,1255,0,referential integrity ON DELETE NO ACTION
+1655,1255,0,referential integrity ON UPDATE NO ACTION
+1666,1255,0,equal
+1667,1255,0,not equal
+1668,1255,0,greater than or equal
+1669,1255,0,greater than
+1670,1255,0,less than or equal
+1671,1255,0,less than
+1672,1255,0,compare
+1673,1255,0,bitwise and
+1674,1255,0,bitwise or
+1675,1255,0,bitwise exclusive or
+1676,1255,0,bitwise not
+1677,1255,0,bitwise left shift
+1678,1255,0,bitwise right shift
+1679,1255,0,bitwise concatenation
+1680,1255,0,return portion of bitstring
+1681,1255,0,bitstring length
+1682,1255,0,octet length
+1683,1255,0,int4 to bitstring
+1684,1255,0,bitstring to int4
+1685,1255,0,adjust bit() to typmod length
+1687,1255,0,adjust varbit() to typmod length
+1698,1255,0,return position of sub-bitstring
+1699,1255,0,return portion of bitstring
+436,1255,0,I/O
+437,1255,0,I/O
+752,1255,0,MAC address to text
+753,1255,0,MAC manufacturer fields
+767,1255,0,text to MAC address
+830,1255,0,equal
+831,1255,0,less-than
+832,1255,0,less-than-or-equal
+833,1255,0,greater-than
+834,1255,0,greater-than-or-equal
+835,1255,0,not equal
+836,1255,0,less-equal-greater
+910,1255,0,I/O
+911,1255,0,I/O
+1267,1255,0,I/O
+1427,1255,0,I/O
+920,1255,0,equal
+921,1255,0,less-than
+922,1255,0,less-than-or-equal
+923,1255,0,greater-than
+924,1255,0,greater-than-or-equal
+925,1255,0,not equal
+926,1255,0,less-equal-greater
+927,1255,0,is-subnet
+928,1255,0,is-subnet-or-equal
+929,1255,0,is-supernet
+930,1255,0,is-supernet-or-equal
+598,1255,0,abbreviated display of inet value
+599,1255,0,abbreviated display of cidr value
+605,1255,0,change netmask of inet
+635,1255,0,change netmask of cidr
+711,1255,0,"address family (4 for IPv4, 6 for IPv6)"
+683,1255,0,network part of address
+696,1255,0,netmask of address
+697,1255,0,netmask length
+698,1255,0,broadcast address of network
+699,1255,0,show address octets only
+730,1255,0,show all parts of inet/cidr value
+1362,1255,0,hostmask of address
+1713,1255,0,text to inet
+1714,1255,0,text to cidr
+1715,1255,0,coerce inet to cidr
+2196,1255,0,inet address of the client
+2197,1255,0,client's port number for this connection
+2198,1255,0,inet address of the server
+2199,1255,0,server's port number for this connection
+2627,1255,0,bitwise not
+2628,1255,0,bitwise and
+2629,1255,0,bitwise or
+2630,1255,0,add integer to inet value
+2631,1255,0,add integer to inet value
+2632,1255,0,subtract integer from inet value
+2633,1255,0,subtract inet values
+1686,1255,0,(internal)
+1688,1255,0,(internal)
+1690,1255,0,minus
+1691,1255,0,less-than-or-equal
+1692,1255,0,greater-than-or-equal
+1693,1255,0,btree less-equal-greater
+1696,1255,0,hash
+1697,1255,0,hash
+1701,1255,0,I/O
+1702,1255,0,I/O
+1703,1255,0,adjust numeric to typmod precision/scale
+1704,1255,0,absolute value
+1705,1255,0,absolute value
+1706,1255,0,sign of value
+1707,1255,0,value rounded to 'scale'
+1708,1255,0,value rounded to 'scale' of zero
+1709,1255,0,value truncated to 'scale'
+1710,1255,0,value truncated to 'scale' of zero
+1711,1255,0,smallest integer >= value
+2167,1255,0,smallest integer >= value
+1712,1255,0,largest integer <= value
+1718,1255,0,equal
+1719,1255,0,not equal
+1720,1255,0,greater-than
+1721,1255,0,greater-than-or-equal
+1722,1255,0,less-than
+1723,1255,0,less-than-or-equal
+1724,1255,0,add
+1725,1255,0,subtract
+1726,1255,0,multiply
+1727,1255,0,divide
+1728,1255,0,modulus
+1729,1255,0,modulus
+1730,1255,0,square root
+1731,1255,0,square root
+1732,1255,0,e raised to the power of n
+1733,1255,0,e raised to the power of n
+1734,1255,0,natural logarithm of n
+1735,1255,0,natural logarithm of n
+1736,1255,0,logarithm base m of n
+1737,1255,0,logarithm base m of n
+1738,1255,0,m raised to the power of n
+2169,1255,0,m raised to the power of n
+1739,1255,0,m raised to the power of n
+1740,1255,0,(internal)
+1741,1255,0,logarithm base 10 of n
+1742,1255,0,(internal)
+1743,1255,0,(internal)
+1744,1255,0,(internal)
+1745,1255,0,(internal)
+1746,1255,0,(internal)
+2170,1255,0,bucket number of operand in equidepth histogram
+1747,1255,0,plus
+1748,1255,0,minus
+1749,1255,0,plus
+1750,1255,0,minus
+1764,1255,0,increment by one
+1004,1255,0,increment by one
+1766,1255,0,smaller of two numbers
+1767,1255,0,larger of two numbers
+1769,1255,0,compare two numbers
+1771,1255,0,negate
+1779,1255,0,(internal)
+1781,1255,0,(internal)
+1782,1255,0,(internal)
+1783,1255,0,(internal)
+1770,1255,0,format timestamp with time zone to text
+1772,1255,0,format numeric to text
+1773,1255,0,format int4 to text
+1774,1255,0,format int8 to text
+1775,1255,0,format float4 to text
+1776,1255,0,format float8 to text
+1777,1255,0,convert text to numeric
+1778,1255,0,convert text to timestamp with time zone
+1780,1255,0,convert text to date
+1768,1255,0,format interval to text
+1282,1255,0,quote an identifier for usage in a querystring
+1283,1255,0,quote a literal for usage in a querystring
+1798,1255,0,I/O
+1799,1255,0,I/O
+1810,1255,0,length in bits
+1811,1255,0,length in bits
+1812,1255,0,length in bits
+1814,1255,0,restriction selectivity of ILIKE
+1815,1255,0,restriction selectivity of NOT ILIKE
+1816,1255,0,join selectivity of ILIKE
+1817,1255,0,join selectivity of NOT ILIKE
+1818,1255,0,restriction selectivity of regex match
+1819,1255,0,restriction selectivity of LIKE
+1820,1255,0,restriction selectivity of case-insensitive regex match
+1821,1255,0,restriction selectivity of regex non-match
+1822,1255,0,restriction selectivity of NOT LIKE
+1823,1255,0,restriction selectivity of case-insensitive regex non-match
+1824,1255,0,join selectivity of regex match
+1825,1255,0,join selectivity of LIKE
+1826,1255,0,join selectivity of case-insensitive regex match
+1827,1255,0,join selectivity of regex non-match
+1828,1255,0,join selectivity of NOT LIKE
+1829,1255,0,join selectivity of case-insensitive regex non-match
+1830,1255,0,AVG aggregate final function
+2512,1255,0,VAR_POP aggregate final function
+1831,1255,0,VAR_SAMP aggregate final function
+2513,1255,0,STDDEV_POP aggregate final function
+1832,1255,0,STDDEV_SAMP aggregate final function
+1833,1255,0,aggregate transition function
+3102,1255,0,aggregate transition function
+7309,1255,0,aggregate inverse transition function
+3103,1255,0,aggregate inverse transition function
+1834,1255,0,aggregate transition function
+1835,1255,0,aggregate transition function
+1836,1255,0,aggregate transition function
+7306,1255,0,aggregate inverse transition function
+7307,1255,0,aggregate inverse transition function
+7308,1255,0,aggregate inverse transition function
+1837,1255,0,AVG aggregate final function
+2514,1255,0,VAR_POP aggregate final function
+1838,1255,0,VAR_SAMP aggregate final function
+2596,1255,0,STDDEV_POP aggregate final function
+1839,1255,0,STDDEV_SAMP aggregate final function
+1840,1255,0,SUM(int2) transition function
+1841,1255,0,SUM(int4) transition function
+1842,1255,0,SUM(int8) transition function
+7008,1255,0,SUM(int2) inverse transition function
+7009,1255,0,SUM(int4) inverse transition function
+7010,1255,0,SUM(int8) inverse transition function
+1843,1255,0,aggregate transition function
+6038,1255,0,aggregate inverse transition function
+1844,1255,0,AVG aggregate final function
+1962,1255,0,AVG(int2) transition function
+1963,1255,0,AVG(int4) transition function
+3100,1255,0,AVG(int8) transition function
+6019,1255,0,AVG(int2) transition function
+6020,1255,0,AVG(int4) transition function
+3101,1255,0,AVG(int8) transition function
+1964,1255,0,AVG(int) aggregate final function
+2805,1255,0,"REGR_COUNT(double, double) transition function"
+2806,1255,0,"REGR_...(double, double) transition function"
+2807,1255,0,"REGR_SXX(double, double) aggregate final function"
+2808,1255,0,"REGR_SYY(double, double) aggregate final function"
+2809,1255,0,"REGR_SXY(double, double) aggregate final function"
+2810,1255,0,"REGR_AVGX(double, double) aggregate final function"
+2811,1255,0,"REGR_AVGY(double, double) aggregate final function"
+2812,1255,0,"REGR_R2(double, double) aggregate final function"
+2813,1255,0,"REGR_SLOPE(double, double) aggregate final function"
+2814,1255,0,"REGR_INTERCEPT(double, double) aggregate final function"
+2815,1255,0,"COVAR_POP(double, double) aggregate final function"
+2816,1255,0,"COVAR_SAMP(double, double) aggregate final function"
+2817,1255,0,"CORR(double, double) aggregate final function"
+1845,1255,0,encode text from DB encoding to ASCII text
+1846,1255,0,encode text from encoding to ASCII text
+1847,1255,0,encode text from encoding to ASCII text
+1848,1255,0,plus
+1850,1255,0,equal
+1851,1255,0,not equal
+1852,1255,0,less-than
+1853,1255,0,greater-than
+1854,1255,0,less-than-or-equal
+1855,1255,0,greater-than-or-equal
+1856,1255,0,equal
+1857,1255,0,not equal
+1858,1255,0,less-than
+1859,1255,0,greater-than
+1860,1255,0,less-than-or-equal
+1861,1255,0,greater-than-or-equal
+1892,1255,0,bitwise and
+1893,1255,0,bitwise or
+1894,1255,0,bitwise xor
+1895,1255,0,bitwise not
+1896,1255,0,bitwise shift left
+1897,1255,0,bitwise shift right
+1898,1255,0,bitwise and
+1899,1255,0,bitwise or
+1900,1255,0,bitwise xor
+1901,1255,0,bitwise not
+1902,1255,0,bitwise shift left
+1903,1255,0,bitwise shift right
+1904,1255,0,bitwise and
+1905,1255,0,bitwise or
+1906,1255,0,bitwise xor
+1907,1255,0,bitwise not
+1908,1255,0,bitwise shift left
+1909,1255,0,bitwise shift right
+1910,1255,0,unary plus
+1911,1255,0,unary plus
+1912,1255,0,unary plus
+1913,1255,0,unary plus
+1914,1255,0,unary plus
+1915,1255,0,unary plus
+1922,1255,0,"user privilege on relation by username, rel name"
+1923,1255,0,"user privilege on relation by username, rel oid"
+1924,1255,0,"user privilege on relation by user oid, rel name"
+1925,1255,0,"user privilege on relation by user oid, rel oid"
+1926,1255,0,current user privilege on relation by rel name
+1927,1255,0,current user privilege on relation by rel oid
+1928,1255,0,Statistics: Number of scans done for table/index
+1929,1255,0,Statistics: Number of tuples read by seqscan
+1930,1255,0,Statistics: Number of tuples fetched by idxscan
+1931,1255,0,Statistics: Number of tuples inserted
+1932,1255,0,Statistics: Number of tuples updated
+1933,1255,0,Statistics: Number of tuples deleted
+1934,1255,0,Statistics: Number of blocks fetched
+1935,1255,0,Statistics: Number of blocks found in cache
+2781,1255,0,Statistics: Last manual vacuum time for a table
+2782,1255,0,Statistics: Last auto vacuum time for a table
+2783,1255,0,Statistics: Last manual analyze time for a table
+2784,1255,0,Statistics: Last auto analyze time for a table
+1936,1255,0,Statistics: Currently active backend IDs
+2026,1255,0,Statistics: Current backend PID
+2274,1255,0,Statistics: Reset collected statistics
+1937,1255,0,Statistics: PID of backend
+1938,1255,0,Statistics: Database ID of backend
+1939,1255,0,Statistics: User ID of backend
+1940,1255,0,Statistics: Current query of backend
+2853,1255,0,Statistics: Is backend currently waiting for a lock
+2094,1255,0,Statistics: Start time for current query of backend
+1391,1255,0,Statistics: Start time for current backend session
+1392,1255,0,Statistics: Address of client connected to backend
+1393,1255,0,Statistics: Port number of client connected to backend
+1941,1255,0,Statistics: Number of backends in database
+1942,1255,0,Statistics: Transactions committed
+1943,1255,0,Statistics: Transactions rolled back
+1944,1255,0,Statistics: Blocks fetched for database
+1945,1255,0,Statistics: Blocks found in cache for database
+6031,1255,0,Statistics: Number of queries that executed in queue
+6032,1255,0,Statistics: Number of queries that waited in queue
+6033,1255,0,Statistics:  Elapsed seconds for queries that executed in queue
+6034,1255,0,Statistics:  Elapsed seconds for queries that waited in queue
+6039,1255,0,Statistics: Greenplum session id of backend
+6042,1255,0,change priority of all the backends for a given session id
+1946,1255,0,Convert bytea value into some ascii-only text string
+1947,1255,0,Convert ascii-encoded text string into bytea value
+1948,1255,0,equal
+1949,1255,0,less-than
+1950,1255,0,less-than-or-equal
+1951,1255,0,greater-than
+1952,1255,0,greater-than-or-equal
+1953,1255,0,not equal
+1954,1255,0,less-equal-greater
+1961,1255,0,adjust timestamp precision
+1965,1255,0,larger of two
+1966,1255,0,smaller of two
+1967,1255,0,adjust timestamptz precision
+1968,1255,0,adjust time precision
+1969,1255,0,adjust time with time zone precision
+2005,1255,0,matches LIKE expression
+2006,1255,0,does not match LIKE expression
+2007,1255,0,matches LIKE expression
+2008,1255,0,does not match LIKE expression
+2009,1255,0,convert LIKE pattern to use backslash escapes
+2010,1255,0,octet length
+2011,1255,0,concatenate
+2012,1255,0,return portion of string
+2013,1255,0,return portion of string
+2085,1255,0,return portion of string
+2086,1255,0,return portion of string
+2014,1255,0,return position of substring
+2015,1255,0,trim both ends of string
+2019,1255,0,convert timestamptz to time
+2020,1255,0,truncate timestamp to specified units
+2021,1255,0,extract field from timestamp
+2022,1255,0,convert text to timestamp
+2023,1255,0,convert abstime to timestamp
+2024,1255,0,convert date to timestamp
+2025,1255,0,convert date and time to timestamp
+2027,1255,0,convert timestamp with time zone to timestamp
+2028,1255,0,convert timestamp to timestamp with time zone
+2029,1255,0,convert timestamp to date
+2030,1255,0,convert timestamp to abstime
+2031,1255,0,subtract
+2032,1255,0,plus
+2033,1255,0,minus
+2034,1255,0,convert timestamp to text
+2035,1255,0,smaller of two
+2036,1255,0,larger of two
+2037,1255,0,adjust time with time zone to new zone
+2038,1255,0,adjust time with time zone to new zone
+2041,1255,0,SQL92 interval comparison
+2042,1255,0,SQL92 interval comparison
+2043,1255,0,SQL92 interval comparison
+2044,1255,0,SQL92 interval comparison
+2045,1255,0,less-equal-greater
+2046,1255,0,convert time with time zone to time
+2047,1255,0,convert time to timetz
+2048,1255,0,finite timestamp?
+2049,1255,0,format timestamp to text
+2052,1255,0,equal
+2053,1255,0,not equal
+2054,1255,0,less-than
+2055,1255,0,less-than-or-equal
+2056,1255,0,greater-than-or-equal
+2057,1255,0,greater-than
+2058,1255,0,date difference preserving months and years
+2059,1255,0,date difference from today preserving months and years
+2069,1255,0,adjust timestamp to new time zone
+2070,1255,0,adjust timestamp to new time zone
+2071,1255,0,add
+2072,1255,0,subtract
+2073,1255,0,extracts text matching regular expression
+2074,1255,0,extracts text matching SQL99 regular expression
+2075,1255,0,int8 to bitstring
+2076,1255,0,bitstring to int8
+2077,1255,0,SHOW X as a function
+2078,1255,0,SET X as a function
+2084,1255,0,SHOW ALL as a function
+1371,1255,0,view system lock information
+1065,1255,0,view two-phase transactions
+2079,1255,0,is table visible in search path?
+2080,1255,0,is type visible in search path?
+2081,1255,0,is function visible in search path?
+2082,1255,0,is operator visible in search path?
+2083,1255,0,is opclass visible in search path?
+2093,1255,0,is conversion visible in search path?
+2854,1255,0,"get OID of current session's temp schema, if any"
+2855,1255,0,is schema another session's temp schema?
+2171,1255,0,Cancel a server process' current query
+2172,1255,0,Prepare for taking an online backup
+2173,1255,0,Finish taking an online backup
+2848,1255,0,Switch to new xlog file
+2849,1255,0,current xlog write location
+2852,1255,0,current xlog insert location
+2850,1255,0,"xlog filename and byte offset, given an xlog location"
+2851,1255,0,"xlog filename, given an xlog location"
+2621,1255,0,Reload configuration files
+2622,1255,0,Rotate log file
+2623,1255,0,Return file information
+2624,1255,0,Read text from a file
+2625,1255,0,List all files in a directory
+2626,1255,0,Sleep for the specified time in seconds
+6030,1255,0,Return resource queue information
+6045,1255,0,Read text from a file
+6046,1255,0,Rotate log file
+6047,1255,0,Write text to a file
+6048,1255,0,Rename a file
+6049,1255,0,Delete (unlink) a file
+6050,1255,0,ls the log dir
+6051,1255,0,Get the length of a file (via stat)
+2212,1255,0,I/O
+2213,1255,0,I/O
+2214,1255,0,I/O
+2215,1255,0,I/O
+2216,1255,0,I/O
+2217,1255,0,I/O
+2218,1255,0,I/O
+2219,1255,0,I/O
+2220,1255,0,I/O
+2221,1255,0,I/O
+1079,1255,0,convert text to regclass
+2246,1255,0,(internal)
+2247,1255,0,(internal)
+2248,1255,0,(internal)
+2250,1255,0,"user privilege on database by username, database name"
+2251,1255,0,"user privilege on database by username, database oid"
+2252,1255,0,"user privilege on database by user oid, database name"
+2253,1255,0,"user privilege on database by user oid, database oid"
+2254,1255,0,current user privilege on database by database name
+2255,1255,0,current user privilege on database by database oid
+2256,1255,0,"user privilege on function by username, function name"
+2257,1255,0,"user privilege on function by username, function oid"
+2258,1255,0,"user privilege on function by user oid, function name"
+2259,1255,0,"user privilege on function by user oid, function oid"
+2260,1255,0,current user privilege on function by function name
+2261,1255,0,current user privilege on function by function oid
+2262,1255,0,"user privilege on language by username, language name"
+2263,1255,0,"user privilege on language by username, language oid"
+2264,1255,0,"user privilege on language by user oid, language name"
+2265,1255,0,"user privilege on language by user oid, language oid"
+2266,1255,0,current user privilege on language by language name
+2267,1255,0,current user privilege on language by language oid
+2268,1255,0,"user privilege on schema by username, schema name"
+2269,1255,0,"user privilege on schema by username, schema oid"
+2270,1255,0,"user privilege on schema by user oid, schema name"
+2271,1255,0,"user privilege on schema by user oid, schema oid"
+2272,1255,0,current user privilege on schema by schema name
+2273,1255,0,current user privilege on schema by schema oid
+2390,1255,0,"user privilege on tablespace by username, tablespace name"
+2391,1255,0,"user privilege on tablespace by username, tablespace oid"
+2392,1255,0,"user privilege on tablespace by user oid, tablespace name"
+2393,1255,0,"user privilege on tablespace by user oid, tablespace oid"
+2394,1255,0,current user privilege on tablespace by tablespace name
+2395,1255,0,current user privilege on tablespace by tablespace oid
+2705,1255,0,"user privilege on role by username, role name"
+2706,1255,0,"user privilege on role by username, role oid"
+2707,1255,0,"user privilege on role by user oid, role name"
+2708,1255,0,"user privilege on role by user oid, role oid"
+2709,1255,0,current user privilege on role by role name
+2710,1255,0,current user privilege on role by role oid
+1269,1255,0,"bytes required to store the value, perhaps with compression"
+2322,1255,0,Calculate total disk space usage for the specified tablespace
+2323,1255,0,Calculate total disk space usage for the specified tablespace
+2324,1255,0,Calculate total disk space usage for the specified database
+2168,1255,0,Calculate total disk space usage for the specified database
+2325,1255,0,Calculate disk space usage for the specified table or index
+2289,1255,0,Calculate disk space usage for the specified table or index
+2286,1255,0,Calculate total disk space usage for the specified table and associated indexes and toast tables
+2287,1255,0,Calculate total disk space usage for the specified table and associated indexes and toast tables
+2288,1255,0,Convert a long int to a human readable text using size units
+2290,1255,0,I/O
+2291,1255,0,I/O
+2292,1255,0,I/O
+2293,1255,0,I/O
+2294,1255,0,I/O
+2295,1255,0,I/O
+2296,1255,0,I/O
+2297,1255,0,I/O
+2298,1255,0,I/O
+2299,1255,0,I/O
+2300,1255,0,I/O
+2301,1255,0,I/O
+2302,1255,0,I/O
+2303,1255,0,I/O
+2304,1255,0,I/O
+2305,1255,0,I/O
+2306,1255,0,I/O
+2307,1255,0,I/O
+2312,1255,0,I/O
+2313,1255,0,I/O
+2398,1255,0,I/O
+2399,1255,0,I/O
+2597,1255,0,I/O
+2598,1255,0,I/O
+2311,1255,0,calculates md5 hash
+2321,1255,0,calculates md5 hash
+2338,1255,0,less-than
+2339,1255,0,less-than-or-equal
+2340,1255,0,equal
+2341,1255,0,greater-than
+2342,1255,0,greater-than-or-equal
+2343,1255,0,not equal
+2344,1255,0,less-equal-greater
+2351,1255,0,less-than
+2352,1255,0,less-than-or-equal
+2353,1255,0,equal
+2354,1255,0,greater-than
+2355,1255,0,greater-than-or-equal
+2356,1255,0,not equal
+2357,1255,0,less-equal-greater
+2364,1255,0,less-than
+2365,1255,0,less-than-or-equal
+2366,1255,0,equal
+2367,1255,0,greater-than
+2368,1255,0,greater-than-or-equal
+2369,1255,0,not equal
+2370,1255,0,less-equal-greater
+2377,1255,0,less-than
+2378,1255,0,less-than-or-equal
+2379,1255,0,equal
+2380,1255,0,greater-than
+2381,1255,0,greater-than-or-equal
+2382,1255,0,not equal
+2383,1255,0,less-equal-greater
+2520,1255,0,less-than
+2521,1255,0,less-than-or-equal
+2522,1255,0,equal
+2523,1255,0,greater-than
+2524,1255,0,greater-than-or-equal
+2525,1255,0,not equal
+2526,1255,0,less-equal-greater
+2527,1255,0,less-than
+2528,1255,0,less-than-or-equal
+2529,1255,0,equal
+2530,1255,0,greater-than
+2531,1255,0,greater-than-or-equal
+2532,1255,0,not equal
+2533,1255,0,less-equal-greater
+2400,1255,0,I/O
+2401,1255,0,I/O
+2402,1255,0,I/O
+2403,1255,0,I/O
+2404,1255,0,I/O
+2405,1255,0,I/O
+2406,1255,0,I/O
+2407,1255,0,I/O
+2408,1255,0,I/O
+2409,1255,0,I/O
+2410,1255,0,I/O
+2411,1255,0,I/O
+2412,1255,0,I/O
+2413,1255,0,I/O
+2414,1255,0,I/O
+2415,1255,0,I/O
+2416,1255,0,I/O
+2417,1255,0,I/O
+2418,1255,0,I/O
+2419,1255,0,I/O
+2420,1255,0,I/O
+2421,1255,0,I/O
+2422,1255,0,I/O
+2423,1255,0,I/O
+2424,1255,0,I/O
+2425,1255,0,I/O
+2426,1255,0,I/O
+2427,1255,0,I/O
+2428,1255,0,I/O
+2429,1255,0,I/O
+2430,1255,0,I/O
+2431,1255,0,I/O
+2432,1255,0,I/O
+2433,1255,0,I/O
+2434,1255,0,I/O
+2435,1255,0,I/O
+2436,1255,0,I/O
+2437,1255,0,I/O
+2438,1255,0,I/O
+2439,1255,0,I/O
+2440,1255,0,I/O
+2441,1255,0,I/O
+2442,1255,0,I/O
+2443,1255,0,I/O
+2444,1255,0,I/O
+2445,1255,0,I/O
+2446,1255,0,I/O
+2447,1255,0,I/O
+2448,1255,0,I/O
+2449,1255,0,I/O
+2450,1255,0,I/O
+2451,1255,0,I/O
+2452,1255,0,I/O
+2453,1255,0,I/O
+2454,1255,0,I/O
+2455,1255,0,I/O
+2456,1255,0,I/O
+2457,1255,0,I/O
+2458,1255,0,I/O
+2459,1255,0,I/O
+2460,1255,0,I/O
+2461,1255,0,I/O
+2462,1255,0,I/O
+2463,1255,0,I/O
+2464,1255,0,I/O
+2465,1255,0,I/O
+2466,1255,0,I/O
+2467,1255,0,I/O
+2468,1255,0,I/O
+2469,1255,0,I/O
+2470,1255,0,I/O
+2471,1255,0,I/O
+2472,1255,0,I/O
+2473,1255,0,I/O
+2474,1255,0,I/O
+2475,1255,0,I/O
+2476,1255,0,I/O
+2477,1255,0,I/O
+2478,1255,0,I/O
+2479,1255,0,I/O
+2480,1255,0,I/O
+2481,1255,0,I/O
+2482,1255,0,I/O
+2483,1255,0,I/O
+2484,1255,0,I/O
+2485,1255,0,I/O
+2486,1255,0,I/O
+2487,1255,0,I/O
+2488,1255,0,I/O
+2489,1255,0,I/O
+2490,1255,0,I/O
+2491,1255,0,I/O
+2492,1255,0,I/O
+2493,1255,0,I/O
+2494,1255,0,I/O
+2495,1255,0,I/O
+2496,1255,0,I/O
+2497,1255,0,I/O
+2498,1255,0,I/O
+2499,1255,0,I/O
+2500,1255,0,I/O
+2501,1255,0,I/O
+2502,1255,0,I/O
+2503,1255,0,I/O
+2504,1255,0,source text of a rule with pretty-print option
+2505,1255,0,select statement of a view with pretty-print option
+2506,1255,0,select statement of a view with pretty-print option
+2507,1255,0,index description (full create statement or single expression) with pretty-print option
+2508,1255,0,constraint description with pretty-print option
+2509,1255,0,deparse an encoded expression with pretty-print option
+2510,1255,0,get the prepared statements for this session
+2511,1255,0,get the open cursors for this session
+2599,1255,0,get the available time zone abbreviations
+2856,1255,0,get the available time zone names
+1066,1255,0,non-persistent series generator
+1067,1255,0,non-persistent series generator
+1068,1255,0,non-persistent series generator
+1069,1255,0,non-persistent series generator
+2515,1255,0,boolean-and aggregate transition function
+2516,1255,0,boolean-or aggregate transition function
+2517,1255,0,boolean-and aggregate
+2518,1255,0,boolean-or aggregate
+2519,1255,0,boolean-and aggregate
+2236,1255,0,bitwise-and smallint aggregate
+2237,1255,0,bitwise-or smallint aggregate
+2238,1255,0,bitwise-and integer aggregate
+2239,1255,0,bitwise-or integer aggregate
+2240,1255,0,bitwise-and bigint aggregate
+2241,1255,0,bitwise-or bigint aggregate
+2242,1255,0,bitwise-and bit aggregate
+2243,1255,0,bitwise-or bit aggregate
+2556,1255,0,returns database oids in a tablespace
+2557,1255,0,convert int4 to boolean
+2558,1255,0,convert boolean to int4
+2559,1255,0,current value from last used sequence
+2560,1255,0,postmaster start time
+2562,1255,0,is below
+2563,1255,0,overlaps or is below
+2564,1255,0,overlaps or is above
+2565,1255,0,is above
+2566,1255,0,is below
+2567,1255,0,overlaps or is below
+2568,1255,0,overlaps or is above
+2569,1255,0,is above
+2587,1255,0,overlaps or is below
+2588,1255,0,overlaps or is above
+2578,1255,0,GiST support
+2579,1255,0,GiST support
+2580,1255,0,GiST support
+2581,1255,0,GiST support
+2582,1255,0,GiST support
+2583,1255,0,GiST support
+2584,1255,0,GiST support
+2585,1255,0,GiST support
+2586,1255,0,GiST support
+2591,1255,0,GiST support
+2592,1255,0,GiST support
+2730,1255,0,gin(internal)
+2731,1255,0,gin(internal)
+2732,1255,0,gin(internal)
+2733,1255,0,gin(internal)
+2734,1255,0,gin(internal)
+2735,1255,0,gin(internal)
+2736,1255,0,gin(internal)
+2737,1255,0,gin(internal)
+2738,1255,0,gin(internal)
+2739,1255,0,gin(internal)
+2740,1255,0,gin(internal)
+2741,1255,0,gin(internal)
+2788,1255,0,gin(internal)
+3200,1255,0,transpose a two dimensional matrix
+3201,1255,0,perform matrix multiplication on two matrices
+3202,1255,0,perform matrix multiplication on two matrices
+3203,1255,0,perform matrix multiplication on two matrices
+3204,1255,0,perform matrix multiplication on two matrices
+3205,1255,0,multiply a matrix by a scalar value
+3206,1255,0,multiply a matrix by a scalar value
+3208,1255,0,perform matrix addition on two conformable matrices
+3209,1255,0,perform matrix addition on two conformable matrices
+3210,1255,0,perform matrix addition on two conformable matrices
+3211,1255,0,perform matrix addition on two conformable matrices
+3212,1255,0,perform matrix addition on two conformable matrices
+3213,1255,0,perform matrix addition on two conformable matrices
+3214,1255,0,perform matrix addition on two conformable matrices
+3215,1255,0,perform matrix addition on two conformable matrices
+6003,1255,0,launch mpp backup on outboard Postgres instances
+6004,1255,0,launch mpp restore on outboard Postgres instances
+6005,1255,0,read mpp backup file on outboard Postgres instances
+6006,1255,0,write mpp backup file on outboard Postgres instances
+6007,1255,0,view mpp pgdatabase state
+6008,1255,0,aggregate preliminary function
+3104,1255,0,aggregate preliminary function
+6009,1255,0,aggregate preliminary function
+6010,1255,0,aggregate preliminary function
+3111,1255,0,aggregate preliminary function
+6011,1255,0,aggregate preliminary function
+6015,1255,0,aggregate inverse preliminary function
+3105,1255,0,aggregate inverse preliminary function
+6016,1255,0,aggregate preliminary function
+3110,1255,0,aggregate inverse preliminary function
+6018,1255,0,aggregate preliminary function
+6021,1255,0,convert tid to int8
+6022,1255,0,segment executing function
+6023,1255,0,Highest oid used so far
+6035,1255,0,view mpp distributed transaction state
+6036,1255,0,Highest distributed transaction id used so far
+6037,1255,0,Current distributed transaction id
+6043,1255,0,view logged local transaction status
+6044,1255,0,view logged distributed transaction status
+7100,1255,0,window immediate function
+7101,1255,0,window immediate function
+7102,1255,0,window immediate function
+7204,1255,0,window preliminary function
+7205,1255,0,window preliminary function
+7206,1255,0,window preliminary function
+7207,1255,0,window preliminary function
+7303,1255,0,window final function
+7304,1255,0,window final function
+7305,1255,0,window final function
+7169,1255,0,show append only table tuple distribution across segment databases
+7170,1255,0,show append only table tuple distribution across segment databases
+7171,1255,0,show append only table compression ratio
+7172,1255,0,show append only table compression ratio
+7173,1255,0,append only tables utility function
+7174,1255,0,append only tables utility function
+2743,1255,0,GIN array support
+2744,1255,0,GIN array support
+2747,1255,0,overlaps
+2748,1255,0,contains
+2749,1255,0,is contained by
+2880,1255,0,obtain exclusive advisory lock
+2881,1255,0,obtain shared advisory lock
+2882,1255,0,obtain exclusive advisory lock if available
+2883,1255,0,obtain shared advisory lock if available
+2884,1255,0,release exclusive advisory lock
+2885,1255,0,release shared advisory lock
+2886,1255,0,obtain exclusive advisory lock
+2887,1255,0,obtain shared advisory lock
+2888,1255,0,obtain exclusive advisory lock if available
+2889,1255,0,obtain shared advisory lock if available
+2890,1255,0,release exclusive advisory lock
+2891,1255,0,release shared advisory lock
+2892,1255,0,release all advisory locks
+3050,1255,0,bitmap(internal)
+3051,1255,0,bitmap(internal)
+3001,1255,0,bitmap(internal)
+3002,1255,0,bitmap(internal)
+3003,1255,0,bitmap(internal)
+3004,1255,0,bitmap(internal)
+3005,1255,0,bitmap(internal)
+3006,1255,0,bitmap(internal)
+3007,1255,0,bitmap(internal)
+3008,1255,0,bitmap(internal)
+3010,1255,0,bitmap(internal)
+3011,1255,0,btree(internal)
+16,1247,0,"boolean, 'true'/'false'"
+17,1247,0,"variable-length string, binary values escaped"
+18,1247,0,single character
+19,1247,0,63-character type for storing system identifiers
+20,1247,0,"~18 digit integer, 8-byte storage"
+21,1247,0,"-32 thousand to 32 thousand, 2-byte storage"
+22,1247,0,"array of int2, used in system tables"
+23,1247,0,"-2 billion to 2 billion integer, 4-byte storage"
+24,1247,0,registered procedure
+25,1247,0,"variable-length string, no limit specified"
+26,1247,0,"object identifier(oid), maximum 4 billion"
+27,1247,0,"(Block, offset), physical location of tuple"
+28,1247,0,transaction id
+29,1247,0,"command identifier type, sequence in transaction id"
+30,1247,0,"array of oids, used in system tables"
+210,1247,0,storage manager
+600,1247,0,"geometric point '(x, y)'"
+601,1247,0,"geometric line segment '(pt1,pt2)'"
+602,1247,0,"geometric path '(pt1,...)'"
+603,1247,0,"geometric box '(lower left,upper right)'"
+604,1247,0,"geometric polygon '(pt1,...)'"
+628,1247,0,geometric line (not implemented)'
+700,1247,0,"single-precision floating point number, 4-byte storage"
+701,1247,0,"double-precision floating point number, 8-byte storage"
+702,1247,0,"absolute, limited-range date and time (Unix system time)"
+703,1247,0,"relative, limited-range time interval (Unix delta time)"
+704,1247,0,"(abstime,abstime), time interval"
+718,1247,0,"geometric circle '(center,radius)'"
+790,1247,0,"monetary amounts, $d,ddd.cc"
+829,1247,0,"XX:XX:XX:XX:XX:XX, MAC address"
+869,1247,0,"IP address/netmask, host address, netmask optional"
+650,1247,0,"network IP address/netmask, network address"
+1033,1247,0,access control list
+1042,1247,0,"char(length), blank-padded string, fixed storage length"
+1043,1247,0,"varchar(length), non-blank-padded string, variable storage length"
+1082,1247,0,ANSI SQL date
+1083,1247,0,"hh:mm:ss, ANSI SQL time"
+1114,1247,0,date and time
+1184,1247,0,date and time with time zone
+1186,1247,0,"@ <number> <units>, time interval"
+1266,1247,0,"hh:mm:ss, ANSI SQL time"
+1560,1247,0,fixed-length bit string
+1562,1247,0,variable-length bit string
+1700,1247,0,"numeric(precision, decimal), arbitrary precision number"
+1790,1247,0,reference cursor (portal name)
+2202,1247,0,registered procedure (with args)
+2203,1247,0,registered operator
+2204,1247,0,registered operator (with args)
+2205,1247,0,registered class
+2206,1247,0,registered type
+403,2601,0,b-tree index access method
+405,2601,0,hash index access method
+783,2601,0,GiST index access method
+2742,2601,0,GIN index access method
+3013,2601,0,bitmap index access method
+12,2612,0,Built-in functions
+13,2612,0,Dynamically-loaded C functions
+14,2612,0,SQL-language functions
+11,2615,0,System catalog schema
+99,2615,0,Reserved schema for TOAST tables
+3012,2615,0,Reserved schema for internal relations of bitmap indexes
+2200,2615,0,Standard public schema
+6104,2615,0,Reserved schema for Append Only segment list and eof tables
+10439,1255,0,internal conversion function for SQL_ASCII to MULE_INTERNAL
+10440,2607,0,conversion for SQL_ASCII to MULE_INTERNAL
+10441,1255,0,internal conversion function for MULE_INTERNAL to SQL_ASCII
+10442,2607,0,conversion for MULE_INTERNAL to SQL_ASCII
+10443,1255,0,internal conversion function for KOI8R to MULE_INTERNAL
+10444,2607,0,conversion for KOI8R to MULE_INTERNAL
+10445,1255,0,internal conversion function for MULE_INTERNAL to KOI8R
+10446,2607,0,conversion for MULE_INTERNAL to KOI8R
+10447,1255,0,internal conversion function for ISO-8859-5 to MULE_INTERNAL
+10448,2607,0,conversion for ISO-8859-5 to MULE_INTERNAL
+10449,1255,0,internal conversion function for MULE_INTERNAL to ISO-8859-5
+10450,2607,0,conversion for MULE_INTERNAL to ISO-8859-5
+10451,1255,0,internal conversion function for WIN1251 to MULE_INTERNAL
+10452,2607,0,conversion for WIN1251 to MULE_INTERNAL
+10453,1255,0,internal conversion function for MULE_INTERNAL to WIN1251
+10454,2607,0,conversion for MULE_INTERNAL to WIN1251
+10455,1255,0,internal conversion function for WIN866 to MULE_INTERNAL
+10456,2607,0,conversion for WIN866 to MULE_INTERNAL
+10457,1255,0,internal conversion function for MULE_INTERNAL to WIN866
+10458,2607,0,conversion for MULE_INTERNAL to WIN866
+10459,1255,0,internal conversion function for KOI8R to WIN1251
+10460,2607,0,conversion for KOI8R to WIN1251
+10461,1255,0,internal conversion function for WIN1251 to KOI8R
+10462,2607,0,conversion for WIN1251 to KOI8R
+10463,1255,0,internal conversion function for KOI8R to WIN866
+10464,2607,0,conversion for KOI8R to WIN866
+10465,1255,0,internal conversion function for WIN866 to KOI8R
+10466,2607,0,conversion for WIN866 to KOI8R
+10467,1255,0,internal conversion function for WIN866 to WIN1251
+10468,2607,0,conversion for WIN866 to WIN1251
+10469,1255,0,internal conversion function for WIN1251 to WIN866
+10470,2607,0,conversion for WIN1251 to WIN866
+10471,1255,0,internal conversion function for ISO-8859-5 to KOI8R
+10472,2607,0,conversion for ISO-8859-5 to KOI8R
+10473,1255,0,internal conversion function for KOI8R to ISO-8859-5
+10474,2607,0,conversion for KOI8R to ISO-8859-5
+10475,1255,0,internal conversion function for ISO-8859-5 to WIN1251
+10476,2607,0,conversion for ISO-8859-5 to WIN1251
+10477,1255,0,internal conversion function for WIN1251 to ISO-8859-5
+10478,2607,0,conversion for WIN1251 to ISO-8859-5
+10479,1255,0,internal conversion function for ISO-8859-5 to WIN866
+10480,2607,0,conversion for ISO-8859-5 to WIN866
+10481,1255,0,internal conversion function for WIN866 to ISO-8859-5
+10482,2607,0,conversion for WIN866 to ISO-8859-5
+10483,1255,0,internal conversion function for EUC_CN to MULE_INTERNAL
+10484,2607,0,conversion for EUC_CN to MULE_INTERNAL
+10485,1255,0,internal conversion function for MULE_INTERNAL to EUC_CN
+10486,2607,0,conversion for MULE_INTERNAL to EUC_CN
+10487,1255,0,internal conversion function for EUC_JP to SJIS
+10488,2607,0,conversion for EUC_JP to SJIS
+10489,1255,0,internal conversion function for SJIS to EUC_JP
+10490,2607,0,conversion for SJIS to EUC_JP
+10491,1255,0,internal conversion function for EUC_JP to MULE_INTERNAL
+10492,2607,0,conversion for EUC_JP to MULE_INTERNAL
+10493,1255,0,internal conversion function for SJIS to MULE_INTERNAL
+10494,2607,0,conversion for SJIS to MULE_INTERNAL
+10495,1255,0,internal conversion function for MULE_INTERNAL to EUC_JP
+10496,2607,0,conversion for MULE_INTERNAL to EUC_JP
+10497,1255,0,internal conversion function for MULE_INTERNAL to SJIS
+10498,2607,0,conversion for MULE_INTERNAL to SJIS
+10499,1255,0,internal conversion function for EUC_KR to MULE_INTERNAL
+10500,2607,0,conversion for EUC_KR to MULE_INTERNAL
+10501,1255,0,internal conversion function for MULE_INTERNAL to EUC_KR
+10502,2607,0,conversion for MULE_INTERNAL to EUC_KR
+10503,1255,0,internal conversion function for EUC_TW to BIG5
+10504,2607,0,conversion for EUC_TW to BIG5
+10505,1255,0,internal conversion function for BIG5 to EUC_TW
+10506,2607,0,conversion for BIG5 to EUC_TW
+10507,1255,0,internal conversion function for EUC_TW to MULE_INTERNAL
+10508,2607,0,conversion for EUC_TW to MULE_INTERNAL
+10509,1255,0,internal conversion function for BIG5 to MULE_INTERNAL
+10510,2607,0,conversion for BIG5 to MULE_INTERNAL
+10511,1255,0,internal conversion function for MULE_INTERNAL to EUC_TW
+10512,2607,0,conversion for MULE_INTERNAL to EUC_TW
+10513,1255,0,internal conversion function for MULE_INTERNAL to BIG5
+10514,2607,0,conversion for MULE_INTERNAL to BIG5
+10515,1255,0,internal conversion function for LATIN2 to MULE_INTERNAL
+10516,2607,0,conversion for LATIN2 to MULE_INTERNAL
+10517,1255,0,internal conversion function for MULE_INTERNAL to LATIN2
+10518,2607,0,conversion for MULE_INTERNAL to LATIN2
+10519,1255,0,internal conversion function for WIN1250 to MULE_INTERNAL
+10520,2607,0,conversion for WIN1250 to MULE_INTERNAL
+10521,1255,0,internal conversion function for MULE_INTERNAL to WIN1250
+10522,2607,0,conversion for MULE_INTERNAL to WIN1250
+10523,1255,0,internal conversion function for LATIN2 to WIN1250
+10524,2607,0,conversion for LATIN2 to WIN1250
+10525,1255,0,internal conversion function for WIN1250 to LATIN2
+10526,2607,0,conversion for WIN1250 to LATIN2
+10527,1255,0,internal conversion function for LATIN1 to MULE_INTERNAL
+10528,2607,0,conversion for LATIN1 to MULE_INTERNAL
+10529,1255,0,internal conversion function for MULE_INTERNAL to LATIN1
+10530,2607,0,conversion for MULE_INTERNAL to LATIN1
+10531,1255,0,internal conversion function for LATIN3 to MULE_INTERNAL
+10532,2607,0,conversion for LATIN3 to MULE_INTERNAL
+10533,1255,0,internal conversion function for MULE_INTERNAL to LATIN3
+10534,2607,0,conversion for MULE_INTERNAL to LATIN3
+10535,1255,0,internal conversion function for LATIN4 to MULE_INTERNAL
+10536,2607,0,conversion for LATIN4 to MULE_INTERNAL
+10537,1255,0,internal conversion function for MULE_INTERNAL to LATIN4
+10538,2607,0,conversion for MULE_INTERNAL to LATIN4
+10539,1255,0,internal conversion function for SQL_ASCII to UTF8
+10540,2607,0,conversion for SQL_ASCII to UTF8
+10541,1255,0,internal conversion function for UTF8 to SQL_ASCII
+10542,2607,0,conversion for UTF8 to SQL_ASCII
+10543,1255,0,internal conversion function for BIG5 to UTF8
+10544,2607,0,conversion for BIG5 to UTF8
+10545,1255,0,internal conversion function for UTF8 to BIG5
+10546,2607,0,conversion for UTF8 to BIG5
+10547,1255,0,internal conversion function for UTF8 to KOI8R
+10548,2607,0,conversion for UTF8 to KOI8R
+10549,1255,0,internal conversion function for KOI8R to UTF8
+10550,2607,0,conversion for KOI8R to UTF8
+10551,1255,0,internal conversion function for UTF8 to KOI8U
+10552,2607,0,conversion for UTF8 to KOI8U
+10553,1255,0,internal conversion function for KOI8U to UTF8
+10554,2607,0,conversion for KOI8U to UTF8
+10576,2607,0,conversion for WIN1257 to UTF8
+10556,2607,0,conversion for UTF8 to WIN866
+10555,1255,0,internal conversion function for UTF8 to WIN1258
+10558,2607,0,conversion for WIN866 to UTF8
+10577,2607,0,conversion for UTF8 to WIN1258
+10559,2607,0,conversion for UTF8 to WIN874
+10557,1255,0,internal conversion function for WIN1258 to UTF8
+10560,2607,0,conversion for WIN874 to UTF8
+10578,2607,0,conversion for WIN1258 to UTF8
+10561,2607,0,conversion for UTF8 to WIN1250
+10579,1255,0,internal conversion function for EUC_CN to UTF8
+10562,2607,0,conversion for WIN1250 to UTF8
+10580,2607,0,conversion for EUC_CN to UTF8
+10563,2607,0,conversion for UTF8 to WIN1251
+10581,1255,0,internal conversion function for UTF8 to EUC_CN
+10564,2607,0,conversion for WIN1251 to UTF8
+10582,2607,0,conversion for UTF8 to EUC_CN
+10565,2607,0,conversion for UTF8 to WIN1252
+10583,1255,0,internal conversion function for EUC_JP to UTF8
+10566,2607,0,conversion for WIN1252 to UTF8
+10584,2607,0,conversion for EUC_JP to UTF8
+10567,2607,0,conversion for UTF8 to WIN1253
+10585,1255,0,internal conversion function for UTF8 to EUC_JP
+10568,2607,0,conversion for WIN1253 to UTF8
+10586,2607,0,conversion for UTF8 to EUC_JP
+10569,2607,0,conversion for UTF8 to WIN1254
+10587,1255,0,internal conversion function for EUC_KR to UTF8
+10570,2607,0,conversion for WIN1254 to UTF8
+10588,2607,0,conversion for EUC_KR to UTF8
+10571,2607,0,conversion for UTF8 to WIN1255
+10589,1255,0,internal conversion function for UTF8 to EUC_KR
+10572,2607,0,conversion for WIN1255 to UTF8
+10590,2607,0,conversion for UTF8 to EUC_KR
+10573,2607,0,conversion for UTF8 to WIN1256
+10591,1255,0,internal conversion function for EUC_TW to UTF8
+10574,2607,0,conversion for WIN1256 to UTF8
+10592,2607,0,conversion for EUC_TW to UTF8
+10575,2607,0,conversion for UTF8 to WIN1257
+10593,1255,0,internal conversion function for UTF8 to EUC_TW
+10594,2607,0,conversion for UTF8 to EUC_TW
+10595,1255,0,internal conversion function for GB18030 to UTF8
+10596,2607,0,conversion for GB18030 to UTF8
+10597,1255,0,internal conversion function for UTF8 to GB18030
+10598,2607,0,conversion for UTF8 to GB18030
+10599,1255,0,internal conversion function for GBK to UTF8
+10600,2607,0,conversion for GBK to UTF8
+10601,1255,0,internal conversion function for UTF8 to GBK
+10602,2607,0,conversion for UTF8 to GBK
+10604,2607,0,conversion for UTF8 to LATIN2
+10606,2607,0,conversion for LATIN2 to UTF8
+10607,2607,0,conversion for UTF8 to LATIN3
+10608,2607,0,conversion for LATIN3 to UTF8
+10609,2607,0,conversion for UTF8 to LATIN4
+10610,2607,0,conversion for LATIN4 to UTF8
+10611,2607,0,conversion for UTF8 to LATIN5
+10612,2607,0,conversion for LATIN5 to UTF8
+10613,2607,0,conversion for UTF8 to LATIN6
+10614,2607,0,conversion for LATIN6 to UTF8
+10615,2607,0,conversion for UTF8 to LATIN7
+10616,2607,0,conversion for LATIN7 to UTF8
+10617,2607,0,conversion for UTF8 to LATIN8
+10618,2607,0,conversion for LATIN8 to UTF8
+10619,2607,0,conversion for UTF8 to LATIN9
+10620,2607,0,conversion for LATIN9 to UTF8
+10621,2607,0,conversion for UTF8 to LATIN10
+10622,2607,0,conversion for LATIN10 to UTF8
+10623,2607,0,conversion for UTF8 to ISO-8859-5
+10624,2607,0,conversion for ISO-8859-5 to UTF8
+10625,2607,0,conversion for UTF8 to ISO-8859-6
+10626,2607,0,conversion for ISO-8859-6 to UTF8
+10627,2607,0,conversion for UTF8 to ISO-8859-7
+10628,2607,0,conversion for ISO-8859-7 to UTF8
+10603,1255,0,internal conversion function for UTF8 to ISO-8859-8
+10629,2607,0,conversion for UTF8 to ISO-8859-8
+10605,1255,0,internal conversion function for ISO-8859-8 to UTF8
+10630,2607,0,conversion for ISO-8859-8 to UTF8
+10631,1255,0,internal conversion function for LATIN1 to UTF8
+10632,2607,0,conversion for LATIN1 to UTF8
+10633,1255,0,internal conversion function for UTF8 to LATIN1
+10634,2607,0,conversion for UTF8 to LATIN1
+10635,1255,0,internal conversion function for JOHAB to UTF8
+10636,2607,0,conversion for JOHAB to UTF8
+10637,1255,0,internal conversion function for UTF8 to JOHAB
+10638,2607,0,conversion for UTF8 to JOHAB
+10639,1255,0,internal conversion function for SJIS to UTF8
+10640,2607,0,conversion for SJIS to UTF8
+10641,1255,0,internal conversion function for UTF8 to SJIS
+10642,2607,0,conversion for UTF8 to SJIS
+10643,1255,0,internal conversion function for UHC to UTF8
+10644,2607,0,conversion for UHC to UTF8
+10645,1255,0,internal conversion function for UTF8 to UHC
+10646,2607,0,conversion for UTF8 to UHC
+10647,1255,0,internal conversion function for EUC_JIS_2004 to UTF8
+10648,2607,0,conversion for EUC_JIS_2004 to UTF8
+10649,1255,0,internal conversion function for UTF8 to EUC_JIS_2004
+10650,2607,0,conversion for UTF8 to EUC_JIS_2004
+10651,1255,0,internal conversion function for SHIFT_JIS_2004 to UTF8
+10652,2607,0,conversion for SHIFT_JIS_2004 to UTF8
+10653,1255,0,internal conversion function for UTF8 to SHIFT_JIS_2004
+10654,2607,0,conversion for UTF8 to SHIFT_JIS_2004
+10655,1255,0,internal conversion function for EUC_JIS_2004 to SHIFT_JIS_2004
+10656,2607,0,conversion for EUC_JIS_2004 to SHIFT_JIS_2004
+10657,1255,0,internal conversion function for SHIFT_JIS_2004 to EUC_JIS_2004
+10658,2607,0,conversion for SHIFT_JIS_2004 to EUC_JIS_2004

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_index33.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_index33.data b/src/test/regress/data/upgrade34/pg_index33.data
new file mode 100644
index 0000000..9c5c241
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_index33.data
@@ -0,0 +1,96 @@
+indexrelid,indrelid,indnatts,indisunique,indisprimary,indisclustered,indisvalid,indkey,indclass,indexprs,indpred
+2831,2830,2,t,t,f,t,1 2,1989 1978,,
+2833,2832,2,t,t,f,t,1 2,1989 1978,,
+2835,2834,2,t,t,f,t,1 2,1989 1978,,
+2837,2836,2,t,t,f,t,1 2,1989 1978,,
+2839,2838,2,t,t,f,t,1 2,1989 1978,,
+2841,2840,2,t,t,f,t,1 2,1989 1978,,
+2843,2842,2,t,t,f,t,1 2,1989 1978,,
+2845,2844,2,t,t,f,t,1 2,1989 1978,,
+2847,2846,2,t,t,f,t,1 2,1989 1978,,
+2650,2600,1,t,f,f,t,1,1989,,
+2651,2601,1,t,f,f,t,1,1986,,
+2652,2601,1,t,f,f,t,-2,1989,,
+2653,2602,3,t,f,f,t,1 2 3,1989 1989 1976,,
+2654,2602,2,t,f,f,t,5 1,1989 1989,,
+2655,2603,3,t,f,f,t,1 2 3,1989 1989 1976,,
+2656,2604,2,t,f,f,t,1 2,1989 1976,,
+2657,2604,1,t,f,f,t,-2,1989,,
+2658,1249,2,t,f,f,t,1 2,1989 1986,,
+2659,1249,2,t,f,f,t,1 6,1989 1976,,
+2676,1260,1,t,f,f,t,1,1986,,
+2677,1260,1,t,f,f,t,-2,1989,,
+2694,1261,2,t,f,f,t,1 2,1989 1989,,
+2695,1261,2,t,f,f,t,2 1,1989 1989,,
+6027,6026,1,t,f,f,t,-2,1989,,
+6028,6026,1,t,f,f,t,1,1986,,
+6041,6040,1,t,f,f,t,1,1989,,
+1250,1248,1,t,f,f,t,1,1989,,
+2660,2605,1,t,f,f,t,-2,1989,,
+2661,2605,2,t,f,f,t,1 2,1989 1989,,
+2662,1259,1,t,f,f,t,-2,1989,,
+2663,1259,2,t,f,f,t,1 2,1986 1989,,
+6029,1260,1,f,f,f,t,12,1989,,
+2664,2606,2,f,f,f,t,1 2,1986 1989,,
+2665,2606,1,f,f,f,t,6,1989,,
+2666,2606,1,f,f,f,t,7,1989,,
+2667,2606,1,t,f,f,t,-2,1989,,
+2668,2607,4,t,f,f,t,2 4 5 -2,1989 1978 1978 1989,,
+2669,2607,2,t,f,f,t,1 2,1986 1989,,
+2670,2607,1,t,f,f,t,-2,1989,,
+2671,1262,1,t,f,f,t,1,1986,,
+2672,1262,1,t,f,f,t,-2,1989,,
+2673,2608,3,f,f,f,t,1 2 3,1989 1989 1978,,
+2674,2608,3,f,f,f,t,4 5 6,1989 1989 1978,,
+2675,2609,3,t,f,f,t,1 2 3,1989 1989 1978,,
+2397,2396,2,t,f,f,t,1 2,1989 1989,,
+2678,2610,1,f,f,f,t,2,1989,,
+2679,2610,1,t,f,f,t,1,1989,,
+2680,2611,2,t,f,f,t,1 3,1989 1978,,
+2681,2612,1,t,f,f,t,1,1986,,
+2682,2612,1,t,f,f,t,-2,1989,,
+2683,2613,2,t,f,f,t,1 2,1989 1978,,
+2684,2615,1,t,f,f,t,1,1986,,
+2685,2615,1,t,f,f,t,-2,1989,,
+2686,2616,3,t,f,f,t,1 2 3,1989 1986 1989,,
+2687,2616,1,t,f,f,t,-2,1989,,
+2688,2617,1,t,f,f,t,-2,1989,,
+2689,2617,4,t,f,f,t,1 6 7 2,1986 1989 1989 1989,,
+1137,1136,1,t,f,f,t,1,1986,,
+2690,1255,1,t,f,f,t,-2,1989,,
+2691,1255,3,t,f,f,t,1 13 2,1986 1991 1989,,
+2692,2618,1,t,f,f,t,-2,1989,,
+2693,2618,2,t,f,f,t,2 1,1989 1986,,
+1232,1214,3,f,f,f,t,1 2 3,1989 1989 1989,,
+1233,1214,2,f,f,f,t,4 5,1989 1989,,
+2696,2619,2,t,f,f,t,1 2,1989 1976,,
+2697,1213,1,t,f,f,t,-2,1989,,
+2698,1213,1,t,f,f,t,1,1986,,
+2699,2620,1,f,f,f,t,7,1986,,
+2700,2620,1,f,f,f,t,8,1989,,
+2701,2620,2,t,f,f,t,1 2,1989 1986,,
+2702,2620,1,t,f,f,t,-2,1989,,
+2703,1247,1,t,f,f,t,-2,1989,,
+2704,1247,2,t,f,f,t,1 2,1986 1989,,
+6101,5000,2,t,f,f,t,1 2,1976 424,,
+6102,5000,1,t,f,f,t,3,1976,,
+6103,5002,1,t,f,f,t,1,1989,,
+6108,5029,1,f,f,f,t,1,1976,,
+6109,5030,1,t,f,f,t,1,1976,,
+5005,5004,1,t,f,f,t,1,1989,,
+5007,6105,1,t,f,f,t,1,1989,,
+5012,5010,1,t,f,f,t,-2,1989,,
+5017,5010,3,f,f,f,t,1 3 4,1989 1976 424,,
+5013,5010,1,f,f,f,t,1,1989,,
+5014,5011,1,t,f,f,t,-2,1989,,
+5015,5011,3,f,f,f,t,2 3 6,1989 1989 1976,,
+5016,5011,1,f,f,f,t,2,1989,,
+5026,5011,3,f,f,f,t,1 3 6,1989 1989 1976,,
+5031,6110,2,t,f,f,t,1 2,1989 1978,,
+10763,10761,2,t,t,f,t,1 2,1989 1978,,
+10768,10766,2,t,t,f,t,1 2,1989 1978,,
+10773,10771,2,t,t,f,t,1 2,1989 1978,,
+10778,10776,2,t,t,f,t,1 2,1989 1978,,
+10783,10781,2,t,t,f,t,1 2,1989 1978,,
+10788,10786,2,t,t,f,t,1 2,1989 1978,,
+10793,10791,2,t,t,f,t,1 2,1989 1978,,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade34/pg_namespace33.data.in
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade34/pg_namespace33.data.in b/src/test/regress/data/upgrade34/pg_namespace33.data.in
new file mode 100644
index 0000000..e67cd31
--- /dev/null
+++ b/src/test/regress/data/upgrade34/pg_namespace33.data.in
@@ -0,0 +1,7 @@
+oid,nspname,nspowner,nspacl
+99,pg_toast,10,
+3012,pg_bitmapindex,10,
+6104,pg_aoseg,10,
+11,pg_catalog,10,"{@gpcurusername@=UC/@gpcurusername@,=U/@gpcurusername@}"
+2200,public,10,"{@gpcurusername@=UC/@gpcurusername@,=UC/@gpcurusername@}"
+10659,information_schema,10,"{@gpcurusername@=UC/@gpcurusername@,=U/@gpcurusername@}"


[22/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_rewrite32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_rewrite32.data b/src/test/regress/data/upgrade33/pg_rewrite32.data
new file mode 100644
index 0000000..6d90167
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_rewrite32.data
@@ -0,0 +1,85 @@
+rulename,ev_class,ev_attr,ev_type,is_instead,ev_qual,ev_action
+10311,_RETURN,10309,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"" ""oid"")} :rtekind 0 :relid 10309 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"" ""oid"")} :rtekind 0 :relid 10309 :inh false :inFromCl false :requiredPerms 
 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")} :rtekind 0 :relid 1260 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname rolname :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname rolsuper :ressortgroupref 0 :resorigtbl 1260 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3}
  :resno 3 :resname rolinherit :ressortgroupref 0 :resorigtbl 1260 :resorigcol 3 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :resno 4 :resname rolcreaterole :ressortgroupref 0 :resorigtbl 1260 :resorigcol 4 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 5 :resname rolcreatedb :ressortgroupref 0 :resorigtbl 1260 :resorigcol 5 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} :resno 6 :resname rolcatupdate :ressortgroupref 0 :resorigtbl 1260 :resorigcol 6 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} :resno 7 :resname rolcanlogin :ressortgroupref 0 :resorigtbl 1260 :resorigcol 7 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 8 :vartype 23 :vartypmo
 d -1 :varlevelsup 0 :varnoold 3 :varoattno 8} :resno 8 :resname rolconnlimit :ressortgroupref 0 :resorigtbl 1260 :resorigcol 8 :resjunk false} {TARGETENTRY :expr {CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 12 [ 0 0 0 12 42 42 42 42 42 42 42 42 ]} :resno 9 :resname rolpassword :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 10 :vartype 1184 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} :resno 10 :resname rolvaliduntil :ressortgroupref 0 :resorigtbl 1260 :resorigcol 10 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 11 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} :resno 11 :resname rolconfig :ressortgroupref 0 :resorigtbl 1260 :resorigcol 11 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} :resno 12 :resname rolresqueue :ressortgroupref 0 :resorigtbl 1260 :resorigc
 ol 12 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 13 :resname oid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10314,_RETURN,10312,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rol
 catupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")} :rtekind 0 :relid 1260 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7}} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname usename :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 2 :resname usesysid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 3 :resname usecreatedb :ressortgroupref 0 :resorigtbl 1260 :resorigcol 5 :resju
 nk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 4 :resname usesuper :ressortgroupref 0 :resorigtbl 1260 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} :resno 5 :resname usecatupd :ressortgroupref 0 :resorigtbl 1260 :resorigcol 6 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 9 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} :resno 6 :resname passwd :ressortgroupref 0 :resorigtbl 1260 :resorigcol 9 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1180 :funcresulttype 702 :funcretset false :funcformat 1 :args ({VAR :varno 3 :varattno 10 :vartype 1184 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10})} :resno 7 :resname valuntil :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 11 :vartype 1009 :vartypmod -1 :varlevel
 sup 0 :varnoold 3 :varoattno 11} :resno 8 :resname useconfig :ressortgroupref 0 :resorigtbl 1260 :resorigcol 11 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10317,_RETURN,10315,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks true :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""groname"" ""grosysid"" ""grolist"")} :rtekind 0 :relid 10315 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""groname"" ""grosysid"" ""grolist"")} :rtekind 0 :relid 10315 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname pg_authid :colnames (""rolname"" ""rolsuper"" ""rolinherit"" ""rolcreaterole"" ""rolcreatedb"" ""rolcatupdate"" ""rolcanlogin"" ""rolconnlimit"" ""rolpassword"" ""rolvaliduntil"" ""rolconfig"" ""rolresqueue"")} :rtekind 0 :relid 1260 :inh 
 true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals {BOOLEXPR :boolop not :args ({VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7})}} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname groname :ressortgroupref 0 :resorigtbl 1260 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2} :resno 2 :resname grosysid :ressortgroupref 0 :resorigtbl 1260 :resorigcol -2 :resjunk false} {TARGETENTRY :expr {SUBLINK :subLinkType 5 :testexpr <> :operName <> :subselect {QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias 
 <> :eref {ALIAS :aliasname pg_auth_members :colnames (""roleid"" ""member"" ""grantor"" ""admin_option"")} :rtekind 0 :relid 1261 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 1}) :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 1 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 1 :varoattno 1} {VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 1 :varnoold 3 :varoattno -2})}} :targetList ({TARGETENTRY :expr {VAR :varno 1 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 1 :varoattno 2} :resno 1 :resname member :ressortgroupref 0 :resorigtbl 1261 :resorigcol 2 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> 
 :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0}} :resno 3 :resname grolist :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10320,_RETURN,10318,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10318 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10318 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname pg_shadow :colnames (""usename"" ""usesysid"" ""usecreatedb"" ""usesuper"" ""usecatupd"" ""passwd"" 
 ""valuntil"" ""useconfig"")} :rtekind 0 :relid 10312 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname usename :ressortgroupref 0 :resorigtbl 10312 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname usesysid :ressortgroupref 0 :resorigtbl 10312 :resorigcol 2 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} :resno 3 :resname usecreatedb :ressortgroupref 0 :resorigtbl 10312 :resorigcol 3 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :resno 4 :resname usesuper :ressortgroupref 0 :re
 sorigtbl 10312 :resorigcol 4 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} :resno 5 :resname usecatupd :ressortgroupref 0 :resorigtbl 10312 :resorigcol 5 :resjunk false} {TARGETENTRY :expr {CONST :consttype 25 :constlen -1 :constbyval false :constisnull false :constvalue 12 [ 0 0 0 12 42 42 42 42 42 42 42 42 ]} :resno 6 :resname passwd :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 7 :vartype 702 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} :resno 7 :resname valuntil :ressortgroupref 0 :resorigtbl 10312 :resorigcol 7 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 8 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} :resno 8 :resname useconfig :ressortgroupref 0 :resorigtbl 10312 :resorigcol 8 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause 
 <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10323,_RETURN,10321,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""rulename"" ""definition"")} :rtekind 0 :relid 10321 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""rulename"" ""definition"")} :rtekind 0 :relid 10321 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname r :colnames <>} :eref {ALIAS :aliasname r :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"")} :rtekind 0 :relid 2618 :inh true :inFromCl true :requiredPerm
 s 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""rel
 aosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 4 :varattno 1 
 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3} {VAR :varno 4 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 4} {VAR :varno 4 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 5} {VAR :varno 4 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 6} {VAR :varno 4 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 7} {VAR :varno 4 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 8} {VAR :varno 4 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 9} {VAR :varno 4 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 10} {VAR :varno 4 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno
  11} {VAR :varno 4 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 12} {VAR :varno 4 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 13} {VAR :varno 4 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 14} {VAR :varno 4 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 15} {VAR :varno 4 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 16} {VAR :varno 4 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 17} {VAR :varno 4 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 18} {VAR :varno 4 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 19} {VAR :varno 4 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 20} {VAR :varno 4 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 21} {VAR :varno 4 :varattno 22 :vartype 21 :va
 rtypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 22} {VAR :varno 4 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 23} {VAR :varno 4 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 24} {VAR :varno 4 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 25} {VAR :varno 4 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 26} {VAR :varno 4 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 27} {VAR :varno 4 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 28} {VAR :varno 4 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 29} {VAR :varno 4 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 30}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""
 nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""rulename"" ""ev_class"" ""ev_attr"" ""ev_type"" ""is_instead"" ""ev_qual"" ""ev_action"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varno 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :v
 arno 5 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno 9 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 
 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno 16 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 23 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :vara
 ttno 24 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 33} {VAR :varno 5 :varattno 34 :vartype 16 :vartypmod -1 :varlevelsup 
 0 :varnoold 5 :varoattno 34} {VAR :varno 5 :varattno 35 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 35} {VAR :varno 5 :varattno 36 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 36} {VAR :varno 5 :varattno 37 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 37} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 0 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod 
 -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2})} :alias <> :rtindex 7}) :quals {OPEXPR :opno 643 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {CONST :consttype 19 :constlen 64 :constbyval false :constisnull false :constvalue 64 [ 95 82 69 84 85 82 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]})}} :targetList ({TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varno
 old 6 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 3 :resname rulename :ressortgroupref 0 :resorigtbl 2618 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1573 :funcresulttype 25 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno -2})} :resno 4 :resname definition :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <>
  :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10326,_RETURN,10324,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""viewname"" ""viewowner"" ""definition"")} :rtekind 0 :relid 10324 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""viewname"" ""viewowner"" ""definition"")} :rtekind 0 :relid 10324 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoasti
 dxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" 
 ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 700 :var
 typmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} {VAR :varno 3 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 13} {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} {VAR :varno 3 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 15} {VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {VAR :varno 3 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 17} {VAR :varno 3 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 18} {VAR :varno 3 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 
 19} {VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {VAR :varno 3 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 21} {VAR :varno 3 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 22} {VAR :varno 3 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 23} {VAR :varno 3 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 24} {VAR :varno 3 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 25} {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} {VAR :varno 3 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 27} {VAR :varno 3 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 28} {VAR :varno 3 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 29} {VAR :varno 3 :varattno 30 :vartype 1009 
 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 30} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5}) :quals {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 
 :varnoold 3 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 118 0 0 0 0 0 0 0 ]})}} :targetList ({TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 2 :resname viewname :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1642 :funcresulttype 19 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4})} :resno 3 :resname viewowner :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1641 :funcresulttype 25 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno -2 :vartype 26 :vartypmod 
 -1 :varlevelsup 0 :varnoold 3 :varoattno -2})} :resno 4 :resname definition :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10329,_RETURN,10327,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""tableowner"" ""tablespace"" ""hasindexes"" ""hasrules"" ""hastriggers"")} :rtekind 0 :relid 10327 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""tableowner"" ""tablespace"" ""hasindexes"" ""hasrules"" ""hastriggers"")} :rtekind 0 :relid 10327 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"
 " ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relis
 shared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 23 :varty
 pmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 3 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 12} {VAR :varno 3 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 13} {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} {VAR :varno 3 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 15} {VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {VAR :varno 3 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 17} {VAR :varno 3 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 18}
  {VAR :varno 3 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 19} {VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {VAR :varno 3 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 21} {VAR :varno 3 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 22} {VAR :varno 3 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 23} {VAR :varno 3 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 24} {VAR :varno 3 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 25} {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} {VAR :varno 3 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 27} {VAR :varno 3 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 28} {VAR :varno 3 :varattno 29 :vartype 1034 :vart
 ypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 29} {VAR :varno 3 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 30} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname t :colnames <>} :eref {ALIAS :aliasname t :colnames (""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 0 :relid 1213 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"
 " ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"" ""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varno 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :varno 5 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 26 :vartypmod -1 :varlev
 elsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :var
 attno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup
  0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 33} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3} {VAR :varno 6 :varattno 4 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 4} {VAR :varno 6 :va
 rattno 5 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 5} {VAR :varno 6 :varattno 6 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 6}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 1 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 3 :varattno 7 :vartype 26 :vartypmod -1
  :varlevelsup 0 :varnoold 3 :varoattno 7})} :alias <> :rtindex 7}) :quals {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 114 0 0 0 0 0 0 0 ]})}} :targetList ({TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1642 :funcresulttype 19 :funcretset false :funcformat 0 :args ({VAR :varno 3 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4})} :resno 3 :resname tableowner 
 :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} :resno 4 :resname tablespace :ressortgroupref 0 :resorigtbl 1213 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 14} :resno 5 :resname hasindexes :ressortgroupref 0 :resorigtbl 1259 :resorigcol 14 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 26} :resno 6 :resname hasrules :ressortgroupref 0 :resorigtbl 1259 :resorigcol 26 :resjunk false} {TARGETENTRY :expr {OPEXPR :opno 536 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 3 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 20} {CONST :consttype 23 :constlen 4 :constbyval true :constisnull false :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})} :resno 7 :resname h
 astriggers :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10822,_RETURN,10820,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""segment_id"" ""dbid"" ""transaction"" ""status"")} :rtekind 0 :relid 10820 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""segment_id"" ""dbid"" ""transaction"" ""status"")} :rtekind 0 :relid 10820 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname l :colnames <>} :eref {ALIAS :aliasname l :colnames (""segment_id"" ""dbid"" ""transaction"" ""status"")} :rtekind 4 :funcexpr {FUNCEXPR :funcid 6043 :funcresulttype 2249 :funcretset true :funcformat 0 :args <>} :funcco
 ltypes (o 21 21 28 25) :funccoltypmods (i -1 -1 -1 -1) :inh false :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({RANGETBLREF :rtindex 3}) :quals <>} :targetList ({TARGETENTRY :expr {VAR :varno 3 :varattno 1 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} :resno 1 :resname segment_id :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 2 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} :resno 2 :resname dbid :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 3 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} :resno 3 :resname transaction :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false} {TARGETENTRY :expr {VAR :varno 3 :varattno 4 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} :resno 4 :resname status :ressortgroupref 0 :resorigtbl 0 :
 resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10332,_RETURN,10330,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :aliasname *OLD* :colnames <>} :eref {ALIAS :aliasname *OLD* :colnames (""schemaname"" ""tablename"" ""indexname"" ""tablespace"" ""indexdef"")} :rtekind 0 :relid 10330 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname *NEW* :colnames <>} :eref {ALIAS :aliasname *NEW* :colnames (""schemaname"" ""tablename"" ""indexname"" ""tablespace"" ""indexdef"")} :rtekind 0 :relid 10330 :inh false :inFromCl false :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname x :colnames <>} :eref {ALIAS :aliasname x :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indcl
 ass"" ""indexprs"" ""indpred"")} :rtekind 0 :relid 2610 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname c :colnames <>} :eref {ALIAS :aliasname c :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""reln
 ame"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 3 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2} {VAR :varno 3 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 3} {VAR :varno 3 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 4} {VAR :varno 3 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 5} {VAR :varno 3 :varattno 6 :vartype 16 :vartypmod -1 
 :varlevelsup 0 :varnoold 3 :varoattno 6} {VAR :varno 3 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 7} {VAR :varno 3 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 8} {VAR :varno 3 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 9} {VAR :varno 3 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 10} {VAR :varno 3 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 11} {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} {VAR :varno 4 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2} {VAR :varno 4 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 3} {VAR :varno 4 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 4} {VAR :varno 4 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 5} {VAR :varno 4 :varattn
 o 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 6} {VAR :varno 4 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 7} {VAR :varno 4 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 8} {VAR :varno 4 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 9} {VAR :varno 4 :varattno 10 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 10} {VAR :varno 4 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 11} {VAR :varno 4 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 12} {VAR :varno 4 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 13} {VAR :varno 4 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 14} {VAR :varno 4 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 15} {VAR :varno 4 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnool
 d 4 :varoattno 16} {VAR :varno 4 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 17} {VAR :varno 4 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 18} {VAR :varno 4 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 19} {VAR :varno 4 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 20} {VAR :varno 4 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 21} {VAR :varno 4 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 22} {VAR :varno 4 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 23} {VAR :varno 4 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 24} {VAR :varno 4 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 25} {VAR :varno 4 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 26} {VAR :varno 4 :varattno 27 :
 vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 27} {VAR :varno 4 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 28} {VAR :varno 4 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 29} {VAR :varno 4 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 30}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname i :colnames <>} :eref {ALIAS :aliasname i :colnames (""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 0 :relid 1259 :inh 
 true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" 
 ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"")} :rtekind 2 :jointype 0 :joinaliasvars ({VAR :varno 5 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 1} {VAR :varno 5 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 2} {VAR :varno 5 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 3} {VAR :varno 5 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 4} {VAR :varno 5 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 5} {VAR :varno 5 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 6} {VAR :varno 5 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 7} {VAR :varno 5 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 8} {VAR :varno 5 :varattno
  9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 9} {VAR :varno 5 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 10} {VAR :varno 5 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 11} {VAR :varno 5 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 12} {VAR :varno 5 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 13} {VAR :varno 5 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 14} {VAR :varno 5 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 15} {VAR :varno 5 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 16} {VAR :varno 5 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 17} {VAR :varno 5 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 18} {VAR :varno 5 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :var
 noold 5 :varoattno 19} {VAR :varno 5 :varattno 20 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 20} {VAR :varno 5 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 21} {VAR :varno 5 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 22} {VAR :varno 5 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 23} {VAR :varno 5 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 24} {VAR :varno 5 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 25} {VAR :varno 5 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 26} {VAR :varno 5 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 27} {VAR :varno 5 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 28} {VAR :varno 5 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 29} {VAR :varno 5 :varattno
  30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 30} {VAR :varno 5 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 31} {VAR :varno 5 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 32} {VAR :varno 5 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 33} {VAR :varno 5 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 34} {VAR :varno 5 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 35} {VAR :varno 5 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 36} {VAR :varno 5 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 37} {VAR :varno 5 :varattno 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 38} {VAR :varno 5 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 39} {VAR :varno 5 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 
 :varnoold 5 :varoattno 40} {VAR :varno 5 :varattno 41 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 5 :varoattno 41} {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} {VAR :varno 6 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 2} {VAR :varno 6 :varattno 3 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 3} {VAR :varno 6 :varattno 4 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 4} {VAR :varno 6 :varattno 5 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 5} {VAR :varno 6 :varattno 6 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 6} {VAR :varno 6 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 7} {VAR :varno 6 :varattno 8 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 8} {VAR :varno 6 :varattno 9 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 9} {VAR :varno 6 :varattno 10 :vartype
  26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 10} {VAR :varno 6 :varattno 11 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 11} {VAR :varno 6 :varattno 12 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 12} {VAR :varno 6 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 13} {VAR :varno 6 :varattno 14 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 14} {VAR :varno 6 :varattno 15 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 15} {VAR :varno 6 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 16} {VAR :varno 6 :varattno 17 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 17} {VAR :varno 6 :varattno 18 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 18} {VAR :varno 6 :varattno 19 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 19} {VAR :varno 6 :varattno 20 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :v
 aroattno 20} {VAR :varno 6 :varattno 21 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 21} {VAR :varno 6 :varattno 22 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 22} {VAR :varno 6 :varattno 23 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 23} {VAR :varno 6 :varattno 24 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 24} {VAR :varno 6 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 25} {VAR :varno 6 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 26} {VAR :varno 6 :varattno 27 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 27} {VAR :varno 6 :varattno 28 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 28} {VAR :varno 6 :varattno 29 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 29} {VAR :varno 6 :varattno 30 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 30}) :inh false :inFromCl true :re
 quiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname n :colnames <>} :eref {ALIAS :aliasname n :colnames (""nspname"" ""nspowner"" ""nspacl"")} :rtekind 0 :relid 2615 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indisprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" 
 ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" ""nspowner"" ""nspacl"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 7 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 1} {VAR :varno 7 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 2} {VAR :varno 7 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 3} {VAR :varno 7 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 4} {VAR :varno 7 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 5} {VAR :varno 7 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup
  0 :varnoold 7 :varoattno 6} {VAR :varno 7 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 7} {VAR :varno 7 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 8} {VAR :varno 7 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 9} {VAR :varno 7 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 10} {VAR :varno 7 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 11} {VAR :varno 7 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 12} {VAR :varno 7 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 13} {VAR :varno 7 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 14} {VAR :varno 7 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 15} {VAR :varno 7 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 16} {VAR :varno 7 :varattno 
 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 17} {VAR :varno 7 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 18} {VAR :varno 7 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 19} {VAR :varno 7 :varattno 20 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 20} {VAR :varno 7 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 21} {VAR :varno 7 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 22} {VAR :varno 7 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 23} {VAR :varno 7 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 24} {VAR :varno 7 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 25} {VAR :varno 7 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 26} {VAR :varno 7 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :v
 arnoold 7 :varoattno 27} {VAR :varno 7 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 28} {VAR :varno 7 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 29} {VAR :varno 7 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 30} {VAR :varno 7 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 31} {VAR :varno 7 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 32} {VAR :varno 7 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 33} {VAR :varno 7 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 34} {VAR :varno 7 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 35} {VAR :varno 7 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 36} {VAR :varno 7 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 37} {VAR :varno 7 :varattn
 o 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 38} {VAR :varno 7 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 39} {VAR :varno 7 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 40} {VAR :varno 7 :varattno 41 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 41} {VAR :varno 7 :varattno 42 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 42} {VAR :varno 7 :varattno 43 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 43} {VAR :varno 7 :varattno 44 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 44} {VAR :varno 7 :varattno 45 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 45} {VAR :varno 7 :varattno 46 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 46} {VAR :varno 7 :varattno 47 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 47} {VAR :varno 7 :varattno 48 :vartype 26 :vartypmod -1 :varlevelsup
  0 :varnoold 7 :varoattno 48} {VAR :varno 7 :varattno 49 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 49} {VAR :varno 7 :varattno 50 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 50} {VAR :varno 7 :varattno 51 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 51} {VAR :varno 7 :varattno 52 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 52} {VAR :varno 7 :varattno 53 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 53} {VAR :varno 7 :varattno 54 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 54} {VAR :varno 7 :varattno 55 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 55} {VAR :varno 7 :varattno 56 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 56} {VAR :varno 7 :varattno 57 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 57} {VAR :varno 7 :varattno 58 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 58} {VAR :varno 7 :v
 arattno 59 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 59} {VAR :varno 7 :varattno 60 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 60} {VAR :varno 7 :varattno 61 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 61} {VAR :varno 7 :varattno 62 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 62} {VAR :varno 7 :varattno 63 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 63} {VAR :varno 7 :varattno 64 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 64} {VAR :varno 7 :varattno 65 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 65} {VAR :varno 7 :varattno 66 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 66} {VAR :varno 7 :varattno 67 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 67} {VAR :varno 7 :varattno 68 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 68} {VAR :varno 7 :varattno 69 :vartype 28 :vartypmod -1 :varlevels
 up 0 :varnoold 7 :varoattno 69} {VAR :varno 7 :varattno 70 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 70} {VAR :varno 7 :varattno 71 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 7 :varoattno 71} {VAR :varno 8 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 1} {VAR :varno 8 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 2} {VAR :varno 8 :varattno 3 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 3}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false} {RTE :alias {ALIAS :aliasname t :colnames <>} :eref {ALIAS :aliasname t :colnames (""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 0 :relid 1213 :inh true :inFromCl true :requiredPerms 2 :checkAsUser 0 :forceDistRandom false} {RTE :alias <> :eref {ALIAS :aliasname unnamed_join :colnames (""indexrelid"" ""indrelid"" ""indnatts"" ""indisunique"" ""indi
 sprimary"" ""indisclustered"" ""indisvalid"" ""indkey"" ""indclass"" ""indexprs"" ""indpred"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""relname"" ""relnamespace"" ""reltype"" ""relowner"" ""relam"" ""relfilenode"" ""reltablespace"" ""relpages"" ""reltuples"" ""reltoastrelid"" ""reltoastidxid"" ""relaosegrelid"" ""relaosegidxid"" ""relhasindex"" ""relisshared"" ""relkind"" ""relstorage"" ""relnatts"" ""relchecks"" ""reltriggers"" ""relukeys"" ""relfkeys"" ""relrefs"" ""relhasoids"" ""relhaspkey"" ""relhasrules"" ""relhassubclass"" ""relfrozenxid"" ""relacl"" ""reloptions"" ""nspname"" "
 "nspowner"" ""nspacl"" ""spcname"" ""spcowner"" ""spclocation"" ""spcacl"" ""spcprilocations"" ""spcmirlocations"")} :rtekind 2 :jointype 1 :joinaliasvars ({VAR :varno 9 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 1} {VAR :varno 9 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 2} {VAR :varno 9 :varattno 3 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 3} {VAR :varno 9 :varattno 4 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 4} {VAR :varno 9 :varattno 5 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 5} {VAR :varno 9 :varattno 6 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 6} {VAR :varno 9 :varattno 7 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 7} {VAR :varno 9 :varattno 8 :vartype 22 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 8} {VAR :varno 9 :varattno 9 :vartype 30 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 9} {VAR
  :varno 9 :varattno 10 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 10} {VAR :varno 9 :varattno 11 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 11} {VAR :varno 9 :varattno 12 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 12} {VAR :varno 9 :varattno 13 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 13} {VAR :varno 9 :varattno 14 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 14} {VAR :varno 9 :varattno 15 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 15} {VAR :varno 9 :varattno 16 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 16} {VAR :varno 9 :varattno 17 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 17} {VAR :varno 9 :varattno 18 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 18} {VAR :varno 9 :varattno 19 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 19} {VAR :varno 9 :varattno 20 :vartype 700 :vartypmod 
 -1 :varlevelsup 0 :varnoold 9 :varoattno 20} {VAR :varno 9 :varattno 21 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 21} {VAR :varno 9 :varattno 22 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 22} {VAR :varno 9 :varattno 23 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 23} {VAR :varno 9 :varattno 24 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 24} {VAR :varno 9 :varattno 25 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 25} {VAR :varno 9 :varattno 26 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 26} {VAR :varno 9 :varattno 27 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 27} {VAR :varno 9 :varattno 28 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 28} {VAR :varno 9 :varattno 29 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 29} {VAR :varno 9 :varattno 30 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 30} {V
 AR :varno 9 :varattno 31 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 31} {VAR :varno 9 :varattno 32 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 32} {VAR :varno 9 :varattno 33 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 33} {VAR :varno 9 :varattno 34 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 34} {VAR :varno 9 :varattno 35 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 35} {VAR :varno 9 :varattno 36 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 36} {VAR :varno 9 :varattno 37 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 37} {VAR :varno 9 :varattno 38 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 38} {VAR :varno 9 :varattno 39 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 39} {VAR :varno 9 :varattno 40 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 40} {VAR :varno 9 :varattno 41 :vartype 1009 :varty
 pmod -1 :varlevelsup 0 :varnoold 9 :varoattno 41} {VAR :varno 9 :varattno 42 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 42} {VAR :varno 9 :varattno 43 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 43} {VAR :varno 9 :varattno 44 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 44} {VAR :varno 9 :varattno 45 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 45} {VAR :varno 9 :varattno 46 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 46} {VAR :varno 9 :varattno 47 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 47} {VAR :varno 9 :varattno 48 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 48} {VAR :varno 9 :varattno 49 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 49} {VAR :varno 9 :varattno 50 :vartype 700 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 50} {VAR :varno 9 :varattno 51 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 
 51} {VAR :varno 9 :varattno 52 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 52} {VAR :varno 9 :varattno 53 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 53} {VAR :varno 9 :varattno 54 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 54} {VAR :varno 9 :varattno 55 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 55} {VAR :varno 9 :varattno 56 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 56} {VAR :varno 9 :varattno 57 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 57} {VAR :varno 9 :varattno 58 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 58} {VAR :varno 9 :varattno 59 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 59} {VAR :varno 9 :varattno 60 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 60} {VAR :varno 9 :varattno 61 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 61} {VAR :varno 9 :varattno 62 :vartype 21 :var
 typmod -1 :varlevelsup 0 :varnoold 9 :varoattno 62} {VAR :varno 9 :varattno 63 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 63} {VAR :varno 9 :varattno 64 :vartype 21 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 64} {VAR :varno 9 :varattno 65 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 65} {VAR :varno 9 :varattno 66 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 66} {VAR :varno 9 :varattno 67 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 67} {VAR :varno 9 :varattno 68 :vartype 16 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 68} {VAR :varno 9 :varattno 69 :vartype 28 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 69} {VAR :varno 9 :varattno 70 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 70} {VAR :varno 9 :varattno 71 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 71} {VAR :varno 9 :varattno 72 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoa
 ttno 72} {VAR :varno 9 :varattno 73 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 73} {VAR :varno 9 :varattno 74 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 9 :varoattno 74} {VAR :varno 10 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 1} {VAR :varno 10 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 2} {VAR :varno 10 :varattno 3 :vartype 25 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 3} {VAR :varno 10 :varattno 4 :vartype 1034 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 4} {VAR :varno 10 :varattno 5 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 5} {VAR :varno 10 :varattno 6 :vartype 1009 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 6}) :inh false :inFromCl true :requiredPerms 0 :checkAsUser 0 :forceDistRandom false}) :jointree {FROMEXPR :fromlist ({JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :jointype 1 :isNatural false :larg {JOINEXPR :join
 type 0 :isNatural false :larg {JOINEXPR :jointype 0 :isNatural false :larg {RANGETBLREF :rtindex 3} :rarg {RANGETBLREF :rtindex 4} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno -2} {VAR :varno 3 :varattno 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 2})} :alias <> :rtindex 5} :rarg {RANGETBLREF :rtindex 6} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2} {VAR :varno 3 :varattno 1 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 3 :varoattno 1})} :alias <> :rtindex 7} :rarg {RANGETBLREF :rtindex 8} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 8 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno -2} {VAR :varno 4 :varattno 
 2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 2})} :alias <> :rtindex 9} :rarg {RANGETBLREF :rtindex 10} :using <> :quals {OPEXPR :opno 607 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 10 :varattno -2 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno -2} {VAR :varno 6 :varattno 7 :vartype 26 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 7})} :alias <> :rtindex 11}) :quals {BOOLEXPR :boolop and :args ({OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 4 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 114 0 0 0 0 0 0 0 ]})} {OPEXPR :opno 92 :opfuncid 0 :opresulttype 16 :opretset false :args ({VAR :varno 6 :varattno 16 :vartype 18 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 16} {CONST :consttype 18 :constlen 1 :constbyval true :constisnull false :constvalue 1 [ 105 0 0 0 0 
 0 0 0 ]})})}} :targetList ({TARGETENTRY :expr {VAR :varno 8 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 8 :varoattno 1} :resno 1 :resname schemaname :ressortgroupref 0 :resorigtbl 2615 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 4 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 4 :varoattno 1} :resno 2 :resname tablename :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 6 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 6 :varoattno 1} :resno 3 :resname indexname :ressortgroupref 0 :resorigtbl 1259 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {VAR :varno 10 :varattno 1 :vartype 19 :vartypmod -1 :varlevelsup 0 :varnoold 10 :varoattno 1} :resno 4 :resname tablespace :ressortgroupref 0 :resorigtbl 1213 :resorigcol 1 :resjunk false} {TARGETENTRY :expr {FUNCEXPR :funcid 1643 :funcresulttype 25 :funcretset false :funcformat 0 :args ({VAR :varno 6 :varattno -2 :vartype 26 :va
 rtypmod -1 :varlevelsup 0 :varnoold 6 :varoattno -2})} :resno 5 :resname indexdef :ressortgroupref 0 :resorigtbl 0 :resorigcol 0 :resjunk false}) :returningList <> :groupClause <> :havingQual <> :windowClause <> :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :rowMarks <> :setOperations <> :resultRelations <> :result_partitions <> :result_aosegnos <> :returningLists <> :intoOidInfo.relOid 0 :intoOidInfo.comptypeOid 0 :intoOidInfo.toastOid 0 :intoOidInfo.toastIndexOid 0 :intoOidInfo.toastComptypeOid 0 :intoOidInfo.aosegOid 0 :intoOidInfo.aosegIndexOid 0 :intoOidInfo.aosegComptypeOid 0})"
+10335,_RETURN,10333,-1,1,t,<>,"({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation 0 :into <> :intoOptions <> :intoOnCommit 0 :intoTableSpaceName <> :hasAggs false :hasWindFuncs false :hasSubLinks false :rtable ({RTE :alias {ALIAS :

<TRUNCATED>


[09/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/emitter.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/emitter.py b/tools/bin/ext/yaml/emitter.py
new file mode 100644
index 0000000..d9d1bf8
--- /dev/null
+++ b/tools/bin/ext/yaml/emitter.py
@@ -0,0 +1,1163 @@
+
+# Emitter expects events obeying the following grammar:
+# stream ::= STREAM-START document* STREAM-END
+# document ::= DOCUMENT-START node DOCUMENT-END
+# node ::= SCALAR | sequence | mapping
+# sequence ::= SEQUENCE-START node* SEQUENCE-END
+# mapping ::= MAPPING-START (node node)* MAPPING-END
+
+__all__ = ['Emitter', 'EmitterError']
+
+from error import YAMLError
+from events import *
+
+import re
+
+class EmitterError(YAMLError):
+    pass
+
+class ScalarAnalysis(object):
+    def __init__(self, scalar, empty, multiline,
+            allow_flow_plain, allow_block_plain,
+            allow_single_quoted, allow_double_quoted,
+            allow_block):
+        self.scalar = scalar
+        self.empty = empty
+        self.multiline = multiline
+        self.allow_flow_plain = allow_flow_plain
+        self.allow_block_plain = allow_block_plain
+        self.allow_single_quoted = allow_single_quoted
+        self.allow_double_quoted = allow_double_quoted
+        self.allow_block = allow_block
+
+class Emitter(object):
+
+    DEFAULT_TAG_PREFIXES = {
+        u'!' : u'!',
+        u'tag:yaml.org,2002:' : u'!!',
+    }
+
+    def __init__(self, stream, canonical=None, indent=None, width=None,
+            allow_unicode=None, line_break=None):
+
+        # The stream should have the methods `write` and possibly `flush`.
+        self.stream = stream
+
+        # Encoding can be overriden by STREAM-START.
+        self.encoding = None
+
+        # Emitter is a state machine with a stack of states to handle nested
+        # structures.
+        self.states = []
+        self.state = self.expect_stream_start
+
+        # Current event and the event queue.
+        self.events = []
+        self.event = None
+
+        # The current indentation level and the stack of previous indents.
+        self.indents = []
+        self.indent = None
+
+        # Flow level.
+        self.flow_level = 0
+
+        # Contexts.
+        self.root_context = False
+        self.sequence_context = False
+        self.mapping_context = False
+        self.simple_key_context = False
+
+        # Characteristics of the last emitted character:
+        #  - current position.
+        #  - is it a whitespace?
+        #  - is it an indention character
+        #    (indentation space, '-', '?', or ':')?
+        self.line = 0
+        self.column = 0
+        self.whitespace = True
+        self.indention = True
+
+        # Formatting details.
+        self.canonical = canonical
+        self.allow_unicode = allow_unicode
+        self.best_indent = 2
+        if indent and 1 < indent < 10:
+            self.best_indent = indent
+        self.best_width = 80
+        if width and width > self.best_indent*2:
+            self.best_width = width
+        self.best_line_break = u'\n'
+        if line_break in [u'\r', u'\n', u'\r\n']:
+            self.best_line_break = line_break
+
+        # Tag prefixes.
+        self.tag_prefixes = None
+
+        # Prepared anchor and tag.
+        self.prepared_anchor = None
+        self.prepared_tag = None
+
+        # Scalar analysis and style.
+        self.analysis = None
+        self.style = None
+
+    def emit(self, event):
+        self.events.append(event)
+        while not self.need_more_events():
+            self.event = self.events.pop(0)
+            self.state()
+            self.event = None
+
+    # In some cases, we wait for a few next events before emitting.
+
+    def need_more_events(self):
+        if not self.events:
+            return True
+        event = self.events[0]
+        if isinstance(event, DocumentStartEvent):
+            return self.need_events(1)
+        elif isinstance(event, SequenceStartEvent):
+            return self.need_events(2)
+        elif isinstance(event, MappingStartEvent):
+            return self.need_events(3)
+        else:
+            return False
+
+    def need_events(self, count):
+        level = 0
+        for event in self.events[1:]:
+            if isinstance(event, (DocumentStartEvent, CollectionStartEvent)):
+                level += 1
+            elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)):
+                level -= 1
+            elif isinstance(event, StreamEndEvent):
+                level = -1
+            if level < 0:
+                return False
+        return (len(self.events) < count+1)
+
+    def increase_indent(self, flow=False, indentless=False):
+        self.indents.append(self.indent)
+        if self.indent is None:
+            if flow:
+                self.indent = self.best_indent
+            else:
+                self.indent = 0
+        elif not indentless:
+            self.indent += self.best_indent
+
+    # States.
+
+    # Stream handlers.
+
+    def expect_stream_start(self):
+        if isinstance(self.event, StreamStartEvent):
+            if self.event.encoding:
+                self.encoding = self.event.encoding
+            self.write_stream_start()
+            self.state = self.expect_first_document_start
+        else:
+            raise EmitterError("expected StreamStartEvent, but got %s"
+                    % self.event)
+
+    def expect_nothing(self):
+        raise EmitterError("expected nothing, but got %s" % self.event)
+
+    # Document handlers.
+
+    def expect_first_document_start(self):
+        return self.expect_document_start(first=True)
+
+    def expect_document_start(self, first=False):
+        if isinstance(self.event, DocumentStartEvent):
+            if self.event.version:
+                version_text = self.prepare_version(self.event.version)
+                self.write_version_directive(version_text)
+            self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy()
+            if self.event.tags:
+                handles = self.event.tags.keys()
+                handles.sort()
+                for handle in handles:
+                    prefix = self.event.tags[handle]
+                    self.tag_prefixes[prefix] = handle
+                    handle_text = self.prepare_tag_handle(handle)
+                    prefix_text = self.prepare_tag_prefix(prefix)
+                    self.write_tag_directive(handle_text, prefix_text)
+            implicit = (first and not self.event.explicit and not self.canonical
+                    and not self.event.version and not self.event.tags
+                    and not self.check_empty_document())
+            if not implicit:
+                self.write_indent()
+                self.write_indicator(u'---', True)
+                if self.canonical:
+                    self.write_indent()
+            self.state = self.expect_document_root
+        elif isinstance(self.event, StreamEndEvent):
+            self.write_stream_end()
+            self.state = self.expect_nothing
+        else:
+            raise EmitterError("expected DocumentStartEvent, but got %s"
+                    % self.event)
+
+    def expect_document_end(self):
+        if isinstance(self.event, DocumentEndEvent):
+            self.write_indent()
+            if self.event.explicit:
+                self.write_indicator(u'...', True)
+                self.write_indent()
+            self.flush_stream()
+            self.state = self.expect_document_start
+        else:
+            raise EmitterError("expected DocumentEndEvent, but got %s"
+                    % self.event)
+
+    def expect_document_root(self):
+        self.states.append(self.expect_document_end)
+        self.expect_node(root=True)
+
+    # Node handlers.
+
+    def expect_node(self, root=False, sequence=False, mapping=False,
+            simple_key=False):
+        self.root_context = root
+        self.sequence_context = sequence
+        self.mapping_context = mapping
+        self.simple_key_context = simple_key
+        if isinstance(self.event, AliasEvent):
+            self.expect_alias()
+        elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)):
+            self.process_anchor(u'&')
+            self.process_tag()
+            if isinstance(self.event, ScalarEvent):
+                self.expect_scalar()
+            elif isinstance(self.event, SequenceStartEvent):
+                if self.flow_level or self.canonical or self.event.flow_style   \
+                        or self.check_empty_sequence():
+                    self.expect_flow_sequence()
+                else:
+                    self.expect_block_sequence()
+            elif isinstance(self.event, MappingStartEvent):
+                if self.flow_level or self.canonical or self.event.flow_style   \
+                        or self.check_empty_mapping():
+                    self.expect_flow_mapping()
+                else:
+                    self.expect_block_mapping()
+        else:
+            raise EmitterError("expected NodeEvent, but got %s" % self.event)
+
+    def expect_alias(self):
+        if self.event.anchor is None:
+            raise EmitterError("anchor is not specified for alias")
+        self.process_anchor(u'*')
+        self.state = self.states.pop()
+
+    def expect_scalar(self):
+        self.increase_indent(flow=True)
+        self.process_scalar()
+        self.indent = self.indents.pop()
+        self.state = self.states.pop()
+
+    # Flow sequence handlers.
+
+    def expect_flow_sequence(self):
+        self.write_indicator(u'[', True, whitespace=True)
+        self.flow_level += 1
+        self.increase_indent(flow=True)
+        self.state = self.expect_first_flow_sequence_item
+
+    def expect_first_flow_sequence_item(self):
+        if isinstance(self.event, SequenceEndEvent):
+            self.indent = self.indents.pop()
+            self.flow_level -= 1
+            self.write_indicator(u']', False)
+            self.state = self.states.pop()
+        else:
+            if self.canonical or self.column > self.best_width:
+                self.write_indent()
+            self.states.append(self.expect_flow_sequence_item)
+            self.expect_node(sequence=True)
+
+    def expect_flow_sequence_item(self):
+        if isinstance(self.event, SequenceEndEvent):
+            self.indent = self.indents.pop()
+            self.flow_level -= 1
+            if self.canonical:
+                self.write_indicator(u',', False)
+                self.write_indent()
+            self.write_indicator(u']', False)
+            self.state = self.states.pop()
+        else:
+            self.write_indicator(u',', False)
+            if self.canonical or self.column > self.best_width:
+                self.write_indent()
+            self.states.append(self.expect_flow_sequence_item)
+            self.expect_node(sequence=True)
+
+    # Flow mapping handlers.
+
+    def expect_flow_mapping(self):
+        self.write_indicator(u'{', True, whitespace=True)
+        self.flow_level += 1
+        self.increase_indent(flow=True)
+        self.state = self.expect_first_flow_mapping_key
+
+    def expect_first_flow_mapping_key(self):
+        if isinstance(self.event, MappingEndEvent):
+            self.indent = self.indents.pop()
+            self.flow_level -= 1
+            self.write_indicator(u'}', False)
+            self.state = self.states.pop()
+        else:
+            if self.canonical or self.column > self.best_width:
+                self.write_indent()
+            if not self.canonical and self.check_simple_key():
+                self.states.append(self.expect_flow_mapping_simple_value)
+                self.expect_node(mapping=True, simple_key=True)
+            else:
+                self.write_indicator(u'?', True)
+                self.states.append(self.expect_flow_mapping_value)
+                self.expect_node(mapping=True)
+
+    def expect_flow_mapping_key(self):
+        if isinstance(self.event, MappingEndEvent):
+            self.indent = self.indents.pop()
+            self.flow_level -= 1
+            if self.canonical:
+                self.write_indicator(u',', False)
+                self.write_indent()
+            self.write_indicator(u'}', False)
+            self.state = self.states.pop()
+        else:
+            self.write_indicator(u',', False)
+            if self.canonical or self.column > self.best_width:
+                self.write_indent()
+            if not self.canonical and self.check_simple_key():
+                self.states.append(self.expect_flow_mapping_simple_value)
+                self.expect_node(mapping=True, simple_key=True)
+            else:
+                self.write_indicator(u'?', True)
+                self.states.append(self.expect_flow_mapping_value)
+                self.expect_node(mapping=True)
+
+    def expect_flow_mapping_simple_value(self):
+        self.write_indicator(u':', False)
+        self.states.append(self.expect_flow_mapping_key)
+        self.expect_node(mapping=True)
+
+    def expect_flow_mapping_value(self):
+        if self.canonical or self.column > self.best_width:
+            self.write_indent()
+        self.write_indicator(u':', True)
+        self.states.append(self.expect_flow_mapping_key)
+        self.expect_node(mapping=True)
+
+    # Block sequence handlers.
+
+    def expect_block_sequence(self):
+        indentless = (self.mapping_context and not self.indention)
+        self.increase_indent(flow=False, indentless=indentless)
+        self.state = self.expect_first_block_sequence_item
+
+    def expect_first_block_sequence_item(self):
+        return self.expect_block_sequence_item(first=True)
+
+    def expect_block_sequence_item(self, first=False):
+        if not first and isinstance(self.event, SequenceEndEvent):
+            self.indent = self.indents.pop()
+            self.state = self.states.pop()
+        else:
+            self.write_indent()
+            self.write_indicator(u'-', True, indention=True)
+            self.states.append(self.expect_block_sequence_item)
+            self.expect_node(sequence=True)
+
+    # Block mapping handlers.
+
+    def expect_block_mapping(self):
+        self.increase_indent(flow=False)
+        self.state = self.expect_first_block_mapping_key
+
+    def expect_first_block_mapping_key(self):
+        return self.expect_block_mapping_key(first=True)
+
+    def expect_block_mapping_key(self, first=False):
+        if not first and isinstance(self.event, MappingEndEvent):
+            self.indent = self.indents.pop()
+            self.state = self.states.pop()
+        else:
+            self.write_indent()
+            if self.check_simple_key():
+                self.states.append(self.expect_block_mapping_simple_value)
+                self.expect_node(mapping=True, simple_key=True)
+            else:
+                self.write_indicator(u'?', True, indention=True)
+                self.states.append(self.expect_block_mapping_value)
+                self.expect_node(mapping=True)
+
+    def expect_block_mapping_simple_value(self):
+        self.write_indicator(u':', False)
+        self.states.append(self.expect_block_mapping_key)
+        self.expect_node(mapping=True)
+
+    def expect_block_mapping_value(self):
+        self.write_indent()
+        self.write_indicator(u':', True, indention=True)
+        self.states.append(self.expect_block_mapping_key)
+        self.expect_node(mapping=True)
+
+    # Checkers.
+
+    def check_empty_sequence(self):
+        return (isinstance(self.event, SequenceStartEvent) and self.events
+                and isinstance(self.events[0], SequenceEndEvent))
+
+    def check_empty_mapping(self):
+        return (isinstance(self.event, MappingStartEvent) and self.events
+                and isinstance(self.events[0], MappingEndEvent))
+
+    def check_empty_document(self):
+        if not isinstance(self.event, DocumentStartEvent) or not self.events:
+            return False
+        event = self.events[0]
+        return (isinstance(event, ScalarEvent) and event.anchor is None
+                and event.tag is None and event.implicit and event.value == u'')
+
+    def check_simple_key(self):
+        length = 0
+        if isinstance(self.event, NodeEvent) and self.event.anchor is not None:
+            if self.prepared_anchor is None:
+                self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+            length += len(self.prepared_anchor)
+        if isinstance(self.event, (ScalarEvent, CollectionStartEvent))  \
+                and self.event.tag is not None:
+            if self.prepared_tag is None:
+                self.prepared_tag = self.prepare_tag(self.event.tag)
+            length += len(self.prepared_tag)
+        if isinstance(self.event, ScalarEvent):
+            if self.analysis is None:
+                self.analysis = self.analyze_scalar(self.event.value)
+            length += len(self.analysis.scalar)
+        return (length < 128 and (isinstance(self.event, AliasEvent)
+            or (isinstance(self.event, ScalarEvent)
+                    and not self.analysis.empty and not self.analysis.multiline)
+            or self.check_empty_sequence() or self.check_empty_mapping()))
+
+    # Anchor, Tag, and Scalar processors.
+
+    def process_anchor(self, indicator):
+        if self.event.anchor is None:
+            self.prepared_anchor = None
+            return
+        if self.prepared_anchor is None:
+            self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+        if self.prepared_anchor:
+            self.write_indicator(indicator+self.prepared_anchor, True)
+        self.prepared_anchor = None
+
+    def process_tag(self):
+        tag = self.event.tag
+        if isinstance(self.event, ScalarEvent):
+            if self.style is None:
+                self.style = self.choose_scalar_style()
+            if ((not self.canonical or tag is None) and
+                ((self.style == '' and self.event.implicit[0])
+                        or (self.style != '' and self.event.implicit[1]))):
+                self.prepared_tag = None
+                return
+            if self.event.implicit[0] and tag is None:
+                tag = u'!'
+                self.prepared_tag = None
+        else:
+            if (not self.canonical or tag is None) and self.event.implicit:
+                self.prepared_tag = None
+                return
+        if tag is None:
+            raise EmitterError("tag is not specified")
+        if self.prepared_tag is None:
+            self.prepared_tag = self.prepare_tag(tag)
+        if self.prepared_tag:
+            self.write_indicator(self.prepared_tag, True)
+        self.prepared_tag = None
+
+    def choose_scalar_style(self):
+        if self.analysis is None:
+            self.analysis = self.analyze_scalar(self.event.value)
+        if self.event.style == '"' or self.canonical:
+            return '"'
+        if not self.event.style and self.event.implicit[0]:
+            if (not (self.simple_key_context and
+                    (self.analysis.empty or self.analysis.multiline))
+                and (self.flow_level and self.analysis.allow_flow_plain
+                    or (not self.flow_level and self.analysis.allow_block_plain))):
+                return ''
+        if self.event.style and self.event.style in '|>':
+            if (not self.flow_level and not self.simple_key_context
+                    and self.analysis.allow_block):
+                return self.event.style
+        if not self.event.style or self.event.style == '\'':
+            if (self.analysis.allow_single_quoted and
+                    not (self.simple_key_context and self.analysis.multiline)):
+                return '\''
+        return '"'
+
+    def process_scalar(self):
+        if self.analysis is None:
+            self.analysis = self.analyze_scalar(self.event.value)
+        if self.style is None:
+            self.style = self.choose_scalar_style()
+        split = (not self.simple_key_context)
+        #if self.analysis.multiline and split    \
+        #        and (not self.style or self.style in '\'\"'):
+        #    self.write_indent()
+        if self.style == '"':
+            self.write_double_quoted(self.analysis.scalar, split)
+        elif self.style == '\'':
+            self.write_single_quoted(self.analysis.scalar, split)
+        elif self.style == '>':
+            self.write_folded(self.analysis.scalar)
+        elif self.style == '|':
+            self.write_literal(self.analysis.scalar)
+        else:
+            self.write_plain(self.analysis.scalar, split)
+        self.analysis = None
+        self.style = None
+
+    # Analyzers.
+
+    def prepare_version(self, version):
+        major, minor = version
+        if major != 1:
+            raise EmitterError("unsupported YAML version: %d.%d" % (major, minor))
+        return u'%d.%d' % (major, minor)
+
+    def prepare_tag_handle(self, handle):
+        if not handle:
+            raise EmitterError("tag handle must not be empty")
+        if handle[0] != u'!' or handle[-1] != u'!':
+            raise EmitterError("tag handle must start and end with '!': %r"
+                    % (handle.encode('utf-8')))
+        for ch in handle[1:-1]:
+            if not (u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'    \
+                    or ch in u'-_'):
+                raise EmitterError("invalid character %r in the tag handle: %r"
+                        % (ch.encode('utf-8'), handle.encode('utf-8')))
+        return handle
+
+    def prepare_tag_prefix(self, prefix):
+        if not prefix:
+            raise EmitterError("tag prefix must not be empty")
+        chunks = []
+        start = end = 0
+        if prefix[0] == u'!':
+            end = 1
+        while end < len(prefix):
+            ch = prefix[end]
+            if u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                    or ch in u'-;/?!:@&=+$,_.~*\'()[]':
+                end += 1
+            else:
+                if start < end:
+                    chunks.append(prefix[start:end])
+                start = end = end+1
+                data = ch.encode('utf-8')
+                for ch in data:
+                    chunks.append(u'%%%02X' % ord(ch))
+        if start < end:
+            chunks.append(prefix[start:end])
+        return u''.join(chunks)
+
+    def prepare_tag(self, tag):
+        if not tag:
+            raise EmitterError("tag must not be empty")
+        if tag == u'!':
+            return tag
+        handle = None
+        suffix = tag
+        for prefix in self.tag_prefixes:
+            if tag.startswith(prefix)   \
+                    and (prefix == u'!' or len(prefix) < len(tag)):
+                handle = self.tag_prefixes[prefix]
+                suffix = tag[len(prefix):]
+        chunks = []
+        start = end = 0
+        while end < len(suffix):
+            ch = suffix[end]
+            if u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                    or ch in u'-;/?:@&=+$,_.~*\'()[]'   \
+                    or (ch == u'!' and handle != u'!'):
+                end += 1
+            else:
+                if start < end:
+                    chunks.append(suffix[start:end])
+                start = end = end+1
+                data = ch.encode('utf-8')
+                for ch in data:
+                    chunks.append(u'%%%02X' % ord(ch))
+        if start < end:
+            chunks.append(suffix[start:end])
+        suffix_text = u''.join(chunks)
+        if handle:
+            return u'%s%s' % (handle, suffix_text)
+        else:
+            return u'!<%s>' % suffix_text
+
+    def prepare_anchor(self, anchor):
+        if not anchor:
+            raise EmitterError("anchor must not be empty")
+        for ch in anchor:
+            if not (u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'    \
+                    or ch in u'-_'):
+                raise EmitterError("invalid character %r in the anchor: %r"
+                        % (ch.encode('utf-8'), anchor.encode('utf-8')))
+        return anchor
+
+    def analyze_scalar(self, scalar):
+
+        # Empty scalar is a special case.
+        if not scalar:
+            return ScalarAnalysis(scalar=scalar, empty=True, multiline=False,
+                    allow_flow_plain=False, allow_block_plain=True,
+                    allow_single_quoted=True, allow_double_quoted=True,
+                    allow_block=False)
+
+        # Indicators and special characters.
+        block_indicators = False
+        flow_indicators = False
+        line_breaks = False
+        special_characters = False
+
+        # Whitespaces.
+        inline_spaces = False          # non-space space+ non-space
+        inline_breaks = False          # non-space break+ non-space
+        leading_spaces = False         # ^ space+ (non-space | $)
+        leading_breaks = False         # ^ break+ (non-space | $)
+        trailing_spaces = False        # (^ | non-space) space+ $
+        trailing_breaks = False        # (^ | non-space) break+ $
+        inline_breaks_spaces = False   # non-space break+ space+ non-space
+        mixed_breaks_spaces = False    # anything else
+
+        # Check document indicators.
+        if scalar.startswith(u'---') or scalar.startswith(u'...'):
+            block_indicators = True
+            flow_indicators = True
+
+        # First character or preceded by a whitespace.
+        preceeded_by_space = True
+
+        # Last character or followed by a whitespace.
+        followed_by_space = (len(scalar) == 1 or
+                scalar[1] in u'\0 \t\r\n\x85\u2028\u2029')
+
+        # The current series of whitespaces contain plain spaces.
+        spaces = False
+
+        # The current series of whitespaces contain line breaks.
+        breaks = False
+
+        # The current series of whitespaces contain a space followed by a
+        # break.
+        mixed = False
+
+        # The current series of whitespaces start at the beginning of the
+        # scalar.
+        leading = False
+
+        index = 0
+        while index < len(scalar):
+            ch = scalar[index]
+
+            # Check for indicators.
+
+            if index == 0:
+                # Leading indicators are special characters.
+                if ch in u'#,[]{}&*!|>\'\"%@`': 
+                    flow_indicators = True
+                    block_indicators = True
+                if ch in u'?:':
+                    flow_indicators = True
+                    if followed_by_space:
+                        block_indicators = True
+                if ch == u'-' and followed_by_space:
+                    flow_indicators = True
+                    block_indicators = True
+            else:
+                # Some indicators cannot appear within a scalar as well.
+                if ch in u',?[]{}':
+                    flow_indicators = True
+                if ch == u':':
+                    flow_indicators = True
+                    if followed_by_space:
+                        block_indicators = True
+                if ch == u'#' and preceeded_by_space:
+                    flow_indicators = True
+                    block_indicators = True
+
+            # Check for line breaks, special, and unicode characters.
+
+            if ch in u'\n\x85\u2028\u2029':
+                line_breaks = True
+            if not (ch == u'\n' or u'\x20' <= ch <= u'\x7E'):
+                if (ch == u'\x85' or u'\xA0' <= ch <= u'\uD7FF'
+                        or u'\uE000' <= ch <= u'\uFFFD') and ch != u'\uFEFF':
+                    unicode_characters = True
+                    if not self.allow_unicode:
+                        special_characters = True
+                else:
+                    special_characters = True
+
+            # Spaces, line breaks, and how they are mixed. State machine.
+
+            # Start or continue series of whitespaces.
+            if ch in u' \n\x85\u2028\u2029':
+                if spaces and breaks:
+                    if ch != u' ':      # break+ (space+ break+)    => mixed
+                        mixed = True
+                elif spaces:
+                    if ch != u' ':      # (space+ break+)   => mixed
+                        breaks = True
+                        mixed = True
+                elif breaks:
+                    if ch == u' ':      # break+ space+
+                        spaces = True
+                else:
+                    leading = (index == 0)
+                    if ch == u' ':      # space+
+                        spaces = True
+                    else:               # break+
+                        breaks = True
+
+            # Series of whitespaces ended with a non-space.
+            elif spaces or breaks:
+                if leading:
+                    if spaces and breaks:
+                        mixed_breaks_spaces = True
+                    elif spaces:
+                        leading_spaces = True
+                    elif breaks:
+                        leading_breaks = True
+                else:
+                    if mixed:
+                        mixed_breaks_spaces = True
+                    elif spaces and breaks:
+                        inline_breaks_spaces = True
+                    elif spaces:
+                        inline_spaces = True
+                    elif breaks:
+                        inline_breaks = True
+                spaces = breaks = mixed = leading = False
+
+            # Series of whitespaces reach the end.
+            if (spaces or breaks) and (index == len(scalar)-1):
+                if spaces and breaks:
+                    mixed_breaks_spaces = True
+                elif spaces:
+                    trailing_spaces = True
+                    if leading:
+                        leading_spaces = True
+                elif breaks:
+                    trailing_breaks = True
+                    if leading:
+                        leading_breaks = True
+                spaces = breaks = mixed = leading = False
+
+            # Prepare for the next character.
+            index += 1
+            preceeded_by_space = (ch in u'\0 \t\r\n\x85\u2028\u2029')
+            followed_by_space = (index+1 >= len(scalar) or
+                    scalar[index+1] in u'\0 \t\r\n\x85\u2028\u2029')
+
+        # Let's decide what styles are allowed.
+        allow_flow_plain = True
+        allow_block_plain = True
+        allow_single_quoted = True
+        allow_double_quoted = True
+        allow_block = True
+
+        # Leading and trailing whitespace are bad for plain scalars. We also
+        # do not want to mess with leading whitespaces for block scalars.
+        if leading_spaces or leading_breaks or trailing_spaces:
+            allow_flow_plain = allow_block_plain = allow_block = False
+
+        # Trailing breaks are fine for block scalars, but unacceptable for
+        # plain scalars.
+        if trailing_breaks:
+            allow_flow_plain = allow_block_plain = False
+
+        # The combination of (space+ break+) is only acceptable for block
+        # scalars.
+        if inline_breaks_spaces:
+            allow_flow_plain = allow_block_plain = allow_single_quoted = False
+
+        # Mixed spaces and breaks, as well as special character are only
+        # allowed for double quoted scalars.
+        if mixed_breaks_spaces or special_characters:
+            allow_flow_plain = allow_block_plain =  \
+            allow_single_quoted = allow_block = False
+
+        # We don't emit multiline plain scalars.
+        if line_breaks:
+            allow_flow_plain = allow_block_plain = False
+
+        # Flow indicators are forbidden for flow plain scalars.
+        if flow_indicators:
+            allow_flow_plain = False
+
+        # Block indicators are forbidden for block plain scalars.
+        if block_indicators:
+            allow_block_plain = False
+
+        return ScalarAnalysis(scalar=scalar,
+                empty=False, multiline=line_breaks,
+                allow_flow_plain=allow_flow_plain,
+                allow_block_plain=allow_block_plain,
+                allow_single_quoted=allow_single_quoted,
+                allow_double_quoted=allow_double_quoted,
+                allow_block=allow_block)
+
+    # Writers.
+
+    def flush_stream(self):
+        if hasattr(self.stream, 'flush'):
+            self.stream.flush()
+
+    def write_stream_start(self):
+        # Write BOM if needed.
+        if self.encoding and self.encoding.startswith('utf-16'):
+            self.stream.write(u'\xFF\xFE'.encode(self.encoding))
+
+    def write_stream_end(self):
+        self.flush_stream()
+
+    def write_indicator(self, indicator, need_whitespace,
+            whitespace=False, indention=False):
+        if self.whitespace or not need_whitespace:
+            data = indicator
+        else:
+            data = u' '+indicator
+        self.whitespace = whitespace
+        self.indention = self.indention and indention
+        self.column += len(data)
+        if self.encoding:
+            data = data.encode(self.encoding)
+        self.stream.write(data)
+
+    def write_indent(self):
+        indent = self.indent or 0
+        if not self.indention or self.column > indent   \
+                or (self.column == indent and not self.whitespace):
+            self.write_line_break()
+        if self.column < indent:
+            self.whitespace = True
+            data = u' '*(indent-self.column)
+            self.column = indent
+            if self.encoding:
+                data = data.encode(self.encoding)
+            self.stream.write(data)
+
+    def write_line_break(self, data=None):
+        if data is None:
+            data = self.best_line_break
+        self.whitespace = True
+        self.indention = True
+        self.line += 1
+        self.column = 0
+        if self.encoding:
+            data = data.encode(self.encoding)
+        self.stream.write(data)
+
+    def write_version_directive(self, version_text):
+        data = u'%%YAML %s' % version_text
+        if self.encoding:
+            data = data.encode(self.encoding)
+        self.stream.write(data)
+        self.write_line_break()
+
+    def write_tag_directive(self, handle_text, prefix_text):
+        data = u'%%TAG %s %s' % (handle_text, prefix_text)
+        if self.encoding:
+            data = data.encode(self.encoding)
+        self.stream.write(data)
+        self.write_line_break()
+
+    # Scalar streams.
+
+    def write_single_quoted(self, text, split=True):
+        self.write_indicator(u'\'', True)
+        spaces = False
+        breaks = False
+        start = end = 0
+        while end <= len(text):
+            ch = None
+            if end < len(text):
+                ch = text[end]
+            if spaces:
+                if ch is None or ch != u' ':
+                    if start+1 == end and self.column > self.best_width and split   \
+                            and start != 0 and end != len(text):
+                        self.write_indent()
+                    else:
+                        data = text[start:end]
+                        self.column += len(data)
+                        if self.encoding:
+                            data = data.encode(self.encoding)
+                        self.stream.write(data)
+                    start = end
+            elif breaks:
+                if ch is None or ch not in u'\n\x85\u2028\u2029':
+                    if text[start] == u'\n':
+                        self.write_line_break()
+                    for br in text[start:end]:
+                        if br == u'\n':
+                            self.write_line_break()
+                        else:
+                            self.write_line_break(br)
+                    self.write_indent()
+                    start = end
+            else:
+                if ch is None or ch in u' \n\x85\u2028\u2029' or ch == u'\'':
+                    if start < end:
+                        data = text[start:end]
+                        self.column += len(data)
+                        if self.encoding:
+                            data = data.encode(self.encoding)
+                        self.stream.write(data)
+                        start = end
+            if ch == u'\'':
+                data = u'\'\''
+                self.column += 2
+                if self.encoding:
+                    data = data.encode(self.encoding)
+                self.stream.write(data)
+                start = end + 1
+            if ch is not None:
+                spaces = (ch == u' ')
+                breaks = (ch in u'\n\x85\u2028\u2029')
+            end += 1
+        self.write_indicator(u'\'', False)
+
+    ESCAPE_REPLACEMENTS = {
+        u'\0':      u'0',
+        u'\x07':    u'a',
+        u'\x08':    u'b',
+        u'\x09':    u't',
+        u'\x0A':    u'n',
+        u'\x0B':    u'v',
+        u'\x0C':    u'f',
+        u'\x0D':    u'r',
+        u'\x1B':    u'e',
+        u'\"':      u'\"',
+        u'\\':      u'\\',
+        u'\x85':    u'N',
+        u'\xA0':    u'_',
+        u'\u2028':  u'L',
+        u'\u2029':  u'P',
+    }
+
+    def write_double_quoted(self, text, split=True):
+        self.write_indicator(u'"', True)
+        start = end = 0
+        while end <= len(text):
+            ch = None
+            if end < len(text):
+                ch = text[end]
+            if ch is None or ch in u'"\\\x85\u2028\u2029\uFEFF' \
+                    or not (u'\x20' <= ch <= u'\x7E'
+                        or (self.allow_unicode
+                            and (u'\xA0' <= ch <= u'\uD7FF'
+                                or u'\uE000' <= ch <= u'\uFFFD'))):
+                if start < end:
+                    data = text[start:end]
+                    self.column += len(data)
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+                    start = end
+                if ch is not None:
+                    if ch in self.ESCAPE_REPLACEMENTS:
+                        data = u'\\'+self.ESCAPE_REPLACEMENTS[ch]
+                    elif ch <= u'\xFF':
+                        data = u'\\x%02X' % ord(ch)
+                    elif ch <= u'\uFFFF':
+                        data = u'\\u%04X' % ord(ch)
+                    else:
+                        data = u'\\U%08X' % ord(ch)
+                    self.column += len(data)
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+                    start = end+1
+            if 0 < end < len(text)-1 and (ch == u' ' or start >= end)   \
+                    and self.column+(end-start) > self.best_width and split:
+                data = text[start:end]+u'\\'
+                if start < end:
+                    start = end
+                self.column += len(data)
+                if self.encoding:
+                    data = data.encode(self.encoding)
+                self.stream.write(data)
+                self.write_indent()
+                self.whitespace = False
+                self.indention = False
+                if text[start] == u' ':
+                    data = u'\\'
+                    self.column += len(data)
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+            end += 1
+        self.write_indicator(u'"', False)
+
+    def determine_chomp(self, text):
+        tail = text[-2:]
+        while len(tail) < 2:
+            tail = u' '+tail
+        if tail[-1] in u'\n\x85\u2028\u2029':
+            if tail[-2] in u'\n\x85\u2028\u2029':
+                return u'+'
+            else:
+                return u''
+        else:
+            return u'-'
+
+    def write_folded(self, text):
+        chomp = self.determine_chomp(text)
+        self.write_indicator(u'>'+chomp, True)
+        self.write_indent()
+        leading_space = False
+        spaces = False
+        breaks = False
+        start = end = 0
+        while end <= len(text):
+            ch = None
+            if end < len(text):
+                ch = text[end]
+            if breaks:
+                if ch is None or ch not in u'\n\x85\u2028\u2029':
+                    if not leading_space and ch is not None and ch != u' '  \
+                            and text[start] == u'\n':
+                        self.write_line_break()
+                    leading_space = (ch == u' ')
+                    for br in text[start:end]:
+                        if br == u'\n':
+                            self.write_line_break()
+                        else:
+                            self.write_line_break(br)
+                    if ch is not None:
+                        self.write_indent()
+                    start = end
+            elif spaces:
+                if ch != u' ':
+                    if start+1 == end and self.column > self.best_width:
+                        self.write_indent()
+                    else:
+                        data = text[start:end]
+                        self.column += len(data)
+                        if self.encoding:
+                            data = data.encode(self.encoding)
+                        self.stream.write(data)
+                    start = end
+            else:
+                if ch is None or ch in u' \n\x85\u2028\u2029':
+                    data = text[start:end]
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+                    if ch is None:
+                        self.write_line_break()
+                    start = end
+            if ch is not None:
+                breaks = (ch in u'\n\x85\u2028\u2029')
+                spaces = (ch == u' ')
+            end += 1
+
+    def write_literal(self, text):
+        chomp = self.determine_chomp(text)
+        self.write_indicator(u'|'+chomp, True)
+        self.write_indent()
+        breaks = False
+        start = end = 0
+        while end <= len(text):
+            ch = None
+            if end < len(text):
+                ch = text[end]
+            if breaks:
+                if ch is None or ch not in u'\n\x85\u2028\u2029':
+                    for br in text[start:end]:
+                        if br == u'\n':
+                            self.write_line_break()
+                        else:
+                            self.write_line_break(br)
+                    if ch is not None:
+                        self.write_indent()
+                    start = end
+            else:
+                if ch is None or ch in u'\n\x85\u2028\u2029':
+                    data = text[start:end]
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+                    if ch is None:
+                        self.write_line_break()
+                    start = end
+            if ch is not None:
+                breaks = (ch in u'\n\x85\u2028\u2029')
+            end += 1
+
+    def write_plain(self, text, split=True):
+        if not text:
+            return
+        if not self.whitespace:
+            data = u' '
+            self.column += len(data)
+            if self.encoding:
+                data = data.encode(self.encoding)
+            self.stream.write(data)
+        self.writespace = False
+        self.indention = False
+        spaces = False
+        breaks = False
+        start = end = 0
+        while end <= len(text):
+            ch = None
+            if end < len(text):
+                ch = text[end]
+            if spaces:
+                if ch != u' ':
+                    if start+1 == end and self.column > self.best_width and split:
+                        self.write_indent()
+                        self.writespace = False
+                        self.indention = False
+                    else:
+                        data = text[start:end]
+                        self.column += len(data)
+                        if self.encoding:
+                            data = data.encode(self.encoding)
+                        self.stream.write(data)
+                    start = end
+            elif breaks:
+                if ch not in u'\n\x85\u2028\u2029':
+                    if text[start] == u'\n':
+                        self.write_line_break()
+                    for br in text[start:end]:
+                        if br == u'\n':
+                            self.write_line_break()
+                        else:
+                            self.write_line_break(br)
+                    self.write_indent()
+                    self.whitespace = False
+                    self.indention = False
+                    start = end
+            else:
+                if ch is None or ch in u' \n\x85\u2028\u2029':
+                    data = text[start:end]
+                    self.column += len(data)
+                    if self.encoding:
+                        data = data.encode(self.encoding)
+                    self.stream.write(data)
+                    start = end
+            if ch is not None:
+                spaces = (ch == u' ')
+                breaks = (ch in u'\n\x85\u2028\u2029')
+            end += 1
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/emitter.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/emitter.pyc b/tools/bin/ext/yaml/emitter.pyc
new file mode 100644
index 0000000..9dfa1b1
Binary files /dev/null and b/tools/bin/ext/yaml/emitter.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/error.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/error.py b/tools/bin/ext/yaml/error.py
new file mode 100644
index 0000000..577686d
--- /dev/null
+++ b/tools/bin/ext/yaml/error.py
@@ -0,0 +1,75 @@
+
+__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError']
+
+class Mark(object):
+
+    def __init__(self, name, index, line, column, buffer, pointer):
+        self.name = name
+        self.index = index
+        self.line = line
+        self.column = column
+        self.buffer = buffer
+        self.pointer = pointer
+
+    def get_snippet(self, indent=4, max_length=75):
+        if self.buffer is None:
+            return None
+        head = ''
+        start = self.pointer
+        while start > 0 and self.buffer[start-1] not in u'\0\r\n\x85\u2028\u2029':
+            start -= 1
+            if self.pointer-start > max_length/2-1:
+                head = ' ... '
+                start += 5
+                break
+        tail = ''
+        end = self.pointer
+        while end < len(self.buffer) and self.buffer[end] not in u'\0\r\n\x85\u2028\u2029':
+            end += 1
+            if end-self.pointer > max_length/2-1:
+                tail = ' ... '
+                end -= 5
+                break
+        snippet = self.buffer[start:end].encode('utf-8')
+        return ' '*indent + head + snippet + tail + '\n'  \
+                + ' '*(indent+self.pointer-start+len(head)) + '^'
+
+    def __str__(self):
+        snippet = self.get_snippet()
+        where = "  in \"%s\", line %d, column %d"   \
+                % (self.name, self.line+1, self.column+1)
+        if snippet is not None:
+            where += ":\n"+snippet
+        return where
+
+class YAMLError(Exception):
+    pass
+
+class MarkedYAMLError(YAMLError):
+
+    def __init__(self, context=None, context_mark=None,
+            problem=None, problem_mark=None, note=None):
+        self.context = context
+        self.context_mark = context_mark
+        self.problem = problem
+        self.problem_mark = problem_mark
+        self.note = note
+
+    def __str__(self):
+        lines = []
+        if self.context is not None:
+            lines.append(self.context)
+        if self.context_mark is not None  \
+            and (self.problem is None or self.problem_mark is None
+                    or self.context_mark.name != self.problem_mark.name
+                    or self.context_mark.line != self.problem_mark.line
+                    or self.context_mark.column != self.problem_mark.column):
+            lines.append(str(self.context_mark))
+        if self.problem is not None:
+            lines.append(self.problem)
+        if self.problem_mark is not None:
+            lines.append(str(self.problem_mark))
+        if self.note is not None:
+            lines.append(self.note)
+        return '\n'.join(lines)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/error.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/error.pyc b/tools/bin/ext/yaml/error.pyc
new file mode 100644
index 0000000..ead2e7d
Binary files /dev/null and b/tools/bin/ext/yaml/error.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/events.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/events.py b/tools/bin/ext/yaml/events.py
new file mode 100644
index 0000000..f79ad38
--- /dev/null
+++ b/tools/bin/ext/yaml/events.py
@@ -0,0 +1,86 @@
+
+# Abstract classes.
+
+class Event(object):
+    def __init__(self, start_mark=None, end_mark=None):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+    def __repr__(self):
+        attributes = [key for key in ['anchor', 'tag', 'implicit', 'value']
+                if hasattr(self, key)]
+        arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+                for key in attributes])
+        return '%s(%s)' % (self.__class__.__name__, arguments)
+
+class NodeEvent(Event):
+    def __init__(self, anchor, start_mark=None, end_mark=None):
+        self.anchor = anchor
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+
+class CollectionStartEvent(NodeEvent):
+    def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None,
+            flow_style=None):
+        self.anchor = anchor
+        self.tag = tag
+        self.implicit = implicit
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.flow_style = flow_style
+
+class CollectionEndEvent(Event):
+    pass
+
+# Implementations.
+
+class StreamStartEvent(Event):
+    def __init__(self, start_mark=None, end_mark=None, encoding=None):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.encoding = encoding
+
+class StreamEndEvent(Event):
+    pass
+
+class DocumentStartEvent(Event):
+    def __init__(self, start_mark=None, end_mark=None,
+            explicit=None, version=None, tags=None):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.explicit = explicit
+        self.version = version
+        self.tags = tags
+
+class DocumentEndEvent(Event):
+    def __init__(self, start_mark=None, end_mark=None,
+            explicit=None):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.explicit = explicit
+
+class AliasEvent(NodeEvent):
+    pass
+
+class ScalarEvent(NodeEvent):
+    def __init__(self, anchor, tag, implicit, value,
+            start_mark=None, end_mark=None, style=None):
+        self.anchor = anchor
+        self.tag = tag
+        self.implicit = implicit
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.style = style
+
+class SequenceStartEvent(CollectionStartEvent):
+    pass
+
+class SequenceEndEvent(CollectionEndEvent):
+    pass
+
+class MappingStartEvent(CollectionStartEvent):
+    pass
+
+class MappingEndEvent(CollectionEndEvent):
+    pass
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/events.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/events.pyc b/tools/bin/ext/yaml/events.pyc
new file mode 100644
index 0000000..9fd228f
Binary files /dev/null and b/tools/bin/ext/yaml/events.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/loader.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/loader.py b/tools/bin/ext/yaml/loader.py
new file mode 100644
index 0000000..293ff46
--- /dev/null
+++ b/tools/bin/ext/yaml/loader.py
@@ -0,0 +1,40 @@
+
+__all__ = ['BaseLoader', 'SafeLoader', 'Loader']
+
+from reader import *
+from scanner import *
+from parser import *
+from composer import *
+from constructor import *
+from resolver import *
+
+class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
+
+    def __init__(self, stream):
+        Reader.__init__(self, stream)
+        Scanner.__init__(self)
+        Parser.__init__(self)
+        Composer.__init__(self)
+        BaseConstructor.__init__(self)
+        BaseResolver.__init__(self)
+
+class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
+
+    def __init__(self, stream):
+        Reader.__init__(self, stream)
+        Scanner.__init__(self)
+        Parser.__init__(self)
+        Composer.__init__(self)
+        SafeConstructor.__init__(self)
+        Resolver.__init__(self)
+
+class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
+
+    def __init__(self, stream):
+        Reader.__init__(self, stream)
+        Scanner.__init__(self)
+        Parser.__init__(self)
+        Composer.__init__(self)
+        Constructor.__init__(self)
+        Resolver.__init__(self)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/loader.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/loader.pyc b/tools/bin/ext/yaml/loader.pyc
new file mode 100644
index 0000000..cbd7503
Binary files /dev/null and b/tools/bin/ext/yaml/loader.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/nodes.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/nodes.py b/tools/bin/ext/yaml/nodes.py
new file mode 100644
index 0000000..c4f070c
--- /dev/null
+++ b/tools/bin/ext/yaml/nodes.py
@@ -0,0 +1,49 @@
+
+class Node(object):
+    def __init__(self, tag, value, start_mark, end_mark):
+        self.tag = tag
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+    def __repr__(self):
+        value = self.value
+        #if isinstance(value, list):
+        #    if len(value) == 0:
+        #        value = '<empty>'
+        #    elif len(value) == 1:
+        #        value = '<1 item>'
+        #    else:
+        #        value = '<%d items>' % len(value)
+        #else:
+        #    if len(value) > 75:
+        #        value = repr(value[:70]+u' ... ')
+        #    else:
+        #        value = repr(value)
+        value = repr(value)
+        return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
+
+class ScalarNode(Node):
+    id = 'scalar'
+    def __init__(self, tag, value,
+            start_mark=None, end_mark=None, style=None):
+        self.tag = tag
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.style = style
+
+class CollectionNode(Node):
+    def __init__(self, tag, value,
+            start_mark=None, end_mark=None, flow_style=None):
+        self.tag = tag
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.flow_style = flow_style
+
+class SequenceNode(CollectionNode):
+    id = 'sequence'
+
+class MappingNode(CollectionNode):
+    id = 'mapping'
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/nodes.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/nodes.pyc b/tools/bin/ext/yaml/nodes.pyc
new file mode 100644
index 0000000..337f71a
Binary files /dev/null and b/tools/bin/ext/yaml/nodes.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/parser.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/parser.py b/tools/bin/ext/yaml/parser.py
new file mode 100644
index 0000000..a46bb9e
--- /dev/null
+++ b/tools/bin/ext/yaml/parser.py
@@ -0,0 +1,586 @@
+
+# The following YAML grammar is LL(1) and is parsed by a recursive descent
+# parser.
+#
+# stream            ::= STREAM-START implicit_document? explicit_document* STREAM-END
+# implicit_document ::= block_node DOCUMENT-END*
+# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+# block_node_or_indentless_sequence ::=
+#                       ALIAS
+#                       | properties (block_content | indentless_block_sequence)?
+#                       | block_content
+#                       | indentless_block_sequence
+# block_node        ::= ALIAS
+#                       | properties block_content?
+#                       | block_content
+# flow_node         ::= ALIAS
+#                       | properties flow_content?
+#                       | flow_content
+# properties        ::= TAG ANCHOR? | ANCHOR TAG?
+# block_content     ::= block_collection | flow_collection | SCALAR
+# flow_content      ::= flow_collection | SCALAR
+# block_collection  ::= block_sequence | block_mapping
+# flow_collection   ::= flow_sequence | flow_mapping
+# block_sequence    ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+# indentless_sequence   ::= (BLOCK-ENTRY block_node?)+
+# block_mapping     ::= BLOCK-MAPPING_START
+#                       ((KEY block_node_or_indentless_sequence?)?
+#                       (VALUE block_node_or_indentless_sequence?)?)*
+#                       BLOCK-END
+# flow_sequence     ::= FLOW-SEQUENCE-START
+#                       (flow_sequence_entry FLOW-ENTRY)*
+#                       flow_sequence_entry?
+#                       FLOW-SEQUENCE-END
+# flow_sequence_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+# flow_mapping      ::= FLOW-MAPPING-START
+#                       (flow_mapping_entry FLOW-ENTRY)*
+#                       flow_mapping_entry?
+#                       FLOW-MAPPING-END
+# flow_mapping_entry    ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+#
+# FIRST sets:
+#
+# stream: { STREAM-START }
+# explicit_document: { DIRECTIVE DOCUMENT-START }
+# implicit_document: FIRST(block_node)
+# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_sequence: { BLOCK-SEQUENCE-START }
+# block_mapping: { BLOCK-MAPPING-START }
+# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY }
+# indentless_sequence: { ENTRY }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_sequence: { FLOW-SEQUENCE-START }
+# flow_mapping: { FLOW-MAPPING-START }
+# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+
+__all__ = ['Parser', 'ParserError']
+
+from error import MarkedYAMLError
+from tokens import *
+from events import *
+from scanner import *
+
+class ParserError(MarkedYAMLError):
+    pass
+
+class Parser(object):
+    # Since writing a recursive-descendant parser is a straightforward task, we
+    # do not give many comments here.
+    # Note that we use Python generators. If you rewrite the parser in another
+    # language, you may replace all 'yield'-s with event handler calls.
+
+    DEFAULT_TAGS = {
+        u'!':   u'!',
+        u'!!':  u'tag:yaml.org,2002:',
+    }
+
+    def __init__(self):
+        self.current_event = None
+        self.yaml_version = None
+        self.tag_handles = {}
+        self.states = []
+        self.marks = []
+        self.state = self.parse_stream_start
+
+    def check_event(self, *choices):
+        # Check the type of the next event.
+        if self.current_event is None:
+            if self.state:
+                self.current_event = self.state()
+        if self.current_event is not None:
+            if not choices:
+                return True
+            for choice in choices:
+                if isinstance(self.current_event, choice):
+                    return True
+        return False
+
+    def peek_event(self):
+        # Get the next event.
+        if self.current_event is None:
+            if self.state:
+                self.current_event = self.state()
+        return self.current_event
+
+    def get_event(self):
+        # Get the next event and proceed further.
+        if self.current_event is None:
+            if self.state:
+                self.current_event = self.state()
+        value = self.current_event
+        self.current_event = None
+        return value
+
+    # stream    ::= STREAM-START implicit_document? explicit_document* STREAM-END
+    # implicit_document ::= block_node DOCUMENT-END*
+    # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+
+    def parse_stream_start(self):
+
+        # Parse the stream start.
+        token = self.get_token()
+        event = StreamStartEvent(token.start_mark, token.end_mark,
+                encoding=token.encoding)
+
+        # Prepare the next state.
+        self.state = self.parse_implicit_document_start
+
+        return event
+
+    def parse_implicit_document_start(self):
+
+        # Parse an implicit document.
+        if not self.check_token(DirectiveToken, DocumentStartToken,
+                StreamEndToken):
+            self.tag_handles = self.DEFAULT_TAGS
+            token = self.peek_token()
+            start_mark = end_mark = token.start_mark
+            event = DocumentStartEvent(start_mark, end_mark,
+                    explicit=False)
+
+            # Prepare the next state.
+            self.states.append(self.parse_document_end)
+            self.state = self.parse_block_node
+
+            return event
+
+        else:
+            return self.parse_document_start()
+
+    def parse_document_start(self):
+
+        # Parse any extra document end indicators.
+        while self.check_token(DocumentEndToken):
+            self.get_token()
+
+        # Parse an explicit document.
+        if not self.check_token(StreamEndToken):
+            token = self.peek_token()
+            start_mark = token.start_mark
+            version, tags = self.process_directives()
+            if not self.check_token(DocumentStartToken):
+                raise ParserError(None, None,
+                        "expected '<document start>', but found %r"
+                        % self.peek_token().id,
+                        self.peek_token().start_mark)
+            token = self.get_token()
+            end_mark = token.end_mark
+            event = DocumentStartEvent(start_mark, end_mark,
+                    explicit=True, version=version, tags=tags)
+            self.states.append(self.parse_document_end)
+            self.state = self.parse_document_content
+        else:
+            # Parse the end of the stream.
+            token = self.get_token()
+            event = StreamEndEvent(token.start_mark, token.end_mark)
+            assert not self.states
+            assert not self.marks
+            self.state = None
+        return event
+
+    def parse_document_end(self):
+
+        # Parse the document end.
+        token = self.peek_token()
+        start_mark = end_mark = token.start_mark
+        explicit = False
+        if self.check_token(DocumentEndToken):
+            token = self.get_token()
+            end_mark = token.end_mark
+            explicit = True
+        event = DocumentEndEvent(start_mark, end_mark,
+                explicit=explicit)
+
+        # Prepare the next state.
+        self.state = self.parse_document_start
+
+        return event
+
+    def parse_document_content(self):
+        if self.check_token(DirectiveToken,
+                DocumentStartToken, DocumentEndToken, StreamEndToken):
+            event = self.process_empty_scalar(self.peek_token().start_mark)
+            self.state = self.states.pop()
+            return event
+        else:
+            return self.parse_block_node()
+
+    def process_directives(self):
+        self.yaml_version = None
+        self.tag_handles = {}
+        while self.check_token(DirectiveToken):
+            token = self.get_token()
+            if token.name == u'YAML':
+                if self.yaml_version is not None:
+                    raise ParserError(None, None,
+                            "found duplicate YAML directive", token.start_mark)
+                major, minor = token.value
+                if major != 1:
+                    raise ParserError(None, None,
+                            "found incompatible YAML document (version 1.* is required)",
+                            token.start_mark)
+                self.yaml_version = token.value
+            elif token.name == u'TAG':
+                handle, prefix = token.value
+                if handle in self.tag_handles:
+                    raise ParserError(None, None,
+                            "duplicate tag handle %r" % handle.encode('utf-8'),
+                            token.start_mark)
+                self.tag_handles[handle] = prefix
+        if self.tag_handles:
+            value = self.yaml_version, self.tag_handles.copy()
+        else:
+            value = self.yaml_version, None
+        for key in self.DEFAULT_TAGS:
+            if key not in self.tag_handles:
+                self.tag_handles[key] = self.DEFAULT_TAGS[key]
+        return value
+
+    # block_node_or_indentless_sequence ::= ALIAS
+    #               | properties (block_content | indentless_block_sequence)?
+    #               | block_content
+    #               | indentless_block_sequence
+    # block_node    ::= ALIAS
+    #                   | properties block_content?
+    #                   | block_content
+    # flow_node     ::= ALIAS
+    #                   | properties flow_content?
+    #                   | flow_content
+    # properties    ::= TAG ANCHOR? | ANCHOR TAG?
+    # block_content     ::= block_collection | flow_collection | SCALAR
+    # flow_content      ::= flow_collection | SCALAR
+    # block_collection  ::= block_sequence | block_mapping
+    # flow_collection   ::= flow_sequence | flow_mapping
+
+    def parse_block_node(self):
+        return self.parse_node(block=True)
+
+    def parse_flow_node(self):
+        return self.parse_node()
+
+    def parse_block_node_or_indentless_sequence(self):
+        return self.parse_node(block=True, indentless_sequence=True)
+
+    def parse_node(self, block=False, indentless_sequence=False):
+        if self.check_token(AliasToken):
+            token = self.get_token()
+            event = AliasEvent(token.value, token.start_mark, token.end_mark)
+            self.state = self.states.pop()
+        else:
+            anchor = None
+            tag = None
+            start_mark = end_mark = tag_mark = None
+            if self.check_token(AnchorToken):
+                token = self.get_token()
+                start_mark = token.start_mark
+                end_mark = token.end_mark
+                anchor = token.value
+                if self.check_token(TagToken):
+                    token = self.get_token()
+                    tag_mark = token.start_mark
+                    end_mark = token.end_mark
+                    tag = token.value
+            elif self.check_token(TagToken):
+                token = self.get_token()
+                start_mark = tag_mark = token.start_mark
+                end_mark = token.end_mark
+                tag = token.value
+                if self.check_token(AnchorToken):
+                    token = self.get_token()
+                    end_mark = token.end_mark
+                    anchor = token.value
+            if tag is not None:
+                handle, suffix = tag
+                if handle is not None:
+                    if handle not in self.tag_handles:
+                        raise ParserError("while parsing a node", start_mark,
+                                "found undefined tag handle %r" % handle.encode('utf-8'),
+                                tag_mark)
+                    tag = self.tag_handles[handle]+suffix
+                else:
+                    tag = suffix
+            #if tag == u'!':
+            #    raise ParserError("while parsing a node", start_mark,
+            #            "found non-specific tag '!'", tag_mark,
+            #            "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.")
+            if start_mark is None:
+                start_mark = end_mark = self.peek_token().start_mark
+            event = None
+            implicit = (tag is None or tag == u'!')
+            if indentless_sequence and self.check_token(BlockEntryToken):
+                end_mark = self.peek_token().end_mark
+                event = SequenceStartEvent(anchor, tag, implicit,
+                        start_mark, end_mark)
+                self.state = self.parse_indentless_sequence_entry
+            else:
+                if self.check_token(ScalarToken):
+                    token = self.get_token()
+                    end_mark = token.end_mark
+                    if (token.plain and tag is None) or tag == u'!':
+                        implicit = (True, False)
+                    elif tag is None:
+                        implicit = (False, True)
+                    else:
+                        implicit = (False, False)
+                    event = ScalarEvent(anchor, tag, implicit, token.value,
+                            start_mark, end_mark, style=token.style)
+                    self.state = self.states.pop()
+                elif self.check_token(FlowSequenceStartToken):
+                    end_mark = self.peek_token().end_mark
+                    event = SequenceStartEvent(anchor, tag, implicit,
+                            start_mark, end_mark, flow_style=True)
+                    self.state = self.parse_flow_sequence_first_entry
+                elif self.check_token(FlowMappingStartToken):
+                    end_mark = self.peek_token().end_mark
+                    event = MappingStartEvent(anchor, tag, implicit,
+                            start_mark, end_mark, flow_style=True)
+                    self.state = self.parse_flow_mapping_first_key
+                elif block and self.check_token(BlockSequenceStartToken):
+                    end_mark = self.peek_token().start_mark
+                    event = SequenceStartEvent(anchor, tag, implicit,
+                            start_mark, end_mark, flow_style=False)
+                    self.state = self.parse_block_sequence_first_entry
+                elif block and self.check_token(BlockMappingStartToken):
+                    end_mark = self.peek_token().start_mark
+                    event = MappingStartEvent(anchor, tag, implicit,
+                            start_mark, end_mark, flow_style=False)
+                    self.state = self.parse_block_mapping_first_key
+                elif anchor is not None or tag is not None:
+                    # Empty scalars are allowed even if a tag or an anchor is
+                    # specified.
+                    event = ScalarEvent(anchor, tag, (implicit, False), u'',
+                            start_mark, end_mark)
+                    self.state = self.states.pop()
+                else:
+                    if block:
+                        node = 'block'
+                    else:
+                        node = 'flow'
+                    token = self.peek_token()
+                    raise ParserError("while parsing a %s node" % node, start_mark,
+                            "expected the node content, but found %r" % token.id,
+                            token.start_mark)
+        return event
+
+    # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+
+    def parse_block_sequence_first_entry(self):
+        token = self.get_token()
+        self.marks.append(token.start_mark)
+        return self.parse_block_sequence_entry()
+
+    def parse_block_sequence_entry(self):
+        if self.check_token(BlockEntryToken):
+            token = self.get_token()
+            if not self.check_token(BlockEntryToken, BlockEndToken):
+                self.states.append(self.parse_block_sequence_entry)
+                return self.parse_block_node()
+            else:
+                self.state = self.parse_block_sequence_entry
+                return self.process_empty_scalar(token.end_mark)
+        if not self.check_token(BlockEndToken):
+            token = self.peek_token()
+            raise ParserError("while parsing a block collection", self.marks[-1],
+                    "expected <block end>, but found %r" % token.id, token.start_mark)
+        token = self.get_token()
+        event = SequenceEndEvent(token.start_mark, token.end_mark)
+        self.state = self.states.pop()
+        self.marks.pop()
+        return event
+
+    # indentless_sequence ::= (BLOCK-ENTRY block_node?)+
+
+    def parse_indentless_sequence_entry(self):
+        if self.check_token(BlockEntryToken):
+            token = self.get_token()
+            if not self.check_token(BlockEntryToken,
+                    KeyToken, ValueToken, BlockEndToken):
+                self.states.append(self.parse_indentless_sequence_entry)
+                return self.parse_block_node()
+            else:
+                self.state = self.parse_indentless_sequence_entry
+                return self.process_empty_scalar(token.end_mark)
+        token = self.peek_token()
+        event = SequenceEndEvent(token.start_mark, token.start_mark)
+        self.state = self.states.pop()
+        return event
+
+    # block_mapping     ::= BLOCK-MAPPING_START
+    #                       ((KEY block_node_or_indentless_sequence?)?
+    #                       (VALUE block_node_or_indentless_sequence?)?)*
+    #                       BLOCK-END
+
+    def parse_block_mapping_first_key(self):
+        token = self.get_token()
+        self.marks.append(token.start_mark)
+        return self.parse_block_mapping_key()
+
+    def parse_block_mapping_key(self):
+        if self.check_token(KeyToken):
+            token = self.get_token()
+            if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+                self.states.append(self.parse_block_mapping_value)
+                return self.parse_block_node_or_indentless_sequence()
+            else:
+                self.state = self.parse_block_mapping_value
+                return self.process_empty_scalar(token.end_mark)
+        if not self.check_token(BlockEndToken):
+            token = self.peek_token()
+            raise ParserError("while parsing a block mapping", self.marks[-1],
+                    "expected <block end>, but found %r" % token.id, token.start_mark)
+        token = self.get_token()
+        event = MappingEndEvent(token.start_mark, token.end_mark)
+        self.state = self.states.pop()
+        self.marks.pop()
+        return event
+
+    def parse_block_mapping_value(self):
+        if self.check_token(ValueToken):
+            token = self.get_token()
+            if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+                self.states.append(self.parse_block_mapping_key)
+                return self.parse_block_node_or_indentless_sequence()
+            else:
+                self.state = self.parse_block_mapping_key
+                return self.process_empty_scalar(token.end_mark)
+        else:
+            self.state = self.parse_block_mapping_key
+            token = self.peek_token()
+            return self.process_empty_scalar(token.start_mark)
+
+    # flow_sequence     ::= FLOW-SEQUENCE-START
+    #                       (flow_sequence_entry FLOW-ENTRY)*
+    #                       flow_sequence_entry?
+    #                       FLOW-SEQUENCE-END
+    # flow_sequence_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+    #
+    # Note that while production rules for both flow_sequence_entry and
+    # flow_mapping_entry are equal, their interpretations are different.
+    # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?`
+    # generate an inline mapping (set syntax).
+
+    def parse_flow_sequence_first_entry(self):
+        token = self.get_token()
+        self.marks.append(token.start_mark)
+        return self.parse_flow_sequence_entry(first=True)
+
+    def parse_flow_sequence_entry(self, first=False):
+        if not self.check_token(FlowSequenceEndToken):
+            if not first:
+                if self.check_token(FlowEntryToken):
+                    self.get_token()
+                else:
+                    token = self.peek_token()
+                    raise ParserError("while parsing a flow sequence", self.marks[-1],
+                            "expected ',' or ']', but got %r" % token.id, token.start_mark)
+            
+            if self.check_token(KeyToken):
+                token = self.peek_token()
+                event = MappingStartEvent(None, None, True,
+                        token.start_mark, token.end_mark,
+                        flow_style=True)
+                self.state = self.parse_flow_sequence_entry_mapping_key
+                return event
+            elif not self.check_token(FlowSequenceEndToken):
+                self.states.append(self.parse_flow_sequence_entry)
+                return self.parse_flow_node()
+        token = self.get_token()
+        event = SequenceEndEvent(token.start_mark, token.end_mark)
+        self.state = self.states.pop()
+        self.marks.pop()
+        return event
+
+    def parse_flow_sequence_entry_mapping_key(self):
+        token = self.get_token()
+        if not self.check_token(ValueToken,
+                FlowEntryToken, FlowSequenceEndToken):
+            self.states.append(self.parse_flow_sequence_entry_mapping_value)
+            return self.parse_flow_node()
+        else:
+            self.state = self.parse_flow_sequence_entry_mapping_value
+            return self.process_empty_scalar(token.end_mark)
+
+    def parse_flow_sequence_entry_mapping_value(self):
+        if self.check_token(ValueToken):
+            token = self.get_token()
+            if not self.check_token(FlowEntryToken, FlowSequenceEndToken):
+                self.states.append(self.parse_flow_sequence_entry_mapping_end)
+                return self.parse_flow_node()
+            else:
+                self.state = self.parse_flow_sequence_entry_mapping_end
+                return self.process_empty_scalar(token.end_mark)
+        else:
+            self.state = self.parse_flow_sequence_entry_mapping_end
+            token = self.peek_token()
+            return self.process_empty_scalar(token.start_mark)
+
+    def parse_flow_sequence_entry_mapping_end(self):
+        self.state = self.parse_flow_sequence_entry
+        token = self.peek_token()
+        return MappingEndEvent(token.start_mark, token.start_mark)
+
+    # flow_mapping  ::= FLOW-MAPPING-START
+    #                   (flow_mapping_entry FLOW-ENTRY)*
+    #                   flow_mapping_entry?
+    #                   FLOW-MAPPING-END
+    # flow_mapping_entry    ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+
+    def parse_flow_mapping_first_key(self):
+        token = self.get_token()
+        self.marks.append(token.start_mark)
+        return self.parse_flow_mapping_key(first=True)
+
+    def parse_flow_mapping_key(self, first=False):
+        if not self.check_token(FlowMappingEndToken):
+            if not first:
+                if self.check_token(FlowEntryToken):
+                    self.get_token()
+                else:
+                    token = self.peek_token()
+                    raise ParserError("while parsing a flow mapping", self.marks[-1],
+                            "expected ',' or '}', but got %r" % token.id, token.start_mark)
+            if self.check_token(KeyToken):
+                token = self.get_token()
+                if not self.check_token(ValueToken,
+                        FlowEntryToken, FlowMappingEndToken):
+                    self.states.append(self.parse_flow_mapping_value)
+                    return self.parse_flow_node()
+                else:
+                    self.state = self.parse_flow_mapping_value
+                    return self.process_empty_scalar(token.end_mark)
+            elif not self.check_token(FlowMappingEndToken):
+                self.states.append(self.parse_flow_mapping_empty_value)
+                return self.parse_flow_node()
+        token = self.get_token()
+        event = MappingEndEvent(token.start_mark, token.end_mark)
+        self.state = self.states.pop()
+        self.marks.pop()
+        return event
+
+    def parse_flow_mapping_value(self):
+        if self.check_token(ValueToken):
+            token = self.get_token()
+            if not self.check_token(FlowEntryToken, FlowMappingEndToken):
+                self.states.append(self.parse_flow_mapping_key)
+                return self.parse_flow_node()
+            else:
+                self.state = self.parse_flow_mapping_key
+                return self.process_empty_scalar(token.end_mark)
+        else:
+            self.state = self.parse_flow_mapping_key
+            token = self.peek_token()
+            return self.process_empty_scalar(token.start_mark)
+
+    def parse_flow_mapping_empty_value(self):
+        self.state = self.parse_flow_mapping_key
+        return self.process_empty_scalar(self.peek_token().start_mark)
+
+    def process_empty_scalar(self, mark):
+        return ScalarEvent(None, None, (True, False), u'', mark, mark)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/parser.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/parser.pyc b/tools/bin/ext/yaml/parser.pyc
new file mode 100644
index 0000000..fb23a0b
Binary files /dev/null and b/tools/bin/ext/yaml/parser.pyc differ


[28/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/test/regress/data/upgrade33/pg_aggregate32.data
----------------------------------------------------------------------
diff --git a/src/test/regress/data/upgrade33/pg_aggregate32.data b/src/test/regress/data/upgrade33/pg_aggregate32.data
new file mode 100644
index 0000000..38e4cdf
--- /dev/null
+++ b/src/test/regress/data/upgrade33/pg_aggregate32.data
@@ -0,0 +1,126 @@
+aggfnoid,aggtransfn,agginvtransfn,aggprelimfn,agginvprelimfn,aggfinalfn,aggsortop,aggtranstype,agginitval
+2100,3100,3101,6009,6016,1964,0,17,""
+2101,1963,6020,6009,6016,1964,0,17,""
+2102,1962,6019,6009,6016,1964,0,17,""
+2103,3102,3103,3104,3105,1837,0,17,""
+2104,3106,3107,3111,3110,1830,0,17,""
+2105,3108,3109,3111,3110,1830,0,17,""
+2106,1843,6038,6011,6018,1844,0,1187,"{0 second,0 second}"
+2107,1842,7010,1724,1725,0,0,1700,
+2108,1841,7009,463,464,0,0,20,
+2109,1840,7008,463,464,0,0,20,
+2110,204,205,204,205,0,0,700,
+2111,218,219,218,219,0,0,701,
+2112,894,895,894,895,0,0,790,
+2113,1169,1170,1169,1170,0,0,1186,
+2114,1724,1725,1724,1725,0,0,1700,
+2115,1236,0,1236,0,0,413,20,
+2116,768,0,768,0,0,521,23,
+2117,770,0,770,0,0,520,21,
+2118,1965,0,1965,0,0,610,26,
+2119,209,0,209,0,0,623,700,
+2120,223,0,223,0,0,674,701,
+2121,768,0,768,0,0,563,702,
+2122,1138,0,1138,0,0,1097,1082,
+2123,1377,0,1377,0,0,1112,1083,
+2124,1379,0,1379,0,0,1554,1266,
+2125,898,0,898,0,0,903,790,
+2126,2036,0,2036,0,0,2064,1114,
+2127,1196,0,1196,0,0,1324,1184,
+2128,1198,0,1198,0,0,1334,1186,
+2129,458,0,458,0,0,666,25,
+2130,1767,0,1767,0,0,1756,1700,
+2050,515,0,515,0,0,1073,2277,
+2244,1063,0,1063,0,0,1060,1042,
+2797,2795,0,2795,0,0,2800,27,
+2131,1237,0,1237,0,0,412,20,
+2132,769,0,769,0,0,97,23,
+2133,771,0,771,0,0,95,21,
+2134,1966,0,1966,0,0,609,26,
+2135,211,0,211,0,0,622,700,
+2136,224,0,224,0,0,672,701,
+2137,769,0,769,0,0,562,702,
+2138,1139,0,1139,0,0,1095,1082,
+2139,1378,0,1378,0,0,1110,1083,
+2140,1380,0,1380,0,0,1552,1266,
+2141,899,0,899,0,0,902,790,
+2142,2035,0,2035,0,0,2062,1114,
+2143,1195,0,1195,0,0,1322,1184,
+2144,1197,0,1197,0,0,1332,1186,
+2145,459,0,459,0,0,664,25,
+2146,1766,0,1766,0,0,1754,1700,
+2051,516,0,516,0,0,1072,2277,
+2245,1064,0,1064,0,0,1058,1042,
+2798,2796,0,2796,0,0,2799,27,
+2147,2804,0,463,464,0,0,20,0
+2803,1219,2857,463,464,0,0,20,0
+2718,1836,7308,6008,6015,2514,0,1231,"{0,0,0}"
+2719,1835,7307,6008,6015,2514,0,1231,"{0,0,0}"
+2720,1834,7306,6008,6015,2514,0,1231,"{0,0,0}"
+2721,208,6024,6010,6017,2512,0,1022,"{0,0,0}"
+2722,222,6025,6010,6017,2512,0,1022,"{0,0,0}"
+2723,1833,7309,6008,6015,2514,0,1231,"{0,0,0}"
+2641,1836,7308,6008,6015,1838,0,1231,"{0,0,0}"
+2642,1835,7307,6008,6015,1838,0,1231,"{0,0,0}"
+2643,1834,7306,6008,6015,1838,0,1231,"{0,0,0}"
+2644,208,6024,6010,6017,1831,0,1022,"{0,0,0}"
+2645,222,6025,6010,6017,1831,0,1022,"{0,0,0}"
+2646,1833,7309,6008,6015,1838,0,1231,"{0,0,0}"
+2148,1836,7308,6008,6015,1838,0,1231,"{0,0,0}"
+2149,1835,7307,6008,6015,1838,0,1231,"{0,0,0}"
+2150,1834,7306,6008,6015,1838,0,1231,"{0,0,0}"
+2151,208,6024,6010,6017,1831,0,1022,"{0,0,0}"
+2152,222,6025,6010,6017,1831,0,1022,"{0,0,0}"
+2153,1833,7309,6008,6015,1838,0,1231,"{0,0,0}"
+2724,1836,7308,6008,6015,2596,0,1231,"{0,0,0}"
+2725,1835,7307,6008,6015,2596,0,1231,"{0,0,0}"
+2726,1834,7306,6008,6015,2596,0,1231,"{0,0,0}"
+2727,208,6024,6010,6017,2513,0,1022,"{0,0,0}"
+2728,222,6025,6010,6017,2513,0,1022,"{0,0,0}"
+2729,1833,7309,6008,6015,2596,0,1231,"{0,0,0}"
+2712,1836,7308,6008,6015,1839,0,1231,"{0,0,0}"
+2713,1835,7307,6008,6015,1839,0,1231,"{0,0,0}"
+2714,1834,7306,6008,6015,1839,0,1231,"{0,0,0}"
+2715,208,6024,6010,6017,1832,0,1022,"{0,0,0}"
+2716,222,6025,6010,6017,1832,0,1022,"{0,0,0}"
+2717,1833,7309,6008,6015,1839,0,1231,"{0,0,0}"
+2154,1836,7308,6008,6015,1839,0,1231,"{0,0,0}"
+2155,1835,7307,6008,6015,1839,0,1231,"{0,0,0}"
+2156,1834,7306,6008,6015,1839,0,1231,"{0,0,0}"
+2157,208,6024,6010,6017,1832,0,1022,"{0,0,0}"
+2158,222,6025,6010,6017,1832,0,1022,"{0,0,0}"
+2159,1833,7309,6008,6015,1839,0,1231,"{0,0,0}"
+2818,2805,0,463,0,0,0,20,0
+2819,2806,0,6014,0,2807,0,1022,"{0,0,0,0,0,0}"
+2820,2806,0,6014,0,2808,0,1022,"{0,0,0,0,0,0}"
+2821,2806,0,6014,0,2809,0,1022,"{0,0,0,0,0,0}"
+2822,2806,0,6014,0,2810,0,1022,"{0,0,0,0,0,0}"
+2823,2806,0,6014,0,2811,0,1022,"{0,0,0,0,0,0}"
+2824,2806,0,6014,0,2812,0,1022,"{0,0,0,0,0,0}"
+2825,2806,0,6014,0,2813,0,1022,"{0,0,0,0,0,0}"
+2826,2806,0,6014,0,2814,0,1022,"{0,0,0,0,0,0}"
+2827,2806,0,6014,0,2815,0,1022,"{0,0,0,0,0,0}"
+2828,2806,0,6014,0,2816,0,1022,"{0,0,0,0,0,0}"
+2829,2806,0,6014,0,2817,0,1022,"{0,0,0,0,0,0}"
+2517,2515,0,2515,0,0,0,16,
+2518,2516,0,2516,0,0,0,16,
+2519,2515,0,2515,0,0,0,16,
+2236,1892,0,1892,0,0,0,21,
+2237,1893,0,1893,0,0,0,21,
+2238,1898,0,1898,0,0,0,23,
+2239,1899,0,1899,0,0,0,23,
+2240,1904,0,1904,0,0,0,20,
+2241,1905,0,1905,0,0,0,20,
+2242,1673,0,1673,0,0,0,1560,
+2243,1674,0,1674,0,0,0,1560,
+6013,6012,0,6012,0,0,0,1007,{}
+3216,3212,0,3214,0,0,0,1016,
+3217,3213,0,3214,0,0,0,1016,
+3218,3214,0,3214,0,0,0,1016,
+3219,3215,0,3215,0,0,0,1022,
+3226,3225,0,3214,0,0,0,1007,
+3228,3227,0,3214,0,0,0,1016,
+3230,3229,0,3215,0,0,0,1022,
+3255,3252,0,3253,0,3254,0,3251,
+3261,3257,0,3258,0,3259,0,1022,{0}
+3262,3257,0,3258,0,3260,0,1022,{0}


[33/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/caql.files
----------------------------------------------------------------------
diff --git a/src/backend/access/index/caql.files b/src/backend/access/index/caql.files
new file mode 100644
index 0000000..3edb42c
--- /dev/null
+++ b/src/backend/access/index/caql.files
@@ -0,0 +1,101 @@
+../../../..//src/backend/access/common/tupdesc.c
+../../../..//src/backend/access/heap/heapam.c
+../../../..//src/backend/catalog/aclchk.c
+../../../..//src/backend/catalog/caql/caqlanalyze.c
+../../../..//src/backend/catalog/caql/test/caqlanalyze_test.c
+../../../..//src/backend/catalog/dependency.c
+../../../..//src/backend/catalog/gp_fastsequence.c
+../../../..//src/backend/catalog/heap.c
+../../../..//src/backend/catalog/index.c
+../../../..//src/backend/catalog/namespace.c
+../../../..//src/backend/catalog/pg_aggregate.c
+../../../..//src/backend/catalog/pg_appendonly.c
+../../../..//src/backend/catalog/pg_attribute_encoding.c
+../../../..//src/backend/catalog/pg_compression.c
+../../../..//src/backend/catalog/pg_constraint.c
+../../../..//src/backend/catalog/pg_conversion.c
+../../../..//src/backend/catalog/pg_depend.c
+../../../..//src/backend/catalog/pg_extprotocol.c
+../../../..//src/backend/catalog/pg_exttable.c
+../../../..//src/backend/catalog/pg_namespace.c
+../../../..//src/backend/catalog/pg_operator.c
+../../../..//src/backend/catalog/pg_proc.c
+../../../..//src/backend/catalog/pg_proc_callback.c
+../../../..//src/backend/catalog/pg_shdepend.c
+../../../..//src/backend/catalog/pg_type.c
+../../../..//src/backend/catalog/toasting.c
+../../../..//src/backend/cdb/cdbcat.c
+../../../..//src/backend/cdb/cdbdisp.c
+../../../..//src/backend/cdb/cdbgroup.c
+../../../..//src/backend/cdb/cdbparquetstoragewrite.c
+../../../..//src/backend/cdb/cdbpartindex.c
+../../../..//src/backend/cdb/cdbpartition.c
+../../../..//src/backend/cdb/cdbquerycontextdispatching.c
+../../../..//src/backend/cdb/cdbsubselect.c
+../../../..//src/backend/cdb/cdbutil.c
+../../../..//src/backend/cdb/motion/tupser.c
+../../../..//src/backend/commands/aggregatecmds.c
+../../../..//src/backend/commands/analyze.c
+../../../..//src/backend/commands/cluster.c
+../../../..//src/backend/commands/comment.c
+../../../..//src/backend/commands/conversioncmds.c
+../../../..//src/backend/commands/dbcommands.c
+../../../..//src/backend/commands/extprotocolcmds.c
+../../../..//src/backend/commands/filespace.c
+../../../..//src/backend/commands/foreigncmds.c
+../../../..//src/backend/commands/functioncmds.c
+../../../..//src/backend/commands/indexcmds.c
+../../../..//src/backend/commands/opclasscmds.c
+../../../..//src/backend/commands/operatorcmds.c
+../../../..//src/backend/commands/proclang.c
+../../../..//src/backend/commands/queue.c
+../../../..//src/backend/commands/schemacmds.c
+../../../..//src/backend/commands/sequence.c
+../../../..//src/backend/commands/tablecmds.c
+../../../..//src/backend/commands/tablespace.c
+../../../..//src/backend/commands/trigger.c
+../../../..//src/backend/commands/typecmds.c
+../../../..//src/backend/commands/user.c
+../../../..//src/backend/commands/vacuum.c
+../../../..//src/backend/commands/variable.c
+../../../..//src/backend/executor/functions.c
+../../../..//src/backend/executor/nodeAgg.c
+../../../..//src/backend/executor/nodeMergejoin.c
+../../../..//src/backend/executor/nodeWindow.c
+../../../..//src/backend/executor/spi.c
+../../../..//src/backend/optimizer/plan/planpartition.c
+../../../..//src/backend/optimizer/plan/planwindow.c
+../../../..//src/backend/optimizer/util/clauses.c
+../../../..//src/backend/optimizer/util/plancat.c
+../../../..//src/backend/optimizer/util/predtest.c
+../../../..//src/backend/parser/analyze.c
+../../../..//src/backend/parser/parse_clause.c
+../../../..//src/backend/parser/parse_coerce.c
+../../../..//src/backend/parser/parse_func.c
+../../../..//src/backend/parser/parse_node.c
+../../../..//src/backend/parser/parse_oper.c
+../../../..//src/backend/parser/parse_relation.c
+../../../..//src/backend/parser/parse_type.c
+../../../..//src/backend/parser/parse_utilcmd.c
+../../../..//src/backend/rewrite/rewriteDefine.c
+../../../..//src/backend/rewrite/rewriteRemove.c
+../../../..//src/backend/rewrite/rewriteSupport.c
+../../../..//src/backend/storage/large_object/inv_api.c
+../../../..//src/backend/tcop/utility.c
+../../../..//src/backend/utils/adt/acl.c
+../../../..//src/backend/utils/adt/dbsize.c
+../../../..//src/backend/utils/adt/format_type.c
+../../../..//src/backend/utils/adt/regproc.c
+../../../..//src/backend/utils/adt/ruleutils.c
+../../../..//src/backend/utils/adt/selfuncs.c
+../../../..//src/backend/utils/cache/lsyscache.c
+../../../..//src/backend/utils/cache/relcache.c
+../../../..//src/backend/utils/cache/typcache.c
+../../../..//src/backend/utils/fmgr/fmgr.c
+../../../..//src/backend/utils/fmgr/funcapi.c
+../../../..//src/backend/utils/gp/segadmin.c
+../../../..//src/backend/utils/init/miscinit.c
+../../../..//src/backend/utils/mb/mbutils.c
+../../../..//src/backend/utils/misc/superuser.c
+../../../..//src/backend/utils/resscheduler/resscheduler.c
+../../../..//src/backend/utils/sort/tuplesort.c

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/caql.md5
----------------------------------------------------------------------
diff --git a/src/backend/access/index/caql.md5 b/src/backend/access/index/caql.md5
new file mode 100644
index 0000000..493cc0e
--- /dev/null
+++ b/src/backend/access/index/caql.md5
@@ -0,0 +1,102 @@
+MD5(../../../..//src/backend/access/common/tupdesc.c)= 582a35fa59ecd6de094cb46c93cf1951
+MD5(../../../..//src/backend/access/heap/heapam.c)= f07f80dc4a1cb49838947949bdbde46e
+MD5(../../../..//src/backend/catalog/aclchk.c)= 39e577154587eb3373bf1d2631d09894
+MD5(../../../..//src/backend/catalog/caql/caqlanalyze.c)= 5f74b21d3e35f871925a3801cf298acd
+MD5(../../../..//src/backend/catalog/caql/test/caqlanalyze_test.c)= 566d09679549a6b61839f441833308a9
+MD5(../../../..//src/backend/catalog/dependency.c)= 586080554bf403cc2d779771b57fa765
+MD5(../../../..//src/backend/catalog/gp_fastsequence.c)= e64b8e33c1afda1b12debdd495c452ea
+MD5(../../../..//src/backend/catalog/heap.c)= 8cd0e26e9e7a59f9b8e0a27b14ff6b09
+MD5(../../../..//src/backend/catalog/index.c)= c65c1e8107aa7f32a2444772ee82619f
+MD5(../../../..//src/backend/catalog/namespace.c)= 02f3abe78b4a5fae16b6c16d9a3d30ca
+MD5(../../../..//src/backend/catalog/pg_aggregate.c)= 90a8835969d34325379a217eb73fe8ac
+MD5(../../../..//src/backend/catalog/pg_appendonly.c)= 882a2245faa1aabddd72648219415f9c
+MD5(../../../..//src/backend/catalog/pg_attribute_encoding.c)= c7cd4cf7ed36a099ac28bc86b37da73a
+MD5(../../../..//src/backend/catalog/pg_compression.c)= ce237a033a665db3ea043ab0006b35cc
+MD5(../../../..//src/backend/catalog/pg_constraint.c)= 0d5ea72cba5c689e8879baa93d4b7c1d
+MD5(../../../..//src/backend/catalog/pg_conversion.c)= 526e76372551d422b6ef0d812f5c9b3d
+MD5(../../../..//src/backend/catalog/pg_depend.c)= a45fe8f00731ae3888b658293733bd0d
+MD5(../../../..//src/backend/catalog/pg_extprotocol.c)= 27461d03a849e6e629166d776b261427
+MD5(../../../..//src/backend/catalog/pg_exttable.c)= f6ae16b7ab5b6e7fffb2f5c2cb6f2b9c
+MD5(../../../..//src/backend/catalog/pg_namespace.c)= 0610ec24f52802bfc754569b68a02caf
+MD5(../../../..//src/backend/catalog/pg_operator.c)= fadec837920effb6ec3406fbc841800e
+MD5(../../../..//src/backend/catalog/pg_proc.c)= 7c4af6ef49f62659b202759734d94396
+MD5(../../../..//src/backend/catalog/pg_proc_callback.c)= 6318ae99c9084542748333bbe3c9483e
+MD5(../../../..//src/backend/catalog/pg_shdepend.c)= 4e0437374557be0f6e508884add28667
+MD5(../../../..//src/backend/catalog/pg_type.c)= 2a323aac38abc2d1d0e9a159d7a71587
+MD5(../../../..//src/backend/catalog/toasting.c)= cab52ac1be97402b64c5857741d23e63
+MD5(../../../..//src/backend/cdb/cdbcat.c)= a8bc34da498d86c67b137e821cad3044
+MD5(../../../..//src/backend/cdb/cdbdisp.c)= c2680ca8bfb37a6809e264ae04dfe063
+MD5(../../../..//src/backend/cdb/cdbgroup.c)= a7ce58c20147368fdddde5e919eb976b
+MD5(../../../..//src/backend/cdb/cdbparquetstoragewrite.c)= 76b60cd9e8a19dfea659604c204a0bb0
+MD5(../../../..//src/backend/cdb/cdbpartindex.c)= d17c1ac5bde307068894fdff4053dd32
+MD5(../../../..//src/backend/cdb/cdbpartition.c)= 8fe89e5f3f3467da29a449ba9ae8cc7b
+MD5(../../../..//src/backend/cdb/cdbquerycontextdispatching.c)= cf0857bb3eb97c2c51c540c8c207b768
+MD5(../../../..//src/backend/cdb/cdbsubselect.c)= 6324514f32c8e65a8b6a3cd6e1cd1774
+MD5(../../../..//src/backend/cdb/cdbutil.c)= 4b2cecd0ce9981fa6e12355beef8b7e8
+MD5(../../../..//src/backend/cdb/motion/tupser.c)= b15ec35e9e6a963eddab69dc15f89f98
+MD5(../../../..//src/backend/commands/aggregatecmds.c)= 67ffc7c539eada6332203f98b8f5546e
+MD5(../../../..//src/backend/commands/analyze.c)= e350cf567d286c675065a91f88968a46
+MD5(../../../..//src/backend/commands/cluster.c)= ef6724c36c7c41908584f71d19696669
+MD5(../../../..//src/backend/commands/comment.c)= 5e45e524da05abb9f64308d9d60fdfba
+MD5(../../../..//src/backend/commands/conversioncmds.c)= b195b6c207ff48ef48257e12ef3db81a
+MD5(../../../..//src/backend/commands/dbcommands.c)= ed57ed20b1743c986a7b2fc0084b4771
+MD5(../../../..//src/backend/commands/extprotocolcmds.c)= f28ae749523c13da8dec6d24a539150f
+MD5(../../../..//src/backend/commands/filespace.c)= 36723962902148e8202c7e1cf67f5fb2
+MD5(../../../..//src/backend/commands/foreigncmds.c)= 5ee041d42beae2b169ff6e0db8aee774
+MD5(../../../..//src/backend/commands/functioncmds.c)= a935b898b6daa02b8ddadcc8dc825d9d
+MD5(../../../..//src/backend/commands/indexcmds.c)= 6c69e515116c0ddc008ac21c68fc9e72
+MD5(../../../..//src/backend/commands/opclasscmds.c)= 0012597aa71097f07a9b9e1b9171c80d
+MD5(../../../..//src/backend/commands/operatorcmds.c)= 750dd8930a3812b3acec3aaa44c8796f
+MD5(../../../..//src/backend/commands/proclang.c)= 9133356edec3a8f7b7e560b6e2efdfc3
+MD5(../../../..//src/backend/commands/queue.c)= b7f9871bb8c962ba5b4ea924f2ae8b8b
+MD5(../../../..//src/backend/commands/schemacmds.c)= a988cda5bd2a85b7bdf1c45951cf2300
+MD5(../../../..//src/backend/commands/sequence.c)= 3118589e5193cab937d7779dfb1b6150
+MD5(../../../..//src/backend/commands/tablecmds.c)= e92240d06864b8cc466358d8cea932ca
+MD5(../../../..//src/backend/commands/tablespace.c)= 94f3a96ada46cfa5204f5c9fece6bf44
+MD5(../../../..//src/backend/commands/trigger.c)= bb3b5d3ea8e312df67d744fea2e8e355
+MD5(../../../..//src/backend/commands/typecmds.c)= d80d029c9119acd09f3e186dc9ebf8f5
+MD5(../../../..//src/backend/commands/user.c)= 7866bdf03721b9c33a3dcca12d3de949
+MD5(../../../..//src/backend/commands/vacuum.c)= aab6fd7b1111f7afb8dbc4f222d3f7af
+MD5(../../../..//src/backend/commands/variable.c)= 95ea169242c7de86bac56b3c10dd7ed0
+MD5(../../../..//src/backend/executor/functions.c)= 4766d1f0f227545bd8239bc4f48a9f42
+MD5(../../../..//src/backend/executor/nodeAgg.c)= a0e8901d9f3dc5baba169ec08181e093
+MD5(../../../..//src/backend/executor/nodeMergejoin.c)= 0344c8caedb21ebf9e06d581fce2c349
+MD5(../../../..//src/backend/executor/nodeWindow.c)= 4edcd2df8428a97a8fc781e2a7989238
+MD5(../../../..//src/backend/executor/spi.c)= beff1a176c9fb7fbd1113fa6323e971e
+MD5(../../../..//src/backend/fts/fts.c)= 1ad47596fbb1d379da8c8341a6b1b408
+MD5(../../../..//src/backend/optimizer/plan/planpartition.c)= d6a629174d6b9caa06fdaaa1cd9c227e
+MD5(../../../..//src/backend/optimizer/plan/planwindow.c)= 79f3f722ffcea3202aa5219f9b2c7721
+MD5(../../../..//src/backend/optimizer/util/clauses.c)= 097adad4389fb7060303a9ec4becbb6b
+MD5(../../../..//src/backend/optimizer/util/plancat.c)= 83684f55c8a79878e8825482785ffdf7
+MD5(../../../..//src/backend/optimizer/util/predtest.c)= 9263e4ca8d2760212e0afa5d1a092316
+MD5(../../../..//src/backend/parser/analyze.c)= 588092b7384b10044cec783ccb5002bd
+MD5(../../../..//src/backend/parser/parse_clause.c)= 155dab27a362d12b700c2aa29cd590ed
+MD5(../../../..//src/backend/parser/parse_coerce.c)= 822799439045849393dce791abb3db96
+MD5(../../../..//src/backend/parser/parse_func.c)= a3dd39ab229189787aebb52539989959
+MD5(../../../..//src/backend/parser/parse_node.c)= d48220b17196251ee937d0e6754122b7
+MD5(../../../..//src/backend/parser/parse_oper.c)= 0e35154dd090157b8700cd086bd42398
+MD5(../../../..//src/backend/parser/parse_relation.c)= 33523959db067dc700e3f8c3a6d5f1af
+MD5(../../../..//src/backend/parser/parse_type.c)= 82d15bbfe23613236408f6d64751d545
+MD5(../../../..//src/backend/parser/parse_utilcmd.c)= 12c309508162ecf5a34e80f27385ee8d
+MD5(../../../..//src/backend/rewrite/rewriteDefine.c)= 54129b751cb4309fcb2c9e93988df952
+MD5(../../../..//src/backend/rewrite/rewriteRemove.c)= 4f0c37f9687f712f027c16cc1a975066
+MD5(../../../..//src/backend/rewrite/rewriteSupport.c)= d7aa706bb5fd9451a4a916daea261786
+MD5(../../../..//src/backend/storage/large_object/inv_api.c)= 33e1338710922cef0304f950b7970388
+MD5(../../../..//src/backend/tcop/utility.c)= 6808d5a3f229fa4e3971b22f435ecd68
+MD5(../../../..//src/backend/utils/adt/acl.c)= 8ef3299ab76977c6de27a771e7b73032
+MD5(../../../..//src/backend/utils/adt/dbsize.c)= 7aec0f3e061380cfcb9249043fb2cce0
+MD5(../../../..//src/backend/utils/adt/format_type.c)= 77286d71a8f58a0e4c4b8af40d174b19
+MD5(../../../..//src/backend/utils/adt/regproc.c)= 83a94072f19d865fa02b391222549f85
+MD5(../../../..//src/backend/utils/adt/ruleutils.c)= a95712389ac8bf9dcad98609b47432da
+MD5(../../../..//src/backend/utils/adt/selfuncs.c)= 3207a326d6fc7cd0fa2a0cc51d93b192
+MD5(../../../..//src/backend/utils/cache/lsyscache.c)= f46a969f8ae0563d403505b372ed6ed9
+MD5(../../../..//src/backend/utils/cache/relcache.c)= 1b033a9f3c74b762386a29617e744555
+MD5(../../../..//src/backend/utils/cache/typcache.c)= 2de0c175430a0cebfd057704177a7b4c
+MD5(../../../..//src/backend/utils/fmgr/fmgr.c)= 63eeaea0e35c7035cec664e7bdd5f495
+MD5(../../../..//src/backend/utils/fmgr/funcapi.c)= 60afc8068ba6ab82934218fdcfedf387
+MD5(../../../..//src/backend/utils/gp/segadmin.c)= ab4843aa3385ac8b2077cc48869a5cba
+MD5(../../../..//src/backend/utils/init/miscinit.c)= 0e086ceaf4f952be558e0a11e7293105
+MD5(../../../..//src/backend/utils/mb/mbutils.c)= aaf726790f875430d579fb7619e367c9
+MD5(../../../..//src/backend/utils/misc/superuser.c)= 551a7332c1cab8d479ba80771047ced0
+MD5(../../../..//src/backend/utils/resscheduler/resscheduler.c)= 71951ff5b3db581b23927a1abd39efb7
+MD5(../../../..//src/backend/utils/sort/tuplesort.c)= 3f64f38e326f58dd2e27cbbe7a0f8287

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/caqlfilemap.json
----------------------------------------------------------------------
diff --git a/src/backend/access/index/caqlfilemap.json b/src/backend/access/index/caqlfilemap.json
new file mode 100644
index 0000000..8ff325c
--- /dev/null
+++ b/src/backend/access/index/caqlfilemap.json
@@ -0,0 +1,478 @@
+{
+   "acl.c" : [
+      "pg_auth_members",
+      "pg_authid",
+      "pg_class",
+      "pg_database",
+      "pg_language",
+      "pg_namespace",
+      "pg_proc"
+   ],
+   "aclchk.c" : [
+      "pg_authid",
+      "pg_class",
+      "pg_conversion",
+      "pg_database",
+      "pg_extprotocol",
+      "pg_filespace",
+      "pg_foreign_data_wrapper",
+      "pg_foreign_server",
+      "pg_language",
+      "pg_namespace",
+      "pg_opclass",
+      "pg_operator",
+      "pg_proc",
+      "pg_tablespace",
+      "pg_type"
+   ],
+   "aggregatecmds.c" : [
+      "pg_proc"
+   ],
+   "cdbcat.c" : [
+      "gp_distribution_policy"
+   ],
+   "cdbdisp.c" : [
+      "pg_proc"
+   ],
+   "cdbgroup.c" : [
+      "pg_aggregate"
+   ],
+   "cdbparquetstoragewrite.c" : [
+      "pg_type"
+   ],
+   "cdbpartindex.c" : [
+      "pg_constraint",
+      "pg_index",
+      "pg_partition",
+      "pg_partition_rule"
+   ],
+   "cdbpartition.c" : [
+      "pg_class",
+      "pg_constraint",
+      "pg_inherits",
+      "pg_partition",
+      "pg_partition_encoding",
+      "pg_partition_rule"
+   ],
+   "cdbquerycontextdispatching.c" : [
+      "pg_aggregate",
+      "pg_language",
+      "pg_proc",
+      "pg_type"
+   ],
+   "cdbsubselect.c" : [
+      "pg_attribute"
+   ],
+   "cdbutil.c" : [
+      "gp_segment_configuration"
+   ],
+   "clauses.c" : [
+      "pg_aggregate",
+      "pg_proc"
+   ],
+   "cluster.c" : [
+      "pg_class",
+      "pg_index"
+   ],
+   "commands/analyze" : [
+      "pg_class",
+      "pg_statistic"
+   ],
+   "comment.c" : [
+      "pg_am",
+      "pg_cast",
+      "pg_constraint",
+      "pg_description",
+      "pg_language",
+      "pg_namespace",
+      "pg_opclass",
+      "pg_resqueue",
+      "pg_rewrite",
+      "pg_shdescription",
+      "pg_trigger"
+   ],
+   "conversioncmds.c" : [
+      "pg_conversion"
+   ],
+   "dbcommands.c" : [
+      "pg_authid",
+      "pg_database",
+      "pg_tablespace"
+   ],
+   "dbsize.c" : [
+      "pg_namespace"
+   ],
+   "dependency.c" : [
+      "pg_am",
+      "pg_attrdef",
+      "pg_cast",
+      "pg_class",
+      "pg_constraint",
+      "pg_conversion",
+      "pg_depend",
+      "pg_language",
+      "pg_opclass",
+      "pg_operator",
+      "pg_proc",
+      "pg_rewrite",
+      "pg_trigger",
+      "pg_type",
+      "pg_user_mapping"
+   ],
+   "extprotocolcmds.c" : [
+      "pg_extprotocol"
+   ],
+   "filespace.c" : [
+      "pg_filespace",
+      "pg_filespace_entry",
+      "pg_tablespace"
+   ],
+   "fmgr.c" : [
+      "pg_language",
+      "pg_proc"
+   ],
+   "foreigncmds.c" : [
+      "pg_foreign_data_wrapper",
+      "pg_foreign_server",
+      "pg_foreign_table",
+      "pg_user_mapping"
+   ],
+   "format_type.c" : [
+      "pg_type"
+   ],
+   "funcapi.c" : [
+      "pg_proc"
+   ],
+   "functioncmds.c" : [
+      "pg_aggregate",
+      "pg_cast",
+      "pg_language",
+      "pg_proc"
+   ],
+   "functions.c" : [
+      "pg_proc"
+   ],
+   "gp_fastsequence.c" : [
+      "gp_fastsequence"
+   ],
+   "heap.c" : [
+      "pg_attrdef",
+      "pg_attribute",
+      "pg_authid",
+      "pg_class",
+      "pg_constraint",
+      "pg_inherits",
+      "pg_partition",
+      "pg_partition_rule",
+      "pg_stat_last_operation",
+      "pg_stat_last_shoperation",
+      "pg_statistic"
+   ],
+   "heapam.c" : [
+      "pg_class"
+   ],
+   "index.c" : [
+      "pg_attribute",
+      "pg_class",
+      "pg_index",
+      "pg_opclass",
+      "pg_type"
+   ],
+   "indexcmds.c" : [
+      "pg_am",
+      "pg_class",
+      "pg_index",
+      "pg_opclass"
+   ],
+   "inv_api.c" : [
+      "pg_largeobject"
+   ],
+   "lsyscache.c" : [
+      "pg_aggregate",
+      "pg_amop",
+      "pg_amproc",
+      "pg_attribute",
+      "pg_authid",
+      "pg_class",
+      "pg_constraint",
+      "pg_inherits",
+      "pg_namespace",
+      "pg_opclass",
+      "pg_operator",
+      "pg_proc",
+      "pg_statistic",
+      "pg_trigger",
+      "pg_type"
+   ],
+   "mbutils.c" : [
+      "pg_proc"
+   ],
+   "miscinit.c" : [
+      "pg_authid"
+   ],
+   "namespace.c" : [
+      "pg_authid",
+      "pg_class",
+      "pg_conversion",
+      "pg_namespace",
+      "pg_opclass",
+      "pg_operator",
+      "pg_proc",
+      "pg_type"
+   ],
+   "nodeAgg.c" : [
+      "pg_aggregate",
+      "pg_proc"
+   ],
+   "nodeMergejoin.c" : [
+      "pg_amop"
+   ],
+   "nodeWindow.c" : [
+      "pg_aggregate",
+      "pg_operator",
+      "pg_proc",
+      "pg_window"
+   ],
+   "opclasscmds.c" : [
+      "pg_am",
+      "pg_amop",
+      "pg_amproc",
+      "pg_opclass",
+      "pg_operator",
+      "pg_proc"
+   ],
+   "operatorcmds.c" : [
+      "pg_operator"
+   ],
+   "parse_clause.c" : [
+      "pg_amop",
+      "pg_window"
+   ],
+   "parse_coerce.c" : [
+      "pg_cast",
+      "pg_proc"
+   ],
+   "parse_func.c" : [
+      "pg_aggregate",
+      "pg_inherits",
+      "pg_proc",
+      "pg_window"
+   ],
+   "parse_node.c" : [
+      "pg_type"
+   ],
+   "parse_oper.c" : [
+      "pg_operator"
+   ],
+   "parse_relation.c" : [
+      "pg_attribute",
+      "pg_class"
+   ],
+   "parse_type.c" : [
+      "pg_type"
+   ],
+   "parse_utilcmd.c" : [
+      "pg_class",
+      "pg_opclass"
+   ],
+   "parser/analyze" : [
+      "pg_operator",
+      "pg_partition",
+      "pg_partition_rule",
+      "pg_type_encoding"
+   ],
+   "pg_aggregate.c" : [
+      "pg_aggregate",
+      "pg_proc"
+   ],
+   "pg_appendonly.c" : [
+      "pg_appendonly"
+   ],
+   "pg_attribute_encoding.c" : [
+      "pg_attribute_encoding"
+   ],
+   "pg_compression.c" : [
+      "pg_compression"
+   ],
+   "pg_constraint.c" : [
+      "pg_class",
+      "pg_constraint"
+   ],
+   "pg_conversion.c" : [
+      "pg_conversion"
+   ],
+   "pg_depend.c" : [
+      "pg_depend"
+   ],
+   "pg_extprotocol.c" : [
+      "pg_extprotocol"
+   ],
+   "pg_exttable.c" : [
+      "pg_exttable"
+   ],
+   "pg_namespace.c" : [
+      "pg_namespace"
+   ],
+   "pg_operator.c" : [
+      "pg_operator"
+   ],
+   "pg_proc.c" : [
+      "pg_depend",
+      "pg_proc"
+   ],
+   "pg_proc_callback.c" : [
+      "pg_proc_callback"
+   ],
+   "pg_shdepend.c" : [
+      "pg_authid",
+      "pg_shdepend"
+   ],
+   "pg_type.c" : [
+      "pg_type",
+      "pg_type_encoding"
+   ],
+   "plancat.c" : [
+      "pg_inherits"
+   ],
+   "planpartition.c" : [
+      "pg_class"
+   ],
+   "planwindow.c" : [
+      "pg_aggregate",
+      "pg_proc",
+      "pg_window"
+   ],
+   "predtest.c" : [
+      "pg_amop"
+   ],
+   "proclang.c" : [
+      "pg_language",
+      "pg_pltemplate"
+   ],
+   "queue.c" : [
+      "pg_authid",
+      "pg_resourcetype",
+      "pg_resqueue",
+      "pg_resqueuecapability"
+   ],
+   "regproc.c" : [
+      "pg_class",
+      "pg_operator",
+      "pg_proc",
+      "pg_type"
+   ],
+   "relcache.c" : [
+      "pg_amop",
+      "pg_amproc",
+      "pg_attrdef",
+      "pg_attribute",
+      "pg_class",
+      "pg_constraint",
+      "pg_index",
+      "pg_rewrite"
+   ],
+   "resscheduler.c" : [
+      "pg_authid",
+      "pg_resqueue"
+   ],
+   "rewriteDefine.c" : [
+      "pg_rewrite"
+   ],
+   "rewriteRemove.c" : [
+      "pg_rewrite"
+   ],
+   "rewriteSupport.c" : [
+      "pg_class"
+   ],
+   "ruleutils.c" : [
+      "pg_am",
+      "pg_authid",
+      "pg_class",
+      "pg_constraint",
+      "pg_depend",
+      "pg_index",
+      "pg_opclass",
+      "pg_operator",
+      "pg_partition",
+      "pg_partition_rule",
+      "pg_proc",
+      "pg_trigger"
+   ],
+   "schemacmds.c" : [
+      "pg_namespace"
+   ],
+   "segadmin.c" : [
+      "gp_segment_configuration",
+      "pg_database",
+      "pg_filespace_entry",
+      "pg_tablespace"
+   ],
+   "selfuncs.c" : [
+      "pg_class",
+      "pg_statistic"
+   ],
+   "sequence.c" : [
+      "pg_class"
+   ],
+   "spi.c" : [
+      "pg_type"
+   ],
+   "superuser.c" : [
+      "pg_authid"
+   ],
+   "tablecmds.c" : [
+      "pg_attribute",
+      "pg_authid",
+      "pg_class",
+      "pg_constraint",
+      "pg_depend",
+      "pg_index",
+      "pg_inherits",
+      "pg_partition_rule",
+      "pg_trigger",
+      "pg_type"
+   ],
+   "tablespace.c" : [
+      "pg_tablespace"
+   ],
+   "toasting.c" : [
+      "pg_class"
+   ],
+   "trigger.c" : [
+      "pg_class",
+      "pg_trigger"
+   ],
+   "tupdesc.c" : [
+      "pg_type"
+   ],
+   "tuplesort.c" : [
+      "pg_amop"
+   ],
+   "tupser.c" : [
+      "pg_type"
+   ],
+   "typcache.c" : [
+      "pg_type"
+   ],
+   "typecmds.c" : [
+      "pg_constraint",
+      "pg_depend",
+      "pg_type",
+      "pg_type_encoding"
+   ],
+   "user.c" : [
+      "pg_auth_members",
+      "pg_auth_time_constraint",
+      "pg_authid"
+   ],
+   "utility.c" : [
+      "pg_class"
+   ],
+   "vacuum.c" : [
+      "pg_class",
+      "pg_database"
+   ],
+   "variable.c" : [
+      "pg_authid"
+   ]
+}


[04/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.txt
new file mode 100644
index 0000000..ce98629
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.txt
@@ -0,0 +1,1382 @@
+================================
+PyGreSQL Programming Information
+================================
+
+------------------------------------------
+The classic PyGreSQL interface (pg module)
+------------------------------------------
+
+.. meta::
+   :description: The classic PyGreSQL interface (pg module)
+   :keywords: PyGreSQL, pg, PostGreSQL, Python
+
+.. sectnum::
+.. contents:: Contents
+
+
+Introduction
+============
+You may either choose to use the
+`"classic" PyGreSQL interface <pg.html>`_
+provided by the `pg` module or else the
+`DB-API 2.0 compliant interface <pgdb.html>`_
+provided by the `pgdb` module.
+
+The following documentation covers only the older `pg` API.
+
+The `pg` module handles three types of objects,
+
+- the `pgobject`, which handles the connection
+  and all the requests to the database,
+- the `pglarge` object, which handles
+  all the accesses to PostgreSQL large objects,
+- the `pgqueryobject` that handles query results
+
+and it provides a convenient wrapper class `DB` for the `pgobject`.
+
+If you want to see a simple example of the use of some of these functions,
+see http://ontario.bikerides.ca where you can find a link at the bottom to the
+actual Python code for the page.
+
+
+Module functions and constants
+==============================
+The `pg` module defines a few functions that allow to connect
+to a database and to define "default variables" that override
+the environment variables used by PostgreSQL.
+
+These "default variables" were designed to allow you to handle general
+connection parameters without heavy code in your programs. You can prompt the
+user for a value, put it in the default variable, and forget it, without
+having to modify your environment. The support for default variables can be
+disabled by setting the -DNO_DEF_VAR option in the Python setup file. Methods
+relative to this are specified by the tag [DV].
+
+All variables are set to `None` at module initialization, specifying that
+standard environment variables should be used.
+
+connect - opens a pg connection
+-------------------------------
+Syntax::
+
+  connect([dbname], [host], [port], [opt], [tty], [user], [passwd])
+
+Parameters:
+  :dbname: name of connected database (string/None)
+  :host:   name of the server host (string/None)
+  :port:   port used by the database server (integer/-1)
+  :opt:    connection options (string/None)
+  :tty:    debug terminal (string/None)
+  :user:   PostgreSQL user (string/None)
+  :passwd: password for user (string/None)
+
+Return type:
+  :pgobject: If successful, the `pgobject` handling the connection
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+  :SyntaxError: duplicate argument definition
+  :pg.InternalError: some error occurred during pg connection definition
+
+  (plus all exceptions relative to object allocation)
+
+Description:
+  This function opens a connection to a specified database on a given
+  PostgreSQL server. You can use keywords here, as described in the
+  Python tutorial. The names of the keywords are the name of the
+  parameters given in the syntax line. For a precise description
+  of the parameters, please refer to the PostgreSQL user manual.
+
+Examples::
+
+  import pg
+
+  con1 = pg.connect('testdb', 'myhost', 5432, None, None, 'bob', None)
+  con2 = pg.connect(dbname='testdb', host='localhost', user='bob')
+
+get_defhost, set_defhost - default server host [DV]
+---------------------------------------------------
+Syntax::
+
+  get_defhost()
+
+Parameters:
+  None
+
+Return type:
+  :string, None: default host specification
+
+Exceptions raised:
+  :TypeError: too many arguments
+
+Description:
+  This method returns the current default host specification,
+  or `None` if the environment variables should be used.
+  Environment variables won't be looked up.
+
+Syntax::
+
+  set_defhost(host)
+
+Parameters:
+  :host: new default host (string/None)
+
+Return type:
+  :string, None: previous default host specification
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  This methods sets the default host value for new connections.
+  If `None` is supplied as parameter, environment variables will
+  be used in future connections. It returns the previous setting
+  for default host.
+
+get_defport, set_defport - default server port [DV]
+---------------------------------------------------
+Syntax::
+
+  get_defport()
+
+Parameters:
+  None
+
+Return type:
+  :integer, None: default port specification
+
+Exceptions raised:
+  :TypeError: too many arguments
+
+Description:
+  This method returns the current default port specification,
+  or `None` if the environment variables should be used.
+  Environment variables won't be looked up.
+
+Syntax::
+
+  set_defport(port)
+
+Parameters:
+  :port: new default port (integer/-1)
+
+Return type:
+  :integer, None: previous default port specification
+
+Description:
+  This methods sets the default port value for new connections. If -1 is
+  supplied as parameter, environment variables will be used in future
+  connections. It returns the previous setting for default port.
+
+get_defopt, set_defopt - default connection options [DV]
+--------------------------------------------------------
+Syntax::
+
+  get_defopt()
+
+Parameters:
+  None
+
+Return type:
+  :string, None: default options specification
+
+Exceptions raised:
+  :TypeError: too many arguments
+
+Description:
+  This method returns the current default connection options  specification,
+  or `None` if the environment variables should be used. Environment variables
+  won't be looked up.
+
+Syntax::
+
+  set_defopt(options)
+
+Parameters:
+  :options: new default connection options (string/None)
+
+Return type:
+  :string, None: previous default options specification
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  This methods sets the default connection options value for new connections.
+  If `None` is supplied as parameter, environment variables will be used in
+  future connections. It returns the previous setting for default options.
+
+get_deftty, set_deftty - default debug tty [DV]
+-----------------------------------------------
+Syntax::
+
+  get_deftty()
+
+Parameters:
+  None
+
+Return type:
+  :string, None: default debug terminal specification
+
+Exceptions raised:
+  :TypeError: too many arguments
+
+Description:
+  This method returns the current default debug terminal specification, or
+  `None` if the environment variables should be used. Environment variables
+  won't be looked up.
+
+Syntax::
+
+  set_deftty(terminal)
+
+Parameters:
+  :terminal: new default debug terminal (string/None)
+
+Return type:
+  :string, None: previous default debug terminal specification
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  This methods sets the default debug terminal value for new connections. If
+  `None` is supplied as parameter, environment variables will be used in future
+  connections. It returns the previous setting for default terminal.
+
+get_defbase, set_defbase - default database name [DV]
+-----------------------------------------------------
+Syntax::
+
+  get_defbase()
+
+Parameters:
+  None
+
+Return type:
+  :string, None: default database name specification
+
+Exceptions raised:
+  :TypeError: too many arguments
+
+Description:
+  This method returns the current default database name specification, or
+  `None` if the environment variables should be used. Environment variables
+  won't be looked up.
+
+Syntax::
+
+  set_defbase(base)
+
+Parameters:
+  :base: new default base name (string/None)
+
+Return type:
+  :string, None: previous default database name specification
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  This method sets the default database name value for new connections. If
+  `None` is supplied as parameter, environment variables will be used in
+  future connections. It returns the previous setting for default host.
+
+escape_string - escape a string for use within SQL
+--------------------------------------------------
+Syntax::
+
+  escape_string(string)
+
+Parameters:
+  :string: the string that is to be escaped
+
+Return type:
+  :str: the escaped string
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  This function escapes a string for use within an SQL command.
+  This is useful when inserting data values as literal constants
+  in SQL commands. Certain characters (such as quotes and backslashes)
+  must be escaped to prevent them from being interpreted specially
+  by the SQL parser. `escape_string` performs this operation.
+  Note that there is also a `pgobject` method with the same name
+  which takes connection properties into account.
+
+.. caution:: It is especially important to do proper escaping when
+  handling strings that were received from an untrustworthy source.
+  Otherwise there is a security risk: you are vulnerable to "SQL injection"
+  attacks wherein unwanted SQL commands are fed to your database.
+
+Example::
+
+  name = raw_input("Name? ")
+  phone = con.query("select phone from employees"
+    " where name='%s'" % escape_string(name)).getresult()
+
+escape_bytea - escape binary data for use within SQL as type `bytea`
+--------------------------------------------------------------------
+Syntax::
+
+  escape_bytea(datastring)
+
+Parameters:
+  :datastring: string containing the binary data that is to be escaped
+
+Return type:
+  :str: the escaped string
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  Escapes binary data for use within an SQL command with the type `bytea`.
+  As with `escape_string`, this is only used when inserting data directly
+  into an SQL command string.
+  Note that there is also a `pgobject` method with the same name
+  which takes connection properties into account.
+
+Example::
+
+  picture = file('garfield.gif', 'rb').read()
+  con.query("update pictures set img='%s' where name='Garfield'"
+    % escape_bytea(picture))
+
+unescape_bytea -- unescape `bytea` data that has been retrieved as text
+-----------------------------------------------------------------------
+Syntax::
+
+  unescape_bytea(string)
+
+Parameters:
+  :datastring: the `bytea` data string that has been retrieved as text
+
+Return type:
+  :str: string containing the binary data
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+
+Description:
+  Converts an escaped string representation of binary data into binary
+  data - the reverse of `escape_bytea`. This is needed when retrieving
+  `bytea` data with the `getresult()` or `dictresult()` method.
+
+Example::
+
+  picture = unescape_bytea(con.query(
+    "select img from pictures where name='Garfield'").getresult[0][0])
+  file('garfield.gif', 'wb').write(picture)
+
+set_decimal -- set a decimal type to be used for numeric values
+---------------------------------------------------------------
+Syntax::
+
+  set_decimal(cls)
+
+Parameters:
+  :cls: the Python class to be used for PostgreSQL numeric values
+
+Description:
+  This function can be used to specify the Python class that shall be
+  used by PyGreSQL to hold PostgreSQL numeric values. The default class
+  is decimal.Decimal if available, otherwise the float type is used.
+
+Module constants
+----------------
+Some constants are defined in the module dictionary.
+They are intended to be used as parameters for methods calls.
+You should refer to the libpq description in the PostgreSQL user manual
+for more information about them. These constants are:
+
+:version, __version__: constants that give the current version.
+:INV_READ, INV_WRITE: large objects access modes,
+  used by `(pgobject.)locreate` and `(pglarge.)open`
+:SEEK_SET, SEEK_CUR, SEEK_END: positional flags,
+  used by `(pglarge.)seek`
+
+
+Connection objects: pgobject
+============================
+This object handles a connection to a PostgreSQL database. It embeds and
+hides all the parameters that define this connection, thus just leaving really
+significant parameters in function calls.
+
+.. caution:: Some methods give direct access to the connection socket.
+  *Do not use them unless you really know what you are doing.*
+  If you prefer disabling them,
+  set the -DNO_DIRECT option in the Python setup file.
+
+  **These methods are specified by the tag [DA].**
+
+.. note:: Some other methods give access to large objects
+  (refer to PostgreSQL user manual for more information about these).
+  If you want to forbid access to these from the module,
+  set the -DNO_LARGE option in the Python setup file.
+
+  **These methods are specified by the tag [LO].**
+
+query - executes a SQL command string
+-------------------------------------
+Syntax::
+
+  query(command)
+
+Parameters:
+  :command: SQL command (string)
+
+Return type:
+  :pgqueryobject, None: result values
+
+Exceptions raised:
+  :TypeError: bad argument type, or too many arguments
+  :ValueError: empty SQL query or lost connection
+  :pg.ProgrammingError: error in query
+  :pg.InternalError': error during query processing
+
+Description:
+  This method simply sends a SQL query to the database. If the query is an
+  insert statement that inserted exactly one row into a table that has OIDs, the
+  return value is the OID of the newly inserted row. If the query is an update
+  or delete statement, or an insert statement that did not insert exactly one
+  row in a table with OIDs, then the numer of rows affected is returned as a
+  string. If it is a statement that returns rows as a result (usually a select
+  statement, but maybe also an "insert/update ... returning" statement), this
+  method returns a `pgqueryobject` that can be accessed via the `getresult()`
+  or `dictresult()` method or simply printed. Otherwise, it returns `None`.
+
+reset - resets the connection
+-----------------------------
+Syntax::
+
+  reset()
+
+Parameters:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: too many (any) arguments
+
+Description:
+  This method resets the current database connection.
+
+cancel - abandon processing of current SQL command
+--------------------------------------------------
+Syntax::
+
+  cancel()
+
+Parameters:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: too many (any) arguments
+
+Description:
+  This method requests that the server abandon processing
+  of the current SQL command.
+
+close - close the database connection
+-------------------------------------
+Syntax::
+
+  close()
+
+Parameters:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: too many (any) arguments
+
+Description:
+  This method closes the database connection. The connection will
+  be closed in any case when the connection is deleted but this
+  allows you to explicitly close it. It is mainly here to allow
+  the DB-SIG API wrapper to implement a close function.
+
+fileno - returns the socket used to connect to the database
+-----------------------------------------------------------
+Syntax::
+
+  fileno()
+
+Parameters:
+  None
+
+Exceptions raised:
+  :TypeError: too many (any) arguments
+
+Description:
+  This method returns the underlying socket id used to connect
+  to the database. This is useful for use in select calls, etc.
+
+getnotify - gets the last notify from the server
+------------------------------------------------
+Syntax::
+
+  getnotify()
+
+Parameters:
+  None
+
+Return type:
+  :tuple, None: last notify from server
+
+Exceptions raised:
+  :TypeError: too many parameters
+  :TypeError: invalid connection
+
+Description:
+  This methods try to get a notify from the server (from the SQL statement
+  NOTIFY). If the server returns no notify, the methods returns None.
+  Otherwise, it returns a tuple (couple) `(relname, pid)`, where `relname`
+  is the name of the notify and `pid` the process id of the connection that
+  triggered the notify. Remember to do a listen query first otherwise
+  getnotify() will always return `None`.
+
+inserttable - insert a list into a table
+----------------------------------------
+Syntax::
+
+  inserttable(table, values)
+
+Parameters:
+  :table: the table name (string)
+  :values: list of rows values (list)
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection, bad argument type, or too many arguments
+  :MemoryError: insert buffer could not be allocated
+  :ValueError: unsupported values
+
+Description:
+  This method allow to *quickly* insert large blocks of data in a table:
+  It inserts the whole values list into the given table. Internally, it
+  uses the COPY command of the PostgreSQL database. The list is a list
+  of tuples/lists that define the values for each inserted row. The rows
+  values may contain string, integer, long or double (real) values.
+
+.. caution:: *Be very careful*:
+  This method doesn't typecheck the fields according to the table definition;
+  it just look whether or not it knows how to handle such types.
+
+putline - writes a line to the server socket [DA]
+-------------------------------------------------
+Syntax::
+
+  putline(line)
+
+Parameters:
+  :line: line to be written (string)
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+
+Description:
+  This method allows to directly write a string to the server socket.
+
+getline - gets a line from server socket [DA]
+---------------------------------------------
+Syntax::
+
+  getline()
+
+Parameters:
+  None
+
+Return type:
+  :string: the line read
+
+Exceptions raised:
+  :TypeError: invalid connection
+  :TypeError: too many parameters
+  :MemoryError: buffer overflow
+
+Description:
+  This method allows to directly read a string from the server socket.
+
+endcopy - synchronizes client and server [DA]
+---------------------------------------------
+Syntax::
+
+  endcopy()
+
+Parameters:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection
+  :TypeError: too many parameters
+
+Description:
+  The use of direct access methods may desynchonize client and server.
+  This method ensure that client and server will be synchronized.
+
+locreate - create a large object in the database [LO]
+-----------------------------------------------------
+Syntax::
+
+  locreate(mode)
+
+Parameters:
+  :mode: large object create mode
+
+Return type:
+  :pglarge: object handling the PostGreSQL large object
+
+Exceptions raised:
+
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+  :pg.OperationalError: creation error
+
+Description:
+  This method creates a large object in the database. The mode can be defined
+  by OR-ing the constants defined in the pg module (INV_READ, INV_WRITE and
+  INV_ARCHIVE). Please refer to PostgreSQL user manual for a description of
+  the mode values.
+
+getlo - build a large object from given oid [LO]
+------------------------------------------------
+Syntax::
+
+  getlo(oid)
+
+Parameters:
+  :oid: OID of the existing large object (integer)
+
+Return type:
+  :pglarge: object handling the PostGreSQL large object
+
+Exceptions raised:
+  :TypeError:  invalid connection, bad parameter type, or too many parameters
+  :ValueError: bad OID value (0 is invalid_oid)
+
+Description:
+  This method allows to reuse a formerly created large object through the
+  `pglarge` interface, providing the user have its OID.
+
+loimport - import a file to a large object [LO]
+-----------------------------------------------
+Syntax::
+
+  loimport(name)
+
+Parameters:
+  :name: the name of the file to be imported (string)
+
+Return type:
+  :pglarge: object handling the PostGreSQL large object
+
+Exceptions raised:
+  :TypeError: invalid connection, bad argument type, or too many arguments
+  :pg.OperationalError: error during file import
+
+Description:
+  This methods allows to create large objects in a very simple way. You just
+  give the name of a file containing the data to be use.
+
+Object attributes
+-----------------
+Every `pgobject` defines a set of read-only attributes that describe the
+connection and its status. These attributes are:
+
+  :host:             the host name of the server (string)
+  :port:             the port of the server (integer)
+  :db:               the selected database (string)
+  :options:          the connection options (string)
+  :tty:              the connection debug terminal (string)
+  :user:             user name on the database system (string)
+  :protocol_version: the frontend/backend protocol being used (integer)
+  :server_version:   the backend version (integer, e.g. 80305 for 8.3.5)
+  :status:           the status of the connection (integer: 1 - OK, 0 - bad)
+  :error:            the last warning/error message from the server (string)
+
+
+The DB wrapper class
+====================
+The `pgobject` methods are wrapped in the class `DB`.
+The preferred way to use this module is as follows::
+
+  import pg
+
+  db = pg.DB(...) # see below
+
+  for r in db.query( # just for example
+      """SELECT foo,bar
+         FROM foo_bar_table
+         WHERE foo !~ bar"""
+      ).dictresult():
+
+      print '%(foo)s %(bar)s' % r
+
+This class can be subclassed as in this example::
+
+  import pg
+
+  class DB_ride(pg.DB):
+    """This class encapsulates the database functions and the specific
+       methods for the ride database."""
+
+    def __init__(self):
+        """Opens a database connection to the rides database"""
+
+        pg.DB.__init__(self, dbname = 'ride')
+        self.query("""SET DATESTYLE TO 'ISO'""")
+
+    [Add or override methods here]
+
+The following describes the methods and variables of this class.
+
+Initialization
+--------------
+The DB class is initialized with the same arguments as the connect
+function described in section 2. It also initializes a few
+internal variables. The statement `db = DB()` will open the
+local database with the name of the user just like connect() does.
+
+You can also initialize the DB class with an existing `_pg` or `pgdb`
+connection. Pass this connection as a single unnamed parameter, or as a
+single parameter named `db`. This allows you to use all of the methods
+of the DB class with a DB-API 2 compliant connection. Note that the
+`close()` and `reopen()` methods are inoperative in this case.
+
+
+
+pkey - return the primary key of a table
+----------------------------------------
+Syntax::
+
+  pkey(table)
+
+Parameters:
+  :table: name of table
+
+Return type:
+  :string: Name of the field which is the primary key of the table
+
+Description:
+  This method returns the primary key of a table. For composite primary
+  keys, the return value will be a frozenset. Note that this raises an
+  exception if the table does not have a primary key.
+
+get_databases - get list of databases in the system
+---------------------------------------------------
+Syntax::
+
+  get_databases()
+
+Parameters:
+  None
+
+Return type:
+  :list: all databases in the system
+
+Description:
+  Although you can do this with a simple select, it is added here for
+  convenience.
+
+get_relations - get list of relations in connected database
+-----------------------------------------------------------
+Syntax::
+
+  get_relations(kinds)
+
+Parameters:
+  :kinds: a string or sequence of type letters
+
+Description:
+  The type letters are `r` = ordinary table, `i` = index, `S` = sequence,
+  `v` = view, `c` = composite type, `s` = special, `t` = TOAST table.
+  If `kinds` is None or an empty string, all relations are returned (this is
+  also the default). Although you can do this with a simple select, it is
+  added here for convenience.
+
+get_tables - get list of tables in connected database
+-----------------------------------------------------
+Syntax::
+
+  get_tables()
+
+Parameters:
+  None
+
+Returns:
+  :list: all tables in connected database
+
+Description:
+  Although you can do this with a simple select, it is added here for
+  convenience.
+
+get_attnames - get the attribute names of a table
+-------------------------------------------------
+Syntax::
+
+  get_attnames(table)
+
+Parameters:
+  :table: name of table
+
+Returns:
+  :dictionary:  The keys are the attribute names,
+    the values are the type names of the attributes.
+
+Description:
+  Given the name of a table, digs out the set of attribute names.
+
+has_table_privilege - check whether current user has specified table privilege
+------------------------------------------------------------------------------
+Syntax::
+
+    has_table_privilege(table, privilege)
+
+Parameters:
+  :table:     name of table
+  :privilege: privilege to be checked - default is 'select'
+
+Description:
+  Returns True if the current user has the specified privilege for the table.
+
+get - get a row from a database table or view
+---------------------------------------------
+Syntax::
+
+ get(table, arg, [keyname])
+
+Parameters:
+  :table:   name of table or view
+  :arg:     either a dictionary or the value to be looked up
+  :keyname: name of field to use as key (optional)
+
+Return type:
+  :dictionary: The keys are the attribute names,
+    the values are the row values.
+
+Description:
+  This method is the basic mechanism to get a single row. It assumes
+  that the key specifies a unique row. If `keyname` is not specified
+  then the primary key for the table is used. If `arg` is a dictionary
+  then the value for the key is taken from it and it is modified to
+  include the new values, replacing existing values where necessary.
+  For a composite key, `keyname` can also be a sequence of key names.
+  The OID is also put into the dictionary if the table has one, but in
+  order to allow the caller to work with multiple tables, it is munged
+  as `oid(schema.table)`.
+
+insert - insert a row into a database table
+-------------------------------------------
+Syntax::
+
+  insert(table, [d,] [return_changes,] [key = val, ...])
+
+Parameters:
+  :table:          name of table
+  :d:              optional dictionary of values
+  :return_changes: Return values in new row - default True
+
+Return type:
+  :dictionary:     The dictionary of values inserted
+
+Description:
+  This method inserts a row into a table.  If the optional dictionary is
+  not supplied then the required values must be included as keyword/value
+  pairs.  If a dictionary is supplied then any keywords provided will be
+  added to or replace the entry in the dictionary.
+
+  The dictionary is then, if possible, reloaded with the values actually
+  inserted in order to pick up values modified by rules, triggers, etc.
+
+  Due to the way that this function works in PostgreSQL versions below
+  8.2, you may find inserts taking longer and longer as your table gets
+  bigger.  If this happens and it is a table with OID but no primary key
+  you can overcome this problem by simply adding an index onto the OID of
+  any table that you think may get large over time. You may also consider
+  using the inserttable() method described in section 3.  
+
+  Note: With PostgreSQL versions before 8.2 the table being inserted to
+  must have a primary key or an OID to use this method properly.  If not
+  then the dictionary will not be filled in as described.  Also, if this
+  method is called within a transaction, the transaction will abort.
+
+  Note: The method currently doesn't support insert into views
+  although PostgreSQL does.
+
+update - update a row in a database table
+-----------------------------------------
+Syntax::
+
+  update(table, [d,] [key = val, ...])
+
+Parameters:
+  :table: name of table
+  :d:     optional dictionary of values
+
+Return type:
+  :dictionary: the new row
+
+Description:
+  Similar to insert but updates an existing row.  The update is based on the
+  OID value as munged by get or passed as keyword, or on the primary key of
+  the table.  The dictionary is modified, if possible, to reflect any changes
+  caused by the update due to triggers, rules, default values, etc.
+
+  Like insert, the dictionary is optional and updates will be performed
+  on the fields in the keywords.  There must be an OID or primary key
+  either in the dictionary where the OID must be munged, or in the keywords
+  where it can be simply the string "oid".
+
+clear - clears row values in memory
+-----------------------------------
+Syntax::
+
+ clear(table, [a])
+
+Parameters:
+  :table: name of table
+  :a:     optional dictionary of values
+
+Return type:
+  :dictionary: an empty row
+
+Description:
+  This method clears all the attributes to values determined by the types.
+  Numeric types are set to 0, Booleans are set to 'f', dates are set
+  to 'now()' and everything else is set to the empty string.
+  If the array argument is present, it is used as the array and any entries
+  matching attribute names are cleared with everything else left unchanged.
+
+  If the dictionary is not supplied a new one is created.
+
+delete - delete a row from a database table
+-------------------------------------------
+Syntax::
+
+  delete(table, [d,] [key = val, ...])
+
+Parameters:
+  :table: name of table
+  :d:     optional dictionary of values
+
+Returns:
+  None
+
+Description:
+  This method deletes the row from a table.  It deletes based on the OID value
+  as munged by get or passed as keyword, or on the primary key of the table.
+  The return value is the number of deleted rows (i.e. 0 if the row did not
+  exist and 1 if the row was deleted).
+
+escape_string - escape a string for use within SQL
+--------------------------------------------------
+Syntax::
+
+  escape_string(string)
+
+Parameters:
+  :string: the string that is to be escaped
+
+Return type:
+  :str: the escaped string
+
+Description:
+  Similar to the module function with the same name, but the
+  behavior of this method is adjusted depending on the connection properties
+  (such as character encoding).
+
+escape_bytea - escape binary data for use within SQL as type `bytea`
+--------------------------------------------------------------------
+Syntax::
+
+  escape_bytea(datastring)
+
+Parameters:
+  :datastring: string containing the binary data that is to be escaped
+
+Return type:
+  :str: the escaped string
+
+Description:
+  Similar to the module function with the same name, but the
+  behavior of this method is adjusted depending on the connection properties
+  (in particular, whether standard-conforming strings are enabled).
+
+unescape_bytea -- unescape `bytea` data that has been retrieved as text
+-----------------------------------------------------------------------
+Syntax::
+
+  unescape_bytea(string)
+
+Parameters:
+  :datastring: the `bytea` data string that has been retrieved as text
+
+Return type:
+  :str: string containing the binary data
+
+Description:
+  See the module function with the same name.
+
+
+pgqueryobject methods
+=====================
+
+getresult - get query values as list of tuples
+-----------------------------------------------
+Syntax::
+
+  getresult()
+
+Parameters:
+  None
+
+Return type:
+  :list: result values as a list of tuples
+
+Exceptions raised:
+  :TypeError: too many parameters
+  :pg.InternalError: invalid previous result
+
+Description:
+  This method returns the list of the values returned by the query.
+  More information about this result may be accessed using listfields(),
+  fieldname() and fieldnum() methods.
+
+dictresult - get query values as list of dictionaries
+-----------------------------------------------------
+Syntax::
+
+  dictresult()
+
+Parameters:
+  None
+
+Return type:
+  :list: result values as a list of dictionaries
+
+Exceptions raised:
+  :TypeError: too many parameters
+  :pg.InternalError: invalid previous result
+
+Description:
+  This method returns the list of the values returned by the query
+  with each tuple returned as a dictionary with the field names
+  used as the dictionary index.
+
+
+listfields - lists fields names of previous query result
+--------------------------------------------------------
+Syntax::
+
+  listfields()
+
+Parameters:
+  None
+
+Return type:
+  :list: field names
+
+Exceptions raised:
+  :TypeError: too many parameters
+  :pg.InternalError: invalid previous result, or lost connection
+
+Description:
+  This method returns the list of names of the fields defined for the
+  query result. The fields are in the same order as the result values.
+
+fieldname, fieldnum - field name/number conversion
+--------------------------------------------------
+Syntax::
+
+  fieldname(i)
+
+Parameters:
+  :i: field number (integer)
+
+Return type:
+  :string: field name
+
+Exceptions raised:
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+  :ValueError: invalid field number
+  :pg.InternalError: invalid previous result, or lost connection
+
+Description:
+  This method allows to find a field name from its rank number. It can be
+  useful for displaying a result. The fields are in the same order as the
+  result values.
+
+Syntax::
+
+  fieldnum(name)
+
+Parameters:
+  :name: field name (string)
+
+Return type:
+  :integer: field number
+
+Exceptions raised:
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+  :ValueError: unknown field name
+  :pg.InternalError: invalid previous result, or lost connection
+
+Description:
+  This method returns a field number from its name. It can be used to
+  build a function that converts result list strings to their correct
+  type, using a hardcoded table definition. The number returned is the
+  field rank in the result values list.
+
+ntuples - return number of tuples in query object
+-------------------------------------------------
+Syntax::
+
+  ntuples()
+
+Parameters:
+  None
+
+Return type:
+  :integer: number of tuples in `pgqueryobject`
+
+Exceptions raised:
+  :TypeError: Too many arguments.
+
+Description:
+  This method returns the number of tuples found in a query.
+
+
+Large objects: pglarge
+======================
+This object handles all the request concerning a PostgreSQL large object. It
+embeds and hides all the "recurrent" variables (object OID and connection),
+exactly in the same way `pgobjects` do, thus only keeping significant
+parameters in function calls. It keeps a reference to the `pgobject` used for
+its creation, sending requests though with its parameters. Any modification but
+dereferencing the `pgobject` will thus affect the `pglarge` object.
+Dereferencing the initial `pgobject` is not a problem since Python won't
+deallocate it before the `pglarge` object dereference it.
+All functions return a generic error message on call error, whatever the
+exact error was. The `error` attribute of the object allow to get the exact
+error message.
+
+See also the PostgreSQL programmer's guide for more information about the
+large object interface.
+
+open - opens a large object
+---------------------------
+Syntax::
+
+  open(mode)
+
+Parameters:
+  :mode: open mode definition (integer)
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+  :IOError: already opened object, or open error
+
+Description:
+  This method opens a large object for reading/writing, in the same way than
+  the Unix open() function. The mode value can be obtained by OR-ing the
+  constants defined in the pgmodule (INV_READ, INV_WRITE).
+
+close - closes a large object
+-----------------------------
+Syntax::
+
+  close()
+
+Parameters:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection
+  :TypeError: too many parameters
+  :IOError: object is not opened, or close error
+
+Description:
+  This method closes a previously opened large object, in the same way than
+  the Unix close() function.
+
+read, write, tell, seek, unlink - file like large object handling
+-----------------------------------------------------------------
+Syntax::
+
+  read(size)
+
+Parameters:
+  :size: maximal size of the buffer to be read
+
+Return type:
+  :sized string: the read buffer
+
+Exceptions raised:
+  :TypeError: invalid connection, invalid object,
+    bad parameter type, or too many parameters
+  :ValueError: if `size` is negative
+  :IOError: object is not opened, or read error
+
+Description:
+  This function allows to read data from a large object, starting at current
+  position.
+
+Syntax::
+
+  write(string)
+
+Parameters:
+  (sized) string - buffer to be written
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection, bad parameter type, or too many parameters
+  :IOError: object is not opened, or write error
+
+Description:
+  This function allows to write data to a large object, starting at current
+  position.
+
+Syntax::
+
+  seek(offset, whence)
+
+Parameters:
+  :offset: position offset
+  :whence: positional parameter
+
+Return type:
+  :integer: new position in object
+
+Exceptions raised:
+  :TypeError: binvalid connection or invalid object,
+    bad parameter type, or too many parameters
+  :IOError: object is not opened, or seek error
+
+Description:
+  This method allows to move the position cursor in the large object. The
+  whence parameter can be obtained by OR-ing the constants defined in the
+  `pg` module (`SEEK_SET`, `SEEK_CUR`, `SEEK_END`).
+
+Syntax::
+
+  tell()
+
+Parameters:
+  None
+
+Return type:
+  :integer: current position in large object
+
+Exceptions raised:
+  :TypeError: invalid connection or invalid object
+  :TypeError: too many parameters
+  :IOError: object is not opened, or seek error
+
+Description:
+  This method allows to get the current position in the large object.
+
+Syntax::
+
+  unlink()
+
+Parameter:
+  None
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection or invalid object
+  :TypeError: too many parameters
+  :IOError: object is not closed, or unlink error
+
+Description:
+  This methods unlinks (deletes) the PostgreSQL large object.
+
+size - gives the large object size
+----------------------------------
+
+Syntax::
+
+  size()
+
+Parameters:
+  None
+
+Return type:
+  :integer: the large object size
+
+Exceptions raised:
+  :TypeError: invalid connection or invalid object
+  :TypeError: too many parameters
+  :IOError: object is not opened, or seek/tell error
+
+Description:
+  This (composite) method allows to get the size of a large object. It was
+  implemented because this function is very useful for a web interfaced
+  database. Currently, the large object needs to be opened first.
+
+export - saves a large object to a file
+---------------------------------------
+Syntax::
+
+  export(name)
+
+Parameters:
+  :name: file to be created
+
+Return type:
+  None
+
+Exceptions raised:
+  :TypeError: invalid connection or invalid object,
+    bad parameter type, or too many parameters
+  :IOError:   object is not closed, or export error
+
+Description:
+  This methods allows to dump the content of a large object in a very simple
+  way. The exported file is created on the host of the program, not the
+  server host.
+
+Object attributes
+-----------------
+`pglarge` objects define a read-only set of attributes that allow to get
+some information about it. These attributes are:
+
+  :oid:   the OID associated with the object
+  :pgcnx: the `pgobject` associated with the object
+  :error: the last warning/error message of the connection
+
+.. caution:: *Be careful*:
+  In multithreaded environments, `error` may be modified by another thread
+  using the same pgobject. Remember these object are shared, not duplicated.
+  You should provide some locking to be able if you want to check this.
+  The `oid` attribute is very interesting because it allow you reuse the OID
+  later, creating the `pglarge` object with a `pgobject` getlo() method call.

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.html
new file mode 100644
index 0000000..84962f4
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL Programming Information</title>
+<meta content="The DB-API compliant interface (pgdb module)" name="description" />
+<meta content="PyGreSQL, pgdb, DB-API, PostGreSQL, Python" name="keywords" />
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-programming-information">
+<h1 class="title">PyGreSQL Programming Information</h1>
+<h2 class="subtitle" id="the-db-api-compliant-interface-pgdb-module">The DB-API compliant interface (pgdb module)</h2>
+<div class="contents topic">
+<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
+<ul class="auto-toc simple">
+<li><a class="reference" href="#introduction" id="id1" name="id1">1&nbsp;&nbsp;&nbsp;Introduction</a></li>
+<li><a class="reference" href="#the-pgdb-module" id="id2" name="id2">2&nbsp;&nbsp;&nbsp;The pgdb module</a></li>
+</ul>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id1" id="introduction" name="introduction">1&nbsp;&nbsp;&nbsp;Introduction</a></h1>
+<p>You may either choose to use the
+<a class="reference" href="pg.html">&quot;classic&quot; PyGreSQL interface</a>
+provided by the <cite>pg</cite> module or else the
+<a class="reference" href="pgdb.html">DB-API 2.0 compliant interface</a>
+provided by the <cite>pgdb</cite> module.</p>
+<p><a class="reference" href="http://www.python.org/dev/peps/pep-0249/">DB-API 2.0</a>
+(Python Database API Specification v2.0)
+is a specification for connecting to databases (not only PostGreSQL)
+from Python that has been developed by the Python DB-SIG in 1999.</p>
+<p>The following documentation covers only the newer <cite>pgdb</cite> API.</p>
+<dl class="docutils">
+<dt>The authoritative programming information for the DB-API is availabe at</dt>
+<dd><a class="reference" href="http://www.python.org/dev/peps/pep-0249/">http://www.python.org/dev/peps/pep-0249/</a></dd>
+<dt>A tutorial-like introduction to the DB-API can be found at</dt>
+<dd><a class="reference" href="http://www2.linuxjournal.com/lj-issues/issue49/2605.html">http://www2.linuxjournal.com/lj-issues/issue49/2605.html</a></dd>
+</dl>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id2" id="the-pgdb-module" name="the-pgdb-module">2&nbsp;&nbsp;&nbsp;The pgdb module</a></h1>
+<div class="note">
+<p class="first admonition-title">Note</p>
+<p class="last">This section of the documentation still needs to be written.</p>
+</div>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.txt
new file mode 100644
index 0000000..b333c01
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.txt
@@ -0,0 +1,42 @@
+================================
+PyGreSQL Programming Information
+================================
+
+--------------------------------------------
+The DB-API compliant interface (pgdb module)
+--------------------------------------------
+
+.. meta::
+   :description: The DB-API compliant interface (pgdb module)
+   :keywords: PyGreSQL, pgdb, DB-API, PostGreSQL, Python
+
+.. sectnum::
+.. contents:: Contents
+
+
+Introduction
+============
+You may either choose to use the
+`"classic" PyGreSQL interface <pg.html>`_
+provided by the `pg` module or else the
+`DB-API 2.0 compliant interface <pgdb.html>`_
+provided by the `pgdb` module.
+
+`DB-API 2.0 <http://www.python.org/dev/peps/pep-0249/>`_
+(Python Database API Specification v2.0)
+is a specification for connecting to databases (not only PostGreSQL)
+from Python that has been developed by the Python DB-SIG in 1999.
+
+The following documentation covers only the newer `pgdb` API.
+
+The authoritative programming information for the DB-API is availabe at
+  http://www.python.org/dev/peps/pep-0249/
+
+A tutorial-like introduction to the DB-API can be found at
+  http://www2.linuxjournal.com/lj-issues/issue49/2605.html
+
+
+The pgdb module
+===============
+.. note:: This section of the documentation still needs to be written.
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.html
new file mode 100644
index 0000000..656f8cd
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.html
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL - Python interface for PostgreSQL</title>
+<meta content="PyGreSQL - Python interface for PostgreSQL" name="description" />
+<meta content="PyGreSQL, PostGreSQL, Python" name="keywords" />
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-python-interface-for-postgresql">
+<h1 class="title">PyGreSQL - Python interface for PostgreSQL</h1>
+<h2 class="subtitle" id="pygresql-version-4-0">PyGreSQL version 4.0</h2>
+<div class="contents topic">
+<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
+<ul class="simple">
+<li><a class="reference" href="#copyright-notice" id="id1" name="id1">Copyright notice</a></li>
+<li><a class="reference" href="#introduction" id="id2" name="id2">Introduction</a></li>
+<li><a class="reference" href="#where-to-get" id="id3" name="id3">Where to get ... ?</a><ul>
+<li><a class="reference" href="#home-sites-of-the-different-packages" id="id4" name="id4">Home sites of the different packages</a></li>
+<li><a class="reference" href="#download-pygresql-here" id="id5" name="id5">Download PyGreSQL here</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#distribution-files" id="id6" name="id6">Distribution files</a></li>
+<li><a class="reference" href="#installation" id="id7" name="id7">Installation</a></li>
+<li><a class="reference" href="#information-and-support" id="id8" name="id8">Information and support</a><ul>
+<li><a class="reference" href="#for-general-information" id="id9" name="id9">For general information</a></li>
+<li><a class="reference" href="#for-support" id="id10" name="id10">For support</a></li>
+<li><a class="reference" href="#pygresql-programming-information" id="id11" name="id11">PyGreSQL programming information</a></li>
+</ul>
+</li>
+<li><a class="reference" href="#changelog-and-future" id="id12" name="id12">ChangeLog and Future</a></li>
+</ul>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id1" id="copyright-notice" name="copyright-notice">Copyright notice</a></h1>
+<p>Written by D'Arcy J.M. Cain (<a class="reference" href="mailto:darcy&#64;druid.net">darcy&#64;druid.net</a>)</p>
+<p>Based heavily on code written by Pascal Andre (<a class="reference" href="mailto:andre&#64;chimay.via.ecp.fr">andre&#64;chimay.via.ecp.fr</a>)</p>
+<p>Copyright (c) 1995, Pascal Andre</p>
+<p>Further modifications copyright (c) 1997-2008 by D'Arcy J.M. Cain
+(<a class="reference" href="mailto:darcy&#64;druid.net">darcy&#64;druid.net</a>)</p>
+<p>Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without a written agreement
+is hereby granted, provided that the above copyright notice and this
+paragraph and the following two paragraphs appear in all copies or in any
+new file that contains a substantial portion of this file.</p>
+<p>IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE
+AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
+<p>THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN &quot;AS IS&quot; BASIS, AND THE
+AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ENHANCEMENTS, OR MODIFICATIONS.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id2" id="introduction" name="introduction">Introduction</a></h1>
+<p><strong>PostgreSQL</strong> is a highly scalable, SQL compliant, open source
+object-relational database management system. With more than 15 years
+of development history, it is quickly becoming the de facto database
+for enterprise level open source solutions.
+Best of all, PostgreSQL's source code is available under the most liberal
+open source license: the BSD license.</p>
+<p><strong>Python</strong> Python is an interpreted, interactive, object-oriented
+programming language. It is often compared to Tcl, Perl, Scheme or Java.
+Python combines remarkable power with very clear syntax. It has modules,
+classes, exceptions, very high level dynamic data types, and dynamic typing.
+There are interfaces to many system calls and libraries, as well as to
+various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules
+are easily written in C or C++. Python is also usable as an extension
+language for applications that need a programmable interface.
+The Python implementation is copyrighted but freely usable and distributable,
+even for commercial use.</p>
+<p><strong>PyGreSQL</strong> is a Python module that interfaces to a PostgreSQL database.
+It embeds the PostgreSQL query library to allow easy use of the powerful
+PostgreSQL features from a Python script.</p>
+<p>PyGreSQL is developed and tested on a NetBSD system, but it should also
+run on most other platforms where PostgreSQL and Python is running.
+It is based on the PyGres95 code written by Pascal Andre (<a class="reference" href="mailto:andre&#64;chimay.via.ecp.fr">andre&#64;chimay.via.ecp.fr</a>).
+D'Arcy (<a class="reference" href="mailto:darcy&#64;druid.net">darcy&#64;druid.net</a>) renamed it to PyGreSQL starting with
+version 2.0 and serves as the &quot;BDFL&quot; of PyGreSQL.</p>
+<p>The current version PyGreSQL 4.0 needs PostgreSQL 7.2 and Python 2.3 or above.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id3" id="where-to-get" name="where-to-get">Where to get ... ?</a></h1>
+<div class="section">
+<h2><a class="toc-backref" href="#id4" id="home-sites-of-the-different-packages" name="home-sites-of-the-different-packages">Home sites of the different packages</a></h2>
+<dl class="docutils">
+<dt><strong>Python</strong>:</dt>
+<dd><a class="reference" href="http://www.python.org">http://www.python.org</a></dd>
+<dt><strong>PostgreSQL</strong>:</dt>
+<dd><a class="reference" href="http://www.postgresql.org">http://www.postgresql.org</a></dd>
+<dt><strong>PyGreSQL</strong>:</dt>
+<dd><a class="reference" href="http://www.pygresql.org">http://www.pygresql.org</a></dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id5" id="download-pygresql-here" name="download-pygresql-here">Download PyGreSQL here</a></h2>
+<dl class="docutils">
+<dt>The <strong>released version of the source code</strong> is available at</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz</a></li>
+</ul>
+</dd>
+<dt>You can also check the latest <strong>pre-release version</strong> at</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-beta.tgz">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-beta.tgz</a></li>
+</ul>
+</dd>
+<dt>A <strong>Linux RPM</strong> can be picked up from</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/pygresql.i386.rpm">ftp://ftp.pygresql.org/pub/distrib/pygresql.i386.rpm</a></li>
+</ul>
+</dd>
+<dt>A <strong>NetBSD package</strong> is available in their pkgsrc collection</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/databases/py-postgresql/README.html">ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/databases/py-postgresql/README.html</a></li>
+</ul>
+</dd>
+<dt>A <strong>FreeBSD package</strong> is available in their ports collection</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/py-PyGreSQL/">http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/py-PyGreSQL/</a></li>
+</ul>
+</dd>
+<dt>A <strong>Win32 package</strong> for various Python versions is available at</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.3.exe">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.3.exe</a></li>
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.4.exe">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.4.exe</a></li>
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.5.exe">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.5.exe</a></li>
+<li><a class="reference" href="ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.6.exe">ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.6.exe</a></li>
+</ul>
+</dd>
+<dt>You can also find PyGreSQL on the <strong>Python Package Index</strong> at</dt>
+<dd><ul class="first last simple">
+<li><a class="reference" href="http://pypi.python.org/pypi/PyGreSQL/">http://pypi.python.org/pypi/PyGreSQL/</a></li>
+</ul>
+</dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id6" id="distribution-files" name="distribution-files">Distribution files</a></h1>
+<table border="1" class="docutils">
+<colgroup>
+<col width="15%" />
+<col width="85%" />
+</colgroup>
+<tbody valign="top">
+<tr><td>pgmodule.c</td>
+<td>the C Python module (_pg)</td>
+</tr>
+<tr><td>pg.py</td>
+<td>the &quot;classic&quot; PyGreSQL module</td>
+</tr>
+<tr><td>pgdb.py</td>
+<td>DB-SIG DB-API 2.0 compliant API wrapper for PygreSQL</td>
+</tr>
+<tr><td>docs/</td>
+<td><p class="first">documentation directory</p>
+<p>Contains: readme.txt, announce.txt, install.txt,
+changelog.txt, future.txt, pg.txt and pgdb.txt.</p>
+<p class="last">All text files are in ReST format, so HTML versions
+can be easily created with buildhtml.py from docutils.</p>
+</td>
+</tr>
+<tr><td>tutorial/</td>
+<td><p class="first">demos directory</p>
+<p>Contains: basics.py, syscat.py, advanced.py and func.py.</p>
+<p class="last">The samples here have been taken from the
+PostgreSQL manual and were used for module testing.
+They demonstrate some PostgreSQL features.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id7" id="installation" name="installation">Installation</a></h1>
+<p>You will find the installing instructions in
+<a class="reference" href="install.html">install.txt</a>.</p>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id8" id="information-and-support" name="information-and-support">Information and support</a></h1>
+<div class="section">
+<h2><a class="toc-backref" href="#id9" id="for-general-information" name="for-general-information">For general information</a></h2>
+<dl class="docutils">
+<dt><strong>Python</strong>:</dt>
+<dd><a class="reference" href="http://www.python.org">http://www.python.org</a></dd>
+<dt><strong>PostgreSQL</strong>:</dt>
+<dd><a class="reference" href="http://www.postgresql.org">http://www.postgresql.org</a></dd>
+<dt><strong>PyGreSQL</strong>:</dt>
+<dd><a class="reference" href="http://www.pygresql.org">http://www.pygresql.org</a></dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id10" id="for-support" name="for-support">For support</a></h2>
+<dl class="docutils">
+<dt><strong>Python</strong>:</dt>
+<dd>see <a class="reference" href="http://www.python.org/community/">http://www.python.org/community/</a></dd>
+<dt><strong>PostgreSQL</strong>:</dt>
+<dd>see <a class="reference" href="http://www.postgresql.org/support/">http://www.postgresql.org/support/</a></dd>
+<dt><strong>PyGreSQL</strong>:</dt>
+<dd><p class="first">Contact the PyGreSQL mailing list
+concerning PyGreSQL 2.0 and up.</p>
+<p>If you would like to proposes changes, please join the
+PyGreSQL mailing list and send context diffs there.</p>
+<p class="last">See <a class="reference" href="http://mailman.vex.net/mailman/listinfo/pygresql">http://mailman.vex.net/mailman/listinfo/pygresql</a>
+to join the mailing list.</p>
+</dd>
+</dl>
+<p>Please note that messages to individual developers will generally not be
+answered directly.  All questions, comments and code changes must be
+submitted to the mailing list for peer review and archiving.</p>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id11" id="pygresql-programming-information" name="pygresql-programming-information">PyGreSQL programming information</a></h2>
+<p>You may either choose to use the &quot;classic&quot; PyGreSQL interface
+provided by the <cite>pg</cite> module or else the newer DB-API 2.0
+compliant interface provided by the <cite>pgdb</cite> module.</p>
+<p><a class="reference" href="http://www.python.org/dev/peps/pep-0249/">DB-API 2.0</a>
+(Python Database API Specification v2.0)
+is a specification for connecting to databases (not only PostGreSQL)
+from Python that has been developed by the Python DB-SIG in 1999.</p>
+<p>The programming information is available in the files
+<a class="reference" href="pg.html">pg.txt</a> and <a class="reference" href="pgdb.html">pgdb.txt</a>.</p>
+<p>Note that PyGreSQL is not thread-safe on the connection level. Therefore
+we recommend using <cite>DBUtils &lt;http://www.webwareforpython.org/DBUtils&gt;</cite>
+for multi-threaded environments, which supports both PyGreSQL interfaces.</p>
+</div>
+</div>
+<div class="section">
+<h1><a class="toc-backref" href="#id12" id="changelog-and-future" name="changelog-and-future">ChangeLog and Future</a></h1>
+<p>The ChangeLog with past changes is in the file
+<a class="reference" href="changelog.html">changelog.txt</a>.</p>
+<p>A to do list and wish list is in the file
+<a class="reference" href="future.html">future.txt</a>.</p>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.txt
new file mode 100644
index 0000000..77ed8ef
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/readme.txt
@@ -0,0 +1,206 @@
+==========================================
+PyGreSQL - Python interface for PostgreSQL
+==========================================
+
+--------------------
+PyGreSQL version 4.0
+--------------------
+
+.. meta::
+   :description: PyGreSQL - Python interface for PostgreSQL
+   :keywords: PyGreSQL, PostGreSQL, Python
+
+.. contents:: Contents
+
+
+Copyright notice
+================
+
+Written by D'Arcy J.M. Cain (darcy@druid.net)
+
+Based heavily on code written by Pascal Andre (andre@chimay.via.ecp.fr)
+
+Copyright (c) 1995, Pascal Andre
+
+Further modifications copyright (c) 1997-2008 by D'Arcy J.M. Cain
+(darcy@druid.net)
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without a written agreement
+is hereby granted, provided that the above copyright notice and this
+paragraph and the following two paragraphs appear in all copies or in any
+new file that contains a substantial portion of this file.
+
+IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE
+AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE
+AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ENHANCEMENTS, OR MODIFICATIONS.
+
+
+Introduction
+============
+
+**PostgreSQL** is a highly scalable, SQL compliant, open source
+object-relational database management system. With more than 15 years
+of development history, it is quickly becoming the de facto database
+for enterprise level open source solutions.
+Best of all, PostgreSQL's source code is available under the most liberal
+open source license: the BSD license.
+
+**Python** Python is an interpreted, interactive, object-oriented
+programming language. It is often compared to Tcl, Perl, Scheme or Java.
+Python combines remarkable power with very clear syntax. It has modules,
+classes, exceptions, very high level dynamic data types, and dynamic typing.
+There are interfaces to many system calls and libraries, as well as to
+various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules
+are easily written in C or C++. Python is also usable as an extension
+language for applications that need a programmable interface.
+The Python implementation is copyrighted but freely usable and distributable,
+even for commercial use.
+
+**PyGreSQL** is a Python module that interfaces to a PostgreSQL database.
+It embeds the PostgreSQL query library to allow easy use of the powerful
+PostgreSQL features from a Python script.
+
+PyGreSQL is developed and tested on a NetBSD system, but it should also
+run on most other platforms where PostgreSQL and Python is running.
+It is based on the PyGres95 code written by Pascal Andre (andre@chimay.via.ecp.fr).
+D'Arcy (darcy@druid.net) renamed it to PyGreSQL starting with
+version 2.0 and serves as the "BDFL" of PyGreSQL.
+
+The current version PyGreSQL 4.0 needs PostgreSQL 7.2 and Python 2.3 or above.
+
+
+Where to get ... ?
+==================
+
+Home sites of the different packages
+------------------------------------
+**Python**:
+  http://www.python.org
+
+**PostgreSQL**:
+  http://www.postgresql.org
+
+**PyGreSQL**:
+  http://www.pygresql.org
+
+Download PyGreSQL here
+----------------------
+The **released version of the source code** is available at
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz
+You can also check the latest **pre-release version** at
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-beta.tgz
+A **Linux RPM** can be picked up from
+  * ftp://ftp.pygresql.org/pub/distrib/pygresql.i386.rpm
+A **NetBSD package** is available in their pkgsrc collection
+  * ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/databases/py-postgresql/README.html
+A **FreeBSD package** is available in their ports collection
+  * http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/py-PyGreSQL/
+A **Win32 package** for various Python versions is available at
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.3.exe
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.4.exe
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.5.exe
+  * ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-4.0.win32-py2.6.exe
+You can also find PyGreSQL on the **Python Package Index** at
+ * http://pypi.python.org/pypi/PyGreSQL/
+
+
+Distribution files
+==================
+
+========== =
+pgmodule.c the C Python module (_pg)
+pg.py      the "classic" PyGreSQL module
+pgdb.py    DB-SIG DB-API 2.0 compliant API wrapper for PygreSQL
+docs/      documentation directory
+
+           Contains: readme.txt, announce.txt, install.txt,
+           changelog.txt, future.txt, pg.txt and pgdb.txt.
+
+           All text files are in ReST format, so HTML versions
+           can be easily created with buildhtml.py from docutils.
+tutorial/  demos directory
+
+           Contains: basics.py, syscat.py, advanced.py and func.py.
+
+           The samples here have been taken from the
+           PostgreSQL manual and were used for module testing.
+           They demonstrate some PostgreSQL features.
+========== =
+
+
+Installation
+============
+You will find the installing instructions in
+`install.txt <install.html>`_.
+
+
+Information and support
+=======================
+
+For general information
+-----------------------
+**Python**:
+  http://www.python.org
+
+**PostgreSQL**:
+  http://www.postgresql.org
+
+**PyGreSQL**:
+  http://www.pygresql.org
+
+For support
+-----------
+**Python**:
+  see http://www.python.org/community/
+
+**PostgreSQL**:
+  see http://www.postgresql.org/support/
+
+**PyGreSQL**:
+  Contact the PyGreSQL mailing list
+  concerning PyGreSQL 2.0 and up.
+
+  If you would like to proposes changes, please join the
+  PyGreSQL mailing list and send context diffs there.
+
+  See http://mailman.vex.net/mailman/listinfo/pygresql
+  to join the mailing list.
+
+Please note that messages to individual developers will generally not be
+answered directly.  All questions, comments and code changes must be
+submitted to the mailing list for peer review and archiving.
+
+PyGreSQL programming information
+--------------------------------
+You may either choose to use the "classic" PyGreSQL interface
+provided by the `pg` module or else the newer DB-API 2.0
+compliant interface provided by the `pgdb` module.
+
+`DB-API 2.0 <http://www.python.org/dev/peps/pep-0249/>`_
+(Python Database API Specification v2.0)
+is a specification for connecting to databases (not only PostGreSQL)
+from Python that has been developed by the Python DB-SIG in 1999.
+
+The programming information is available in the files
+`pg.txt <pg.html>`_ and `pgdb.txt <pgdb.html>`_.
+
+Note that PyGreSQL is not thread-safe on the connection level. Therefore
+we recommend using `DBUtils <http://www.webwareforpython.org/DBUtils>`
+for multi-threaded environments, which supports both PyGreSQL interfaces.
+
+
+ChangeLog and Future
+====================
+The ChangeLog with past changes is in the file
+`changelog.txt <changelog.html>`_.
+
+A to do list and wish list is in the file
+`future.txt <future.html>`_.


[13/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/__init__.py b/tools/bin/ext/__init__.py
new file mode 100644
index 0000000..bd233a8
--- /dev/null
+++ b/tools/bin/ext/__init__.py
@@ -0,0 +1,290 @@
+
+from error import *
+
+from tokens import *
+from events import *
+from nodes import *
+
+from loader import *
+from dumper import *
+
+try:
+    from cyaml import *
+except ImportError:
+    pass
+
+def scan(stream, Loader=Loader):
+    """
+    Scan a YAML stream and produce scanning tokens.
+    """
+    loader = Loader(stream)
+    while loader.check_token():
+        yield loader.get_token()
+
+def parse(stream, Loader=Loader):
+    """
+    Parse a YAML stream and produce parsing events.
+    """
+    loader = Loader(stream)
+    while loader.check_event():
+        yield loader.get_event()
+
+def compose(stream, Loader=Loader):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding representation tree.
+    """
+    loader = Loader(stream)
+    if loader.check_node():
+        return loader.get_node()
+
+def compose_all(stream, Loader=Loader):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponsing representation trees.
+    """
+    loader = Loader(stream)
+    while loader.check_node():
+        yield loader.get_node()
+
+def load_all(stream, Loader=Loader):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponding Python objects.
+    """
+    loader = Loader(stream)
+    while loader.check_data():
+        yield loader.get_data()
+
+def load(stream, Loader=Loader):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding Python object.
+    """
+    loader = Loader(stream)
+    if loader.check_data():
+        return loader.get_data()
+
+def safe_load_all(stream):
+    """
+    Parse all YAML documents in a stream
+    and produce corresponding Python objects.
+    Resolve only basic YAML tags.
+    """
+    return load_all(stream, SafeLoader)
+
+def safe_load(stream):
+    """
+    Parse the first YAML document in a stream
+    and produce the corresponding Python object.
+    Resolve only basic YAML tags.
+    """
+    return load(stream, SafeLoader)
+
+def emit(events, stream=None, Dumper=Dumper,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None):
+    """
+    Emit YAML parsing events into a stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break)
+    for event in events:
+        dumper.emit(event)
+    if getvalue:
+        return getvalue()
+
+def serialize_all(nodes, stream=None, Dumper=Dumper,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None,
+        encoding='utf-8', explicit_start=None, explicit_end=None,
+        version=None, tags=None):
+    """
+    Serialize a sequence of representation trees into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break,
+            encoding=encoding, version=version, tags=tags,
+            explicit_start=explicit_start, explicit_end=explicit_end)
+    dumper.open()
+    for node in nodes:
+        dumper.serialize(node)
+    dumper.close()
+    if getvalue:
+        return getvalue()
+
+def serialize(node, stream=None, Dumper=Dumper, **kwds):
+    """
+    Serialize a representation tree into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    return serialize_all([node], stream, Dumper=Dumper, **kwds)
+
+def dump_all(documents, stream=None, Dumper=Dumper,
+        default_style=None, default_flow_style=None,
+        canonical=None, indent=None, width=None,
+        allow_unicode=None, line_break=None,
+        encoding='utf-8', explicit_start=None, explicit_end=None,
+        version=None, tags=None):
+    """
+    Serialize a sequence of Python objects into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    getvalue = None
+    if stream is None:
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        stream = StringIO()
+        getvalue = stream.getvalue
+    dumper = Dumper(stream, default_style=default_style,
+            default_flow_style=default_flow_style,
+            canonical=canonical, indent=indent, width=width,
+            allow_unicode=allow_unicode, line_break=line_break,
+            encoding=encoding, version=version, tags=tags,
+            explicit_start=explicit_start, explicit_end=explicit_end)
+    dumper.open()
+    for data in documents:
+        dumper.represent(data)
+    dumper.close()
+    if getvalue:
+        return getvalue()
+
+def dump(data, stream=None, Dumper=Dumper, **kwds):
+    """
+    Serialize a Python object into a YAML stream.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all([data], stream, Dumper=Dumper, **kwds)
+
+def safe_dump_all(documents, stream=None, **kwds):
+    """
+    Serialize a sequence of Python objects into a YAML stream.
+    Produce only basic YAML tags.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all(documents, stream, Dumper=SafeDumper, **kwds)
+
+def safe_dump(data, stream=None, **kwds):
+    """
+    Serialize a Python object into a YAML stream.
+    Produce only basic YAML tags.
+    If stream is None, return the produced string instead.
+    """
+    return dump_all([data], stream, Dumper=SafeDumper, **kwds)
+
+def add_implicit_resolver(tag, regexp, first=None,
+        Loader=Loader, Dumper=Dumper):
+    """
+    Add an implicit scalar detector.
+    If an implicit scalar value matches the given regexp,
+    the corresponding tag is assigned to the scalar.
+    first is a sequence of possible initial characters or None.
+    """
+    Loader.add_implicit_resolver(tag, regexp, first)
+    Dumper.add_implicit_resolver(tag, regexp, first)
+
+def add_path_resolver(tag, path, kind=None, Loader=Loader, Dumper=Dumper):
+    """
+    Add a path based resolver for the given tag.
+    A path is a list of keys that forms a path
+    to a node in the representation tree.
+    Keys can be string values, integers, or None.
+    """
+    Loader.add_path_resolver(tag, path, kind)
+    Dumper.add_path_resolver(tag, path, kind)
+
+def add_constructor(tag, constructor, Loader=Loader):
+    """
+    Add a constructor for the given tag.
+    Constructor is a function that accepts a Loader instance
+    and a node object and produces the corresponding Python object.
+    """
+    Loader.add_constructor(tag, constructor)
+
+def add_multi_constructor(tag_prefix, multi_constructor, Loader=Loader):
+    """
+    Add a multi-constructor for the given tag prefix.
+    Multi-constructor is called for a node if its tag starts with tag_prefix.
+    Multi-constructor accepts a Loader instance, a tag suffix,
+    and a node object and produces the corresponding Python object.
+    """
+    Loader.add_multi_constructor(tag_prefix, multi_constructor)
+
+def add_representer(data_type, representer, Dumper=Dumper):
+    """
+    Add a representer for the given type.
+    Representer is a function accepting a Dumper instance
+    and an instance of the given data type
+    and producing the corresponding representation node.
+    """
+    Dumper.add_representer(data_type, representer)
+
+def add_multi_representer(data_type, multi_representer, Dumper=Dumper):
+    """
+    Add a representer for the given type.
+    Multi-representer is a function accepting a Dumper instance
+    and an instance of the given data type or subtype
+    and producing the corresponding representation node.
+    """
+    Dumper.add_multi_representer(data_type, multi_representer)
+
+class YAMLObjectMetaclass(type):
+    """
+    The metaclass for YAMLObject.
+    """
+    def __init__(cls, name, bases, kwds):
+        super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds)
+        if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None:
+            cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+            cls.yaml_dumper.add_representer(cls, cls.to_yaml)
+
+class YAMLObject(object):
+    """
+    An object that can dump itself to a YAML stream
+    and load itself from a YAML stream.
+    """
+
+    __metaclass__ = YAMLObjectMetaclass
+    __slots__ = ()  # no direct instantiation, so allow immutable subclasses
+
+    yaml_loader = Loader
+    yaml_dumper = Dumper
+
+    yaml_tag = None
+    yaml_flow_style = None
+
+    def from_yaml(cls, loader, node):
+        """
+        Convert a representation node to a Python object.
+        """
+        return loader.construct_yaml_object(node, cls)
+    from_yaml = classmethod(from_yaml)
+
+    def to_yaml(cls, dumper, data):
+        """
+        Convert a Python object to a representation node.
+        """
+        return dumper.represent_yaml_object(cls.yaml_tag, data, cls,
+                flow_style=cls.yaml_flow_style)
+    to_yaml = classmethod(to_yaml)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/__init__.py b/tools/bin/ext/figleaf/__init__.py
new file mode 100644
index 0000000..9508655
--- /dev/null
+++ b/tools/bin/ext/figleaf/__init__.py
@@ -0,0 +1,309 @@
+"""
+figleaf is another tool to trace Python code coverage.
+
+figleaf uses the sys.settrace hook to record which statements are
+executed by the CPython interpreter; this record can then be saved
+into a file, or otherwise communicated back to a reporting script.
+
+figleaf differs from the gold standard of Python coverage tools
+('coverage.py') in several ways.  First and foremost, figleaf uses the
+same criterion for "interesting" lines of code as the sys.settrace
+function, which obviates some of the complexity in coverage.py (but
+does mean that your "loc" count goes down).  Second, figleaf does not
+record code executed in the Python standard library, which results in
+a significant speedup.  And third, the format in which the coverage
+format is saved is very simple and easy to work with.
+
+You might want to use figleaf if you're recording coverage from
+multiple types of tests and need to aggregate the coverage in
+interesting ways, and/or control when coverage is recorded.
+coverage.py is a better choice for command-line execution, and its
+reporting is a fair bit nicer.
+
+Command line usage: ::
+
+  figleaf <python file to execute> <args to python file>
+
+The figleaf output is saved into the file '.figleaf', which is an
+*aggregate* of coverage reports from all figleaf runs from this
+directory.  '.figleaf' contains a pickled dictionary of sets; the keys
+are source code filenames, and the sets contain all line numbers
+executed by the Python interpreter. See the docs or command-line
+programs in bin/ for more information.
+
+High level API: ::
+
+ * ``start(ignore_lib=True)`` -- start recording code coverage.
+ * ``stop()``                 -- stop recording code coverage.
+ * ``get_trace_obj()``        -- return the (singleton) trace object.
+ * ``get_info()``             -- get the coverage dictionary
+
+Classes & functions worth knowing about (lower level API):
+
+ * ``get_lines(fp)`` -- return the set of interesting lines in the fp.
+ * ``combine_coverage(d1, d2)`` -- combine coverage info from two dicts.
+ * ``read_coverage(filename)`` -- load the coverage dictionary
+ * ``write_coverage(filename)`` -- write the coverage out.
+ * ``annotate_coverage(...)`` -- annotate a Python file with its coverage info.
+
+Known problems:
+
+ -- module docstrings are *covered* but not found.
+
+AUTHOR: C. Titus Brown, titus@idyll.org, with contributions from Iain Lowe.
+
+'figleaf' is Copyright (C) 2006, 2007 C. Titus Brown.  It is under the
+BSD license.
+"""
+__version__ = "0.6.1"
+
+# __all__ == @CTB
+
+import sys
+import os
+from cPickle import dump, load
+from optparse import OptionParser
+
+import internals
+
+# use builtin sets if in >= 2.4, otherwise use 'sets' module.
+try:
+    set()
+except NameError:
+    from sets import Set as set
+
+def get_lines(fp):
+    """
+    Return the set of interesting lines in the source code read from
+    this file handle.
+    """
+    # rstrip is a workaround for http://bugs.python.org/issue4262
+    src = fp.read().rstrip() + "\n"
+    code = compile(src, "", "exec")
+    
+    return internals.get_interesting_lines(code)
+
+def combine_coverage(d1, d2):
+    """
+    Given two coverage dictionaries, combine the recorded coverage
+    and return a new dictionary.
+    """
+    keys = set(d1.keys())
+    keys.update(set(d2.keys()))
+
+    new_d = {}
+    for k in keys:
+        v = d1.get(k, set())
+        v2 = d2.get(k, set())
+
+        s = set(v)
+        s.update(v2)
+        new_d[k] = s
+
+    return new_d
+
+def write_coverage(filename, append=True):
+    """
+    Write the current coverage info out to the given filename.  If
+    'append' is false, destroy any previously recorded coverage info.
+    """
+    if _t is None:
+        return
+
+    data = internals.CoverageData(_t)
+
+    d = data.gather_files()
+
+    # sum existing coverage?
+    if append:
+        old = {}
+        fp = None
+        try:
+            fp = open(filename)
+        except IOError:
+            pass
+
+        if fp:
+            old = load(fp)
+            fp.close()
+            d = combine_coverage(d, old)
+
+    # ok, save.
+    outfp = open(filename, 'w')
+    try:
+        dump(d, outfp)
+    finally:
+        outfp.close()
+
+def read_coverage(filename):
+    """
+    Read a coverage dictionary in from the given file.
+    """
+    fp = open(filename)
+    try:
+        d = load(fp)
+    finally:
+        fp.close()
+
+    return d
+
+def dump_pickled_coverage(out_fp):
+    """
+    Dump coverage information in pickled format into the given file handle.
+    """
+    dump(_t, out_fp)
+
+def load_pickled_coverage(in_fp):
+    """
+    Replace (overwrite) coverage information from the given file handle.
+    """
+    global _t
+    _t = load(in_fp)
+
+def annotate_coverage(in_fp, out_fp, covered, all_lines,
+                      mark_possible_lines=False):
+    """
+    A simple example coverage annotator that outputs text.
+    """
+    for i, line in enumerate(in_fp):
+        i = i + 1
+
+        if i in covered:
+            symbol = '>'
+        elif i in all_lines:
+            symbol = '!'
+        else:
+            symbol = ' '
+
+        symbol2 = ''
+        if mark_possible_lines:
+            symbol2 = ' '
+            if i in all_lines:
+                symbol2 = '-'
+
+        out_fp.write('%s%s %s' % (symbol, symbol2, line,))
+
+def get_data():
+    if _t:
+        return internals.CoverageData(_t)
+
+#######################
+
+#
+# singleton functions/top-level API
+#
+
+_t = None
+
+def init(exclude_path=None, include_only=None):
+    from internals import CodeTracer
+    
+    global _t
+    if _t is None:
+        _t = CodeTracer(exclude_path, include_only)
+
+def start(ignore_python_lib=True):
+    """
+    Start tracing code coverage.  If 'ignore_python_lib' is True on
+    initial call, ignore all files that live below the same directory as
+    the 'os' module.
+    """
+    global _t
+    if not _t:
+        exclude_path = None
+        if ignore_python_lib:
+            exclude_path = os.path.realpath(os.path.dirname(os.__file__))
+
+        init(exclude_path, None)
+    
+    _t.start()
+
+def start_section(name):
+    global _t
+    _t.start_section(name)
+    
+def stop_section():
+    global _t
+    _t.stop_section()
+
+def stop():
+    """
+    Stop tracing code coverage.
+    """
+    global _t
+    if _t is not None:
+        _t.stop()
+
+def get_trace_obj():
+    """
+    Return the (singleton) trace object, if it exists.
+    """
+    return _t
+
+def get_info(section_name=None):
+    """
+    Get the coverage dictionary from the trace object.
+    """
+    if _t:
+        return get_data().gather_files(section_name)
+
+#############
+
+def display_ast():
+    l = internals.LineGrabber(open(sys.argv[1]))
+    l.pretty_print()
+    print l.lines
+
+def main():
+    """
+    Execute the given Python file with coverage, making it look like it is
+    __main__.
+    """
+    ignore_pylibs = False
+
+    # gather args
+
+    n = 1
+    figleaf_args = []
+    for n in range(1, len(sys.argv)):
+        arg = sys.argv[n]
+        if arg.startswith('-'):
+            figleaf_args.append(arg)
+        else:
+            break
+
+    remaining_args = sys.argv[n:]
+
+    usage = "usage: %prog [options] [python_script arg1 arg2 ...]"
+    option_parser = OptionParser(usage=usage)
+
+    option_parser.add_option('-i', '--ignore-pylibs', action="store_true",
+                             dest="ignore_pylibs", default=False,
+                             help="ignore Python library modules")
+
+    (options, args) = option_parser.parse_args(args=figleaf_args)
+    assert len(args) == 0
+
+    if not remaining_args:
+        option_parser.error("you must specify a python script to run!")
+
+    ignore_pylibs = options.ignore_pylibs
+
+    ## Reset system args so that the subsequently exec'd file can read
+    ## from sys.argv
+    
+    sys.argv = remaining_args
+
+    sys.path[0] = os.path.dirname(sys.argv[0])
+
+    cwd = os.getcwd()
+
+    start(ignore_pylibs)        # START code coverage
+
+    import __main__
+    try:
+        execfile(sys.argv[0], __main__.__dict__)
+    finally:
+        stop()                          # STOP code coverage
+
+        write_coverage(os.path.join(cwd, '.figleaf'))

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/_lib.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/_lib.py b/tools/bin/ext/figleaf/_lib.py
new file mode 100644
index 0000000..97e5e83
--- /dev/null
+++ b/tools/bin/ext/figleaf/_lib.py
@@ -0,0 +1,6 @@
+import os.path, sys
+libdir = os.path.join(os.path.dirname(__file__), '../')
+libdir = os.path.normpath(libdir)
+
+if libdir not in sys.path:
+    sys.path.insert(0, libdir)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/annotate.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/annotate.py b/tools/bin/ext/figleaf/annotate.py
new file mode 100644
index 0000000..ed674d9
--- /dev/null
+++ b/tools/bin/ext/figleaf/annotate.py
@@ -0,0 +1,225 @@
+"""
+Common functions for annotating files with figleaf coverage information.
+"""
+import sys, os
+from optparse import OptionParser
+import ConfigParser
+import re
+import logging
+
+import figleaf
+
+thisdir = os.path.dirname(__file__)
+
+try:                                    # 2.3 compatibility
+    logging.basicConfig(format='%(message)s', level=logging.WARNING)
+except TypeError:
+    pass
+
+logger = logging.getLogger('figleaf.annotate')
+
+DEFAULT_CONFIGURE_FILE = ".figleafrc"
+
+### utilities
+
+def safe_conf_get(conf, section, name, default):
+    try:
+        val = conf.get(section, name)
+    except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
+        val = default
+
+    return val
+
+def configure(parser):
+    """
+    Configure the optparse.OptionParser object with defaults, optionally
+    loaded from a configuration file.
+    """
+    CONFIG_FILE = os.environ.get('FIGLEAFRC', DEFAULT_CONFIGURE_FILE)
+    
+    parser.add_option("-c", "--coverage-file", action="store",
+                       type="string", dest="coverage_file",
+                       help="File containing figleaf coverage information.")
+    
+    parser.add_option("-s", "--sections-file", action="store",
+                       type="string", dest="sections_file",
+                       help="File containing figleaf sections coverage info.")
+
+    parser.add_option("-v", "--verbose", action="store_true",
+                      dest="verbose")
+
+    conf_file = ConfigParser.ConfigParser()
+    conf_file.read(CONFIG_FILE)         # ignores if not present
+
+    default_coverage_file = safe_conf_get(conf_file,
+                                          'figleaf', 'coverage_file',
+                                          '.figleaf')
+    default_sections_file = safe_conf_get(conf_file,
+                                          'figleaf', 'sections_file',
+                                          '.figleaf_sections')
+    default_verbose = int(safe_conf_get(conf_file, 'figleaf', 'verbose',
+                                        0))
+
+    parser.set_defaults(coverage_file=default_coverage_file,
+                        sections_file=default_sections_file,
+                        verbose=default_verbose)
+
+def filter_coverage(coverage, re_match):
+    """
+    ...
+    """
+    if not re_match:
+        return coverage
+
+    regexp = re.compile(re_match)
+    
+    d = {}
+    for filename, lines in coverage.items():
+        if regexp.match(filename):
+            d[filename] = lines
+            
+    return d
+
+### commands
+
+def list(options, match=""):
+    """
+    List the filenames in the coverage file, optionally limiting it to
+    those files matching to the regexp 'match'.
+    """
+    if options.verbose:
+        print>>sys.stderr, '** Reading coverage from coverage file %s' % \
+                           (options.coverage_file,)
+        if match:
+            print>>sys.stderr, '** Filtering against regexp "%s"' % (match,)
+        
+    coverage = figleaf.read_coverage(options.coverage_file)
+    coverage = filter_coverage(coverage, match)
+
+    for filename in coverage.keys():
+        print filename
+
+def list_sections(options, match=""):
+    """
+    List the filenames in the coverage file, optionally limiting it to
+    those files matching to the regexp 'match'.
+    """
+    if options.verbose:
+        print>>sys.stderr, '** Reading sections info from sections file %s' % \
+                           (options.sections_file,)
+        if match:
+            print>>sys.stderr, '** Filtering against regexp "%s"' % (match,)
+
+    fp = open(options.sections_file)
+    figleaf.load_pickled_coverage(fp) # @CTB
+
+    data = figleaf.internals.CoverageData(figleaf._t)
+    coverage = data.gather_files()
+    coverage = filter_coverage(coverage, match)
+
+    for filename in coverage.keys():
+        print filename
+
+###
+
+def read_exclude_patterns(filename):
+    """
+    Read in exclusion patterns from a file; these are just regexps.
+    """
+    if not filename:
+        return []
+
+    exclude_patterns = []
+
+    fp = open(filename)
+    for line in fp:
+        line = line.rstrip()
+        if line and not line.startswith('#'):
+            pattern = re.compile(line)
+        exclude_patterns.append(pattern)
+
+    return exclude_patterns
+
+def read_files_list(filename):
+    """
+    Read in a list of files from a file; these are relative or absolute paths.
+    """
+    s = {}
+    for line in open(filename):
+        f = line.strip()
+        s[os.path.abspath(f)] = 1
+
+    return s
+
+def filter_files(filenames, exclude_patterns = [], files_list = {}):
+    files_list = dict(files_list)       # make copy
+
+    # list of files specified?
+    if files_list:
+        for filename in files_list.keys():
+            yield filename
+
+        filenames = [ os.path.abspath(x) for x in filenames ]
+        for filename in filenames:
+            try:
+                del files_list[filename]
+            except KeyError:
+                logger.info('SKIPPING %s -- not in files list' % (filename,))
+            
+        return
+
+    ### no files list given -- handle differently
+
+    for filename in filenames:
+        abspath = os.path.abspath(filename)
+        
+        # check to see if we match anything in the exclude_patterns list
+        skip = False
+        for pattern in exclude_patterns:
+            if pattern.search(filename):
+                logger.info('SKIPPING %s -- matches exclusion pattern' % \
+                            (filename,))
+                skip = True
+                break
+
+        if skip:
+            continue
+
+        # next, check to see if we're part of the figleaf package.
+        if thisdir in filename:
+            logger.debug('SKIPPING %s -- part of the figleaf package' % \
+                         (filename,))
+            continue
+
+        # also, check for <string> (source file from things like 'exec'):
+        if filename == '<string>':
+            continue
+
+        # miscellaneous other things: doctests
+        if filename.startswith('<doctest '):
+            continue
+
+        yield filename
+
+###
+
+def main():
+    parser = OptionParser()
+    configure(parser)
+    
+    options, args = parser.parse_args()
+
+    if not len(args):
+        print "ERROR: You must specify a command like 'list' or 'report'.  Use"
+        print "\n    %s -h\n" % (sys.argv[0],)
+        print "for help on commands and options."
+        sys.exit(-1)
+        
+    cmd = args.pop(0)
+
+    if cmd == 'list':
+        list(options, *args)
+    elif cmd == 'list_sections':
+        list_sections(options, *args)
+
+    sys.exit(0)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/annotate_cover.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/annotate_cover.py b/tools/bin/ext/figleaf/annotate_cover.py
new file mode 100644
index 0000000..bf48bda
--- /dev/null
+++ b/tools/bin/ext/figleaf/annotate_cover.py
@@ -0,0 +1,143 @@
+import figleaf
+import os
+import re
+
+from annotate import read_exclude_patterns, filter_files, logger
+
+def report_as_cover(coverage, exclude_patterns=[], ):
+    ### now, output.
+
+    keys = coverage.keys()
+    info_dict = {}
+    
+    for k in filter_files(keys):
+        try:
+            pyfile = open(k, 'rU')
+            lines = figleaf.get_lines(pyfile)
+        except IOError:
+            logger.warning('CANNOT OPEN: %s' % k)
+            continue
+        except KeyboardInterrupt:
+            raise
+        except Exception, e:
+            logger.error('ERROR: file %s, exception %s' % (pyfile, str(e)))
+            continue
+
+        # ok, got all the info.  now annotate file ==> html.
+
+        covered = coverage[k]
+        pyfile = open(k)
+        (n_covered, n_lines, output) = make_cover_lines(lines, covered, pyfile)
+
+
+        try:
+            pcnt = n_covered * 100. / n_lines
+        except ZeroDivisionError:
+            pcnt = 100
+        info_dict[k] = (n_lines, n_covered, pcnt)
+
+        outfile = make_cover_filename(k)
+        try:
+            outfp = open(outfile, 'w')
+            outfp.write("\n".join(output))
+            outfp.write("\n")
+            outfp.close()
+        except IOError:
+            logger.warning('cannot open filename %s' % (outfile,))
+            continue
+
+        logger.info('reported on %s' % (outfile,))
+
+    ### print a summary, too.
+
+    info_dict_items = info_dict.items()
+
+    def sort_by_pcnt(a, b):
+        a = a[1][2]
+        b = b[1][2]
+
+        return -cmp(a,b)
+
+    info_dict_items.sort(sort_by_pcnt)
+
+    logger.info('reported on %d file(s) total\n' % len(info_dict))
+    return len(info_dict)
+
+def make_cover_lines(line_info, coverage_info, fp):
+    n_covered = n_lines = 0
+    output = []
+    
+    for i, line in enumerate(fp):
+        is_covered = False
+        is_line = False
+
+        i += 1
+
+        if i in coverage_info:
+            is_covered = True
+            prefix = '+'
+
+            n_covered += 1
+            n_lines += 1
+        elif i in line_info:
+            prefix = '-'
+            is_line = True
+
+            n_lines += 1
+        else:
+            prefix = '0'
+
+        line = line.rstrip()
+        output.append(prefix + ' ' + line)
+    
+    return (n_covered, n_lines, output)
+
+def make_cover_filename(orig):
+    return orig + '.cover'
+
+def main():
+    import sys
+    import logging
+    from optparse import OptionParser
+    
+    ###
+
+    option_parser = OptionParser()
+
+    option_parser.add_option('-x', '--exclude-patterns', action="store",
+                             dest="exclude_patterns_file",
+                             help="file containing regexp patterns to exclude")
+
+    option_parser.add_option('-q', '--quiet', action='store_true',
+                             dest='quiet',
+         help="file containig regexp patterns of files to exclude from report")
+    
+    option_parser.add_option('-D', '--debug', action='store_true',
+                             dest='debug',
+                             help='Show all debugging messages')
+
+    (options, args) = option_parser.parse_args()
+
+    if options.quiet:
+        logging.disable(logging.DEBUG)
+
+    if options.debug:
+        logger.setLevel(logging.DEBUG)
+
+    ### load
+
+    if not args:
+        args = ['.figleaf']
+
+    coverage = {}
+    for filename in args:
+        logger.debug("loading coverage info from '%s'\n" % (filename,))
+        d = figleaf.read_coverage(filename)
+        coverage = figleaf.combine_coverage(coverage, d)
+
+    if not coverage:
+        logger.warning('EXITING -- no coverage info!\n')
+        sys.exit(-1)
+
+    exclude = read_exclude_patterns(options.exclude_patterns_file)
+    report_as_cover(coverage, exclude)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/annotate_html.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/annotate_html.py b/tools/bin/ext/figleaf/annotate_html.py
new file mode 100644
index 0000000..e9bf7f9
--- /dev/null
+++ b/tools/bin/ext/figleaf/annotate_html.py
@@ -0,0 +1,276 @@
+import figleaf
+import os
+import re
+
+# use builtin sets if in >= 2.4, otherwise use 'sets' module.
+try:
+    set()
+except NameError:
+    from sets import Set as set
+
+from figleaf.annotate import read_exclude_patterns, filter_files, logger, \
+     read_files_list
+
+###
+
+def annotate_file(fp, lines, covered):
+    # initialize
+    n_covered = n_lines = 0
+
+    output = []
+    for i, line in enumerate(fp):
+        is_covered = False
+        is_line = False
+
+        i += 1
+
+        if i in covered:
+            is_covered = True
+
+            n_covered += 1
+            n_lines += 1
+        elif i in lines:
+            is_line = True
+
+            n_lines += 1
+
+        color = 'black'
+        if is_covered:
+            color = 'green'
+        elif is_line:
+            color = 'red'
+
+        line = escape_html(line.rstrip())
+        output.append('<font color="%s">%4d. %s</font>' % (color, i, line))
+
+    try:
+        percent = n_covered * 100. / n_lines
+    except ZeroDivisionError:
+        percent = 100
+
+    return output, n_covered, n_lines, percent
+
+def write_html_summary(info_dict, directory):
+    info_dict_items = info_dict.items()
+
+    def sort_by_percent(a, b):
+        a = a[1][2]
+        b = b[1][2]
+
+        return -cmp(a,b)
+    info_dict_items.sort(sort_by_percent)
+
+    summary_lines = sum([ v[0] for (k, v) in info_dict_items])
+    summary_cover = sum([ v[1] for (k, v) in info_dict_items])
+
+    summary_percent = 100
+    if summary_lines:
+        summary_percent = float(summary_cover) * 100. / float(summary_lines)
+
+
+    percents = [ float(v[1]) * 100. / float(v[0])
+                 for (k, v) in info_dict_items if v[0] ]
+    
+    percent_90 = [ x for x in percents if x >= 90 ]
+    percent_75 = [ x for x in percents if x >= 75 ]
+    percent_50 = [ x for x in percents if x >= 50 ]
+
+    ### write out summary.
+
+    index_fp = open('%s/index.html' % (directory,), 'w')
+    index_fp.write('''
+<html>
+<title>figleaf code coverage report</title>
+<h2>Summary</h2>
+%d files total: %d files &gt; 90%%, %d files &gt; 75%%, %d files &gt; 50%%
+<p>
+<table border=1>
+<tr>
+ <th>Filename</th><th># lines</th><th># covered</th><th>%% covered</th>
+</tr>
+
+<tr>
+ <td><b>totals:</b></td>
+ <td><b>%d</b></td>
+ <td><b>%d</b></td>
+ <td><b>%.1f%%</b></td>
+</tr>
+
+<tr></tr>
+
+''' % (len(percents), len(percent_90), len(percent_75), len(percent_50),
+       summary_lines, summary_cover, summary_percent,))
+
+    for filename, (n_lines, n_covered, percent_covered,) in info_dict_items:
+        html_outfile = make_html_filename(filename)
+
+        index_fp.write('''
+<tr>
+ <td><a href="./%s">%s</a></td>
+ <td>%d</td>
+ <td>%d</td>
+ <td>%.1f</td>
+</tr>
+''' % (html_outfile, filename, n_lines, n_covered, percent_covered,))
+
+    index_fp.write('</table>\n')
+    index_fp.close()
+    
+
+def report_as_html(coverage, directory, exclude_patterns, files_list):
+    """
+    Write an HTML report on all of the files, plus a summary.
+    """
+
+    ### now, output.
+
+    keys = coverage.keys()
+    info_dict = {}
+    for pyfile in filter_files(keys, exclude_patterns, files_list):
+
+        try:
+            fp = open(pyfile, 'rU')
+            lines = figleaf.get_lines(fp)
+        except KeyboardInterrupt:
+            raise
+        except IOError:
+            logger.error('CANNOT OPEN: %s' % (pyfile,))
+            continue
+        except Exception, e:
+            logger.error('ERROR: file %s, exception %s' % (pyfile, str(e)))
+            continue
+
+        #
+        # ok, we want to annotate this file.  now annotate file ==> html.
+        #
+
+        # initialize
+        covered = coverage.get(pyfile, set())
+
+        # rewind
+        fp.seek(0)
+
+        # annotate
+        output, n_covered, n_lines, percent = annotate_file(fp, lines, covered)
+
+        # summarize
+        info_dict[pyfile] = (n_lines, n_covered, percent)
+
+        # write out the file
+        html_outfile = make_html_filename(pyfile)
+        html_outfile = os.path.join(directory, html_outfile)
+        html_outfp = open(html_outfile, 'w')
+        
+        html_outfp.write('source file: <b>%s</b><br>\n' % (pyfile,))
+        html_outfp.write('''
+
+file stats: <b>%d lines, %d executed: %.1f%% covered</b>
+<pre>
+%s
+</pre>
+
+''' % (n_lines, n_covered, percent, "\n".join(output)))
+            
+        html_outfp.close()
+
+        logger.info('reported on %s' % (pyfile,))
+
+    ### print a summary, too.
+    write_html_summary(info_dict, directory)
+
+    logger.info('reported on %d file(s) total\n' % len(info_dict))
+
+def prepare_reportdir(dirname):
+    "Create output directory."
+    try:
+        os.mkdir(dirname)
+    except OSError:                         # already exists
+        pass
+
+def make_html_filename(orig):
+    "'escape' original paths into a single filename"
+
+    orig = os.path.abspath(orig)
+#    orig = os.path.basename(orig)
+    orig = os.path.splitdrive(orig)[1]
+    orig = orig.replace('_', '__')
+    orig = orig.replace(os.path.sep, '_')
+    orig += '.html'
+    return orig
+
+def escape_html(s):
+    s = s.replace("&", "&amp;")
+    s = s.replace("<", "&lt;")
+    s = s.replace(">", "&gt;")
+    s = s.replace('"', "&quot;")
+    return s
+
+def main():
+    import sys
+    import logging
+    from optparse import OptionParser
+    ###
+
+    usage = "usage: %prog [options] [coverage files ... ]"
+    option_parser = OptionParser(usage=usage)
+
+    option_parser.add_option('-x', '--exclude-patterns', action="store",
+                             dest="exclude_patterns_file",
+        help="file containing regexp patterns of files to exclude from report")
+
+    option_parser.add_option('-f', '--files-list', action="store",
+                             dest="files_list",
+                             help="file containing filenames to report on")
+
+    option_parser.add_option('-d', '--output-directory', action='store',
+                             dest="output_dir",
+                             default = "html",
+                             help="directory for HTML output")
+
+    option_parser.add_option('-q', '--quiet', action='store_true',
+                             dest='quiet',
+                             help='Suppress all but error messages')
+    
+    option_parser.add_option('-D', '--debug', action='store_true',
+                             dest='debug',
+                             help='Show all debugging messages')
+
+    (options, args) = option_parser.parse_args()
+
+    if options.quiet:
+        logging.disable(logging.DEBUG)
+        
+    if options.debug:
+        logger.setLevel(logging.DEBUG)
+
+    ### load/combine
+
+    if not args:
+        args = ['.figleaf']
+
+    coverage = {}
+    for filename in args:
+        logger.debug("loading coverage info from '%s'\n" % (filename,))
+        try:
+            d = figleaf.read_coverage(filename)
+            coverage = figleaf.combine_coverage(coverage, d)
+        except IOError:
+            logger.error("cannot open filename '%s'\n" % (filename,))
+
+    if not coverage:
+        logger.warning('EXITING -- no coverage info!\n')
+        sys.exit(-1)
+
+    exclude = []
+    if options.exclude_patterns_file:
+        exclude = read_exclude_patterns(options.exclude_patterns_file)
+
+    files_list = {}
+    if options.files_list:
+        files_list = read_files_list(options.files_list)
+
+    ### make directory
+    prepare_reportdir(options.output_dir)
+    report_as_html(coverage, options.output_dir, exclude, files_list)
+
+    print 'figleaf: HTML output written to %s' % (options.output_dir,)

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/annotate_sections.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/annotate_sections.py b/tools/bin/ext/figleaf/annotate_sections.py
new file mode 100644
index 0000000..167b391
--- /dev/null
+++ b/tools/bin/ext/figleaf/annotate_sections.py
@@ -0,0 +1,79 @@
+#! /usr/bin/env python
+import figleaf
+from figleaf import internals
+from sets import Set as set
+import sys
+from cPickle import load
+import os
+from optparse import OptionParser
+
+def main():
+    #### OPTIONS
+
+    parser = OptionParser()
+
+    parser.add_option('-c', '--coverage', nargs=1, action="store",
+                      dest="coverage_file", 
+                      help = 'load coverage info from this file',
+                      default='.figleaf_sections')
+
+    ####
+
+    (options, args) = parser.parse_args(sys.argv[1:])
+    coverage_file = options.coverage_file
+    
+    figleaf.load_pickled_coverage(open(coverage_file))
+    data = internals.CoverageData(figleaf._t)
+    full_cov = data.gather_files()
+
+    for filename in args:
+        annotate_file_with_sections(filename, data, full_cov)
+
+def annotate_file_with_sections(short, data, full_cov):
+    full = os.path.abspath(short)
+
+    tags = {}
+    sections = data.gather_sections(full)
+    sections.update(data.gather_sections(short))
+
+    print data.sections
+
+    print '*** PROCESSING:', short, '\n\t==>', short + '.sections'
+    for tag, cov in sections.items():
+        if cov:
+            tags[tag] = cov
+
+    if not tags:
+        print '*** No coverage info for file', short
+
+    tag_names = tags.keys()
+    tag_names.sort()
+    tag_names.reverse()
+
+    tags["-- all coverage --"] = full_cov.get(full, set())
+    tag_names.insert(0, "-- all coverage --")
+
+    n_tags = len(tag_names)
+    
+    fp = open(short + '.sections', 'w')
+
+    for i, tag in enumerate(tag_names):
+        fp.write('%s%s\n' % ('| ' * i, tag))
+    fp.write('| ' * n_tags)
+    fp.write('\n\n')
+
+    source = open(full)
+    for n, line in enumerate(source):
+        marks = ""
+        for tag in tag_names:
+            cov = tags[tag]
+
+            symbol = '  '
+            if (n+1) in cov:
+                symbol = '+ '
+
+            marks += symbol
+
+        fp.write('%s  | %s' % (marks, line))
+    
+    fp.close()

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/figleaf2html
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/figleaf2html b/tools/bin/ext/figleaf/figleaf2html
new file mode 100755
index 0000000..58636b0
--- /dev/null
+++ b/tools/bin/ext/figleaf/figleaf2html
@@ -0,0 +1,7 @@
+#! /usr/bin/env python
+"""
+Output an HTML-ized coverage report.
+"""
+import _lib
+import figleaf.annotate_html
+figleaf.annotate_html.main()

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/internals.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/internals.py b/tools/bin/ext/figleaf/internals.py
new file mode 100644
index 0000000..a3d2162
--- /dev/null
+++ b/tools/bin/ext/figleaf/internals.py
@@ -0,0 +1,241 @@
+"""
+Coverage tracking internals.
+"""
+
+import sys
+import threading
+
+err = sys.stderr
+
+import types, symbol
+
+# use builtin sets if in >= 2.4, otherwise use 'sets' module.
+try:
+    set()
+except NameError:
+    from sets import Set as set
+
+def get_interesting_lines(code):
+    """
+    Count 'interesting' lines of Python in a code object, where
+    'interesting' is defined as 'lines that could possibly be
+    executed'.
+
+    This is done by dissassembling the code objecte and returning
+    line numbers.
+    """
+
+    # clean up weird end-of-file issues
+
+    lines = set([ l for (o, l) in findlinestarts(code) ])
+    for const in code.co_consts:
+        if type(const) == types.CodeType:
+            lines.update(get_interesting_lines(const))
+
+    return lines
+
+def findlinestarts(code):
+    """Find the offsets in a byte code which are start of lines in the source.
+
+    Generate pairs (offset, lineno) as described in Python/compile.c.
+
+    CTB -- swiped from Python 2.5, module 'dis', so that earlier versions
+    of Python could use the function, too.
+    """
+    byte_increments = [ord(c) for c in code.co_lnotab[0::2]]
+    line_increments = [ord(c) for c in code.co_lnotab[1::2]]
+
+    lastlineno = None
+    lineno = code.co_firstlineno
+    addr = 0
+    for byte_incr, line_incr in zip(byte_increments, line_increments):
+        if byte_incr:
+            if lineno != lastlineno:
+                yield (addr, lineno)
+                lastlineno = lineno
+            addr += byte_incr
+        lineno += line_incr
+    if lineno != lastlineno:
+        yield (addr, lineno)
+
+class CodeTracer:
+    """
+    Basic mechanisms for code coverage tracking, using sys.settrace.  
+    """
+    def __init__(self, exclude_prefix, include_only_prefix):
+        self.common = self.c = set()
+        self.section_name = None
+        self.sections = {}
+        
+        self.started = False
+
+        assert not (exclude_prefix and include_only_prefix), \
+               "mutually exclusive"
+        
+        self.excl = exclude_prefix
+        self.incl = include_only_prefix
+
+    def start(self):
+        """
+        Start recording.
+        """
+        if not self.started:
+            self.started = True
+
+            if self.excl and not self.incl:
+                global_trace_fn = self.g1
+            elif self.incl and not self.excl:
+                global_trace_fn = self.g2
+            else:
+                global_trace_fn = self.g0
+
+            sys.settrace(global_trace_fn)
+
+            if hasattr(threading, 'settrace'):
+                threading.settrace(global_trace_fn)
+
+    def stop(self):
+        if self.started:
+            sys.settrace(None)
+            
+            if hasattr(threading, 'settrace'):
+                threading.settrace(None)
+
+            self.started = False
+            self.stop_section()
+
+    def g0(self, f, e, a):
+        """
+        global trace function, no exclude/include info.
+
+        f == frame, e == event, a == arg        .
+        """
+        if e == 'call':
+            return self.t
+
+    def g1(self, f, e, a):
+        """
+        global trace function like g0, but ignores files starting with
+        'self.excl'.
+        """
+        if e == 'call':
+            excl = self.excl
+            path = f.f_globals.get('__file__')
+            if path is None:
+                path = f.f_code.co_filename
+
+            if excl and path.startswith(excl):
+                return
+
+            return self.t
+
+    def g2(self, f, e, a):
+        """
+        global trace function like g0, but only records files starting with
+        'self.incl'.
+        """
+        if e == 'call':
+            incl = self.incl
+            if incl and f.f_code.co_filename.startswith(incl):
+                return self.t
+
+    def t(self, f, e, a):
+        """
+        local trace function.
+        """
+        if e is 'line':
+            self.c.add((f.f_code.co_filename, f.f_lineno))
+        return self.t
+
+    def clear(self):
+        """
+        wipe out coverage info
+        """
+
+        self.c = {}
+
+    def start_section(self, name):
+        self.stop_section()
+
+        self.section_name = name
+        self.c = self.sections.get(name, set())
+        
+    def stop_section(self):
+        if self.section_name:
+            self.sections[self.section_name] = self.c
+            self.section_name = None
+            self.c = self.common
+
+class CoverageData:
+    """
+    A class to manipulate and combine data from the CodeTracer object.
+
+    In general, do not pickle this object; it's simpler and more
+    straightforward to just pass the basic Python objects around
+    (e.g. CoverageData.common, a set, and CoverageData.sections, a
+    dictionary of sets).
+    """
+    def __init__(self, trace_obj=None):
+        self.common = set()
+        self.sections = {}
+        
+        if trace_obj:
+            self.update(trace_obj)
+            
+    def update(self, trace_obj):
+        # transfer common-block code coverage -- if no sections are set,
+        # this will be all of the code coverage info.
+        self.common.update(trace_obj.common)
+
+        # update our internal section dictionary with the (filename, line_no)
+        # pairs from the section coverage as well.
+        
+        for section_name, section_d in trace_obj.sections.items():
+            section_set = self.sections.get(section_name, set())
+            section_set.update(section_d)
+            self.sections[section_name] = section_set
+
+    def gather_files(self, name=None):
+        """
+        Return the dictionary of lines of executed code; the dict
+        keys are filenames and values are sets containing individual
+        (integer) line numbers.
+        
+        'name', if set, is the desired section name from which to gather
+        coverage info.
+        """
+        cov = set()
+        cov.update(self.common)
+
+        if name is None:
+            for section_name, coverage_set in self.sections.items():
+                cov.update(coverage_set)
+        else:
+            coverage_set = self.sections.get(name, set())
+            cov.update(coverage_set)
+            
+#        cov = list(cov)
+#        cov.sort()
+
+        files = {}
+        for (filename, line) in cov:    # @CTB could optimize
+            d = files.get(filename, set())
+            d.add(line)
+            files[filename] = d
+
+        return files
+
+    def gather_sections(self, file):
+        """
+        Return a dictionary of sets containing section coverage information for
+        a specific file.  Dict keys are sections, and the dict values are
+        sets containing (integer) line numbers.
+        """
+        sections = {}
+        for k, c in self.sections.items():
+            s = set()
+            for (filename, line) in c.keys():
+                if filename == file:
+                    s.add(line)
+            sections[k] = s
+        return sections

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/figleaf/nose_sections.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/figleaf/nose_sections.py b/tools/bin/ext/figleaf/nose_sections.py
new file mode 100644
index 0000000..e6fd42d
--- /dev/null
+++ b/tools/bin/ext/figleaf/nose_sections.py
@@ -0,0 +1,117 @@
+"""
+figleafsections plugin for nose.
+
+Automatically records coverage info for Python tests and connects it with
+with test was being run at the time.  Can be used to produce a "barcode"
+of code execution.
+"""
+
+DEFAULT_COVERAGE_FILE='.figleaf_sections'
+import pkg_resources
+
+try:
+    pkg_resources.require('figleaf>=0.6.1')
+    import figleaf
+except ImportError:
+    figleaf = None
+
+import sys
+err = sys.stderr
+
+import nose.case
+from nose.plugins.base import Plugin
+
+import logging
+import os
+
+log = logging.getLogger(__name__)
+
+def calc_testname(test):
+    """
+    Build a reasonably human-readable testname from each test.
+    """
+    name = str(test)
+    if ' ' in name:
+        name = name.split(' ')[1]
+
+    return name
+
+class FigleafSections(Plugin):
+    def __init__(self):
+        self.name = 'figleafsections'
+        Plugin.__init__(self)
+        self.testname = None
+
+    def add_options(self, parser, env=os.environ):
+        env_opt = 'NOSE_WITH_%s' % self.name.upper()
+        env_opt.replace('-', '_')
+        parser.add_option("--with-%s" % self.name,
+                          action="store_true",
+                          dest=self.enableOpt,
+                          default=env.get(env_opt),
+                          help="Enable plugin %s: %s [%s]" %
+                          (self.__class__.__name__, self.help(), env_opt))
+
+        parser.add_option("--figleaf-file",
+                          action="store",
+                          dest="figleaf_file",
+                          default=None,
+                          help="Store figleaf section coverage in this file")
+        
+    def configure(self, options, config):
+        """
+        Configure: enable plugin?  And if so, where should the coverage
+        info be placed?
+        """
+        self.conf = config
+
+        # enable?
+        if hasattr(options, self.enableOpt):
+            self.enabled = getattr(options, self.enableOpt)
+
+        ### save coverage file name, if given.
+        if options.figleaf_file:
+            self.figleaf_file = options.figleaf_file
+        else:
+            self.figleaf_file = DEFAULT_COVERAGE_FILE
+
+        if self.enabled and figleaf is None:
+                raise Exception("You must install figleaf 0.6.1 before you can use the figleafsections plugin! See http://darcs.idyll.org/~t/projects/figleaf/doc/")
+
+    def begin(self):
+        """
+        Initialize: start recording coverage info.
+        """
+        figleaf.start()
+
+    def finalize(self, result):
+        """
+        Finalize: stop recording coverage info, save & exit.
+        """
+        figleaf.stop()
+        
+        fp = open(self.figleaf_file, 'w')
+        figleaf.dump_pickled_coverage(fp)
+        fp.close()
+
+    def startTest(self, test):
+        """
+        Run at the beginning of each test, before per-test fixtures.
+
+        One weakness is that this is only run for specific kinds of
+        nose testcases.
+        """
+        if isinstance(test, nose.case.Test):
+           
+            self.testname = calc_testname(test)
+            assert self.testname
+
+            figleaf.start_section(self.testname)
+
+    def stopTest(self, test):
+        """
+        Run at the end of each test, after per-test fixtures.
+        """
+        if self.testname:
+            figleaf.stop_section()
+            self.testname = None

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/__init__.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/__init__.py b/tools/bin/ext/pg8000/__init__.py
new file mode 100644
index 0000000..57de8e8
--- /dev/null
+++ b/tools/bin/ext/pg8000/__init__.py
@@ -0,0 +1,37 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+import dbapi as DBAPI
+pg8000_dbapi = DBAPI
+
+from interface import *
+from types import Bytea
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/dbapi.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/dbapi.py b/tools/bin/ext/pg8000/dbapi.py
new file mode 100644
index 0000000..3f90188
--- /dev/null
+++ b/tools/bin/ext/pg8000/dbapi.py
@@ -0,0 +1,621 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+import datetime
+import time
+import interface
+import types
+import threading
+from errors import *
+
+from warnings import warn
+
+##
+# The DBAPI level supported.  Currently 2.0.  This property is part of the
+# DBAPI 2.0 specification.
+apilevel = "2.0"
+
+##
+# Integer constant stating the level of thread safety the DBAPI interface
+# supports.  This DBAPI interface supports sharing of the module, connections,
+# and cursors.  This property is part of the DBAPI 2.0 specification.
+threadsafety = 3
+
+##
+# String property stating the type of parameter marker formatting expected by
+# the interface.  This value defaults to "format".  This property is part of
+# the DBAPI 2.0 specification.
+# <p>
+# Unlike the DBAPI specification, this value is not constant.  It can be
+# changed to any standard paramstyle value (ie. qmark, numeric, named, format,
+# and pyformat).
+paramstyle = 'format' # paramstyle can be changed to any DB-API paramstyle
+
+def convert_paramstyle(src_style, query, args):
+    # I don't see any way to avoid scanning the query string char by char,
+    # so we might as well take that careful approach and create a
+    # state-based scanner.  We'll use int variables for the state.
+    #  0 -- outside quoted string
+    #  1 -- inside single-quote string '...'
+    #  2 -- inside quoted identifier   "..."
+    #  3 -- inside escaped single-quote string, E'...'
+    
+    if args is None:
+        return  query, args
+    
+    state = 0
+    output_query = ""
+    output_args = []
+    if src_style == "numeric":
+        output_args = args
+    elif src_style in ("pyformat", "named"):
+        mapping_to_idx = {}
+    i = 0
+    while 1:
+        if i == len(query):
+            break
+        c = query[i]
+        # print "begin loop", repr(i), repr(c), repr(state)
+        if state == 0:
+            if c == "'":
+                i += 1
+                output_query += c
+                state = 1
+            elif c == '"':
+                i += 1
+                output_query += c
+                state = 2
+            elif c == 'E':
+                # check for escaped single-quote string
+                i += 1
+                if i < len(query) and i > 1 and query[i] == "'":
+                    i += 1
+                    output_query += "E'"
+                    state = 3
+                else:
+                    output_query += c
+            elif src_style == "qmark" and c == "?":
+                i += 1
+                param_idx = len(output_args)
+                if param_idx == len(args):
+                    raise QueryParameterIndexError("too many parameter fields, not enough parameters")
+                output_args.append(args[param_idx])
+                output_query += "$" + str(param_idx + 1)
+            elif src_style == "numeric" and c == ":":
+                i += 1
+                if i < len(query) and i > 1 and query[i].isdigit():
+                    output_query += "$" + query[i]
+                    i += 1
+                else:
+                    raise QueryParameterParseError("numeric parameter : does not have numeric arg")
+            elif src_style == "named" and c == ":":
+                name = ""
+                while 1:
+                    i += 1
+                    if i == len(query):
+                        break
+                    c = query[i]
+                    if c.isalnum() or c == '_':
+                        name += c
+                    else:
+                        break
+                if name == "":
+                    raise QueryParameterParseError("empty name of named parameter")
+                idx = mapping_to_idx.get(name)
+                if idx == None:
+                    idx = len(output_args)
+                    output_args.append(args[name])
+                    idx += 1
+                    mapping_to_idx[name] = idx
+                output_query += "$" + str(idx)
+            elif src_style == "format" and c == "%":
+                i += 1
+                if i < len(query) and i > 1:
+                    if query[i] == "s":
+                        param_idx = len(output_args)
+                        if param_idx == len(args):
+                            raise QueryParameterIndexError("too many parameter fields, not enough parameters")
+                        output_args.append(args[param_idx])
+                        output_query += "$" + str(param_idx + 1)
+                    elif query[i] == "%":
+                        output_query += "%"
+                    else:
+                        raise QueryParameterParseError("Only %s and %% are supported")
+                    i += 1
+                else:
+                    raise QueryParameterParseError("format parameter % does not have format code")
+            elif src_style == "pyformat" and c == "%":
+                i += 1
+                if i < len(query) and i > 1:
+                    if query[i] == "(":
+                        i += 1
+                        # begin mapping name
+                        end_idx = query.find(')', i)
+                        if end_idx == -1:
+                            raise QueryParameterParseError("began pyformat dict read, but couldn't find end of name")
+                        else:
+                            name = query[i:end_idx]
+                            i = end_idx + 1
+                            if i < len(query) and query[i] == "s":
+                                i += 1
+                                idx = mapping_to_idx.get(name)
+                                if idx == None:
+                                    idx = len(output_args)
+                                    output_args.append(args[name])
+                                    idx += 1
+                                    mapping_to_idx[name] = idx
+                                output_query += "$" + str(idx)
+                            else:
+                                raise QueryParameterParseError("format not specified or not supported (only %(...)s supported)")
+                    elif query[i] == "%":
+                        output_query += "%"
+                    elif query[i] == "s":
+                        # we have a %s in a pyformat query string.  Assume
+                        # support for format instead.
+                        i -= 1
+                        src_style = "format"
+                    else:
+                        raise QueryParameterParseError("Only %(name)s, %s and %% are supported")
+            else:
+                i += 1
+                output_query += c
+        elif state == 1:
+            output_query += c
+            i += 1
+            if c == "'":
+                # Could be a double ''
+                if i < len(query) and query[i] == "'":
+                    # is a double quote.
+                    output_query += query[i]
+                    i += 1
+                else:
+                    state = 0
+            elif src_style in ("pyformat","format") and c == "%":
+                # hm... we're only going to support an escaped percent sign
+                if i < len(query):
+                    if query[i] == "%":
+                        # good.  We already output the first percent sign.
+                        i += 1
+                    else:
+                        raise QueryParameterParseError("'%" + query[i] + "' not supported in quoted string")
+        elif state == 2:
+            output_query += c
+            i += 1
+            if c == '"':
+                state = 0
+            elif src_style in ("pyformat","format") and c == "%":
+                # hm... we're only going to support an escaped percent sign
+                if i < len(query):
+                    if query[i] == "%":
+                        # good.  We already output the first percent sign.
+                        i += 1
+                    else:
+                        raise QueryParameterParseError("'%" + query[i] + "' not supported in quoted string")
+        elif state == 3:
+            output_query += c
+            i += 1
+            if c == "\\":
+                # check for escaped single-quote
+                if i < len(query) and query[i] == "'":
+                    output_query += "'"
+                    i += 1
+            elif c == "'":
+                state = 0
+            elif src_style in ("pyformat","format") and c == "%":
+                # hm... we're only going to support an escaped percent sign
+                if i < len(query):
+                    if query[i] == "%":
+                        # good.  We already output the first percent sign.
+                        i += 1
+                    else:
+                        raise QueryParameterParseError("'%" + query[i] + "' not supported in quoted string")
+
+    return output_query, tuple(output_args)
+
+def require_open_cursor(fn):
+    def _fn(self, *args, **kwargs):
+        if self.cursor == None:
+            raise CursorClosedError()
+        return fn(self, *args, **kwargs)
+    return _fn
+
+##
+# The class of object returned by the {@link #ConnectionWrapper.cursor cursor method}.
+class CursorWrapper(object):
+    def __init__(self, conn, connection):
+        self.cursor = interface.Cursor(conn)
+        self.arraysize = 1
+        self._connection = connection
+        self._override_rowcount = None
+
+    ##
+    # This read-only attribute returns a reference to the connection object on
+    # which the cursor was created.
+    # <p>
+    # Stability: Part of a DBAPI 2.0 extension.  A warning "DB-API extension
+    # cursor.connection used" will be fired.
+    connection = property(lambda self: self._getConnection())
+
+    def _getConnection(self):
+        warn("DB-API extension cursor.connection used", stacklevel=3)
+        return self._connection
+
+    ##
+    # This read-only attribute specifies the number of rows that the last
+    # .execute*() produced (for DQL statements like 'select') or affected (for
+    # DML statements like 'update' or 'insert').
+    # <p>
+    # The attribute is -1 in case no .execute*() has been performed on the
+    # cursor or the rowcount of the last operation is cannot be determined by
+    # the interface.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    rowcount = property(lambda self: self._getRowCount())
+
+    @require_open_cursor
+    def _getRowCount(self):
+        if self._override_rowcount != None:
+            return self._override_rowcount
+        return self.cursor.row_count
+
+    ##
+    # This read-only attribute is a sequence of 7-item sequences.  Each value
+    # contains information describing one result column.  The 7 items returned
+    # for each column are (name, type_code, display_size, internal_size,
+    # precision, scale, null_ok).  Only the first two values are provided by
+    # this interface implementation.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    description = property(lambda self: self._getDescription())
+
+    @require_open_cursor
+    def _getDescription(self):
+        if self.cursor.row_description == None:
+            return None
+        columns = []
+        for col in self.cursor.row_description:
+            columns.append((col["name"], col["type_oid"], None, None, None, None, None))
+        return columns
+
+    ##
+    # Executes a database operation.  Parameters may be provided as a sequence
+    # or mapping and will be bound to variables in the operation.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_cursor
+    def execute(self, operation, args=()):
+        self._override_rowcount = None
+        self._execute(operation, args)
+
+    def _execute(self, operation, args=()):
+        new_query, new_args = convert_paramstyle(paramstyle, operation, args)
+        try:
+            self.cursor.execute(new_query, *new_args)
+        except ConnectionClosedError:
+            # can't rollback in this case
+            raise
+        except:
+            # any error will rollback the transaction to-date
+            self._connection.rollback()
+            raise
+
+    def copy_from(self, fileobj, table=None, sep='\t', null=None, query=None):
+        if query == None:
+            if table == None:
+                raise CopyQueryOrTableRequiredError()
+            query = "COPY %s FROM stdout DELIMITER '%s'" % (table, sep)
+            if null is not None:
+                query += " NULL '%s'" % (null,)
+        self.copy_execute(fileobj, query)
+
+    def copy_to(self, fileobj, table=None, sep='\t', null=None, query=None):
+        if query == None:
+            if table == None:
+                raise CopyQueryOrTableRequiredError()
+            query = "COPY %s TO stdout DELIMITER '%s'" % (table, sep)
+            if null is not None:
+                query += " NULL '%s'" % (null,)
+        self.copy_execute(fileobj, query)
+    
+    @require_open_cursor
+    def copy_execute(self, fileobj, query):
+        try:
+            self.cursor.execute(query, stream=fileobj)
+        except ConnectionClosedError:
+            # can't rollback in this case
+            raise
+        except:
+            # any error will rollback the transaction to-date
+            import traceback; traceback.print_exc()
+            self._connection.rollback()
+            raise
+
+    ##
+    # Prepare a database operation and then execute it against all parameter
+    # sequences or mappings provided.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_cursor
+    def executemany(self, operation, parameter_sets):
+        self._override_rowcount = 0
+        for parameters in parameter_sets:
+            self._execute(operation, parameters)
+            if self.cursor.row_count == -1 or self._override_rowcount == -1:
+                self._override_rowcount = -1
+            else:
+                self._override_rowcount += self.cursor.row_count
+
+    ##
+    # Fetch the next row of a query result set, returning a single sequence, or
+    # None when no more data is available.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_cursor
+    def fetchone(self):
+        return self.cursor.read_tuple()
+
+    ##
+    # Fetch the next set of rows of a query result, returning a sequence of
+    # sequences.  An empty sequence is returned when no more rows are
+    # available.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    # @param size   The number of rows to fetch when called.  If not provided,
+    #               the arraysize property value is used instead.
+    def fetchmany(self, size=None):
+        if size == None:
+            size = self.arraysize
+        rows = []
+        for i in range(size):
+            value = self.fetchone()
+            if value == None:
+                break
+            rows.append(value)
+        return rows
+
+    ##
+    # Fetch all remaining rows of a query result, returning them as a sequence
+    # of sequences.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_cursor
+    def fetchall(self):
+        return tuple(self.cursor.iterate_tuple())
+
+    ##
+    # Close the cursor.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_cursor
+    def close(self):
+        self.cursor.close()
+        self.cursor = None
+        self._override_rowcount = None
+
+    def next(self):
+        warn("DB-API extension cursor.next() used", stacklevel=2)
+        retval = self.fetchone()
+        if retval == None:
+            raise StopIteration()
+        return retval
+
+    def __iter__(self):
+        warn("DB-API extension cursor.__iter__() used", stacklevel=2)
+        return self
+
+    def setinputsizes(self, sizes):
+        pass
+
+    def setoutputsize(self, size, column=None):
+        pass
+
+    @require_open_cursor
+    def fileno(self):
+        return self.cursor.fileno()
+    
+    @require_open_cursor
+    def isready(self):
+        return self.cursor.isready()
+
+def require_open_connection(fn):
+    def _fn(self, *args, **kwargs):
+        if self.conn == None:
+            raise ConnectionClosedError()
+        return fn(self, *args, **kwargs)
+    return _fn
+
+##
+# The class of object returned by the {@link #connect connect method}.
+class ConnectionWrapper(object):
+    # DBAPI Extension: supply exceptions as attributes on the connection
+    Warning = property(lambda self: self._getError(Warning))
+    Error = property(lambda self: self._getError(Error))
+    InterfaceError = property(lambda self: self._getError(InterfaceError))
+    DatabaseError = property(lambda self: self._getError(DatabaseError))
+    OperationalError = property(lambda self: self._getError(OperationalError))
+    IntegrityError = property(lambda self: self._getError(IntegrityError))
+    InternalError = property(lambda self: self._getError(InternalError))
+    ProgrammingError = property(lambda self: self._getError(ProgrammingError))
+    NotSupportedError = property(lambda self: self._getError(NotSupportedError))
+
+    def _getError(self, error):
+        warn("DB-API extension connection.%s used" % error.__name__, stacklevel=3)
+        return error
+
+    def __init__(self, **kwargs):
+        self.conn = interface.Connection(**kwargs)
+        self.notifies = []
+        self.notifies_lock = threading.Lock()
+        self.conn.NotificationReceived += self._notificationReceived
+        self.conn.begin()
+
+    def _notificationReceived(self, notice):
+        try:
+        # psycopg2 compatible notification interface
+            self.notifies_lock.acquire()
+            self.notifies.append((notice.backend_pid, notice.condition))
+        finally:
+            self.notifies_lock.release()
+
+    ##
+    # Creates a {@link #CursorWrapper CursorWrapper} object bound to this
+    # connection.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_connection
+    def cursor(self):
+        return CursorWrapper(self.conn, self)
+
+    ##
+    # Commits the current database transaction.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_connection
+    def commit(self):
+        # There's a threading bug here.  If a query is sent after the
+        # commit, but before the begin, it will be executed immediately
+        # without a surrounding transaction.  Like all threading bugs -- it
+        # sounds unlikely, until it happens every time in one
+        # application...  however, to fix this, we need to lock the
+        # database connection entirely, so that no cursors can execute
+        # statements on other threads.  Support for that type of lock will
+        # be done later.
+        self.conn.commit()
+        self.conn.begin()
+
+    ##
+    # Rolls back the current database transaction.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_connection
+    def rollback(self):
+        # see bug description in commit.
+        self.conn.rollback()
+        self.conn.begin()
+
+    ##
+    # Closes the database connection.
+    # <p>
+    # Stability: Part of the DBAPI 2.0 specification.
+    @require_open_connection
+    def close(self):
+        self.conn.close()
+        self.conn = None
+
+    @require_open_connection
+    def recache_record_types(self):
+        self.conn.recache_record_types()
+
+
+##
+# Creates a DBAPI 2.0 compatible interface to a PostgreSQL database.
+# <p>
+# Stability: Part of the DBAPI 2.0 specification.
+#
+# @param user   The username to connect to the PostgreSQL server with.  This
+# parameter is required.
+#
+# @keyparam host   The hostname of the PostgreSQL server to connect with.
+# Providing this parameter is necessary for TCP/IP connections.  One of either
+# host, or unix_sock, must be provided.
+#
+# @keyparam unix_sock   The path to the UNIX socket to access the database
+# through, for example, '/tmp/.s.PGSQL.5432'.  One of either unix_sock or host
+# must be provided.  The port parameter will have no affect if unix_sock is
+# provided.
+#
+# @keyparam port   The TCP/IP port of the PostgreSQL server instance.  This
+# parameter defaults to 5432, the registered and common port of PostgreSQL
+# TCP/IP servers.
+#
+# @keyparam database   The name of the database instance to connect with.  This
+# parameter is optional, if omitted the PostgreSQL server will assume the
+# database name is the same as the username.
+#
+# @keyparam password   The user password to connect to the server with.  This
+# parameter is optional.  If omitted, and the database server requests password
+# based authentication, the connection will fail.  On the other hand, if this
+# parameter is provided and the database does not request password
+# authentication, then the password will not be used.
+#
+# @keyparam socket_timeout  Socket connect timeout measured in seconds.
+# Defaults to 60 seconds.
+#
+# @keyparam ssl     Use SSL encryption for TCP/IP socket.  Defaults to False.
+#
+# @return An instance of {@link #ConnectionWrapper ConnectionWrapper}.
+def connect(user, host=None, unix_sock=None, port=5432, database=None, password=None, socket_timeout=60, ssl=False, options=None):
+    return ConnectionWrapper(user=user, host=host,
+            unix_sock=unix_sock, port=port, database=database,
+            password=password, socket_timeout=socket_timeout, ssl=ssl, options=options)
+
+def Date(year, month, day):
+    return datetime.date(year, month, day)
+
+def Time(hour, minute, second):
+    return datetime.time(hour, minute, second)
+
+def Timestamp(year, month, day, hour, minute, second):
+    return datetime.datetime(year, month, day, hour, minute, second)
+
+def DateFromTicks(ticks):
+    return Date(*time.localtime(ticks)[:3])
+
+def TimeFromTicks(ticks):
+    return Time(*time.localtime(ticks)[3:6])
+
+def TimestampFromTicks(ticks):
+    return Timestamp(*time.localtime(ticks)[:6])
+
+##
+# Construct an object holding binary data.
+def Binary(value):
+    return types.Bytea(value)
+
+# I have no idea what this would be used for by a client app.  Should it be
+# TEXT, VARCHAR, CHAR?  It will only compare against row_description's
+# type_code if it is this one type.  It is the varchar type oid for now, this
+# appears to match expectations in the DB API 2.0 compliance test suite.
+STRING = 1043
+
+# bytea type_oid
+BINARY = 17
+
+# numeric type_oid
+NUMBER = 1700
+
+# timestamp type_oid
+DATETIME = 1114
+
+# oid type_oid
+ROWID = 26
+
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/errors.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/errors.py b/tools/bin/ext/pg8000/errors.py
new file mode 100644
index 0000000..b8b5acf
--- /dev/null
+++ b/tools/bin/ext/pg8000/errors.py
@@ -0,0 +1,115 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+class Warning(StandardError):
+    pass
+
+class Error(StandardError):
+    pass
+
+class InterfaceError(Error):
+    pass
+
+class ConnectionClosedError(InterfaceError):
+    def __init__(self):
+        InterfaceError.__init__(self, "connection is closed")
+
+class CursorClosedError(InterfaceError):
+    def __init__(self):
+        InterfaceError.__init__(self, "cursor is closed")
+
+class DatabaseError(Error):
+    pass
+
+class DataError(DatabaseError):
+    pass
+
+class OperationalError(DatabaseError):
+    pass
+
+class IntegrityError(DatabaseError):
+    pass
+
+class InternalError(DatabaseError):
+    pass
+
+class ProgrammingError(DatabaseError):
+    pass
+
+class NotSupportedError(DatabaseError):
+    pass
+
+##
+# An exception that is thrown when an internal error occurs trying to
+# decode binary array data from the server.
+class ArrayDataParseError(InternalError):
+    pass
+
+##
+# Thrown when attempting to transmit an array of unsupported data types.
+class ArrayContentNotSupportedError(NotSupportedError):
+    pass
+
+##
+# Thrown when attempting to send an array that doesn't contain all the same
+# type of objects (eg. some floats, some ints).
+class ArrayContentNotHomogenousError(ProgrammingError):
+    pass
+
+##
+# Attempted to pass an empty array in, but it's not possible to determine the
+# data type for an empty array.
+class ArrayContentEmptyError(ProgrammingError):
+    pass
+
+##
+# Attempted to use a multidimensional array with inconsistent array sizes.
+class ArrayDimensionsNotConsistentError(ProgrammingError):
+    pass
+
+# A cursor's copy_to or copy_from argument was not provided a table or query
+# to operate on.
+class CopyQueryOrTableRequiredError(ProgrammingError):
+    pass
+
+# Raised if a COPY query is executed without using copy_to or copy_from
+# functions to provide a data stream.
+class CopyQueryWithoutStreamError(ProgrammingError):
+    pass
+
+# When query parameters don't match up with query args.
+class QueryParameterIndexError(ProgrammingError):
+    pass
+
+# Some sort of parse error occured during query parameterization.
+class QueryParameterParseError(ProgrammingError):
+    pass
+


[03/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/pg.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/pg.py b/tools/bin/pythonSrc/PyGreSQL-4.0/pg.py
new file mode 100644
index 0000000..53c6669
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/pg.py
@@ -0,0 +1,711 @@
+#!/usr/bin/env python
+#
+# pg.py
+#
+# Written by D'Arcy J.M. Cain
+# Improved by Christoph Zwerschke
+#
+# $Id: pg.py,v 1.77 2008/12/30 16:40:00 darcy Exp $
+#
+
+"""PyGreSQL classic interface.
+
+This pg module implements some basic database management stuff.
+It includes the _pg module and builds on it, providing the higher
+level wrapper class named DB with addtional functionality.
+This is known as the "classic" ("old style") PyGreSQL interface.
+For a DB-API 2 compliant interface use the newer pgdb module.
+
+"""
+
+from _pg import *
+try:
+    frozenset
+except NameError: # Python < 2.4
+    from sets import ImmutableSet as frozenset
+try:
+    from decimal import Decimal
+    set_decimal(Decimal)
+except ImportError:
+    pass # Python < 2.4
+
+
+# Auxiliary functions which are independent from a DB connection:
+
+def _is_quoted(s):
+    """Check whether this string is a quoted identifier."""
+    s = s.replace('_', 'a')
+    return not s.isalnum() or s[:1].isdigit() or s != s.lower()
+
+def _is_unquoted(s):
+    """Check whether this string is an unquoted identifier."""
+    s = s.replace('_', 'a')
+    return s.isalnum() and not s[:1].isdigit()
+
+def _split_first_part(s):
+    """Split the first part of a dot separated string."""
+    s = s.lstrip()
+    if s[:1] == '"':
+        p = []
+        s = s.split('"', 3)[1:]
+        p.append(s[0])
+        while len(s) == 3 and s[1] == '':
+            p.append('"')
+            s = s[2].split('"', 2)
+            p.append(s[0])
+        p = [''.join(p)]
+        s = '"'.join(s[1:]).lstrip()
+        if s:
+            if s[:0] == '.':
+                p.append(s[1:])
+            else:
+                s = _split_first_part(s)
+                p[0] += s[0]
+                if len(s) > 1:
+                    p.append(s[1])
+    else:
+        p = s.split('.', 1)
+        s = p[0].rstrip()
+        if _is_unquoted(s):
+            s = s.lower()
+        p[0] = s
+    return p
+
+def _split_parts(s):
+    """Split all parts of a dot separated string."""
+    q = []
+    while s:
+        s = _split_first_part(s)
+        q.append(s[0])
+        if len(s) < 2:
+            break
+        s = s[1]
+    return q
+
+def _join_parts(s):
+    """Join all parts of a dot separated string."""
+    return '.'.join([_is_quoted(p) and '"%s"' % p or p for p in s])
+
+def _oid_key(qcl):
+    """Build oid key from qualified class name."""
+    return 'oid(%s)' % qcl
+
+
+# The PostGreSQL database connection interface:
+
+class DB(object):
+    """Wrapper class for the _pg connection type."""
+
+    def __init__(self, *args, **kw):
+        """Create a new connection.
+
+        You can pass either the connection parameters or an existing
+        _pg or pgdb connection. This allows you to use the methods
+        of the classic pg interface with a DB-API 2 pgdb connection.
+
+        """
+        if not args and len(kw) == 1:
+            db = kw.get('db')
+        elif not kw and len(args) == 1:
+            db = args[0]
+        else:
+            db = None
+        if db:
+            if isinstance(db, DB):
+                db = db.db
+            else:
+                try:
+                    db = db._cnx
+                except AttributeError:
+                    pass
+        if not db or not hasattr(db, 'db') or not hasattr(db, 'query'):
+            db = connect(*args, **kw)
+            self._closeable = 1
+        else:
+            self._closeable = 0
+        self.db = db
+        self.dbname = db.db
+        self._attnames = {}
+        self._pkeys = {}
+        self._privileges = {}
+        self._args = args, kw
+        self.debug = None # For debugging scripts, this can be set
+            # * to a string format specification (e.g. in CGI set to "%s<BR>"),
+            # * to a file object to write debug statements or
+            # * to a callable object which takes a string argument.
+
+    def __getattr__(self, name):
+        # All undefined members are the same as in the underlying pg connection:
+        if self.db:
+            return getattr(self.db, name)
+        else:
+            raise InternalError('Connection is not valid')
+
+    # Auxiliary methods
+
+    def _do_debug(self, s):
+        """Print a debug message."""
+        if self.debug:
+            if isinstance(self.debug, basestring):
+                print self.debug % s
+            elif isinstance(self.debug, file):
+                print >> self.debug, s
+            elif callable(self.debug):
+                self.debug(s)
+
+    def _quote_text(self, d):
+        """Quote text value."""
+        if not isinstance(d, basestring):
+            d = str(d)
+        return "'%s'" % self.escape_string(d)
+
+    _bool_true = frozenset('t true 1 y yes on'.split())
+
+    def _quote_bool(self, d):
+        """Quote boolean value."""
+        if isinstance(d, basestring):
+            if not d:
+                return 'NULL'
+            d = d.lower() in self._bool_true
+        else:
+            d = bool(d)
+        return ("'f'", "'t'")[d]
+
+    _date_literals = frozenset('current_date current_time'
+        ' current_timestamp localtime localtimestamp'.split())
+
+    def _quote_date(self, d):
+        """Quote date value."""
+        if not d:
+            return 'NULL'
+        if isinstance(d, basestring) and d.lower() in self._date_literals:
+            return d
+        return self._quote_text(d)
+
+    def _quote_num(self, d):
+        """Quote numeric value."""
+        if not d and d != 0:
+            return 'NULL'
+        return str(d)
+
+    def _quote_money(self, d):
+        """Quote money value."""
+        if not d:
+            return 'NULL'
+        return "'%.2f'" % float(d)
+
+    _quote_funcs = dict( # quote methods for each type
+        text=_quote_text, bool=_quote_bool, date=_quote_date,
+        int=_quote_num, num=_quote_num, float=_quote_num,
+        money=_quote_money)
+
+    def _quote(self, d, t):
+        """Return quotes if needed."""
+        if d is None:
+            return 'NULL'
+        try:
+            quote_func = self._quote_funcs[t]
+        except KeyError:
+            quote_func = self._quote_funcs['text']
+        return quote_func(self, d)
+
+    def _split_schema(self, cl):
+        """Return schema and name of object separately.
+
+        This auxiliary function splits off the namespace (schema)
+        belonging to the class with the name cl. If the class name
+        is not qualified, the function is able to determine the schema
+        of the class, taking into account the current search path.
+
+        """
+        s = _split_parts(cl)
+        if len(s) > 1: # name already qualfied?
+            # should be database.schema.table or schema.table
+            if len(s) > 3:
+                raise ProgrammingError('Too many dots in class name %s' % cl)
+            schema, cl = s[-2:]
+        else:
+            cl = s[0]
+            # determine search path
+            q = 'SELECT current_schemas(TRUE)'
+            schemas = self.db.query(q).getresult()[0][0][1:-1].split(',')
+            if schemas: # non-empty path
+                # search schema for this object in the current search path
+                q = ' UNION '.join(
+                    ["SELECT %d::integer AS n, '%s'::name AS nspname"
+                        % s for s in enumerate(schemas)])
+                q = ("SELECT nspname FROM pg_class"
+                    " JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid"
+                    " JOIN (%s) AS p USING (nspname)"
+                    " WHERE pg_class.relname = '%s'"
+                    " ORDER BY n LIMIT 1" % (q, cl))
+                schema = self.db.query(q).getresult()
+                if schema: # schema found
+                    schema = schema[0][0]
+                else: # object not found in current search path
+                    schema = 'public'
+            else: # empty path
+                schema = 'public'
+        return schema, cl
+
+    def _add_schema(self, cl):
+        """Ensure that the class name is prefixed with a schema name."""
+        return _join_parts(self._split_schema(cl))
+
+    # Public methods
+
+    # escape_string and escape_bytea exist as methods,
+    # so we define unescape_bytea as a method as well
+    unescape_bytea = staticmethod(unescape_bytea)
+
+    def close(self):
+        """Close the database connection."""
+        # Wraps shared library function so we can track state.
+        if self._closeable:
+            if self.db:
+                self.db.close()
+                self.db = None
+            else:
+                raise InternalError('Connection already closed')
+
+    def reset(self):
+        """Reset connection with current parameters.
+
+        All derived queries and large objects derived from this connection
+        will not be usable after this call.
+
+        """
+        self.db.reset()
+
+    def reopen(self):
+        """Reopen connection to the database.
+
+        Used in case we need another connection to the same database.
+        Note that we can still reopen a database that we have closed.
+
+        """
+        # There is no such shared library function.
+        if self._closeable:
+            db = connect(*self._args[0], **self._args[1])
+            if self.db:
+                self.db.close()
+            self.db = db
+
+    def query(self, qstr):
+        """Executes a SQL command string.
+
+        This method simply sends a SQL query to the database. If the query is
+        an insert statement that inserted exactly one row into a table that
+        has OIDs, the return value is the OID of the newly inserted row.
+        If the query is an update or delete statement, or an insert statement
+        that did not insert exactly one row in a table with OIDs, then the
+        numer of rows affected is returned as a string. If it is a statement
+        that returns rows as a result (usually a select statement, but maybe
+        also an "insert/update ... returning" statement), this method returns
+        a pgqueryobject that can be accessed via getresult() or dictresult()
+        or simply printed. Otherwise, it returns `None`.
+
+        """
+        # Wraps shared library function for debugging.
+        if not self.db:
+            raise InternalError('Connection is not valid')
+        self._do_debug(qstr)
+        return self.db.query(qstr)
+
+    def pkey(self, cl, newpkey=None):
+        """This method gets or sets the primary key of a class.
+
+        Composite primary keys are represented as frozensets. Note that
+        this raises an exception if the table does not have a primary key.
+
+        If newpkey is set and is not a dictionary then set that
+        value as the primary key of the class.  If it is a dictionary
+        then replace the _pkeys dictionary with a copy of it.
+
+        """
+        # First see if the caller is supplying a dictionary
+        if isinstance(newpkey, dict):
+            # make sure that all classes have a namespace
+            self._pkeys = dict([
+                ('.' in cl and cl or 'public.' + cl, pkey)
+                for cl, pkey in newpkey.iteritems()])
+            return self._pkeys
+
+        qcl = self._add_schema(cl) # build fully qualified class name
+        # Check if the caller is supplying a new primary key for the class
+        if newpkey:
+            self._pkeys[qcl] = newpkey
+            return newpkey
+
+        # Get all the primary keys at once
+        if qcl not in self._pkeys:
+            # if not found, check again in case it was added after we started
+            self._pkeys = {}
+            if self.server_version >= 80200:
+                # the ANY syntax works correctly only with PostgreSQL >= 8.2
+                any_indkey = "= ANY (pg_index.indkey)"
+            else:
+                any_indkey = "IN (%s)" % ', '.join(
+                    ['pg_index.indkey[%d]' % i for i in range(16)])
+            for r in self.db.query(
+                "SELECT pg_namespace.nspname, pg_class.relname,"
+                    " pg_attribute.attname FROM pg_class"
+                " JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace"
+                    " AND pg_namespace.nspname NOT LIKE 'pg_%'"
+                " JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid"
+                    " AND pg_attribute.attisdropped = 'f'"
+                " JOIN pg_index ON pg_index.indrelid = pg_class.oid"
+                    " AND pg_index.indisprimary = 't'"
+                    " AND pg_attribute.attnum " + any_indkey).getresult():
+                cl, pkey = _join_parts(r[:2]), r[2]
+                self._pkeys.setdefault(cl, []).append(pkey)
+            # (only) for composite primary keys, the values will be frozensets
+            for cl, pkey in self._pkeys.iteritems():
+                self._pkeys[cl] = len(pkey) > 1 and frozenset(pkey) or pkey[0]
+            self._do_debug(self._pkeys)
+
+        # will raise an exception if primary key doesn't exist
+        return self._pkeys[qcl]
+
+    def get_databases(self):
+        """Get list of databases in the system."""
+        return [s[0] for s in
+            self.db.query('SELECT datname FROM pg_database').getresult()]
+
+    def get_relations(self, kinds=None):
+        """Get list of relations in connected database of specified kinds.
+
+            If kinds is None or empty, all kinds of relations are returned.
+            Otherwise kinds can be a string or sequence of type letters
+            specifying which kind of relations you want to list.
+
+        """
+        where = kinds and "pg_class.relkind IN (%s) AND" % ','.join(
+            ["'%s'" % x for x in kinds]) or ''
+        return map(_join_parts, self.db.query(
+            "SELECT pg_namespace.nspname, pg_class.relname "
+            "FROM pg_class "
+            "JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace "
+            "WHERE %s pg_class.relname !~ '^Inv' AND "
+                "pg_class.relname !~ '^pg_' "
+            "ORDER BY 1, 2" % where).getresult())
+
+    def get_tables(self):
+        """Return list of tables in connected database."""
+        return self.get_relations('r')
+
+    def get_attnames(self, cl, newattnames=None):
+        """Given the name of a table, digs out the set of attribute names.
+
+        Returns a dictionary of attribute names (the names are the keys,
+        the values are the names of the attributes' types).
+        If the optional newattnames exists, it must be a dictionary and
+        will become the new attribute names dictionary.
+
+        """
+        if isinstance(newattnames, dict):
+            self._attnames = newattnames
+            return
+        elif newattnames:
+            raise ProgrammingError(
+                'If supplied, newattnames must be a dictionary')
+        cl = self._split_schema(cl) # split into schema and class
+        qcl = _join_parts(cl) # build fully qualified name
+        # May as well cache them:
+        if qcl in self._attnames:
+            return self._attnames[qcl]
+        if qcl not in self.get_relations('rv'):
+            raise ProgrammingError('Class %s does not exist' % qcl)
+        t = {}
+        for att, typ in self.db.query("SELECT pg_attribute.attname,"
+            " pg_type.typname FROM pg_class"
+            " JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid"
+            " JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid"
+            " JOIN pg_type ON pg_type.oid = pg_attribute.atttypid"
+            " WHERE pg_namespace.nspname = '%s' AND pg_class.relname = '%s'"
+            " AND (pg_attribute.attnum > 0 or pg_attribute.attname = 'oid')"
+            " AND pg_attribute.attisdropped = 'f'"
+                % cl).getresult():
+            if typ.startswith('bool'):
+                t[att] = 'bool'
+            elif typ.startswith('abstime'):
+                t[att] = 'date'
+            elif typ.startswith('date'):
+                t[att] = 'date'
+            elif typ.startswith('interval'):
+                t[att] = 'date'
+            elif typ.startswith('timestamp'):
+                t[att] = 'date'
+            elif typ.startswith('oid'):
+                t[att] = 'int'
+            elif typ.startswith('int'):
+                t[att] = 'int'
+            elif typ.startswith('float'):
+                t[att] = 'float'
+            elif typ.startswith('numeric'):
+                t[att] = 'num'
+            elif typ.startswith('money'):
+                t[att] = 'money'
+            else:
+                t[att] = 'text'
+        self._attnames[qcl] = t # cache it
+        return self._attnames[qcl]
+
+    def has_table_privilege(self, cl, privilege='select'):
+        """Check whether current user has specified table privilege."""
+        qcl = self._add_schema(cl)
+        privilege = privilege.lower()
+        try:
+            return self._privileges[(qcl, privilege)]
+        except KeyError:
+            q = "SELECT has_table_privilege('%s', '%s')" % (qcl, privilege)
+            ret = self.db.query(q).getresult()[0][0] == 't'
+            self._privileges[(qcl, privilege)] = ret
+            return ret
+
+    def get(self, cl, arg, keyname=None):
+        """Get a tuple from a database table or view.
+
+        This method is the basic mechanism to get a single row.  The keyname
+        that the key specifies a unique row.  If keyname is not specified
+        then the primary key for the table is used.  If arg is a dictionary
+        then the value for the key is taken from it and it is modified to
+        include the new values, replacing existing values where necessary.
+        For a composite key, keyname can also be a sequence of key names.
+        The OID is also put into the dictionary if the table has one, but
+        in order to allow the caller to work with multiple tables, it is
+        munged as oid(schema.table).
+
+        """
+        if cl.endswith('*'): # scan descendant tables?
+            cl = cl[:-1].rstrip() # need parent table name
+        # build qualified class name
+        qcl = self._add_schema(cl)
+        # To allow users to work with multiple tables,
+        # we munge the name of the "oid" the key
+        qoid = _oid_key(qcl)
+        if not keyname:
+            # use the primary key by default
+            try:
+               keyname = self.pkey(qcl)
+            except KeyError:
+               raise ProgrammingError('Class %s has no primary key' % qcl)
+        # We want the oid for later updates if that isn't the key
+        if keyname == 'oid':
+            if isinstance(arg, dict):
+                if qoid not in arg:
+                    raise ProgrammingError('%s not in arg' % qoid)
+            else:
+                arg = {qoid: arg}
+            where = 'oid = %s' % arg[qoid]
+            attnames = '*'
+        else:
+            attnames = self.get_attnames(qcl)
+            if isinstance(keyname, basestring):
+                keyname = (keyname,)
+            if not isinstance(arg, dict):
+                if len(keyname) > 1:
+                    raise ProgrammingError('Composite key needs dict as arg')
+                arg = dict([(k, arg) for k in keyname])
+            where = ' AND '.join(['%s = %s'
+                % (k, self._quote(arg[k], attnames[k])) for k in keyname])
+            attnames = ', '.join(attnames)
+        q = 'SELECT %s FROM %s WHERE %s LIMIT 1' % (attnames, qcl, where)
+        self._do_debug(q)
+        res = self.db.query(q).dictresult()
+        if not res:
+            raise DatabaseError('No such record in %s where %s' % (qcl, where))
+        for att, value in res[0].iteritems():
+            arg[att == 'oid' and qoid or att] = value
+        return arg
+
+    def insert(self, cl, d=None, **kw):
+        """Insert a tuple into a database table.
+
+        This method inserts a row into a table.  If a dictionary is
+        supplied it starts with that.  Otherwise it uses a blank dictionary.
+        Either way the dictionary is updated from the keywords.
+
+        The dictionary is then, if possible, reloaded with the values actually
+        inserted in order to pick up values modified by rules, triggers, etc.
+
+        Note: The method currently doesn't support insert into views
+        although PostgreSQL does.
+
+        """
+        qcl = self._add_schema(cl)
+        qoid = _oid_key(qcl)
+        if d is None:
+            d = {}
+        d.update(kw)
+        attnames = self.get_attnames(qcl)
+        names, values = [], []
+        for n in attnames:
+            if n != 'oid' and n in d:
+                names.append('"%s"' % n)
+                values.append(self._quote(d[n], attnames[n]))
+        names, values = ', '.join(names), ', '.join(values)
+        selectable = self.has_table_privilege(qcl)
+        if selectable and self.server_version >= 80200:
+            ret = ' RETURNING %s*' % ('oid' in attnames and 'oid, ' or '')
+        else:
+            ret = ''
+        q = 'INSERT INTO %s (%s) VALUES (%s)%s' % (qcl, names, values, ret)
+        self._do_debug(q)
+        res = self.db.query(q)
+        if ret:
+            res = res.dictresult()
+            for att, value in res[0].iteritems():
+                d[att == 'oid' and qoid or att] = value
+        elif isinstance(res, int):
+            d[qoid] = res
+            if selectable:
+                self.get(qcl, d, 'oid')
+        elif selectable:
+            if qoid in d:
+                self.get(qcl, d, 'oid')
+            else:
+                try:
+                    self.get(qcl, d)
+                except ProgrammingError:
+                    pass # table has no primary key
+        return d
+
+    def update(self, cl, d=None, **kw):
+        """Update an existing row in a database table.
+
+        Similar to insert but updates an existing row.  The update is based
+        on the OID value as munged by get or passed as keyword, or on the
+        primary key of the table.  The dictionary is modified, if possible,
+        to reflect any changes caused by the update due to triggers, rules,
+        default values, etc.
+
+        """
+        # Update always works on the oid which get returns if available,
+        # otherwise use the primary key.  Fail if neither.
+        # Note that we only accept oid key from named args for safety
+        qcl = self._add_schema(cl)
+        qoid = _oid_key(qcl)
+        if 'oid' in kw:
+            kw[qoid] = kw['oid']
+            del kw['oid']
+        if d is None:
+            d = {}
+        d.update(kw)
+        attnames = self.get_attnames(qcl)
+        if qoid in d:
+            where = 'oid = %s' % d[qoid]
+            keyname = ()
+        else:
+            try:
+                keyname = self.pkey(qcl)
+            except KeyError:
+                raise ProgrammingError('Class %s has no primary key' % qcl)
+            if isinstance(keyname, basestring):
+                keyname = (keyname,)
+            try:
+                where = ' AND '.join(['%s = %s'
+                    % (k, self._quote(d[k], attnames[k])) for k in keyname])
+            except KeyError:
+                raise ProgrammingError('Update needs primary key or oid.')
+        values = []
+        for n in attnames:
+            if n in d and n not in keyname:
+                values.append('%s = %s' % (n, self._quote(d[n], attnames[n])))
+        if not values:
+            return d
+        values = ', '.join(values)
+        selectable = self.has_table_privilege(qcl)
+        if selectable and self.server_version >= 880200:
+            ret = ' RETURNING %s*' % ('oid' in attnames and 'oid, ' or '')
+        else:
+            ret = ''
+        q = 'UPDATE %s SET %s WHERE %s%s' % (qcl, values, where, ret)
+        self._do_debug(q)
+        res = self.db.query(q)
+        if ret:
+            res = self.db.query(q).dictresult()
+            for att, value in res[0].iteritems():
+                d[att == 'oid' and qoid or att] = value
+        else:
+            self.db.query(q)
+            if selectable:
+                if qoid in d:
+                    self.get(qcl, d, 'oid')
+                else:
+                    self.get(qcl, d)
+        return d
+
+    def clear(self, cl, a=None):
+        """
+
+        This method clears all the attributes to values determined by the types.
+        Numeric types are set to 0, Booleans are set to 'f', and everything
+        else is set to the empty string.  If the array argument is present,
+        it is used as the array and any entries matching attribute names are
+        cleared with everything else left unchanged.
+
+        """
+        # At some point we will need a way to get defaults from a table.
+        qcl = self._add_schema(cl)
+        if a is None:
+            a = {} # empty if argument is not present
+        attnames = self.get_attnames(qcl)
+        for n, t in attnames.iteritems():
+            if n == 'oid':
+                continue
+            if t in ('int', 'float', 'num', 'money'):
+                a[n] = 0
+            elif t == 'bool':
+                a[n] = 'f'
+            else:
+                a[n] = ''
+        return a
+
+    def delete(self, cl, d=None, **kw):
+        """Delete an existing row in a database table.
+
+        This method deletes the row from a table.  It deletes based on the
+        OID value as munged by get or passed as keyword, or on the primary
+        key of the table.  The return value is the number of deleted rows
+        (i.e. 0 if the row did not exist and 1 if the row was deleted).
+
+        """
+        # Like update, delete works on the oid.
+        # One day we will be testing that the record to be deleted
+        # isn't referenced somewhere (or else PostgreSQL will).
+        # Note that we only accept oid key from named args for safety
+        qcl = self._add_schema(cl)
+        qoid = _oid_key(qcl)
+        if 'oid' in kw:
+            kw[qoid] = kw['oid']
+            del kw['oid']
+        if d is None:
+            d = {}
+        d.update(kw)
+        if qoid in d:
+            where = 'oid = %s' % d[qoid]
+        else:
+            try:
+                keyname = self.pkey(qcl)
+            except KeyError:
+                raise ProgrammingError('Class %s has no primary key' % qcl)
+            if isinstance(keyname, basestring):
+                keyname = (keyname,)
+            attnames = self.get_attnames(qcl)
+            try:
+                where = ' AND '.join(['%s = %s'
+                    % (k, self._quote(d[k], attnames[k])) for k in keyname])
+            except KeyError:
+                raise ProgrammingError('Delete needs primary key or oid.')
+        q = 'DELETE FROM %s WHERE %s' % (qcl, where)
+        self._do_debug(q)
+        return int(self.db.query(q))
+
+
+# if run as script, print some information
+
+if __name__ == '__main__':
+    print 'PyGreSQL version', version
+    print
+    print __doc__

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/pgdb.py
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/pgdb.py b/tools/bin/pythonSrc/PyGreSQL-4.0/pgdb.py
new file mode 100644
index 0000000..4b4344c
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/pgdb.py
@@ -0,0 +1,582 @@
+#!/usr/bin/env python
+#
+# pgdb.py
+#
+# Written by D'Arcy J.M. Cain
+#
+# $Id: pgdb.py,v 1.54 2008/11/23 14:32:18 cito Exp $
+#
+
+"""pgdb - DB-API 2.0 compliant module for PygreSQL.
+
+(c) 1999, Pascal Andre <an...@via.ecp.fr>.
+See package documentation for further information on copyright.
+
+Inline documentation is sparse.
+See DB-API 2.0 specification for usage information:
+http://www.python.org/peps/pep-0249.html
+
+Basic usage:
+
+    pgdb.connect(connect_string) # open a connection
+    # connect_string = 'host:database:user:password:opt:tty'
+    # All parts are optional. You may also pass host through
+    # password as keyword arguments. To pass a port,
+    # pass it in the host keyword parameter:
+    pgdb.connect(host='localhost:5432')
+
+    connection.cursor() # open a cursor
+
+    cursor.execute(query[, params])
+    # Execute a query, binding params (a dictionary) if they are
+    # passed. The binding syntax is the same as the % operator
+    # for dictionaries, and no quoting is done.
+
+    cursor.executemany(query, list of params)
+    # Execute a query many times, binding each param dictionary
+    # from the list.
+
+    cursor.fetchone() # fetch one row, [value, value, ...]
+
+    cursor.fetchall() # fetch all rows, [[value, value, ...], ...]
+
+    cursor.fetchmany([size])
+    # returns size or cursor.arraysize number of rows,
+    # [[value, value, ...], ...] from result set.
+    # Default cursor.arraysize is 1.
+
+    cursor.description # returns information about the columns
+    #	[(column_name, type_name, display_size,
+    #		internal_size, precision, scale, null_ok), ...]
+    # Note that precision, scale and null_ok are not implemented.
+
+    cursor.rowcount # number of rows available in the result set
+    # Available after a call to execute.
+
+    connection.commit() # commit transaction
+
+    connection.rollback() # or rollback transaction
+
+    cursor.close() # close the cursor
+
+    connection.close() # close the connection
+
+"""
+
+from _pg import *
+import time
+try:
+    frozenset
+except NameError: # Python < 2.4
+    from sets import ImmutableSet as frozenset
+from datetime import datetime, timedelta
+try: # use Decimal if available
+    from decimal import Decimal
+    set_decimal(Decimal)
+except ImportError: # otherwise (Python < 2.4)
+    Decimal = float # use float instead of Decimal
+
+
+### Module Constants
+
+# compliant with DB SIG 2.0
+apilevel = '2.0'
+
+# module may be shared, but not connections
+threadsafety = 1
+
+# this module use extended python format codes
+paramstyle = 'pyformat'
+
+
+### Internal Types Handling
+
+def decimal_type(decimal_type=None):
+    """Get or set global type to be used for decimal values."""
+    global Decimal
+    if decimal_type is not None:
+        Decimal = decimal_type
+        set_decimal(decimal_type)
+    return Decimal
+
+
+def _cast_bool(value):
+    return value[:1] in ['t', 'T']
+
+
+def _cast_money(value):
+    return Decimal(''.join(filter(
+        lambda v: v in '0123456789.-', value)))
+
+
+_cast = {'bool': _cast_bool,
+    'int2': int, 'int4': int, 'serial': int,
+    'int8': long, 'oid': long, 'oid8': long,
+    'float4': float, 'float8': float,
+    'numeric': Decimal, 'money': _cast_money}
+
+
+class pgdbTypeCache(dict):
+    """Cache for database types."""
+
+    def __init__(self, cnx):
+        """Initialize type cache for connection."""
+        super(pgdbTypeCache, self).__init__()
+        self._src = cnx.source()
+
+    def typecast(typ, value):
+        """Cast value to database type."""
+        if value is None:
+            # for NULL values, no typecast is necessary
+            return None
+        cast = _cast.get(typ)
+        if cast is None:
+            # no typecast available or necessary
+            return value
+        else:
+            return cast(value)
+    typecast = staticmethod(typecast)
+
+    def getdescr(self, oid):
+        """Get name of database type with given oid."""
+        try:
+            return self[oid]
+        except KeyError:
+            self._src.execute(
+                "SELECT typname, typlen "
+                "FROM pg_type WHERE oid=%s" % oid)
+            res = self._src.fetch(1)[0]
+            # The column name is omitted from the return value.
+            # It will have to be prepended by the caller.
+            res = (res[0], None, int(res[1]),
+                None, None, None)
+            self[oid] = res
+            return res
+
+
+class _quotedict(dict):
+    """Dictionary with auto quoting of its items.
+
+    The quote attribute must be set to the desired quote function.
+
+    """
+
+    def __getitem__(self, key):
+        return self.quote(super(_quotedict, self).__getitem__(key))
+
+
+### Cursor Object
+
+class pgdbCursor(object):
+    """Cursor Object."""
+
+    def __init__(self, dbcnx):
+        """Create a cursor object for the database connection."""
+        self.connection = self._dbcnx = dbcnx
+        self._cnx = dbcnx._cnx
+        self._type_cache = dbcnx._type_cache
+        self._src = self._cnx.source()
+        self.description = None
+        self.rowcount = -1
+        self.arraysize = 1
+        self.lastrowid = None
+
+    def __iter__(self):
+        """Return self to make cursors compatible to the iteration protocol."""
+        return self
+
+    def _quote(self, val):
+        """Quote value depending on its type."""
+        if isinstance(val, datetime):
+            val = str(val)
+        elif isinstance(val, unicode):
+            val = val.encode( 'utf8' )
+        if isinstance(val, str):
+            val = "'%s'" % self._cnx.escape_string(val)
+        elif isinstance(val, (int, long, float)):
+            pass
+        elif val is None:
+            val = 'NULL'
+        elif isinstance(val, (list, tuple)):
+            val = '(%s)' % ','.join(map(lambda v: str(self._quote(v)), val))
+        elif Decimal is not float and isinstance(val, Decimal):
+            pass
+        elif hasattr(val, '__pg_repr__'):
+            val = val.__pg_repr__()
+        else:
+            raise InterfaceError(
+                'do not know how to handle type %s' % type(val))
+        return val
+
+    def _quoteparams(self, string, params):
+        """Quote parameters.
+
+        This function works for both mappings and sequences.
+
+        """
+        if isinstance(params, dict):
+            params = _quotedict(params)
+            params.quote = self._quote
+        else:
+            params = tuple(map(self._quote, params))
+        return string % params
+
+    def row_factory(row):
+        """Process rows before they are returned.
+
+        You can overwrite this with a custom row factory,
+        e.g. a dict factory:
+
+        class myCursor(pgdb.pgdbCursor):
+            def cursor.row_factory(self, row):
+                d = {}
+                for idx, col in enumerate(self.description):
+                    d[col[0]] = row[idx]
+                return d
+        cursor = myCursor(cnx)
+
+        """
+        return row
+    row_factory = staticmethod(row_factory)
+
+    def close(self):
+        """Close the cursor object."""
+        self._src.close()
+        self.description = None
+        self.rowcount = -1
+        self.lastrowid = None
+
+    def execute(self, operation, params=None):
+        """Prepare and execute a database operation (query or command)."""
+        # The parameters may also be specified as list of
+        # tuples to e.g. insert multiple rows in a single
+        # operation, but this kind of usage is deprecated:
+        if (params and isinstance(params, list)
+                and isinstance(params[0], tuple)):
+            self.executemany(operation, params)
+        else:
+            # not a list of tuples
+            self.executemany(operation, (params,))
+
+    def executemany(self, operation, param_seq):
+        """Prepare operation and execute it against a parameter sequence."""
+        if not param_seq:
+            # don't do anything without parameters
+            return
+        self.description = None
+        self.rowcount = -1
+        # first try to execute all queries
+        totrows = 0
+        sql = "BEGIN"
+        try:
+            if not self._dbcnx._tnx:
+                try:
+                    self._cnx.source().execute(sql)
+                except Exception:
+                    raise OperationalError("can't start transaction")
+                self._dbcnx._tnx = True
+            for params in param_seq:
+                if params:
+                    sql = self._quoteparams(operation, params)
+                else:
+                    sql = operation
+                rows = self._src.execute(sql)
+                if rows: # true if not DML
+                    totrows += rows
+                else:
+                    self.rowcount = -1
+        except Error, msg:
+            raise DatabaseError("error '%s' in '%s'" % (msg, sql))
+        except Exception, err:
+            raise OperationalError("internal error in '%s': %s" % (sql, err))
+        # then initialize result raw count and description
+        if self._src.resulttype == RESULT_DQL:
+            self.rowcount = self._src.ntuples
+            getdescr = self._type_cache.getdescr
+            coltypes = self._src.listinfo()
+            self.description = [typ[1:2] + getdescr(typ[2]) for typ in coltypes]
+            self.lastrowid = self._src.oidstatus()
+        else:
+            self.rowcount = totrows
+            self.description = None
+            self.lastrowid = self._src.oidstatus()
+
+    def fetchone(self):
+        """Fetch the next row of a query result set."""
+        res = self.fetchmany(1, False)
+        try:
+            return res[0]
+        except IndexError:
+            return None
+
+    def fetchall(self):
+        """Fetch all (remaining) rows of a query result."""
+        return self.fetchmany(-1, False)
+
+    def fetchmany(self, size=None, keep=False):
+        """Fetch the next set of rows of a query result.
+
+        The number of rows to fetch per call is specified by the
+        size parameter. If it is not given, the cursor's arraysize
+        determines the number of rows to be fetched. If you set
+        the keep parameter to true, this is kept as new arraysize.
+
+        """
+        if size is None:
+            size = self.arraysize
+        if keep:
+            self.arraysize = size
+        try:
+            result = self._src.fetch(size)
+        except Error, err:
+            raise DatabaseError(str(err))
+        row_factory = self.row_factory
+        typecast = self._type_cache.typecast
+        coltypes = [desc[1] for desc in self.description]
+        return [row_factory([typecast(*args)
+            for args in zip(coltypes, row)]) for row in result]
+
+    def next(self):
+        """Return the next row (support for the iteration protocol)."""
+        res = self.fetchone()
+        if res is None:
+            raise StopIteration
+        return res
+
+    def nextset():
+        """Not supported."""
+        raise NotSupportedError("nextset() is not supported")
+    nextset = staticmethod(nextset)
+
+    def setinputsizes(sizes):
+        """Not supported."""
+        pass
+    setinputsizes = staticmethod(setinputsizes)
+
+    def setoutputsize(size, column=0):
+        """Not supported."""
+        pass
+    setoutputsize = staticmethod(setoutputsize)
+
+
+### Connection Objects
+
+class pgdbCnx(object):
+    """Connection Object."""
+
+    # expose the exceptions as attributes on the connection object
+    Error = Error
+    Warning = Warning
+    InterfaceError = InterfaceError
+    DatabaseError = DatabaseError
+    InternalError = InternalError
+    OperationalError = OperationalError
+    ProgrammingError = ProgrammingError
+    IntegrityError = IntegrityError
+    DataError = DataError
+    NotSupportedError = NotSupportedError
+
+    def __init__(self, cnx):
+        """Create a database connection object."""
+        self._cnx = cnx # connection
+        self._tnx = False # transaction state
+        self._type_cache = pgdbTypeCache(cnx)
+        try:
+            self._cnx.source()
+        except Exception:
+            raise OperationalError("invalid connection")
+
+    def close(self):
+        """Close the connection object."""
+        if self._cnx:
+            self._cnx.close()
+            self._cnx = None
+        else:
+            raise OperationalError("connection has been closed")
+
+    def commit(self):
+        """Commit any pending transaction to the database."""
+        if self._cnx:
+            if self._tnx:
+                self._tnx = False
+                try:
+                    self._cnx.source().execute("COMMIT")
+                except Exception:
+                    raise OperationalError("can't commit")
+        else:
+            raise OperationalError("connection has been closed")
+
+    def rollback(self):
+        """Roll back to the start of any pending transaction."""
+        if self._cnx:
+            if self._tnx:
+                self._tnx = False
+                try:
+                    self._cnx.source().execute("ROLLBACK")
+                except Exception:
+                    raise OperationalError("can't rollback")
+        else:
+            raise OperationalError("connection has been closed")
+
+    def cursor(self):
+        """Return a new Cursor Object using the connection."""
+        if self._cnx:
+            try:
+                return pgdbCursor(self)
+            except Exception:
+                raise OperationalError("invalid connection")
+        else:
+            raise OperationalError("connection has been closed")
+
+
+### Module Interface
+
+_connect_ = connect
+
+def connect(dsn=None,
+        user=None, password=None,
+        host=None, database=None):
+    """Connects to a database."""
+    # first get params from DSN
+    dbport = -1
+    dbhost = ""
+    dbbase = ""
+    dbuser = ""
+    dbpasswd = ""
+    dbopt = ""
+    dbtty = ""
+    try:
+        params = dsn.split(":")
+        dbhost = params[0]
+        dbport = int(params[1])
+        dbbase = params[2]
+        dbuser = params[3]
+        dbpasswd = params[4]
+        dbopt = params[5]
+        dbtty = params[6]
+    except (AttributeError, IndexError, TypeError):
+        pass
+
+    # override if necessary
+    if user is not None:
+        dbuser = user
+    if password is not None:
+        dbpasswd = password
+    if database is not None:
+        dbbase = database
+    if host is not None:
+        try:
+            params = host.split(":")
+            dbhost = params[0]
+            dbport = int(params[1])
+        except (AttributeError, IndexError, TypeError, ValueError):
+            pass
+
+    # empty host is localhost
+    if dbhost == "":
+        dbhost = None
+    if dbuser == "":
+        dbuser = None
+
+    # open the connection
+    cnx = _connect_(dbbase, dbhost, dbport, dbopt,
+        dbtty, dbuser, dbpasswd)
+    return pgdbCnx(cnx)
+
+
+### Types Handling
+
+class pgdbType(frozenset):
+    """Type class for a couple of PostgreSQL data types.
+
+    PostgreSQL is object-oriented: types are dynamic.
+    We must thus use type names as internal type codes.
+
+    """
+
+    if frozenset.__module__ == '__builtin__':
+        def __new__(cls, values):
+            if isinstance(values, basestring):
+                values = values.split()
+            return super(pgdbType, cls).__new__(cls, values)
+    else: # Python < 2.4
+        def __init__(self, values):
+            if isinstance(values, basestring):
+                values = values.split()
+            super(pgdbType, self).__init__(values)
+
+    def __eq__(self, other):
+        if isinstance(other, basestring):
+            return other in self
+        else:
+            return super(pgdbType, self).__eq__(other)
+
+    def __ne__(self, other):
+        if isinstance(other, basestring):
+            return other not in self
+        else:
+            return super(pgdbType, self).__ne__(other)
+
+
+# Mandatory type objects defined by DB-API 2 specs:
+
+STRING = pgdbType('char bpchar name text varchar')
+BINARY = pgdbType('bytea')
+NUMBER = pgdbType('int2 int4 serial int8 float4 float8 numeric money')
+DATETIME = pgdbType('date time timetz timestamp timestamptz datetime abstime'
+    ' interval tinterval timespan reltime')
+ROWID = pgdbType('oid oid8')
+
+
+# Additional type objects (more specific):
+
+BOOL = pgdbType('bool')
+SMALLINT = pgdbType('int2')
+INTEGER = pgdbType('int2 int4 int8 serial')
+LONG = pgdbType('int8')
+FLOAT = pgdbType('float4 float8')
+NUMERIC = pgdbType('numeric')
+MONEY = pgdbType('money')
+DATE = pgdbType('date')
+TIME = pgdbType('time timetz')
+TIMESTAMP = pgdbType('timestamp timestamptz datetime abstime')
+INTERVAL = pgdbType('interval tinterval timespan reltime')
+
+
+# Mandatory type helpers defined by DB-API 2 specs:
+
+def Date(year, month, day):
+    """Construct an object holding a date value."""
+    return datetime(year, month, day)
+
+def Time(hour, minute, second):
+    """Construct an object holding a time value."""
+    return timedelta(hour, minute, second)
+
+def Timestamp(year, month, day, hour, minute, second):
+    """construct an object holding a time stamp value."""
+    return datetime(year, month, day, hour, minute, second)
+
+def DateFromTicks(ticks):
+    """Construct an object holding a date value from the given ticks value."""
+    return Date(*time.localtime(ticks)[:3])
+
+def TimeFromTicks(ticks):
+    """construct an object holding a time value from the given ticks value."""
+    return Time(*time.localtime(ticks)[3:6])
+
+def TimestampFromTicks(ticks):
+    """construct an object holding a time stamp from the given ticks value."""
+    return Timestamp(*time.localtime(ticks)[:6])
+
+def Binary(value):
+    """construct an object capable of holding a binary (long) string value."""
+    return value
+
+
+# If run as script, print some information:
+
+if __name__ == '__main__':
+    print 'PyGreSQL version', version
+    print
+    print __doc__



[35/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
SGA import. Now with files previously missing because of the .gitignore issue


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/a485be47
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/a485be47
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/a485be47

Branch: refs/heads/master
Commit: a485be476fbff3b8103644febba7400bbfad7867
Parents: 8b26974
Author: Roman Shaposhnik <rv...@apache.org>
Authored: Tue Sep 22 12:12:07 2015 -0700
Committer: Roman Shaposhnik <rv...@apache.org>
Committed: Tue Sep 22 12:12:07 2015 -0700

----------------------------------------------------------------------
 src/backend/access/index/basedef.json           |  5492 ++++
 src/backend/access/index/caql.files             |   101 +
 src/backend/access/index/caql.md5               |   102 +
 src/backend/access/index/caqlfilemap.json       |   478 +
 src/backend/access/index/catquery.c             | 23165 +++++++++++++++++
 src/backend/access/index/gperf.init             |  4038 +++
 src/backend/access/index/uniqdef.json           |  5755 ++++
 src/backend/utils/mb/Unicode/UCS_to_BIG5.pl     |   177 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/api.Plo    |    95 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/dumper.Plo |    95 +
 .../yaml-0.1.1/src/.deps/emitter.Plo            |    96 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/loader.Plo |    95 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/parser.Plo |    95 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/reader.Plo |    95 +
 .../yaml-0.1.1/src/.deps/scanner.Plo            |    96 +
 .../gpmapreduce/yaml-0.1.1/src/.deps/writer.Plo |    95 +
 .../tests/.deps/example-deconstructor-alt.Po    |    71 +
 .../tests/.deps/example-deconstructor.Po        |    71 +
 .../tests/.deps/example-reformatter-alt.Po      |    71 +
 .../tests/.deps/example-reformatter.Po          |    71 +
 .../yaml-0.1.1/tests/.deps/run-dumper.Po        |    72 +
 .../yaml-0.1.1/tests/.deps/run-emitter.Po       |    72 +
 .../yaml-0.1.1/tests/.deps/run-loader.Po        |    72 +
 .../yaml-0.1.1/tests/.deps/run-parser.Po        |    72 +
 .../yaml-0.1.1/tests/.deps/run-scanner.Po       |    72 +
 src/pl/pljava/src/java/.p4ignore                |     2 +
 src/test/regress/GNUmakefile                    |   232 +
 .../data/upgrade12/upg2_catupgrade_121.sql      |   745 +
 .../regress/data/upgrade33/pg_aggregate32.data  |   126 +
 .../regress/data/upgrade33/pg_attribute32.data  |  1951 ++
 .../regress/data/upgrade33/pg_class32.data.in   |   243 +
 .../regress/data/upgrade33/pg_conversion32.data |   125 +
 .../regress/data/upgrade33/pg_depend32.data     |  5171 ++++
 .../data/upgrade33/pg_description32.data        |  1861 ++
 src/test/regress/data/upgrade33/pg_index32.data |    93 +
 .../data/upgrade33/pg_namespace32.data.in       |     7 +
 src/test/regress/data/upgrade33/pg_proc32.data  |  2687 ++
 .../regress/data/upgrade33/pg_rewrite32.data    |    85 +
 .../regress/data/upgrade33/pg_shdepend32.data   |     2 +
 .../data/upgrade33/pg_shdescription32.data      |     2 +
 src/test/regress/data/upgrade33/pg_type32.data  |   265 +
 .../data/upgrade33/upg2_conversion32.sql.in     |   259 +
 .../upgrade33/upg2_pg_attribute_toadd32.data.in |    46 +
 .../upgrade33/upg2_pg_class_toadd32.data.in     |     8 +
 .../data/upgrade33/upg2_pg_depend_toadd32.data  |    27 +
 .../upgrade33/upg2_pg_description_toadd32.data  |    15 +
 .../upgrade33/upg2_pg_index_toadd32.data.in     |     5 +
 .../upgrade33/upg2_pg_namespace_toadd32.data    |     1 +
 .../data/upgrade33/upg2_pg_proc_toadd32.data    |    15 +
 .../data/upgrade33/upg2_pg_type_toadd32.data.in |     6 +
 .../regress/data/upgrade34/pg_aggregate33.data  |   126 +
 .../regress/data/upgrade34/pg_attribute33.data  |  1997 ++
 .../regress/data/upgrade34/pg_class33.data.in   |   250 +
 .../regress/data/upgrade34/pg_conversion33.data |   133 +
 .../regress/data/upgrade34/pg_depend33.data     |  5148 ++++
 .../data/upgrade34/pg_description33.data        |  2094 ++
 src/test/regress/data/upgrade34/pg_index33.data |    96 +
 .../data/upgrade34/pg_namespace33.data.in       |     7 +
 src/test/regress/data/upgrade34/pg_proc33.data  |  2708 ++
 .../regress/data/upgrade34/pg_rewrite33.data    |    85 +
 .../regress/data/upgrade34/pg_shdepend33.data   |     2 +
 .../data/upgrade34/pg_shdescription33.data      |     2 +
 src/test/regress/data/upgrade34/pg_type33.data  |   269 +
 .../upgrade34/upg2_pg_attribute_toadd33.data.in |   340 +
 .../upgrade34/upg2_pg_class_toadd33.data.in     |    52 +
 .../data/upgrade34/upg2_pg_depend_toadd33.data  |   169 +
 .../upgrade34/upg2_pg_description_toadd33.data  |    83 +
 .../upgrade34/upg2_pg_index_toadd33.data.in     |    30 +
 .../upgrade34/upg2_pg_namespace_toadd33.data    |     2 +
 .../data/upgrade34/upg2_pg_proc_toadd33.data    |    83 +
 .../data/upgrade34/upg2_pg_type_toadd33.data.in |    28 +
 src/test/regress/data/upgrade41/.p4ignore       |     4 +
 tools/bin/ext/.p4ignore                         |     3 +
 tools/bin/ext/Crypto/.p4ignore                  |     2 +
 tools/bin/ext/Makefile                          |    27 +
 tools/bin/ext/__init__.py                       |   290 +
 tools/bin/ext/figleaf/__init__.py               |   309 +
 tools/bin/ext/figleaf/_lib.py                   |     6 +
 tools/bin/ext/figleaf/annotate.py               |   225 +
 tools/bin/ext/figleaf/annotate_cover.py         |   143 +
 tools/bin/ext/figleaf/annotate_html.py          |   276 +
 tools/bin/ext/figleaf/annotate_sections.py      |    79 +
 tools/bin/ext/figleaf/figleaf2html              |     7 +
 tools/bin/ext/figleaf/internals.py              |   241 +
 tools/bin/ext/figleaf/nose_sections.py          |   117 +
 tools/bin/ext/pg8000/__init__.py                |    37 +
 tools/bin/ext/pg8000/dbapi.py                   |   621 +
 tools/bin/ext/pg8000/errors.py                  |   115 +
 tools/bin/ext/pg8000/interface.py               |   542 +
 tools/bin/ext/pg8000/protocol.py                |  1340 +
 tools/bin/ext/pg8000/types.py                   |   687 +
 tools/bin/ext/pg8000/util.py                    |    20 +
 tools/bin/ext/pygresql/__init__.py              |     0
 tools/bin/ext/simplejson/__init__.py            |   287 +
 tools/bin/ext/simplejson/_speedups.c            |   215 +
 tools/bin/ext/simplejson/decoder.py             |   273 +
 tools/bin/ext/simplejson/encoder.py             |   371 +
 tools/bin/ext/simplejson/jsonfilter.py          |    40 +
 tools/bin/ext/simplejson/scanner.py             |    63 +
 tools/bin/ext/simplejson/tests/__init__.py      |     0
 tools/bin/ext/simplejson/tests/test_attacks.py  |     6 +
 tools/bin/ext/simplejson/tests/test_dump.py     |    10 +
 tools/bin/ext/simplejson/tests/test_fail.py     |    70 +
 tools/bin/ext/simplejson/tests/test_float.py    |     4 +
 tools/bin/ext/simplejson/tests/test_indent.py   |    41 +
 tools/bin/ext/simplejson/tests/test_pass1.py    |    72 +
 tools/bin/ext/simplejson/tests/test_pass2.py    |    11 +
 tools/bin/ext/simplejson/tests/test_pass3.py    |    16 +
 .../bin/ext/simplejson/tests/test_recursion.py  |    62 +
 .../bin/ext/simplejson/tests/test_separators.py |    41 +
 tools/bin/ext/simplejson/tests/test_unicode.py  |    16 +
 tools/bin/ext/yaml/__init__.py                  |   290 +
 tools/bin/ext/yaml/__init__.pyc                 |   Bin 0 -> 11360 bytes
 tools/bin/ext/yaml/composer.py                  |   118 +
 tools/bin/ext/yaml/composer.pyc                 |   Bin 0 -> 4204 bytes
 tools/bin/ext/yaml/constructor.py               |   675 +
 tools/bin/ext/yaml/constructor.pyc              |   Bin 0 -> 22333 bytes
 tools/bin/ext/yaml/cyaml.py                     |    85 +
 tools/bin/ext/yaml/cyaml.pyc                    |   Bin 0 -> 3846 bytes
 tools/bin/ext/yaml/dumper.py                    |    62 +
 tools/bin/ext/yaml/dumper.pyc                   |   Bin 0 -> 2614 bytes
 tools/bin/ext/yaml/emitter.py                   |  1163 +
 tools/bin/ext/yaml/emitter.pyc                  |   Bin 0 -> 32743 bytes
 tools/bin/ext/yaml/error.py                     |    75 +
 tools/bin/ext/yaml/error.pyc                    |   Bin 0 -> 3040 bytes
 tools/bin/ext/yaml/events.py                    |    86 +
 tools/bin/ext/yaml/events.pyc                   |   Bin 0 -> 5094 bytes
 tools/bin/ext/yaml/loader.py                    |    40 +
 tools/bin/ext/yaml/loader.pyc                   |   Bin 0 -> 1925 bytes
 tools/bin/ext/yaml/nodes.py                     |    49 +
 tools/bin/ext/yaml/nodes.pyc                    |   Bin 0 -> 2236 bytes
 tools/bin/ext/yaml/parser.py                    |   586 +
 tools/bin/ext/yaml/parser.pyc                   |   Bin 0 -> 14891 bytes
 tools/bin/ext/yaml/reader.py                    |   225 +
 tools/bin/ext/yaml/reader.pyc                   |   Bin 0 -> 6802 bytes
 tools/bin/ext/yaml/representer.py               |   488 +
 tools/bin/ext/yaml/representer.pyc              |   Bin 0 -> 15117 bytes
 tools/bin/ext/yaml/resolver.py                  |   223 +
 tools/bin/ext/yaml/resolver.pyc                 |   Bin 0 -> 6782 bytes
 tools/bin/ext/yaml/scanner.py                   |  1456 ++
 tools/bin/ext/yaml/scanner.pyc                  |   Bin 0 -> 34012 bytes
 tools/bin/ext/yaml/serializer.py                |   111 +
 tools/bin/ext/yaml/serializer.pyc               |   Bin 0 -> 4430 bytes
 tools/bin/ext/yaml/tokens.py                    |   104 +
 tools/bin/ext/yaml/tokens.pyc                   |   Bin 0 -> 6678 bytes
 .../pythonSrc/PyGreSQL-4.0/docs/announce.html   |    28 +
 .../pythonSrc/PyGreSQL-4.0/docs/announce.txt    |    23 +
 .../pythonSrc/PyGreSQL-4.0/docs/changelog.html  |   333 +
 .../pythonSrc/PyGreSQL-4.0/docs/changelog.txt   |   285 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/default.css |   279 +
 tools/bin/pythonSrc/PyGreSQL-4.0/docs/docs.css  |   109 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/future.html |    62 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/future.txt  |    48 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/index.html  |   182 +
 .../pythonSrc/PyGreSQL-4.0/docs/install.html    |   198 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/install.txt |   188 +
 tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.html   |  2429 ++
 tools/bin/pythonSrc/PyGreSQL-4.0/docs/pg.txt    |  1382 +
 tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.html |    51 +
 tools/bin/pythonSrc/PyGreSQL-4.0/docs/pgdb.txt  |    42 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/readme.html |   243 +
 .../bin/pythonSrc/PyGreSQL-4.0/docs/readme.txt  |   206 +
 tools/bin/pythonSrc/PyGreSQL-4.0/pg.py          |   711 +
 tools/bin/pythonSrc/PyGreSQL-4.0/pgdb.py        |   582 +
 tools/bin/pythonSrc/PyGreSQL-4.0/pgmodule.c     |  3756 +++
 tools/bin/pythonSrc/PyGreSQL-4.0/setup.py       |   152 +
 .../pythonSrc/PyGreSQL-4.0/tutorial/advanced.py |   198 +
 .../pythonSrc/PyGreSQL-4.0/tutorial/basics.py   |   296 +
 .../bin/pythonSrc/PyGreSQL-4.0/tutorial/func.py |   205 +
 .../pythonSrc/PyGreSQL-4.0/tutorial/syscat.py   |   149 +
 170 files changed, 93059 insertions(+)
----------------------------------------------------------------------



[12/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/interface.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/interface.py b/tools/bin/ext/pg8000/interface.py
new file mode 100644
index 0000000..d2f70fa
--- /dev/null
+++ b/tools/bin/ext/pg8000/interface.py
@@ -0,0 +1,542 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+import socket
+import protocol
+import threading
+from errors import *
+
+class DataIterator(object):
+    def __init__(self, obj, func):
+        self.obj = obj
+        self.func = func
+
+    def __iter__(self):
+        return self
+
+    def next(self):
+        retval = self.func(self.obj)
+        if retval == None:
+            raise StopIteration()
+        return retval
+
+statement_number_lock = threading.Lock()
+statement_number = 0
+
+##
+# This class represents a prepared statement.  A prepared statement is
+# pre-parsed on the server, which reduces the need to parse the query every
+# time it is run.  The statement can have parameters in the form of $1, $2, $3,
+# etc.  When parameters are used, the types of the parameters need to be
+# specified when creating the prepared statement.
+# <p>
+# As of v1.01, instances of this class are thread-safe.  This means that a
+# single PreparedStatement can be accessed by multiple threads without the
+# internal consistency of the statement being altered.  However, the
+# responsibility is on the client application to ensure that one thread reading
+# from a statement isn't affected by another thread starting a new query with
+# the same statement.
+# <p>
+# Stability: Added in v1.00, stability guaranteed for v1.xx.
+#
+# @param connection     An instance of {@link Connection Connection}.
+#
+# @param statement      The SQL statement to be represented, often containing
+# parameters in the form of $1, $2, $3, etc.
+#
+# @param types          Python type objects for each parameter in the SQL
+# statement.  For example, int, float, str.
+class PreparedStatement(object):
+
+    ##
+    # Determines the number of rows to read from the database server at once.
+    # Reading more rows increases performance at the cost of memory.  The
+    # default value is 100 rows.  The affect of this parameter is transparent.
+    # That is, the library reads more rows when the cache is empty
+    # automatically.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.  It is
+    # possible that implementation changes in the future could cause this
+    # parameter to be ignored.
+    row_cache_size = 100
+
+    def __init__(self, connection, statement, *types, **kwargs):
+        global statement_number
+        if connection == None or connection.c == None:
+            raise InterfaceError("connection not provided")
+        try:
+            statement_number_lock.acquire()
+            self._statement_number = statement_number
+            statement_number += 1
+        finally:
+            statement_number_lock.release()
+        self.c = connection.c
+        self._portal_name = None
+        self._statement_name = kwargs.get("statement_name", "pg8000_statement_%s" % self._statement_number)
+        self._row_desc = None
+        self._cached_rows = []
+        self._ongoing_row_count = 0
+        self._command_complete = True
+        self._parse_row_desc = self.c.parse(self._statement_name, statement, types)
+        self._lock = threading.RLock()
+
+    def close(self):
+        if self._statement_name != "": # don't close unnamed statement
+            self.c.close_statement(self._statement_name)
+        if self._portal_name != None:
+            self.c.close_portal(self._portal_name)
+            self._portal_name = None
+
+    row_description = property(lambda self: self._getRowDescription())
+    def _getRowDescription(self):
+        if self._row_desc == None:
+            return None
+        return self._row_desc.fields
+
+    ##
+    # Run the SQL prepared statement with the given parameters.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def execute(self, *args, **kwargs):
+        self._lock.acquire()
+        try:
+            if not self._command_complete:
+                # cleanup last execute
+                self._cached_rows = []
+                self._ongoing_row_count = 0
+            if self._portal_name != None:
+                self.c.close_portal(self._portal_name)
+            self._command_complete = False
+            self._portal_name = "pg8000_portal_%s" % self._statement_number
+            self._row_desc, cmd = self.c.bind(self._portal_name, self._statement_name, args, self._parse_row_desc, kwargs.get("stream"))
+            if self._row_desc:
+                # We execute our cursor right away to fill up our cache.  This
+                # prevents the cursor from being destroyed, apparently, by a rogue
+                # Sync between Bind and Execute.  Since it is quite likely that
+                # data will be read from us right away anyways, this seems a safe
+                # move for now.
+                self._fill_cache()
+            else:
+                self._command_complete = True
+                self._ongoing_row_count = -1
+                if cmd != None and cmd.rows != None:
+                    self._ongoing_row_count = cmd.rows
+        finally:
+            self._lock.release()
+
+    def _fill_cache(self):
+        self._lock.acquire()
+        try:
+            if self._cached_rows:
+                raise InternalError("attempt to fill cache that isn't empty")
+            end_of_data, rows = self.c.fetch_rows(self._portal_name, self.row_cache_size, self._row_desc)
+            self._cached_rows = rows
+            if end_of_data:
+                self._command_complete = True
+        finally:
+            self._lock.release()
+
+    def _fetch(self):
+        if not self._row_desc:
+            raise ProgrammingError("no result set")
+        self._lock.acquire()
+        try:
+            if not self._cached_rows:
+                if self._command_complete:
+                    return None
+                self._fill_cache()
+                if self._command_complete and not self._cached_rows:
+                    # fill cache tells us the command is complete, but yet we have
+                    # no rows after filling our cache.  This is a special case when
+                    # a query returns no rows.
+                    return None
+            row = self._cached_rows.pop(0)
+            self._ongoing_row_count += 1
+            return tuple(row)
+        finally:
+            self._lock.release()
+
+    ##
+    # Return a count of the number of rows relevant to the executed statement.
+    # For a SELECT, this is the number of rows returned.  For UPDATE or DELETE,
+    # this the number of rows affected.  For INSERT, the number of rows
+    # inserted.  This property may have a value of -1 to indicate that there
+    # was no row count.
+    # <p>
+    # During a result-set query (eg. SELECT, or INSERT ... RETURNING ...),
+    # accessing this property requires reading the entire result-set into
+    # memory, as reading the data to completion is the only way to determine
+    # the total number of rows.  Avoid using this property in with
+    # result-set queries, as it may cause unexpected memory usage.
+    # <p>
+    # Stability: Added in v1.03, stability guaranteed for v1.xx.
+    row_count = property(lambda self: self._get_row_count())
+    def _get_row_count(self):
+        self._lock.acquire()
+        try:
+            if not self._command_complete:
+                end_of_data, rows = self.c.fetch_rows(self._portal_name, 0, self._row_desc)
+                self._cached_rows += rows
+                if end_of_data:
+                    self._command_complete = True
+                else:
+                    raise InternalError("fetch_rows(0) did not hit end of data")
+            return self._ongoing_row_count + len(self._cached_rows)
+        finally:
+            self._lock.release()
+
+    ##
+    # Read a row from the database server, and return it in a dictionary
+    # indexed by column name/alias.  This method will raise an error if two
+    # columns have the same name.  Returns None after the last row.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def read_dict(self):
+        row = self._fetch()
+        if row == None:
+            return row
+        retval = {}
+        for i in range(len(self._row_desc.fields)):
+            col_name = self._row_desc.fields[i]['name']
+            if retval.has_key(col_name):
+                raise InterfaceError("cannot return dict of row when two columns have the same name (%r)" % (col_name,))
+            retval[col_name] = row[i]
+        return retval
+
+    ##
+    # Read a row from the database server, and return it as a tuple of values.
+    # Returns None after the last row.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def read_tuple(self):
+        return self._fetch()
+
+    ##
+    # Return an iterator for the output of this statement.  The iterator will
+    # return a tuple for each row, in the same manner as {@link
+    # #PreparedStatement.read_tuple read_tuple}.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def iterate_tuple(self):
+        return DataIterator(self, PreparedStatement.read_tuple)
+
+    ##
+    # Return an iterator for the output of this statement.  The iterator will
+    # return a dict for each row, in the same manner as {@link
+    # #PreparedStatement.read_dict read_dict}.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def iterate_dict(self):
+        return DataIterator(self, PreparedStatement.read_dict)
+
+##
+# The Cursor class allows multiple queries to be performed concurrently with a
+# single PostgreSQL connection.  The Cursor object is implemented internally by
+# using a {@link PreparedStatement PreparedStatement} object, so if you plan to
+# use a statement multiple times, you might as well create a PreparedStatement
+# and save a small amount of reparsing time.
+# <p>
+# As of v1.01, instances of this class are thread-safe.  See {@link
+# PreparedStatement PreparedStatement} for more information.
+# <p>
+# Stability: Added in v1.00, stability guaranteed for v1.xx.
+#
+# @param connection     An instance of {@link Connection Connection}.
+class Cursor(object):
+    def __init__(self, connection):
+        self.connection = connection
+        self._stmt = None
+
+    def require_stmt(func):
+        def retval(self, *args, **kwargs):
+            if self._stmt == None:
+                raise ProgrammingError("attempting to use unexecuted cursor")
+            return func(self, *args, **kwargs)
+        return retval
+
+    row_description = property(lambda self: self._getRowDescription())
+    def _getRowDescription(self):
+        if self._stmt == None:
+            return None
+        return self._stmt.row_description
+
+    ##
+    # Run an SQL statement using this cursor.  The SQL statement can have
+    # parameters in the form of $1, $2, $3, etc., which will be filled in by
+    # the additional arguments passed to this function.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    # @param query      The SQL statement to execute.
+    def execute(self, query, *args, **kwargs):
+        if self.connection.is_closed:
+            raise ConnectionClosedError()
+        self.connection._unnamed_prepared_statement_lock.acquire()
+        try:
+            self._stmt = PreparedStatement(self.connection, query, statement_name="", *[{"type": type(x), "value": x} for x in args])
+            self._stmt.execute(*args, **kwargs)
+        finally:
+            self.connection._unnamed_prepared_statement_lock.release()
+
+    ##
+    # Return a count of the number of rows currently being read.  If possible,
+    # please avoid using this function.  It requires reading the entire result
+    # set from the database to determine the number of rows being returned.
+    # <p>
+    # Stability: Added in v1.03, stability guaranteed for v1.xx.
+    # Implementation currently requires caching entire result set into memory,
+    # avoid using this property.
+    row_count = property(lambda self: self._get_row_count())
+
+    @require_stmt
+    def _get_row_count(self):
+        return self._stmt.row_count
+
+    ##
+    # Read a row from the database server, and return it in a dictionary
+    # indexed by column name/alias.  This method will raise an error if two
+    # columns have the same name.  Returns None after the last row.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    @require_stmt
+    def read_dict(self):
+        return self._stmt.read_dict()
+
+    ##
+    # Read a row from the database server, and return it as a tuple of values.
+    # Returns None after the last row.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    @require_stmt
+    def read_tuple(self):
+        return self._stmt.read_tuple()
+
+    ##
+    # Return an iterator for the output of this statement.  The iterator will
+    # return a tuple for each row, in the same manner as {@link
+    # #PreparedStatement.read_tuple read_tuple}.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    @require_stmt
+    def iterate_tuple(self):
+        return self._stmt.iterate_tuple()
+
+    ##
+    # Return an iterator for the output of this statement.  The iterator will
+    # return a dict for each row, in the same manner as {@link
+    # #PreparedStatement.read_dict read_dict}.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    @require_stmt
+    def iterate_dict(self):
+        return self._stmt.iterate_dict()
+
+    def close(self):
+        if self._stmt != None:
+            self._stmt.close()
+            self._stmt = None
+
+
+    ##
+    # Return the fileno of the underlying socket for this cursor's connection.
+    # <p>
+    # Stability: Added in v1.07, stability guaranteed for v1.xx.
+    def fileno(self):
+        return self.connection.fileno()
+
+    ##
+    # Poll the underlying socket for this cursor and sync if there is data waiting
+    # to be read. This has the effect of flushing asynchronous messages from the
+    # backend. Returns True if messages were read, False otherwise.
+    # <p>
+    # Stability: Added in v1.07, stability guaranteed for v1.xx.
+    def isready(self):
+        return self.connection.isready()
+    
+
+##
+# This class represents a connection to a PostgreSQL database.
+# <p>
+# The database connection is derived from the {@link #Cursor Cursor} class,
+# which provides a default cursor for running queries.  It also provides
+# transaction control via the 'begin', 'commit', and 'rollback' methods.
+# Without beginning a transaction explicitly, all statements will autocommit to
+# the database.
+# <p>
+# As of v1.01, instances of this class are thread-safe.  See {@link
+# PreparedStatement PreparedStatement} for more information.
+# <p>
+# Stability: Added in v1.00, stability guaranteed for v1.xx.
+#
+# @param user   The username to connect to the PostgreSQL server with.  This
+# parameter is required.
+#
+# @keyparam host   The hostname of the PostgreSQL server to connect with.
+# Providing this parameter is necessary for TCP/IP connections.  One of either
+# host, or unix_sock, must be provided.
+#
+# @keyparam unix_sock   The path to the UNIX socket to access the database
+# through, for example, '/tmp/.s.PGSQL.5432'.  One of either unix_sock or host
+# must be provided.  The port parameter will have no affect if unix_sock is
+# provided.
+#
+# @keyparam port   The TCP/IP port of the PostgreSQL server instance.  This
+# parameter defaults to 5432, the registered and common port of PostgreSQL
+# TCP/IP servers.
+#
+# @keyparam database   The name of the database instance to connect with.  This
+# parameter is optional, if omitted the PostgreSQL server will assume the
+# database name is the same as the username.
+#
+# @keyparam password   The user password to connect to the server with.  This
+# parameter is optional.  If omitted, and the database server requests password
+# based authentication, the connection will fail.  On the other hand, if this
+# parameter is provided and the database does not request password
+# authentication, then the password will not be used.
+#
+# @keyparam socket_timeout  Socket connect timeout measured in seconds.
+# Defaults to 60 seconds.
+#
+# @keyparam ssl     Use SSL encryption for TCP/IP socket.  Defaults to False.
+class Connection(Cursor):
+    def __init__(self, user, host=None, unix_sock=None, port=5432, database=None, password=None, socket_timeout=60, ssl=False, options=None):
+        self._row_desc = None
+        try:
+            self.c = protocol.Connection(unix_sock=unix_sock, host=host, port=port, socket_timeout=socket_timeout, ssl=ssl)
+            self.c.authenticate(user, password=password, database=database, options=options)
+        except socket.error, e:
+            raise InterfaceError("communication error", e)
+        Cursor.__init__(self, self)
+        self._begin = PreparedStatement(self, "BEGIN TRANSACTION")
+        self._commit = PreparedStatement(self, "COMMIT TRANSACTION")
+        self._rollback = PreparedStatement(self, "ROLLBACK TRANSACTION")
+        self._unnamed_prepared_statement_lock = threading.RLock()
+
+    ##
+    # An event handler that is fired when NOTIFY occurs for a notification that
+    # has been LISTEN'd for.  The value of this property is a
+    # util.MulticastDelegate.  A callback can be added by using
+    # connection.NotificationReceived += SomeMethod.  The method will be called
+    # with a single argument, an object that has properties: backend_pid,
+    # condition, and additional_info.  Callbacks can be removed with the -=
+    # operator.
+    # <p>
+    # Stability: Added in v1.03, stability guaranteed for v1.xx.
+    NotificationReceived = property(
+            lambda self: getattr(self.c, "NotificationReceived"),
+            lambda self, value: setattr(self.c, "NotificationReceived", value)
+    )
+
+    ##
+    # An event handler that is fired when the database server issues a notice.
+    # The value of this property is a util.MulticastDelegate.  A callback can
+    # be added by using connection.NotificationReceived += SomeMethod.  The
+    # method will be called with a single argument, an object that has
+    # properties: severity, code, msg, and possibly others (detail, hint,
+    # position, where, file, line, and routine).  Callbacks can be removed with
+    # the -= operator.
+    # <p>
+    # Stability: Added in v1.03, stability guaranteed for v1.xx.
+    NoticeReceived = property(
+            lambda self: getattr(self.c, "NoticeReceived"),
+            lambda self, value: setattr(self.c, "NoticeReceived", value)
+    )
+
+    ##
+    # An event handler that is fired when a runtime configuration option is
+    # changed on the server.  The value of this property is a
+    # util.MulticastDelegate.  A callback can be added by using
+    # connection.NotificationReceived += SomeMethod.  Callbacks can be removed
+    # with the -= operator.  The method will be called with a single argument,
+    # an object that has properties "key" and "value".
+    # <p>
+    # Stability: Added in v1.03, stability guaranteed for v1.xx.
+    ParameterStatusReceived = property(
+            lambda self: getattr(self.c, "ParameterStatusReceived"),
+            lambda self, value: setattr(self.c, "ParameterStatusReceived", value)
+    )
+
+    ##
+    # Begins a new transaction.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def begin(self):
+        if self.is_closed:
+            raise ConnectionClosedError()
+        self._begin.execute()
+
+    ##
+    # Commits the running transaction.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def commit(self):
+        if self.is_closed:
+            raise ConnectionClosedError()
+        self._commit.execute()
+
+    ##
+    # Rolls back the running transaction.
+    # <p>
+    # Stability: Added in v1.00, stability guaranteed for v1.xx.
+    def rollback(self):
+        if self.is_closed:
+            raise ConnectionClosedError()
+        self._rollback.execute()
+
+    ##
+    # Closes an open connection.
+    def close(self):
+        if self.is_closed:
+            raise ConnectionClosedError()
+        self.c.close()
+        self.c = None
+
+    is_closed = property(lambda self: self.c == None)
+
+    def recache_record_types(self):
+        self.c._cache_record_attnames()
+
+    ##
+    # Return the fileno of the underlying socket for this connection.
+    # <p>
+    # Stability: Added in v1.07, stability guaranteed for v1.xx.
+    def fileno(self):
+        return self.c.fileno()
+
+    ##
+    # Poll the underlying socket for this connection and sync if there is data
+    # waiting to be read. This has the effect of flushing asynchronous
+    # messages from the backend. Returns True if messages were read, False
+    # otherwise.
+    # <p>
+    # Stability: Added in v1.07, stability guaranteed for v1.xx.
+    def isready(self):
+        return self.c.isready()
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/pg8000/protocol.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/pg8000/protocol.py b/tools/bin/ext/pg8000/protocol.py
new file mode 100644
index 0000000..377074b
--- /dev/null
+++ b/tools/bin/ext/pg8000/protocol.py
@@ -0,0 +1,1340 @@
+# vim: sw=4:expandtab:foldmethod=marker
+#
+# Copyright (c) 2007-2009, Mathieu Fenniak
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+__author__ = "Mathieu Fenniak"
+
+import socket
+import select
+import threading
+import struct
+import hashlib
+from cStringIO import StringIO
+
+from errors import *
+from util import MulticastDelegate
+import types
+
+##
+# An SSLRequest message.  To initiate an SSL-encrypted connection, an
+# SSLRequest message is used rather than a {@link StartupMessage
+# StartupMessage}.  A StartupMessage is still sent, but only after SSL
+# negotiation (if accepted).
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class SSLRequest(object):
+    def __init__(self):
+        pass
+
+    # Int32(8) - Message length, including self.<br>
+    # Int32(80877103) - The SSL request code.<br>
+    def serialize(self):
+        return struct.pack("!ii", 8, 80877103)
+
+
+##
+# A StartupMessage message.  Begins a DB session, identifying the user to be
+# authenticated as and the database to connect to.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class StartupMessage(object):
+    # Greenplum utility mode
+    def __init__(self, user, database=None, options=None):
+        self.user = user
+        self.database = database
+        self.options = options
+
+    # Int32 - Message length, including self.
+    # Int32(196608) - Protocol version number.  Version 3.0.
+    # Any number of key/value pairs, terminated by a zero byte:
+    #   String - A parameter name (user, database, or options)
+    #   String - Parameter value
+    def serialize(self):
+        protocol = 196608
+        val = struct.pack("!i", protocol)
+        val += "user\x00" + self.user + "\x00"
+        if self.database:
+            val += "database\x00" + self.database + "\x00"
+        if self.options:
+            val += "options\x00" + self.options + "\x00"
+        val += "\x00"
+        val = struct.pack("!i", len(val) + 4) + val
+        return val
+
+
+##
+# Parse message.  Creates a prepared statement in the DB session.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+#
+# @param ps         Name of the prepared statement to create.
+# @param qs         Query string.
+# @param type_oids  An iterable that contains the PostgreSQL type OIDs for
+#                   parameters in the query string.
+class Parse(object):
+    def __init__(self, ps, qs, type_oids):
+        self.ps = ps
+        self.qs = qs
+        self.type_oids = type_oids
+
+    def __repr__(self):
+        return "<Parse ps=%r qs=%r>" % (self.ps, self.qs)
+
+    # Byte1('P') - Identifies the message as a Parse command.
+    # Int32 -   Message length, including self.
+    # String -  Prepared statement name.  An empty string selects the unnamed
+    #           prepared statement.
+    # String -  The query string.
+    # Int16 -   Number of parameter data types specified (can be zero).
+    # For each parameter:
+    #   Int32 - The OID of the parameter data type.
+    def serialize(self):
+        val = self.ps + "\x00" + self.qs + "\x00"
+        val = val + struct.pack("!h", len(self.type_oids))
+        for oid in self.type_oids:
+            # Parse message doesn't seem to handle the -1 type_oid for NULL
+            # values that other messages handle.  So we'll provide type_oid 705,
+            # the PG "unknown" type.
+            if oid == -1: oid = 705
+            val = val + struct.pack("!i", oid)
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "P" + val
+        return val
+
+
+##
+# Bind message.  Readies a prepared statement for execution.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+#
+# @param portal     Name of the destination portal.
+# @param ps         Name of the source prepared statement.
+# @param in_fc      An iterable containing the format codes for input
+#                   parameters.  0 = Text, 1 = Binary.
+# @param params     The parameters.
+# @param out_fc     An iterable containing the format codes for output
+#                   parameters.  0 = Text, 1 = Binary.
+# @param kwargs     Additional arguments to pass to the type conversion
+#                   methods.
+class Bind(object):
+    def __init__(self, portal, ps, in_fc, params, out_fc, **kwargs):
+        self.portal = portal
+        self.ps = ps
+        self.in_fc = in_fc
+        self.params = []
+        for i in range(len(params)):
+            if len(self.in_fc) == 0:
+                fc = 0
+            elif len(self.in_fc) == 1:
+                fc = self.in_fc[0]
+            else:
+                fc = self.in_fc[i]
+            self.params.append(types.pg_value(params[i], fc, **kwargs))
+        self.out_fc = out_fc
+
+    def __repr__(self):
+        return "<Bind p=%r s=%r>" % (self.portal, self.ps)
+
+    # Byte1('B') - Identifies the Bind command.
+    # Int32 - Message length, including self.
+    # String - Name of the destination portal.
+    # String - Name of the source prepared statement.
+    # Int16 - Number of parameter format codes.
+    # For each parameter format code:
+    #   Int16 - The parameter format code.
+    # Int16 - Number of parameter values.
+    # For each parameter value:
+    #   Int32 - The length of the parameter value, in bytes, not including this
+    #           this length.  -1 indicates a NULL parameter value, in which no
+    #           value bytes follow.
+    #   Byte[n] - Value of the parameter.
+    # Int16 - The number of result-column format codes.
+    # For each result-column format code:
+    #   Int16 - The format code.
+    def serialize(self):
+        retval = StringIO()
+        retval.write(self.portal + "\x00")
+        retval.write(self.ps + "\x00")
+        retval.write(struct.pack("!h", len(self.in_fc)))
+        for fc in self.in_fc:
+            retval.write(struct.pack("!h", fc))
+        retval.write(struct.pack("!h", len(self.params)))
+        for param in self.params:
+            if param == None:
+                # special case, NULL value
+                retval.write(struct.pack("!i", -1))
+            else:
+                retval.write(struct.pack("!i", len(param)))
+                retval.write(param)
+        retval.write(struct.pack("!h", len(self.out_fc)))
+        for fc in self.out_fc:
+            retval.write(struct.pack("!h", fc))
+        val = retval.getvalue()
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "B" + val
+        return val
+
+
+##
+# A Close message, used for closing prepared statements and portals.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+#
+# @param typ    'S' for prepared statement, 'P' for portal.
+# @param name   The name of the item to close.
+class Close(object):
+    def __init__(self, typ, name):
+        if len(typ) != 1:
+            raise InternalError("Close typ must be 1 char")
+        self.typ = typ
+        self.name = name
+
+    # Byte1('C') - Identifies the message as a close command.
+    # Int32 - Message length, including self.
+    # Byte1 - 'S' for prepared statement, 'P' for portal.
+    # String - The name of the item to close.
+    def serialize(self):
+        val = self.typ + self.name + "\x00"
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "C" + val
+        return val
+
+
+##
+# A specialized Close message for a portal.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class ClosePortal(Close):
+    def __init__(self, name):
+        Close.__init__(self, "P", name)
+
+
+##
+# A specialized Close message for a prepared statement.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class ClosePreparedStatement(Close):
+    def __init__(self, name):
+        Close.__init__(self, "S", name)
+
+
+##
+# A Describe message, used for obtaining information on prepared statements
+# and portals.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+#
+# @param typ    'S' for prepared statement, 'P' for portal.
+# @param name   The name of the item to close.
+class Describe(object):
+    def __init__(self, typ, name):
+        if len(typ) != 1:
+            raise InternalError("Describe typ must be 1 char")
+        self.typ = typ
+        self.name = name
+
+    # Byte1('D') - Identifies the message as a describe command.
+    # Int32 - Message length, including self.
+    # Byte1 - 'S' for prepared statement, 'P' for portal.
+    # String - The name of the item to close.
+    def serialize(self):
+        val = self.typ + self.name + "\x00"
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "D" + val
+        return val
+
+
+##
+# A specialized Describe message for a portal.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class DescribePortal(Describe):
+    def __init__(self, name):
+        Describe.__init__(self, "P", name)
+
+    def __repr__(self):
+        return "<DescribePortal %r>" % (self.name)
+
+
+##
+# A specialized Describe message for a prepared statement.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class DescribePreparedStatement(Describe):
+    def __init__(self, name):
+        Describe.__init__(self, "S", name)
+
+    def __repr__(self):
+        return "<DescribePreparedStatement %r>" % (self.name)
+
+
+##
+# A Flush message forces the backend to deliver any data pending in its
+# output buffers.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class Flush(object):
+    # Byte1('H') - Identifies the message as a flush command.
+    # Int32(4) - Length of message, including self.
+    def serialize(self):
+        return 'H\x00\x00\x00\x04'
+
+    def __repr__(self):
+        return "<Flush>"
+
+##
+# Causes the backend to close the current transaction (if not in a BEGIN/COMMIT
+# block), and issue ReadyForQuery.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class Sync(object):
+    # Byte1('S') - Identifies the message as a sync command.
+    # Int32(4) - Length of message, including self.
+    def serialize(self):
+        return 'S\x00\x00\x00\x04'
+
+    def __repr__(self):
+        return "<Sync>"
+
+
+##
+# Transmits a password.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class PasswordMessage(object):
+    def __init__(self, pwd):
+        self.pwd = pwd
+
+    # Byte1('p') - Identifies the message as a password message.
+    # Int32 - Message length including self.
+    # String - The password.  Password may be encrypted.
+    def serialize(self):
+        val = self.pwd + "\x00"
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "p" + val
+        return val
+
+
+##
+# Requests that the backend execute a portal and retrieve any number of rows.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+# @param row_count  The number of rows to return.  Can be zero to indicate the
+#                   backend should return all rows. If the portal represents a
+#                   query that does not return rows, no rows will be returned
+#                   no matter what the row_count.
+class Execute(object):
+    def __init__(self, portal, row_count):
+        self.portal = portal
+        self.row_count = row_count
+
+    # Byte1('E') - Identifies the message as an execute message.
+    # Int32 -   Message length, including self.
+    # String -  The name of the portal to execute.
+    # Int32 -   Maximum number of rows to return, if portal contains a query that
+    #           returns rows.  0 = no limit.
+    def serialize(self):
+        val = self.portal + "\x00" + struct.pack("!i", self.row_count)
+        val = struct.pack("!i", len(val) + 4) + val
+        val = "E" + val
+        return val
+
+
+##
+# Informs the backend that the connection is being closed.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class Terminate(object):
+    def __init__(self):
+        pass
+
+    # Byte1('X') - Identifies the message as a terminate message.
+    # Int32(4) - Message length, including self.
+    def serialize(self):
+        return 'X\x00\x00\x00\x04'
+
+##
+# Base class of all Authentication[*] messages.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class AuthenticationRequest(object):
+    def __init__(self, data):
+        pass
+
+    # Byte1('R') - Identifies the message as an authentication request.
+    # Int32(8) - Message length, including self.
+    # Int32 -   An authentication code that represents different
+    #           authentication messages:
+    #               0 = AuthenticationOk
+    #               5 = MD5 pwd
+    #               2 = Kerberos v5 (not supported by pg8000)
+    #               3 = Cleartext pwd (not supported by pg8000)
+    #               4 = crypt() pwd (not supported by pg8000)
+    #               6 = SCM credential (not supported by pg8000)
+    #               7 = GSSAPI (not supported by pg8000)
+    #               8 = GSSAPI data (not supported by pg8000)
+    #               9 = SSPI (not supported by pg8000)
+    # Some authentication messages have additional data following the
+    # authentication code.  That data is documented in the appropriate class.
+    def createFromData(data):
+        ident = struct.unpack("!i", data[:4])[0]
+        klass = authentication_codes.get(ident, None)
+        if klass != None:
+            return klass(data[4:])
+        else:
+            raise NotSupportedError("authentication method %r not supported" % (ident,))
+    createFromData = staticmethod(createFromData)
+
+    def ok(self, conn, user, **kwargs):
+        raise InternalError("ok method should be overridden on AuthenticationRequest instance")
+
+##
+# A message representing that the backend accepting the provided username
+# without any challenge.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class AuthenticationOk(AuthenticationRequest):
+    def ok(self, conn, user, **kwargs):
+        return True
+
+
+##
+# A message representing the backend requesting an MD5 hashed password
+# response.  The response will be sent as md5(md5(pwd + login) + salt).
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class AuthenticationMD5Password(AuthenticationRequest):
+    # Additional message data:
+    #  Byte4 - Hash salt.
+    def __init__(self, data):
+        self.salt = "".join(struct.unpack("4c", data))
+
+    def ok(self, conn, user, password=None, **kwargs):
+        if password == None:
+            raise InterfaceError("server requesting MD5 password authentication, but no password was provided")
+        pwd = "md5" + hashlib.md5(hashlib.md5(password + user).hexdigest() + self.salt).hexdigest()
+        conn._send(PasswordMessage(pwd))
+        conn._flush()
+
+        reader = MessageReader(conn)
+        reader.add_message(AuthenticationRequest, lambda msg, reader: reader.return_value(msg.ok(conn, user)), reader)
+        reader.add_message(ErrorResponse, self._ok_error)
+        return reader.handle_messages()
+
+    def _ok_error(self, msg):
+        if msg.code == "28000":
+            raise InterfaceError("md5 password authentication failed")
+        else:
+            raise msg.createException()
+
+authentication_codes = {
+    0: AuthenticationOk,
+    5: AuthenticationMD5Password,
+}
+
+
+##
+# ParameterStatus message sent from backend, used to inform the frotnend of
+# runtime configuration parameter changes.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class ParameterStatus(object):
+    def __init__(self, key, value):
+        self.key = key
+        self.value = value
+
+    # Byte1('S') - Identifies ParameterStatus
+    # Int32 - Message length, including self.
+    # String - Runtime parameter name.
+    # String - Runtime parameter value.
+    def createFromData(data):
+        key = data[:data.find("\x00")]
+        value = data[data.find("\x00")+1:-1]
+        return ParameterStatus(key, value)
+    createFromData = staticmethod(createFromData)
+
+
+##
+# BackendKeyData message sent from backend.  Contains a connection's process
+# ID and a secret key.  Can be used to terminate the connection's current
+# actions, such as a long running query.  Not supported by pg8000 yet.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class BackendKeyData(object):
+    def __init__(self, process_id, secret_key):
+        self.process_id = process_id
+        self.secret_key = secret_key
+
+    # Byte1('K') - Identifier.
+    # Int32(12) - Message length, including self.
+    # Int32 - Process ID.
+    # Int32 - Secret key.
+    def createFromData(data):
+        process_id, secret_key = struct.unpack("!2i", data)
+        return BackendKeyData(process_id, secret_key)
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing a query with no data.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class NoData(object):
+    # Byte1('n') - Identifier.
+    # Int32(4) - Message length, including self.
+    def createFromData(data):
+        return NoData()
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing a successful Parse.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class ParseComplete(object):
+    # Byte1('1') - Identifier.
+    # Int32(4) - Message length, including self.
+    def createFromData(data):
+        return ParseComplete()
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing a successful Bind.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class BindComplete(object):
+    # Byte1('2') - Identifier.
+    # Int32(4) - Message length, including self.
+    def createFromData(data):
+        return BindComplete()
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing a successful Close.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class CloseComplete(object):
+    # Byte1('3') - Identifier.
+    # Int32(4) - Message length, including self.
+    def createFromData(data):
+        return CloseComplete()
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing data from an Execute has been received, but more data
+# exists in the portal.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class PortalSuspended(object):
+    # Byte1('s') - Identifier.
+    # Int32(4) - Message length, including self.
+    def createFromData(data):
+        return PortalSuspended()
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Message representing the backend is ready to process a new query.
+# <p>
+# Stability: This is an internal class.  No stability guarantee is made.
+class ReadyForQuery(object):
+    def __init__(self, status):
+        self._status = status
+
+    ##
+    # I = Idle, T = Idle in Transaction, E = idle in failed transaction.
+    status = property(lambda self: self._status)
+
+    def __repr__(self):
+        return "<ReadyForQuery %s>" % \
+                {"I": "Idle", "T": "Idle in Transaction", "E": "Idle in Failed Transaction"}[self.status]
+
+    # Byte1('Z') - Identifier.
+    # Int32(5) - Message length, including self.
+    # Byte1 -   Status indicator.
+    def createFromData(data):
+        return ReadyForQuery(data)
+    createFromData = staticmethod(createFromData)
+
+
+##
+# Represents a notice sent from the server.  This is not the same as a
+# notification.  A notice is just additional information about a query, such
+# as a notice that a primary key has automatically been created for a table.
+# <p>
+# A NoticeResponse instance will have properties containing the data sent
+# from the server:
+# <ul>
+# <li>severity -- "ERROR", "FATAL', "PANIC", "WARNING", "NOTICE", "DEBUG",
+# "INFO", or "LOG".  Always present.</li>
+# <li>code -- the SQLSTATE code for the error.  See Appendix A of the
+# PostgreSQL documentation for specific error codes.  Always present.</li>
+# <li>msg -- human-readable error message.  Always present.</li>
+# <li>detail -- Optional additional information.</li>
+# <li>hint -- Optional suggestion about what to do about the issue.</li>
+# <li>position -- Optional index into the query string.</li>
+# <li>where -- Optional context.</li>
+# <li>file -- Source-code file.</li>
+# <li>line -- Source-code line.</li>
+# <li>routine -- Source-code routine.</li>
+# </ul>
+# <p>
+# Stability: Added in pg8000 v1.03.  Required properties severity, code, and
+# msg are guaranteed for v1.xx.  Other properties should be checked with
+# hasattr before accessing.
+class NoticeResponse(object):
+    responseKeys = {
+        "S": "severity",  # always present
+        "C": "code",      # always present
+        "M": "msg",       # always present
+        "D": "detail",
+        "H": "hint",
+        "P": "position",
+        "p": "_position",
+        "q": "_query",
+        "W": "where",
+        "F": "file",
+        "L": "line",
+        "R": "routine",
+    }
+
+    def __init__(self, **kwargs):
+        for arg, value in kwargs.items():
+            setattr(self, arg, value)
+
+    def __repr__(self):
+        return "<NoticeResponse %s %s %r>" % (self.severity, self.code, self.msg)
+
+    def dataIntoDict(data):
+        retval = {}
+        for s in data.split("\x00"):
+            if not s: continue
+            key, value = s[0], s[1:]
+            key = NoticeResponse.responseKeys.get(key, key)
+            retval[key] = value
+        return retval
+    dataIntoDict = staticmethod(dataIntoDict)
+
+    # Byte1('N') - Identifier
+    # Int32 - Message length
+    # Any number of these, followed by a zero byte:
+    #   Byte1 - code identifying the field type (see responseKeys)
+    #   String - field value
+    def createFromData(data):
+        return NoticeResponse(**NoticeResponse.dataIntoDict(data))
+    createFromData = staticmethod(createFromData)
+
+
+##
+# A message sent in case of a server-side error.  Contains the same properties
+# that {@link NoticeResponse NoticeResponse} contains.
+# <p>
+# Stability: Added in pg8000 v1.03.  Required properties severity, code, and
+# msg are guaranteed for v1.xx.  Other properties should be checked with
+# hasattr before accessing.
+class ErrorResponse(object):
+    def __init__(self, **kwargs):
+        for arg, value in kwargs.items():
+            setattr(self, arg, value)
+
+    def __repr__(self):
+        return "<ErrorResponse %s %s %r>" % (self.severity, self.code, self.msg)
+
+    def createException(self):
+        return ProgrammingError(self.severity, self.code, self.msg)
+
+    def createFromData(data):
+        return ErrorResponse(**NoticeResponse.dataIntoDict(data))
+    createFromData = staticmethod(createFromData)
+
+
+##
+# A message sent if this connection receives a NOTIFY that it was LISTENing for.
+# <p>
+# Stability: Added in pg8000 v1.03.  When limited to accessing properties from
+# a notification event dispatch, stability is guaranteed for v1.xx.
+class NotificationResponse(object):
+    def __init__(self, backend_pid, condition, additional_info):
+        self._backend_pid = backend_pid
+        self._condition = condition
+        self._additional_info = additional_info
+
+    ##
+    # An integer representing the process ID of the backend that triggered
+    # the NOTIFY.
+    # <p>
+    # Stability: Added in pg8000 v1.03, stability guaranteed for v1.xx.
+    backend_pid = property(lambda self: self._backend_pid)
+
+    ##
+    # The name of the notification fired.
+    # <p>
+    # Stability: Added in pg8000 v1.03, stability guaranteed for v1.xx.
+    condition = property(lambda self: self._condition)
+
+    ##
+    # Currently unspecified by the PostgreSQL documentation as of v8.3.1.
+    # <p>
+    # Stability: Added in pg8000 v1.03, stability guaranteed for v1.xx.
+    additional_info = property(lambda self: self._additional_info)
+
+    def __repr__(self):
+        return "<NotificationResponse %s %s %r>" % (self.backend_pid, self.condition, self.additional_info)
+
+    def createFromData(data):
+        backend_pid = struct.unpack("!i", data[:4])[0]
+        data = data[4:]
+        null = data.find("\x00")
+        condition = data[:null]
+        data = data[null+1:]
+        null = data.find("\x00")
+        additional_info = data[:null]
+        return NotificationResponse(backend_pid, condition, additional_info)
+    createFromData = staticmethod(createFromData)
+
+
+class ParameterDescription(object):
+    def __init__(self, type_oids):
+        self.type_oids = type_oids
+    def createFromData(data):
+        count = struct.unpack("!h", data[:2])[0]
+        type_oids = struct.unpack("!" + "i"*count, data[2:])
+        return ParameterDescription(type_oids)
+    createFromData = staticmethod(createFromData)
+
+
+class RowDescription(object):
+    def __init__(self, fields):
+        self.fields = fields
+
+    def createFromData(data):
+        count = struct.unpack("!h", data[:2])[0]
+        data = data[2:]
+        fields = []
+        for i in range(count):
+            null = data.find("\x00")
+            field = {"name": data[:null]}
+            data = data[null+1:]
+            field["table_oid"], field["column_attrnum"], field["type_oid"], field["type_size"], field["type_modifier"], field["format"] = struct.unpack("!ihihih", data[:18])
+            data = data[18:]
+            fields.append(field)
+        return RowDescription(fields)
+    createFromData = staticmethod(createFromData)
+
+class CommandComplete(object):
+    def __init__(self, command, rows=None, oid=None):
+        self.command = command
+        self.rows = rows
+        self.oid = oid
+
+    def createFromData(data):
+        values = data[:-1].split(" ")
+        args = {}
+        args['command'] = values[0]
+        if args['command'] in ("INSERT", "DELETE", "UPDATE", "MOVE", "FETCH", "COPY"):
+            args['rows'] = int(values[-1])
+            if args['command'] == "INSERT":
+                args['oid'] = int(values[1])
+        else:
+            args['command'] = data[:-1]
+        return CommandComplete(**args)
+    createFromData = staticmethod(createFromData)
+
+
+class DataRow(object):
+    def __init__(self, fields):
+        self.fields = fields
+
+    def createFromData(data):
+        count = struct.unpack("!h", data[:2])[0]
+        data = data[2:]
+        fields = []
+        for i in range(count):
+            val_len = struct.unpack("!i", data[:4])[0]
+            data = data[4:]
+            if val_len == -1:
+                fields.append(None)
+            else:
+                fields.append(data[:val_len])
+                data = data[val_len:]
+        return DataRow(fields)
+    createFromData = staticmethod(createFromData)
+
+
+class CopyData(object):
+    # "d": CopyData,
+    def __init__(self, data):
+        self.data = data
+
+    def createFromData(data):
+        return CopyData(data)
+    createFromData = staticmethod(createFromData)
+    
+    def serialize(self):
+        return 'd' + struct.pack('!i', len(self.data) + 4) + self.data
+
+
+class CopyDone(object):
+    # Byte1('c') - Identifier.
+    # Int32(4) - Message length, including self.
+
+    def createFromData(data):
+        return CopyDone()
+
+    createFromData = staticmethod(createFromData)
+    
+    def serialize(self):
+        return 'c\x00\x00\x00\x04'
+
+class CopyOutResponse(object):
+    # Byte1('H')
+    # Int32(4) - Length of message contents in bytes, including self.
+    # Int8(1) - 0 textual, 1 binary
+    # Int16(2) - Number of columns
+    # Int16(N) - Format codes for each column (0 text, 1 binary)
+
+    def __init__(self, is_binary, column_formats):
+        self.is_binary = is_binary
+        self.column_formats = column_formats
+    
+    def createFromData(data):
+        is_binary, num_cols = struct.unpack('!bh', data[:3])
+        column_formats = struct.unpack('!' + ('h' * num_cols), data[3:])
+        return CopyOutResponse(is_binary, column_formats)
+
+    createFromData = staticmethod(createFromData)
+
+
+class CopyInResponse(object):
+    # Byte1('G')
+    # Otherwise the same as CopyOutResponse
+    
+    def __init__(self, is_binary, column_formats):
+        self.is_binary = is_binary
+        self.column_formats = column_formats
+    
+    def createFromData(data):
+        is_binary, num_cols = struct.unpack('!bh', data[:3])
+        column_formats = struct.unpack('!' + ('h' * num_cols), data[3:])
+        return CopyInResponse(is_binary, column_formats)
+
+    createFromData = staticmethod(createFromData)
+
+class SSLWrapper(object):
+    def __init__(self, sslobj):
+        self.sslobj = sslobj
+    def send(self, data):
+        self.sslobj.write(data)
+    def recv(self, num):
+        return self.sslobj.read(num)
+
+
+class MessageReader(object):
+    def __init__(self, connection):
+        self._conn = connection
+        self._msgs = []
+
+        # If true, raise exception from an ErrorResponse after messages are
+        # processed.  This can be used to leave the connection in a usable
+        # state after an error response, rather than having unconsumed
+        # messages that won't be understood in another context.
+        self.delay_raising_exception = False
+
+        self.ignore_unhandled_messages = False
+
+    def add_message(self, msg_class, handler, *args, **kwargs):
+        self._msgs.append((msg_class, handler, args, kwargs))
+
+    def clear_messages(self):
+        self._msgs = []
+
+    def return_value(self, value):
+        self._retval = value
+    
+    def handle_messages(self):
+        exc = None
+        while 1:
+            msg = self._conn._read_message()
+            msg_handled = False
+            for (msg_class, handler, args, kwargs) in self._msgs:
+                if isinstance(msg, msg_class):
+                    msg_handled = True
+                    retval = handler(msg, *args, **kwargs)
+                    if retval:
+                        # The handler returned a true value, meaning that the
+                        # message loop should be aborted.
+                        if exc != None:
+                            raise exc
+                        return retval
+                    elif hasattr(self, "_retval"):
+                        # The handler told us to return -- used for non-true
+                        # return values
+                        if exc != None:
+                            raise exc
+                        return self._retval
+            if msg_handled:
+                continue
+            elif isinstance(msg, ErrorResponse):
+                exc = msg.createException()
+                if not self.delay_raising_exception:
+                    raise exc
+            elif isinstance(msg, NoticeResponse):
+                self._conn.handleNoticeResponse(msg)
+            elif isinstance(msg, ParameterStatus):
+                self._conn.handleParameterStatus(msg)
+            elif isinstance(msg, NotificationResponse):
+                self._conn.handleNotificationResponse(msg)
+            elif not self.ignore_unhandled_messages:
+                raise InternalError("Unexpected response msg %r" % (msg))
+
+def sync_on_error(fn):
+    def _fn(self, *args, **kwargs):
+        try:
+            self._sock_lock.acquire()
+            return fn(self, *args, **kwargs)
+        except:
+            self._sync()
+            raise
+        finally:
+            self._sock_lock.release()
+    return _fn
+
+class Connection(object):
+    def __init__(self, unix_sock=None, host=None, port=5432, socket_timeout=60, ssl=False, records=False):
+        self._client_encoding = "ascii"
+        self._integer_datetimes = False
+        self._record_field_names = {}
+        self._sock_buf = ""
+        self._sock_buf_pos = 0
+        self._send_sock_buf = []
+        self._block_size = 8192
+        self.user_wants_records = records
+        if unix_sock == None and host != None:
+            self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        elif unix_sock != None:
+            if not hasattr(socket, "AF_UNIX"):
+                raise InterfaceError("attempt to connect to unix socket on unsupported platform")
+            self._sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+        else:
+            raise ProgrammingError("one of host or unix_sock must be provided")
+        if unix_sock == None and host != None:
+            self._sock.connect((host, port))
+        elif unix_sock != None:
+            self._sock.connect(unix_sock)
+        if ssl:
+            self._send(SSLRequest())
+            self._flush()
+            resp = self._sock.recv(1)
+            if resp == 'S':
+                self._sock = SSLWrapper(socket.ssl(self._sock))
+            else:
+                raise InterfaceError("server refuses SSL")
+        else:
+            # settimeout causes ssl failure, on windows.  Python bug 1462352.
+            self._sock.settimeout(socket_timeout)
+        self._state = "noauth"
+        self._backend_key_data = None
+        self._sock_lock = threading.Lock()
+
+        self.NoticeReceived = MulticastDelegate()
+        self.ParameterStatusReceived = MulticastDelegate()
+        self.NotificationReceived = MulticastDelegate()
+
+        self.ParameterStatusReceived += self._onParameterStatusReceived
+
+    def verifyState(self, state):
+        if self._state != state:
+            raise InternalError("connection state must be %s, is %s" % (state, self._state))
+
+    def _send(self, msg):
+        assert self._sock_lock.locked()
+        #print "_send(%r)" % msg
+        data = msg.serialize()
+        self._send_sock_buf.append(data)
+    
+    def _flush(self):
+        assert self._sock_lock.locked()
+        self._sock.sendall("".join(self._send_sock_buf))
+        del self._send_sock_buf[:]
+
+    def _read_bytes(self, byte_count):
+        retval = []
+        bytes_read = 0
+        while bytes_read < byte_count:
+            if self._sock_buf_pos == len(self._sock_buf):
+                self._sock_buf = self._sock.recv(1024)
+                self._sock_buf_pos = 0
+            rpos = min(len(self._sock_buf), self._sock_buf_pos + (byte_count - bytes_read))
+            addt_data = self._sock_buf[self._sock_buf_pos:rpos]
+            bytes_read += (rpos - self._sock_buf_pos)
+            assert bytes_read <= byte_count
+            self._sock_buf_pos = rpos
+            retval.append(addt_data)
+        return "".join(retval)
+
+    def _read_message(self):
+        assert self._sock_lock.locked()
+        bytes = self._read_bytes(5)
+        message_code = bytes[0]
+        data_len = struct.unpack("!i", bytes[1:])[0] - 4
+        bytes = self._read_bytes(data_len)
+        assert len(bytes) == data_len
+        msg = message_types[message_code].createFromData(bytes)
+        #print "_read_message() -> %r" % msg
+        return msg
+
+    def authenticate(self, user, **kwargs):
+        self.verifyState("noauth")
+        self._sock_lock.acquire()
+        try:
+            self._send(StartupMessage(user, database=kwargs.get("database",None), options=kwargs.get("options", None)))
+            self._flush()
+            msg = self._read_message()
+            if isinstance(msg, ErrorResponse):
+                raise msg.createException()
+            if not isinstance(msg, AuthenticationRequest):
+                raise InternalError("StartupMessage was responded to with non-AuthenticationRequest msg %r" % msg)
+            if not msg.ok(self, user, **kwargs):
+                raise InterfaceError("authentication method %s failed" % msg.__class__.__name__)
+
+            self._state = "auth"
+
+            reader = MessageReader(self)
+            reader.add_message(ReadyForQuery, self._ready_for_query)
+            reader.add_message(BackendKeyData, self._receive_backend_key_data)
+            reader.handle_messages()
+        finally:
+            self._sock_lock.release()
+
+        self._cache_record_attnames()
+
+    def _ready_for_query(self, msg):
+        self._state = "ready"
+        return True
+
+    def _receive_backend_key_data(self, msg):
+        self._backend_key_data = msg
+
+    def _cache_record_attnames(self):
+        if not self.user_wants_records:
+            return
+
+        parse_retval = self.parse("",
+            """SELECT
+                pg_type.oid, attname
+            FROM
+                pg_type
+                INNER JOIN pg_attribute ON (attrelid = pg_type.typrelid)
+                                  WHERE typreceive = 'record_recv'::regproc
+            ORDER BY pg_type.oid, attnum""",
+            [])
+        row_desc, cmd = self.bind("tmp", "", (), parse_retval, None)
+        eod, rows = self.fetch_rows("tmp", 0, row_desc)
+
+        self._record_field_names = {}
+        typoid, attnames = None, []
+        for row in rows:
+            new_typoid, attname = row
+            if new_typoid != typoid and typoid != None:
+                self._record_field_names[typoid] = attnames
+                attnames = []
+            typoid = new_typoid
+            attnames.append(attname)
+        self._record_field_names[typoid] = attnames
+
+    @sync_on_error
+    def parse(self, statement, qs, param_types):
+        self.verifyState("ready")
+
+        type_info = [types.pg_type_info(x) for x in param_types]
+        param_types, param_fc = [x[0] for x in type_info], [x[1] for x in type_info] # zip(*type_info) -- fails on empty arr
+        self._send(Parse(statement, qs, param_types))
+        self._send(DescribePreparedStatement(statement))
+        self._send(Flush())
+        self._flush()
+
+        reader = MessageReader(self)
+
+        # ParseComplete is good.
+        reader.add_message(ParseComplete, lambda msg: 0)
+
+        # Well, we don't really care -- we're going to send whatever we
+        # want and let the database deal with it.  But thanks anyways!
+        reader.add_message(ParameterDescription, lambda msg: 0)
+
+        # We're not waiting for a row description.  Return something
+        # destinctive to let bind know that there is no output.
+        reader.add_message(NoData, lambda msg: (None, param_fc))
+
+        # Common row description response
+        reader.add_message(RowDescription, lambda msg: (msg, param_fc))
+
+        return reader.handle_messages()
+
+    @sync_on_error
+    def bind(self, portal, statement, params, parse_data, copy_stream):
+        self.verifyState("ready")
+
+        row_desc, param_fc = parse_data
+        if row_desc == None:
+            # no data coming out
+            output_fc = ()
+        else:
+            # We've got row_desc that allows us to identify what we're going to
+            # get back from this statement.
+            output_fc = [types.py_type_info(f, self._record_field_names) for f in row_desc.fields]
+        self._send(Bind(portal, statement, param_fc, params, output_fc, client_encoding = self._client_encoding, integer_datetimes = self._integer_datetimes))
+        # We need to describe the portal after bind, since the return
+        # format codes will be different (hopefully, always what we
+        # requested).
+        self._send(DescribePortal(portal))
+        self._send(Flush())
+        self._flush()
+
+        # Read responses from server...
+        reader = MessageReader(self)
+
+        # BindComplete is good -- just ignore
+        reader.add_message(BindComplete, lambda msg: 0)
+
+        # NoData in this case means we're not executing a query.  As a
+        # result, we won't be fetching rows, so we'll never execute the
+        # portal we just created... unless we execute it right away, which
+        # we'll do.
+        reader.add_message(NoData, self._bind_nodata, portal, reader, copy_stream)
+
+        # Return the new row desc, since it will have the format types we
+        # asked the server for
+        reader.add_message(RowDescription, lambda msg: (msg, None))
+
+        return reader.handle_messages()
+
+    def _copy_in_response(self, copyin, fileobj, old_reader):
+        if fileobj == None:
+            raise CopyQueryWithoutStreamError()
+        while True:
+            data = fileobj.read(self._block_size)
+            if not data:
+                break
+            self._send(CopyData(data))
+            self._flush()
+        self._send(CopyDone())
+        self._send(Sync())
+        self._flush()
+
+    def _copy_out_response(self, copyout, fileobj, old_reader):
+        if fileobj == None:
+            raise CopyQueryWithoutStreamError()
+        reader = MessageReader(self)
+        reader.add_message(CopyData, self._copy_data, fileobj)
+        reader.add_message(CopyDone, lambda msg: 1)
+        reader.handle_messages()
+
+    def _copy_data(self, copydata, fileobj):
+        fileobj.write(copydata.data)
+
+    def _bind_nodata(self, msg, portal, old_reader, copy_stream):
+        # Bind message returned NoData, causing us to execute the command.
+        self._send(Execute(portal, 0))
+        self._send(Sync())
+        self._flush()
+
+        output = {}
+        reader = MessageReader(self)
+        reader.add_message(CopyOutResponse, self._copy_out_response, copy_stream, reader)
+        reader.add_message(CopyInResponse, self._copy_in_response, copy_stream, reader)
+        reader.add_message(CommandComplete, lambda msg, out: out.setdefault('msg', msg) and False, output)
+        reader.add_message(ReadyForQuery, lambda msg: 1)
+        reader.delay_raising_exception = True
+        reader.handle_messages()
+
+        old_reader.return_value((None, output['msg']))
+
+    @sync_on_error
+    def fetch_rows(self, portal, row_count, row_desc):
+        self.verifyState("ready")
+
+        self._send(Execute(portal, row_count))
+        self._send(Flush())
+        self._flush()
+        rows = []
+
+        reader = MessageReader(self)
+        reader.add_message(DataRow, self._fetch_datarow, rows, row_desc)
+        reader.add_message(PortalSuspended, lambda msg: 1)
+        reader.add_message(CommandComplete, self._fetch_commandcomplete, portal)
+        retval = reader.handle_messages()
+
+        # retval = 2 when command complete, indicating that we've hit the
+        # end of the available data for this command
+        return (retval == 2), rows
+
+    def _fetch_datarow(self, msg, rows, row_desc):
+        rows.append(
+            [
+                types.py_value(
+                    msg.fields[i],
+                    row_desc.fields[i],
+                    client_encoding=self._client_encoding,
+                    integer_datetimes=self._integer_datetimes,
+                    record_field_names=self._record_field_names
+                )
+                for i in range(len(msg.fields))
+            ]
+        )
+
+    def _fetch_commandcomplete(self, msg, portal):
+        self._send(ClosePortal(portal))
+        self._send(Sync())
+        self._flush()
+
+        reader = MessageReader(self)
+        reader.add_message(ReadyForQuery, self._fetch_commandcomplete_rfq)
+        reader.add_message(CloseComplete, lambda msg: False)
+        reader.handle_messages()
+
+        return 2  # signal end-of-data
+
+    def _fetch_commandcomplete_rfq(self, msg):
+        self._state = "ready"
+        return True
+
+    # Send a Sync message, then read and discard all messages until we
+    # receive a ReadyForQuery message.
+    def _sync(self):
+        # it is assumed _sync is called from sync_on_error, which holds
+        # a _sock_lock throughout the call
+        self._send(Sync())
+        self._flush()
+        reader = MessageReader(self)
+        reader.ignore_unhandled_messages = True
+        reader.add_message(ReadyForQuery, lambda msg: True)
+        reader.handle_messages()
+
+    def close_statement(self, statement):
+        if self._state == "closed":
+            return
+        self.verifyState("ready")
+        self._sock_lock.acquire()
+        try:
+            self._send(ClosePreparedStatement(statement))
+            self._send(Sync())
+            self._flush()
+
+            reader = MessageReader(self)
+            reader.add_message(CloseComplete, lambda msg: 0)
+            reader.add_message(ReadyForQuery, lambda msg: 1)
+            reader.handle_messages()
+        finally:
+            self._sock_lock.release()
+
+    def close_portal(self, portal):
+        if self._state == "closed":
+            return
+        self.verifyState("ready")
+        self._sock_lock.acquire()
+        try:
+            self._send(ClosePortal(portal))
+            self._send(Sync())
+            self._flush()
+
+            reader = MessageReader(self)
+            reader.add_message(CloseComplete, lambda msg: 0)
+            reader.add_message(ReadyForQuery, lambda msg: 1)
+            reader.handle_messages()
+        finally:
+            self._sock_lock.release()
+
+    def close(self):
+        self._sock_lock.acquire()
+        try:
+            self._send(Terminate())
+            self._flush()
+            self._sock.close()
+            self._state = "closed"
+        finally:
+            self._sock_lock.release()
+
+    def _onParameterStatusReceived(self, msg):
+        if msg.key == "client_encoding":
+            self._client_encoding = msg.value
+        elif msg.key == "integer_datetimes":
+            self._integer_datetimes = (msg.value == "on")
+
+    def handleNoticeResponse(self, msg):
+        self.NoticeReceived(msg)
+
+    def handleParameterStatus(self, msg):
+        self.ParameterStatusReceived(msg)
+
+    def handleNotificationResponse(self, msg):
+        self.NotificationReceived(msg)
+
+    def fileno(self):
+        # This should be safe to do without a lock
+        return self._sock.fileno()
+    
+    def isready(self):
+        self._sock_lock.acquire()
+        try:
+            rlst, _wlst, _xlst = select.select([self], [], [], 0)
+            if not rlst:
+                return False
+                
+            self._sync()
+            return True
+        finally:
+            self._sock_lock.release()
+
+message_types = {
+    "N": NoticeResponse,
+    "R": AuthenticationRequest,
+    "S": ParameterStatus,
+    "K": BackendKeyData,
+    "Z": ReadyForQuery,
+    "T": RowDescription,
+    "E": ErrorResponse,
+    "D": DataRow,
+    "C": CommandComplete,
+    "1": ParseComplete,
+    "2": BindComplete,
+    "3": CloseComplete,
+    "s": PortalSuspended,
+    "n": NoData,
+    "t": ParameterDescription,
+    "A": NotificationResponse,
+    "c": CopyDone,
+    "d": CopyData,
+    "G": CopyInResponse,
+    "H": CopyOutResponse,
+    }
+
+


[30/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/uniqdef.json
----------------------------------------------------------------------
diff --git a/src/backend/access/index/uniqdef.json b/src/backend/access/index/uniqdef.json
new file mode 100644
index 0000000..c659338
--- /dev/null
+++ b/src/backend/access/index/uniqdef.json
@@ -0,0 +1,5755 @@
+{
+   "DELETE FROM gp_distribution_policy  WHERE localoid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_distribution_policy where localoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbcat.c" : 1
+      },
+      "tablename" : "gp_distribution_policy"
+   },
+   "DELETE FROM gp_fastsequence  WHERE objid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_fastsequence where objid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/gp_fastsequence.c" : 1
+      },
+      "tablename" : "gp_fastsequence"
+   },
+   "DELETE FROM gp_segment_configuration  WHERE registration_order = :1" : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_segment_configuration where registration_order = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/gp/segadmin.c" : 1
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "DELETE FROM gp_segment_configuration  WHERE role = :1" : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_segment_configuration where role = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/gp/segadmin.c" : 2
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "DELETE FROM pg_aggregate  WHERE aggfnoid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_aggregate where aggfnoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "tablename" : "pg_aggregate"
+   },
+   "DELETE FROM pg_amop  WHERE amopclaid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopclaid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "DELETE FROM pg_amproc  WHERE amopclaid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amproc where amopclaid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_amproc"
+   },
+   "DELETE FROM pg_attribute  WHERE attrelid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attribute where attrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_attribute"
+   },
+   "DELETE FROM pg_attribute_encoding  WHERE attrelid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attribute_encoding where attrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_attribute_encoding.c" : 1
+      },
+      "tablename" : "pg_attribute_encoding"
+   },
+   "DELETE FROM pg_auth_members  WHERE member = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_auth_members where member = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_auth_members"
+   },
+   "DELETE FROM pg_auth_members  WHERE roleid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_auth_members where roleid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_auth_members"
+   },
+   "DELETE FROM pg_cast  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_cast where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "tablename" : "pg_cast"
+   },
+   "DELETE FROM pg_conversion  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_conversion where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_conversion.c" : 1
+      },
+      "tablename" : "pg_conversion"
+   },
+   "DELETE FROM pg_database  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_database where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/dbcommands.c" : 1
+      },
+      "tablename" : "pg_database"
+   },
+   "DELETE FROM pg_depend  WHERE classid = :1  AND objid = :2 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_depend where classid = :1 and objid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_depend.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "DELETE FROM pg_description where objoid = :1 AND  classoid = :2" : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_description where objoid = :1 and classoid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_description"
+   },
+   "DELETE FROM pg_description where objoid = :1 AND  classoid = :2 AND  objsubid = :3" : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_description where objoid = :1 and classoid = :2 and objsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_description"
+   },
+   "DELETE FROM pg_extprotocol  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_extprotocol where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_extprotocol.c" : 1
+      },
+      "tablename" : "pg_extprotocol"
+   },
+   "DELETE FROM pg_exttable  WHERE reloid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_exttable where reloid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_exttable.c" : 1
+      },
+      "tablename" : "pg_exttable"
+   },
+   "DELETE FROM pg_filespace  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_filespace where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 1
+      },
+      "tablename" : "pg_filespace"
+   },
+   "DELETE FROM pg_filespace_entry  WHERE fsedbid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_filespace_entry where fsedbid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 1
+      },
+      "tablename" : "pg_filespace_entry"
+   },
+   "DELETE FROM pg_filespace_entry  WHERE fsefsoid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_filespace_entry where fsefsoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 1
+      },
+      "tablename" : "pg_filespace_entry"
+   },
+   "DELETE FROM pg_foreign_data_wrapper  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_foreign_data_wrapper where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_data_wrapper"
+   },
+   "DELETE FROM pg_foreign_server  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_foreign_server where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_server"
+   },
+   "DELETE FROM pg_foreign_table  WHERE reloid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_foreign_table where reloid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_table"
+   },
+   "DELETE FROM pg_inherits  WHERE inhrelid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_inherits where inhrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_inherits"
+   },
+   "DELETE FROM pg_language  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_language where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/proclang.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "DELETE FROM pg_namespace  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_namespace where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/schemacmds.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "DELETE FROM pg_opclass  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_opclass where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_opclass"
+   },
+   "DELETE FROM pg_operator  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_operator where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/operatorcmds.c" : 1
+      },
+      "tablename" : "pg_operator"
+   },
+   "DELETE FROM pg_partition  WHERE parrelid = :1  AND parlevel = :2  AND paristemplate = :3 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_partition where parrelid = :1 and parlevel = :2 and paristemplate = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_partition"
+   },
+   "DELETE FROM pg_partition_rule  WHERE parchildrelid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_partition_rule where parchildrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_partition_rule"
+   },
+   "DELETE FROM pg_partition_rule  WHERE paroid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_partition_rule where paroid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_partition_rule"
+   },
+   "DELETE FROM pg_partition_rule  WHERE paroid = :1  AND parparentrule = :2 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_partition_rule where paroid = :1 and parparentrule = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_partition_rule"
+   },
+   "DELETE FROM pg_proc_callback  WHERE profnoid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_proc_callback where profnoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_proc_callback.c" : 1
+      },
+      "tablename" : "pg_proc_callback"
+   },
+   "DELETE FROM pg_shdepend  WHERE dbid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_shdepend where dbid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_shdepend.c" : 1
+      },
+      "tablename" : "pg_shdepend"
+   },
+   "DELETE FROM pg_shdescription where objoid  = :1 AND  classoid = :2" : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_shdescription where objoid = :1 and classoid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_shdescription"
+   },
+   "DELETE FROM pg_stat_last_operation  WHERE classid = :1  AND objid = :2 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_stat_last_operation where classid = :1 and objid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_stat_last_operation"
+   },
+   "DELETE FROM pg_stat_last_shoperation  WHERE classid = :1  AND objid = :2 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_stat_last_shoperation where classid = :1 and objid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_stat_last_shoperation"
+   },
+   "DELETE FROM pg_statistic  WHERE starelid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_statistic where starelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_statistic"
+   },
+   "DELETE FROM pg_statistic  WHERE starelid = :1  AND staattnum = :2 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_statistic where starelid = :1 and staattnum = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_statistic"
+   },
+   "DELETE FROM pg_type  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_type where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/typecmds.c" : 1
+      },
+      "tablename" : "pg_type"
+   },
+   "DELETE FROM pg_type_encoding  WHERE typid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_type_encoding where typid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/typecmds.c" : 1
+      },
+      "tablename" : "pg_type_encoding"
+   },
+   "DELETE FROM pg_user_mapping  WHERE oid = :1 " : {
+      "bCount" : 1,
+      "bDelete" : 1,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_user_mapping where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_user_mapping"
+   },
+   "INSERT INTO gp_distribution_policy " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into gp_distribution_policy",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbcat.c" : 1
+      },
+      "tablename" : "gp_distribution_policy"
+   },
+   "INSERT INTO gp_segment_configuration " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into gp_segment_configuration",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/gp/segadmin.c" : 1
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "INSERT INTO pg_aggregate" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_aggregate",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_aggregate.c" : 1
+      },
+      "tablename" : "pg_aggregate"
+   },
+   "INSERT INTO pg_amop" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_amop",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "INSERT INTO pg_amproc" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_amproc",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_amproc"
+   },
+   "INSERT INTO pg_appendonly" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_appendonly",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_appendonly.c" : 1
+      },
+      "tablename" : "pg_appendonly"
+   },
+   "INSERT INTO pg_attrdef " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_attrdef",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_attrdef"
+   },
+   "INSERT INTO pg_attribute " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_attribute",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1,
+         "../../../..//src/backend/catalog/index.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_attribute"
+   },
+   "INSERT INTO pg_attribute_encoding" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_attribute_encoding",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_attribute_encoding.c" : 1
+      },
+      "tablename" : "pg_attribute_encoding"
+   },
+   "INSERT INTO pg_auth_members " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_auth_members",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_auth_members"
+   },
+   "INSERT INTO pg_auth_time_constraint " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_auth_time_constraint",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_auth_time_constraint"
+   },
+   "INSERT INTO pg_authid " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_authid",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_authid"
+   },
+   "INSERT INTO pg_cast" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_cast",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "tablename" : "pg_cast"
+   },
+   "INSERT INTO pg_class " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_class",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_class"
+   },
+   "INSERT INTO pg_constraint" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_constraint",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "INSERT INTO pg_conversion" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_conversion",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_conversion.c" : 1
+      },
+      "tablename" : "pg_conversion"
+   },
+   "INSERT INTO pg_database" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_database",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/dbcommands.c" : 1
+      },
+      "tablename" : "pg_database"
+   },
+   "INSERT INTO pg_depend " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_depend",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_depend.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "INSERT INTO pg_description" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_description",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_description"
+   },
+   "INSERT INTO pg_extprotocol" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_extprotocol",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_extprotocol.c" : 1
+      },
+      "tablename" : "pg_extprotocol"
+   },
+   "INSERT INTO pg_exttable" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_exttable",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_exttable.c" : 1
+      },
+      "tablename" : "pg_exttable"
+   },
+   "INSERT INTO pg_filespace" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_filespace",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 1
+      },
+      "tablename" : "pg_filespace"
+   },
+   "INSERT INTO pg_filespace_entry" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_filespace_entry",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 1
+      },
+      "tablename" : "pg_filespace_entry"
+   },
+   "INSERT INTO pg_foreign_data_wrapper" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_foreign_data_wrapper",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_data_wrapper"
+   },
+   "INSERT INTO pg_foreign_server" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_foreign_server",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_server"
+   },
+   "INSERT INTO pg_foreign_table" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_foreign_table",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_foreign_table"
+   },
+   "INSERT INTO pg_index " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_index",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/index.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "INSERT INTO pg_inherits" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_inherits",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_inherits"
+   },
+   "INSERT INTO pg_language" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_language",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/proclang.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "INSERT INTO pg_namespace" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_namespace",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_namespace.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "INSERT INTO pg_opclass" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_opclass",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_opclass"
+   },
+   "INSERT INTO pg_operator" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_operator",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_operator.c" : 1
+      },
+      "tablename" : "pg_operator"
+   },
+   "INSERT INTO pg_partition " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_partition",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_partition"
+   },
+   "INSERT INTO pg_partition_encoding " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_partition_encoding",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_partition_encoding"
+   },
+   "INSERT INTO pg_partition_rule " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_partition_rule",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_partition_rule"
+   },
+   "INSERT INTO pg_proc " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_proc",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_proc.c" : 1
+      },
+      "tablename" : "pg_proc"
+   },
+   "INSERT INTO pg_proc_callback " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_proc_callback",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_proc_callback.c" : 1
+      },
+      "tablename" : "pg_proc_callback"
+   },
+   "INSERT INTO pg_shdepend " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_shdepend",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_shdepend.c" : 2
+      },
+      "tablename" : "pg_shdepend"
+   },
+   "INSERT INTO pg_shdescription" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_shdescription",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_shdescription"
+   },
+   "INSERT INTO pg_stat_last_operation " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_stat_last_operation",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_stat_last_operation"
+   },
+   "INSERT INTO pg_stat_last_shoperation " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_stat_last_shoperation",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_stat_last_shoperation"
+   },
+   "INSERT INTO pg_tablespace" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_tablespace",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/tablespace.c" : 1
+      },
+      "tablename" : "pg_tablespace"
+   },
+   "INSERT INTO pg_trigger " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_trigger",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/trigger.c" : 1
+      },
+      "tablename" : "pg_trigger"
+   },
+   "INSERT INTO pg_type " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_type",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_type.c" : 1
+      },
+      "tablename" : "pg_type"
+   },
+   "INSERT INTO pg_type_encoding " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_type_encoding",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_type.c" : 1
+      },
+      "tablename" : "pg_type_encoding"
+   },
+   "INSERT INTO pg_user_mapping" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 1,
+      "bUpdate" : 0,
+      "basic" : "insert into pg_user_mapping",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 1
+      },
+      "tablename" : "pg_user_mapping"
+   },
+   "SELECT * FROM gp_distribution_policy  WHERE localoid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_distribution_policy where localoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbcat.c" : 1
+      },
+      "tablename" : "gp_distribution_policy"
+   },
+   "SELECT * FROM gp_distribution_policy  WHERE localoid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from gp_distribution_policy where localoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbcat.c" : 1
+      },
+      "tablename" : "gp_distribution_policy"
+   },
+   "SELECT * FROM gp_fastsequence  WHERE objid = :1  AND objmod = :2  AND contentid = :3  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from gp_fastsequence where objid = :1 and objmod = :2 and contentid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/gp_fastsequence.c" : 1
+      },
+      "tablename" : "gp_fastsequence"
+   },
+   "SELECT * FROM gp_fastsequence  WHERE objid = :1  AND objmod = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from gp_fastsequence where objid = :1 and objmod = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/gp_fastsequence.c" : 1
+      },
+      "tablename" : "gp_fastsequence"
+   },
+   "SELECT * FROM gp_segment_configuration  WHERE registration_order = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_segment_configuration where registration_order = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbutil.c" : 1
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "SELECT * FROM gp_segment_configuration  WHERE registration_order = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from gp_segment_configuration where registration_order = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/gp/segadmin.c" : 1
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "SELECT * FROM gp_segment_configuration  WHERE role = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from gp_segment_configuration where role = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbutil.c" : 1
+      },
+      "tablename" : "gp_segment_configuration"
+   },
+   "SELECT * FROM pg_aggregate  WHERE aggfnoid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_aggregate where aggfnoid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1,
+         "../../../..//src/backend/executor/nodeAgg.c" : 1,
+         "../../../..//src/backend/executor/nodeWindow.c" : 1,
+         "../../../..//src/backend/optimizer/plan/planwindow.c" : 1,
+         "../../../..//src/backend/optimizer/util/clauses.c" : 1,
+         "../../../..//src/backend/parser/parse_func.c" : 1
+      },
+      "tablename" : "pg_aggregate"
+   },
+   "SELECT * FROM pg_am  WHERE amname = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_am where amname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/indexcmds.c" : 2,
+         "../../../..//src/backend/commands/opclasscmds.c" : 1
+      },
+      "tablename" : "pg_am"
+   },
+   "SELECT * FROM pg_am  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_am where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 1
+      },
+      "tablename" : "pg_am"
+   },
+   "SELECT * FROM pg_amop  WHERE amopclaid = :1  AND amopsubtype = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopclaid = :1 and amopsubtype = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amop  WHERE amopopr = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopopr = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amop  WHERE amopopr = :1  AND amopclaid = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopopr = :1 and amopclaid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/optimizer/util/predtest.c" : 2,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 2
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amop  WHERE amopopr = :1  ORDER BY amopopr,  amopclaid " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopopr = :1 ORDER_BY AccessMethodOperatorIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/executor/nodeMergejoin.c" : 1,
+         "../../../..//src/backend/optimizer/util/predtest.c" : 2,
+         "../../../..//src/backend/parser/parse_clause.c" : 1,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 3,
+         "../../../..//src/backend/utils/sort/tuplesort.c" : 1
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_amop_amopopr",
+            "Anum_pg_amop_amopclaid"
+         ],
+         "colnames" : [
+            "amopopr",
+            "amopclaid"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "AccessMethodOperatorIndexId",
+            "SysCacheIdentifier" : "AMOPOPID",
+            "allcols" : 1,
+            "numcols" : "2",
+            "primarykey_prefix" : {
+               "READPK_INIT" : "newhash = caql_pkhash(pCtx, newhash, (pCtx->cq_datumKeys[0]), \n\t\t\t\t\t  false /* isnull */, OIDOID);\n\n",
+               "fkcolname" : "amopopr",
+               "pkcolname" : "oid",
+               "pkidx" : "OperatorOidIndexId",
+               "pkrelid" : "OperatorRelationId",
+               "pktname" : "pg_operator"
+            },
+            "unique" : 1
+         },
+         "rawtxt" : "amopopr, amopclaid"
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amop WHERE amopclaid = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopclaid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amop WHERE amopopr = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amop where amopopr = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1
+      },
+      "tablename" : "pg_amop"
+   },
+   "SELECT * FROM pg_amproc  WHERE amopclaid = :1  AND amprocsubtype = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amproc where amopclaid = :1 and amprocsubtype = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_amproc"
+   },
+   "SELECT * FROM pg_amproc WHERE amopclaid = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_amproc where amopclaid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1
+      },
+      "tablename" : "pg_amproc"
+   },
+   "SELECT * FROM pg_appendonly  WHERE relid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_appendonly where relid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_appendonly.c" : 2
+      },
+      "tablename" : "pg_appendonly"
+   },
+   "SELECT * FROM pg_appendonly  WHERE relid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_appendonly where relid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_appendonly.c" : 3
+      },
+      "tablename" : "pg_appendonly"
+   },
+   "SELECT * FROM pg_attrdef  WHERE adrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attrdef where adrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_attrdef"
+   },
+   "SELECT * FROM pg_attrdef  WHERE adrelid = :1  AND adnum = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_attrdef where adrelid = :1 and adnum = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_attrdef"
+   },
+   "SELECT * FROM pg_attrdef  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attrdef where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1
+      },
+      "tablename" : "pg_attrdef"
+   },
+   "SELECT * FROM pg_attrdef  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_attrdef where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1
+      },
+      "tablename" : "pg_attrdef"
+   },
+   "SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attribute where attrelid = :1 and attnum = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbsubselect.c" : 1,
+         "../../../..//src/backend/parser/parse_relation.c" : 2,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 2
+      },
+      "tablename" : "pg_attribute"
+   },
+   "SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_attribute where attrelid = :1 and attnum = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 3,
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_attribute"
+   },
+   "SELECT * FROM pg_attribute  WHERE attrelid = :1  AND attnum > :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attribute where attrelid = :1 and attnum > :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_attribute"
+   },
+   "SELECT * FROM pg_attribute  WHERE attrelid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_attribute where attrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_attribute"
+   },
+   "SELECT * FROM pg_attribute_encoding  WHERE attrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_attribute_encoding where attrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_attribute_encoding.c" : 1
+      },
+      "tablename" : "pg_attribute_encoding"
+   },
+   "SELECT * FROM pg_auth_members  WHERE member = :1  ORDER BY member,  roleid " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_auth_members where member = :1 ORDER_BY AuthMemMemRoleIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/utils/adt/acl.c" : 3
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_auth_members_member",
+            "Anum_pg_auth_members_roleid"
+         ],
+         "colnames" : [
+            "member",
+            "roleid"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "AuthMemMemRoleIndexId",
+            "SysCacheIdentifier" : "AUTHMEMMEMROLE",
+            "allcols" : 1,
+            "numcols" : "2",
+            "primarykey_prefix" : {
+               "READPK_INIT" : "newhash = caql_pkhash(pCtx, newhash, (pCtx->cq_datumKeys[0]), \n\t\t\t\t\t  false /* isnull */, OIDOID);\n\n",
+               "fkcolname" : "member",
+               "pkcolname" : "oid",
+               "pkidx" : "AuthIdOidIndexId",
+               "pkrelid" : "AuthIdRelationId",
+               "pktname" : "pg_authid"
+            },
+            "unique" : 1
+         },
+         "rawtxt" : "member, roleid"
+      },
+      "tablename" : "pg_auth_members"
+   },
+   "SELECT * FROM pg_auth_members  WHERE roleid = :1  AND member = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_auth_members where roleid = :1 and member = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 2
+      },
+      "tablename" : "pg_auth_members"
+   },
+   "SELECT * FROM pg_auth_time_constraint  WHERE authid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_auth_time_constraint where authid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 1
+      },
+      "tablename" : "pg_auth_time_constraint"
+   },
+   "SELECT * FROM pg_authid  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_authid where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/commands/dbcommands.c" : 1,
+         "../../../..//src/backend/commands/user.c" : 1,
+         "../../../..//src/backend/utils/adt/acl.c" : 1,
+         "../../../..//src/backend/utils/misc/superuser.c" : 1
+      },
+      "tablename" : "pg_authid"
+   },
+   "SELECT * FROM pg_authid  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_authid where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_authid"
+   },
+   "SELECT * FROM pg_authid  WHERE rolname = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_authid where rolname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/variable.c" : 2,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 1,
+         "../../../..//src/backend/utils/init/miscinit.c" : 1
+      },
+      "tablename" : "pg_authid"
+   },
+   "SELECT * FROM pg_authid  WHERE rolname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_authid where rolname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/user.c" : 4
+      },
+      "tablename" : "pg_authid"
+   },
+   "SELECT * FROM pg_authid WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_authid where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1
+      },
+      "tablename" : "pg_authid"
+   },
+   "SELECT * FROM pg_cast  WHERE castsource = :1  AND casttarget = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_cast where castsource = :1 and casttarget = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1,
+         "../../../..//src/backend/parser/parse_coerce.c" : 2
+      },
+      "tablename" : "pg_cast"
+   },
+   "SELECT * FROM pg_cast  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_cast where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1
+      },
+      "tablename" : "pg_cast"
+   },
+   "SELECT * FROM pg_class " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_class",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/indexcmds.c" : 1,
+         "../../../..//src/backend/commands/vacuum.c" : 1
+      },
+      "tablename" : "pg_class"
+   },
+   "SELECT * FROM pg_class  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_class where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/catalog/namespace.c" : 1,
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1,
+         "../../../..//src/backend/commands/cluster.c" : 1,
+         "../../../..//src/backend/commands/indexcmds.c" : 3,
+         "../../../..//src/backend/commands/tablecmds.c" : 3,
+         "../../../..//src/backend/parser/parse_relation.c" : 1,
+         "../../../..//src/backend/parser/parse_utilcmd.c" : 1,
+         "../../../..//src/backend/tcop/utility.c" : 3,
+         "../../../..//src/backend/utils/adt/regproc.c" : 1,
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 5,
+         "../../../..//src/backend/utils/adt/selfuncs.c" : 1,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 5,
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_class"
+   },
+   "SELECT * FROM pg_class  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_class where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/catalog/heap.c" : 3,
+         "../../../..//src/backend/catalog/index.c" : 2,
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1,
+         "../../../..//src/backend/catalog/toasting.c" : 1,
+         "../../../..//src/backend/cdb/cdbpartition.c" : 2,
+         "../../../..//src/backend/commands/analyze.c" : 1,
+         "../../../..//src/backend/commands/cluster.c" : 2,
+         "../../../..//src/backend/commands/tablecmds.c" : 10,
+         "../../../..//src/backend/commands/trigger.c" : 2,
+         "../../../..//src/backend/commands/vacuum.c" : 1,
+         "../../../..//src/backend/rewrite/rewriteSupport.c" : 1
+      },
+      "tablename" : "pg_class"
+   },
+   "SELECT * FROM pg_class  WHERE relkind = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_class where relkind = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/analyze.c" : 1,
+         "../../../..//src/backend/commands/vacuum.c" : 1
+      },
+      "tablename" : "pg_class"
+   },
+   "SELECT * FROM pg_compression  WHERE compname = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_compression where compname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_compression.c" : 1
+      },
+      "tablename" : "pg_compression"
+   },
+   "SELECT * FROM pg_constraint  WHERE conname = :1  AND connamespace = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_constraint where conname = :1 and connamespace = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE conrelid = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_constraint where conrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartindex.c" : 1,
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE conrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_constraint where conrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1,
+         "../../../..//src/backend/cdb/cdbpartition.c" : 1,
+         "../../../..//src/backend/commands/comment.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 2,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 1,
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE conrelid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_constraint where conrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/heap.c" : 1,
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE contypid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_constraint where contypid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/typecmds.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE contypid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_constraint where contypid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1,
+         "../../../..//src/backend/commands/typecmds.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_constraint where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_constraint  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_constraint where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_constraint.c" : 1
+      },
+      "tablename" : "pg_constraint"
+   },
+   "SELECT * FROM pg_conversion  WHERE conname = :1  AND connamespace = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_conversion where conname = :1 and connamespace = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_conversion.c" : 1
+      },
+      "tablename" : "pg_conversion"
+   },
+   "SELECT * FROM pg_conversion  WHERE connamespace = :1  AND conforencoding = :2  AND contoencoding = :3  ORDER BY connamespace,   conforencoding,    contoencoding,    oid  " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_conversion where connamespace = :1 and conforencoding = :2 and contoencoding = :3 ORDER_BY ConversionDefaultIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_conversion.c" : 1
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_conversion_connamespace",
+            "Anum_pg_conversion_conforencoding",
+            "Anum_pg_conversion_contoencoding",
+            "Anum_pg_conversion_oid"
+         ],
+         "colnames" : [
+            "connamespace",
+            "conforencoding",
+            "contoencoding",
+            "oid"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "ConversionDefaultIndexId",
+            "SysCacheIdentifier" : "CONDEFAULT",
+            "allcols" : 1,
+            "numcols" : "4",
+            "primarykey_prefix" : {
+               "READPK_INIT" : "newhash = caql_pkhash(pCtx, newhash, (pCtx->cq_datumKeys[0]), \n\t\t\t\t\t  false /* isnull */, OIDOID);\n\n",
+               "fkcolname" : "connamespace",
+               "pkcolname" : "oid",
+               "pkidx" : "NamespaceOidIndexId",
+               "pkrelid" : "NamespaceRelationId",
+               "pktname" : "pg_namespace"
+            },
+            "unique" : 1
+         },
+         "rawtxt" : "connamespace, conforencoding, contoencoding, oid"
+      },
+      "tablename" : "pg_conversion"
+   },
+   "SELECT * FROM pg_conversion  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_conversion where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/namespace.c" : 1,
+         "../../../..//src/backend/catalog/pg_conversion.c" : 2
+      },
+      "tablename" : "pg_conversion"
+   },
+   "SELECT * FROM pg_conversion  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_conversion where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/conversioncmds.c" : 2
+      },
+      "tablename" : "pg_conversion"
+   },
+   "SELECT * FROM pg_database " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_database",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/vacuum.c" : 1
+      },
+      "tablename" : "pg_database"
+   },
+   "SELECT * FROM pg_database  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_database where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/commands/dbcommands.c" : 1
+      },
+      "tablename" : "pg_database"
+   },
+   "SELECT * FROM pg_database  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_database where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/commands/dbcommands.c" : 1,
+         "../../../..//src/backend/commands/vacuum.c" : 1
+      },
+      "tablename" : "pg_database"
+   },
+   "SELECT * FROM pg_database WHERE datname = :1 FOR UPDATE" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_database where datname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/dbcommands.c" : 3
+      },
+      "tablename" : "pg_database"
+   },
+   "SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_depend where classid = :1 and objid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_depend.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  AND objsubid = :3 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_depend where classid = :1 and objid = :2 and objsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_depend.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  AND objsubid = :3  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_depend where classid = :1 and objid = :2 and objsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 2
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE classid = :1  AND objid = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_depend where classid = :1 and objid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/catalog/pg_depend.c" : 2
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_depend where refclassid = :1 and refobjid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/catalog/pg_depend.c" : 1,
+         "../../../..//src/backend/catalog/pg_proc.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 3,
+         "../../../..//src/backend/commands/typecmds.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  AND refobjsubid = :3 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_depend where refclassid = :1 and refobjid = :2 and refobjsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/catalog/pg_depend.c" : 1,
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  AND refobjsubid = :3  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_depend where refclassid = :1 and refobjid = :2 and refobjsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/commands/tablecmds.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_depend  WHERE refclassid = :1  AND refobjid = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_depend where refclassid = :1 and refobjid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1
+      },
+      "tablename" : "pg_depend"
+   },
+   "SELECT * FROM pg_description where objoid = :1 AND  classoid = :2 AND  objsubid = :3 FOR UPDATE" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_description where objoid = :1 and classoid = :2 and objsubid = :3",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/comment.c" : 1
+      },
+      "tablename" : "pg_description"
+   },
+   "SELECT * FROM pg_extprotocol  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_extprotocol where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_extprotocol"
+   },
+   "SELECT * FROM pg_extprotocol  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_extprotocol where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_extprotocol"
+   },
+   "SELECT * FROM pg_extprotocol  WHERE ptcname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_extprotocol where ptcname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/extprotocolcmds.c" : 2
+      },
+      "tablename" : "pg_extprotocol"
+   },
+   "SELECT * FROM pg_exttable  WHERE reloid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_exttable where reloid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/pg_exttable.c" : 1
+      },
+      "tablename" : "pg_exttable"
+   },
+   "SELECT * FROM pg_filespace  WHERE fsname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_filespace where fsname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/filespace.c" : 2
+      },
+      "tablename" : "pg_filespace"
+   },
+   "SELECT * FROM pg_foreign_data_wrapper  WHERE fdwname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_foreign_data_wrapper where fdwname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 2
+      },
+      "tablename" : "pg_foreign_data_wrapper"
+   },
+   "SELECT * FROM pg_foreign_data_wrapper  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_foreign_data_wrapper where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_foreign_data_wrapper"
+   },
+   "SELECT * FROM pg_foreign_data_wrapper  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_foreign_data_wrapper where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_foreign_data_wrapper"
+   },
+   "SELECT * FROM pg_foreign_server  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_foreign_server where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_foreign_server"
+   },
+   "SELECT * FROM pg_foreign_server  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_foreign_server where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_foreign_server"
+   },
+   "SELECT * FROM pg_foreign_server  WHERE srvname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_foreign_server where srvname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/foreigncmds.c" : 2
+      },
+      "tablename" : "pg_foreign_server"
+   },
+   "SELECT * FROM pg_index  WHERE indexrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_index where indexrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/index.c" : 1,
+         "../../../..//src/backend/cdb/cdbpartindex.c" : 1,
+         "../../../..//src/backend/commands/cluster.c" : 3,
+         "../../../..//src/backend/commands/indexcmds.c" : 2,
+         "../../../..//src/backend/commands/tablecmds.c" : 4,
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 1,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "SELECT * FROM pg_index  WHERE indexrelid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_index where indexrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/index.c" : 2,
+         "../../../..//src/backend/commands/cluster.c" : 1,
+         "../../../..//src/backend/commands/indexcmds.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "SELECT * FROM pg_index  WHERE indisclustered = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_index where indisclustered = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/cluster.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "SELECT * FROM pg_index  WHERE indrelid = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_index where indrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartindex.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "SELECT * FROM pg_index  WHERE indrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_index where indrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/cdb/cdbpartindex.c" : 1,
+         "../../../..//src/backend/utils/cache/relcache.c" : 1
+      },
+      "tablename" : "pg_index"
+   },
+   "SELECT * FROM pg_inherits  WHERE inhparent = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_inherits where inhparent = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/optimizer/util/plancat.c" : 1
+      },
+      "tablename" : "pg_inherits"
+   },
+   "SELECT * FROM pg_inherits  WHERE inhrelid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_inherits where inhrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/parser/parse_func.c" : 1
+      },
+      "tablename" : "pg_inherits"
+   },
+   "SELECT * FROM pg_inherits  WHERE inhrelid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_inherits where inhrelid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/tablecmds.c" : 2
+      },
+      "tablename" : "pg_inherits"
+   },
+   "SELECT * FROM pg_language  WHERE lanname = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_language where lanname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "SELECT * FROM pg_language  WHERE lanname = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_language where lanname = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/proclang.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "SELECT * FROM pg_language  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_language where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/cdb/cdbquerycontextdispatching.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "SELECT * FROM pg_language  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_language where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "SELECT * FROM pg_language WHERE oid = :1" : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_language where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/functioncmds.c" : 1
+      },
+      "tablename" : "pg_language"
+   },
+   "SELECT * FROM pg_largeobject  WHERE loid = :1  AND pageno >= :2  ORDER BY loid, pageno " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_largeobject where loid = :1 and pageno >= :2 ORDER_BY LargeObjectLoidPagenoIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql0",
+      "files" : {
+         "../../../..//src/backend/storage/large_object/inv_api.c" : 1
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_largeobject_loid",
+            "Anum_pg_largeobject_pageno"
+         ],
+         "colnames" : [
+            "loid",
+            "pageno"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "LargeObjectLoidPagenoIndexId",
+            "allcols" : 1,
+            "numcols" : "2",
+            "unique" : 1
+         },
+         "rawtxt" : "loid, pageno"
+      },
+      "tablename" : "pg_largeobject"
+   },
+   "SELECT * FROM pg_largeobject  WHERE loid = :1  AND pageno >= :2  ORDER BY loid, pageno  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_largeobject where loid = :1 and pageno >= :2 ORDER_BY LargeObjectLoidPagenoIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql0",
+      "files" : {
+         "../../../..//src/backend/storage/large_object/inv_api.c" : 2
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_largeobject_loid",
+            "Anum_pg_largeobject_pageno"
+         ],
+         "colnames" : [
+            "loid",
+            "pageno"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "LargeObjectLoidPagenoIndexId",
+            "allcols" : 1,
+            "numcols" : "2",
+            "unique" : 1
+         },
+         "rawtxt" : "loid, pageno"
+      },
+      "tablename" : "pg_largeobject"
+   },
+   "SELECT * FROM pg_largeobject  WHERE loid = :1  ORDER BY loid, pageno " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_largeobject where loid = :1 ORDER_BY LargeObjectLoidPagenoIndexId",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql0",
+      "files" : {
+         "../../../..//src/backend/storage/large_object/inv_api.c" : 1
+      },
+      "oby" : {
+         "attnums" : [
+            "Anum_pg_largeobject_loid",
+            "Anum_pg_largeobject_pageno"
+         ],
+         "colnames" : [
+            "loid",
+            "pageno"
+         ],
+         "index" : {
+            "CamelCaseIndexId" : "LargeObjectLoidPagenoIndexId",
+            "allcols" : 1,
+            "numcols" : "2",
+            "unique" : 1
+         },
+         "rawtxt" : "loid, pageno"
+      },
+      "tablename" : "pg_largeobject"
+   },
+   "SELECT * FROM pg_namespace  WHERE nspname = :1 and nspdboid = :2 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_namespace where nspname = :1 and nspdboid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/schemacmds.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "SELECT * FROM pg_namespace  WHERE nspname = :1 and nspdboid = :2  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_namespace where nspname = :1 and nspdboid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/schemacmds.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "SELECT * FROM pg_namespace  WHERE nspname = :1 and nspdboid = :2 FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_namespace where nspname = :1 and nspdboid = :2",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/schemacmds.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "SELECT * FROM pg_namespace  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_namespace where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "SELECT * FROM pg_namespace  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_namespace where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/aclchk.c" : 1,
+         "../../../..//src/backend/commands/schemacmds.c" : 1
+      },
+      "tablename" : "pg_namespace"
+   },
+   "SELECT * FROM pg_opclass  WHERE oid = :1 " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 0,
+      "basic" : "select * from pg_opclass where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/catalog/dependency.c" : 1,
+         "../../../..//src/backend/catalog/namespace.c" : 1,
+         "../../../..//src/backend/commands/indexcmds.c" : 1,
+         "../../../..//src/backend/commands/opclasscmds.c" : 1,
+         "../../../..//src/backend/parser/parse_utilcmd.c" : 1,
+         "../../../..//src/backend/utils/adt/ruleutils.c" : 1,
+         "../../../..//src/backend/utils/cache/lsyscache.c" : 1
+      },
+      "tablename" : "pg_opclass"
+   },
+   "SELECT * FROM pg_opclass  WHERE oid = :1  FOR UPDATE " : {
+      "bCount" : 0,
+      "bDelete" : 0,
+      "bInsert" : 0,
+      "bUpdate" : 1,
+      "basic" : "select * from pg_opclass where oid = :1",
+      "colnum" : "InvalidAttrNumber",
+      "cql" : "cql",
+      "files" : {
+         "../../../..//src/backend/commands/op

<TRUNCATED>


[07/35] incubator-hawq git commit: SGA import. Now with files previously missing because of the .gitignore issue

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/scanner.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/scanner.py b/tools/bin/ext/yaml/scanner.py
new file mode 100644
index 0000000..a3ecdd0
--- /dev/null
+++ b/tools/bin/ext/yaml/scanner.py
@@ -0,0 +1,1456 @@
+
+# Scanner produces tokens of the following types:
+# STREAM-START
+# STREAM-END
+# DIRECTIVE(name, value)
+# DOCUMENT-START
+# DOCUMENT-END
+# BLOCK-SEQUENCE-START
+# BLOCK-MAPPING-START
+# BLOCK-END
+# FLOW-SEQUENCE-START
+# FLOW-MAPPING-START
+# FLOW-SEQUENCE-END
+# FLOW-MAPPING-END
+# BLOCK-ENTRY
+# FLOW-ENTRY
+# KEY
+# VALUE
+# ALIAS(value)
+# ANCHOR(value)
+# TAG(value)
+# SCALAR(value, plain, style)
+#
+# Read comments in the Scanner code for more details.
+#
+
+__all__ = ['Scanner', 'ScannerError']
+
+from error import MarkedYAMLError
+from tokens import *
+
+class ScannerError(MarkedYAMLError):
+    pass
+
+class SimpleKey(object):
+    # See below simple keys treatment.
+
+    def __init__(self, token_number, required, index, line, column, mark):
+        self.token_number = token_number
+        self.required = required
+        self.index = index
+        self.line = line
+        self.column = column
+        self.mark = mark
+
+class Scanner(object):
+
+    def __init__(self):
+        """Initialize the scanner."""
+        # It is assumed that Scanner and Reader will have a common descendant.
+        # Reader do the dirty work of checking for BOM and converting the
+        # input data to Unicode. It also adds NUL to the end.
+        #
+        # Reader supports the following methods
+        #   self.peek(i=0)       # peek the next i-th character
+        #   self.prefix(l=1)     # peek the next l characters
+        #   self.forward(l=1)    # read the next l characters and move the pointer.
+
+        # Had we reached the end of the stream?
+        self.done = False
+
+        # The number of unclosed '{' and '['. `flow_level == 0` means block
+        # context.
+        self.flow_level = 0
+
+        # List of processed tokens that are not yet emitted.
+        self.tokens = []
+
+        # Add the STREAM-START token.
+        self.fetch_stream_start()
+
+        # Number of tokens that were emitted through the `get_token` method.
+        self.tokens_taken = 0
+
+        # The current indentation level.
+        self.indent = -1
+
+        # Past indentation levels.
+        self.indents = []
+
+        # Variables related to simple keys treatment.
+
+        # A simple key is a key that is not denoted by the '?' indicator.
+        # Example of simple keys:
+        #   ---
+        #   block simple key: value
+        #   ? not a simple key:
+        #   : { flow simple key: value }
+        # We emit the KEY token before all keys, so when we find a potential
+        # simple key, we try to locate the corresponding ':' indicator.
+        # Simple keys should be limited to a single line and 1024 characters.
+
+        # Can a simple key start at the current position? A simple key may
+        # start:
+        # - at the beginning of the line, not counting indentation spaces
+        #       (in block context),
+        # - after '{', '[', ',' (in the flow context),
+        # - after '?', ':', '-' (in the block context).
+        # In the block context, this flag also signifies if a block collection
+        # may start at the current position.
+        self.allow_simple_key = True
+
+        # Keep track of possible simple keys. This is a dictionary. The key
+        # is `flow_level`; there can be no more that one possible simple key
+        # for each level. The value is a SimpleKey record:
+        #   (token_number, required, index, line, column, mark)
+        # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow),
+        # '[', or '{' tokens.
+        self.possible_simple_keys = {}
+
+    # Public methods.
+
+    def check_token(self, *choices):
+        # Check if the next token is one of the given types.
+        while self.need_more_tokens():
+            self.fetch_more_tokens()
+        if self.tokens:
+            if not choices:
+                return True
+            for choice in choices:
+                if isinstance(self.tokens[0], choice):
+                    return True
+        return False
+
+    def peek_token(self):
+        # Return the next token, but do not delete if from the queue.
+        while self.need_more_tokens():
+            self.fetch_more_tokens()
+        if self.tokens:
+            return self.tokens[0]
+
+    def get_token(self):
+        # Return the next token.
+        while self.need_more_tokens():
+            self.fetch_more_tokens()
+        if self.tokens:
+            self.tokens_taken += 1
+            return self.tokens.pop(0)
+
+    # Private methods.
+
+    def need_more_tokens(self):
+        if self.done:
+            return False
+        if not self.tokens:
+            return True
+        # The current token may be a potential simple key, so we
+        # need to look further.
+        self.stale_possible_simple_keys()
+        if self.next_possible_simple_key() == self.tokens_taken:
+            return True
+
+    def fetch_more_tokens(self):
+
+        # Eat whitespaces and comments until we reach the next token.
+        self.scan_to_next_token()
+
+        # Remove obsolete possible simple keys.
+        self.stale_possible_simple_keys()
+
+        # Compare the current indentation and column. It may add some tokens
+        # and decrease the current indentation level.
+        self.unwind_indent(self.column)
+
+        # Peek the next character.
+        ch = self.peek()
+
+        # Is it the end of stream?
+        if ch == u'\0':
+            return self.fetch_stream_end()
+
+        # Is it a directive?
+        if ch == u'%' and self.check_directive():
+            return self.fetch_directive()
+
+        # Is it the document start?
+        if ch == u'-' and self.check_document_start():
+            return self.fetch_document_start()
+
+        # Is it the document end?
+        if ch == u'.' and self.check_document_end():
+            return self.fetch_document_end()
+
+        # TODO: support for BOM within a stream.
+        #if ch == u'\uFEFF':
+        #    return self.fetch_bom()    <-- issue BOMToken
+
+        # Note: the order of the following checks is NOT significant.
+
+        # Is it the flow sequence start indicator?
+        if ch == u'[':
+            return self.fetch_flow_sequence_start()
+
+        # Is it the flow mapping start indicator?
+        if ch == u'{':
+            return self.fetch_flow_mapping_start()
+
+        # Is it the flow sequence end indicator?
+        if ch == u']':
+            return self.fetch_flow_sequence_end()
+
+        # Is it the flow mapping end indicator?
+        if ch == u'}':
+            return self.fetch_flow_mapping_end()
+
+        # Is it the flow entry indicator?
+        if ch == u',':
+            return self.fetch_flow_entry()
+
+        # Is it the block entry indicator?
+        if ch == u'-' and self.check_block_entry():
+            return self.fetch_block_entry()
+
+        # Is it the key indicator?
+        if ch == u'?' and self.check_key():
+            return self.fetch_key()
+
+        # Is it the value indicator?
+        if ch == u':' and self.check_value():
+            return self.fetch_value()
+
+        # Is it an alias?
+        if ch == u'*':
+            return self.fetch_alias()
+
+        # Is it an anchor?
+        if ch == u'&':
+            return self.fetch_anchor()
+
+        # Is it a tag?
+        if ch == u'!':
+            return self.fetch_tag()
+
+        # Is it a literal scalar?
+        if ch == u'|' and not self.flow_level:
+            return self.fetch_literal()
+
+        # Is it a folded scalar?
+        if ch == u'>' and not self.flow_level:
+            return self.fetch_folded()
+
+        # Is it a single quoted scalar?
+        if ch == u'\'':
+            return self.fetch_single()
+
+        # Is it a double quoted scalar?
+        if ch == u'\"':
+            return self.fetch_double()
+
+        # It must be a plain scalar then.
+        if self.check_plain():
+            return self.fetch_plain()
+
+        # No? It's an error. Let's produce a nice error message.
+        raise ScannerError("while scanning for the next token", None,
+                "found character %r that cannot start any token"
+                % ch.encode('utf-8'), self.get_mark())
+
+    # Simple keys treatment.
+
+    def next_possible_simple_key(self):
+        # Return the number of the nearest possible simple key. Actually we
+        # don't need to loop through the whole dictionary. We may replace it
+        # with the following code:
+        #   if not self.possible_simple_keys:
+        #       return None
+        #   return self.possible_simple_keys[
+        #           min(self.possible_simple_keys.keys())].token_number
+        min_token_number = None
+        for level in self.possible_simple_keys:
+            key = self.possible_simple_keys[level]
+            if min_token_number is None or key.token_number < min_token_number:
+                min_token_number = key.token_number
+        return min_token_number
+
+    def stale_possible_simple_keys(self):
+        # Remove entries that are no longer possible simple keys. According to
+        # the YAML specification, simple keys
+        # - should be limited to a single line,
+        # - should be no longer than 1024 characters.
+        # Disabling this procedure will allow simple keys of any length and
+        # height (may cause problems if indentation is broken though).
+        for level in self.possible_simple_keys.keys():
+            key = self.possible_simple_keys[level]
+            if key.line != self.line  \
+                    or self.index-key.index > 1024:
+                if key.required:
+                    raise ScannerError("while scanning a simple key", key.mark,
+                            "could not found expected ':'", self.get_mark())
+                del self.possible_simple_keys[level]
+
+    def save_possible_simple_key(self):
+        # The next token may start a simple key. We check if it's possible
+        # and save its position. This function is called for
+        #   ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'.
+
+        # Check if a simple key is required at the current position.
+        required = not self.flow_level and self.indent == self.column
+
+        # A simple key is required only if it is the first token in the current
+        # line. Therefore it is always allowed.
+        assert self.allow_simple_key or not required
+
+        # The next token might be a simple key. Let's save it's number and
+        # position.
+        if self.allow_simple_key:
+            self.remove_possible_simple_key()
+            token_number = self.tokens_taken+len(self.tokens)
+            key = SimpleKey(token_number, required,
+                    self.index, self.line, self.column, self.get_mark())
+            self.possible_simple_keys[self.flow_level] = key
+
+    def remove_possible_simple_key(self):
+        # Remove the saved possible key position at the current flow level.
+        if self.flow_level in self.possible_simple_keys:
+            key = self.possible_simple_keys[self.flow_level]
+            
+            if key.required:
+                raise ScannerError("while scanning a simple key", key.mark,
+                        "could not found expected ':'", self.get_mark())
+
+            del self.possible_simple_keys[self.flow_level]
+
+    # Indentation functions.
+
+    def unwind_indent(self, column):
+
+        ## In flow context, tokens should respect indentation.
+        ## Actually the condition should be `self.indent >= column` according to
+        ## the spec. But this condition will prohibit intuitively correct
+        ## constructions such as
+        ## key : {
+        ## }
+        #if self.flow_level and self.indent > column:
+        #    raise ScannerError(None, None,
+        #            "invalid intendation or unclosed '[' or '{'",
+        #            self.get_mark())
+
+        # In the flow context, indentation is ignored. We make the scanner less
+        # restrictive then specification requires.
+        if self.flow_level:
+            return
+
+        # In block context, we may need to issue the BLOCK-END tokens.
+        while self.indent > column:
+            mark = self.get_mark()
+            self.indent = self.indents.pop()
+            self.tokens.append(BlockEndToken(mark, mark))
+
+    def add_indent(self, column):
+        # Check if we need to increase indentation.
+        if self.indent < column:
+            self.indents.append(self.indent)
+            self.indent = column
+            return True
+        return False
+
+    # Fetchers.
+
+    def fetch_stream_start(self):
+        # We always add STREAM-START as the first token and STREAM-END as the
+        # last token.
+
+        # Read the token.
+        mark = self.get_mark()
+        
+        # Add STREAM-START.
+        self.tokens.append(StreamStartToken(mark, mark,
+            encoding=self.encoding))
+        
+
+    def fetch_stream_end(self):
+
+        # Set the current intendation to -1.
+        self.unwind_indent(-1)
+
+        # Reset everything (not really needed).
+        self.allow_simple_key = False
+        self.possible_simple_keys = {}
+
+        # Read the token.
+        mark = self.get_mark()
+        
+        # Add STREAM-END.
+        self.tokens.append(StreamEndToken(mark, mark))
+
+        # The steam is finished.
+        self.done = True
+
+    def fetch_directive(self):
+        
+        # Set the current intendation to -1.
+        self.unwind_indent(-1)
+
+        # Reset simple keys.
+        self.remove_possible_simple_key()
+        self.allow_simple_key = False
+
+        # Scan and add DIRECTIVE.
+        self.tokens.append(self.scan_directive())
+
+    def fetch_document_start(self):
+        self.fetch_document_indicator(DocumentStartToken)
+
+    def fetch_document_end(self):
+        self.fetch_document_indicator(DocumentEndToken)
+
+    def fetch_document_indicator(self, TokenClass):
+
+        # Set the current intendation to -1.
+        self.unwind_indent(-1)
+
+        # Reset simple keys. Note that there could not be a block collection
+        # after '---'.
+        self.remove_possible_simple_key()
+        self.allow_simple_key = False
+
+        # Add DOCUMENT-START or DOCUMENT-END.
+        start_mark = self.get_mark()
+        self.forward(3)
+        end_mark = self.get_mark()
+        self.tokens.append(TokenClass(start_mark, end_mark))
+
+    def fetch_flow_sequence_start(self):
+        self.fetch_flow_collection_start(FlowSequenceStartToken)
+
+    def fetch_flow_mapping_start(self):
+        self.fetch_flow_collection_start(FlowMappingStartToken)
+
+    def fetch_flow_collection_start(self, TokenClass):
+
+        # '[' and '{' may start a simple key.
+        self.save_possible_simple_key()
+
+        # Increase the flow level.
+        self.flow_level += 1
+
+        # Simple keys are allowed after '[' and '{'.
+        self.allow_simple_key = True
+
+        # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(TokenClass(start_mark, end_mark))
+
+    def fetch_flow_sequence_end(self):
+        self.fetch_flow_collection_end(FlowSequenceEndToken)
+
+    def fetch_flow_mapping_end(self):
+        self.fetch_flow_collection_end(FlowMappingEndToken)
+
+    def fetch_flow_collection_end(self, TokenClass):
+
+        # Reset possible simple key on the current level.
+        self.remove_possible_simple_key()
+
+        # Decrease the flow level.
+        self.flow_level -= 1
+
+        # No simple keys after ']' or '}'.
+        self.allow_simple_key = False
+
+        # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(TokenClass(start_mark, end_mark))
+
+    def fetch_flow_entry(self):
+
+        # Simple keys are allowed after ','.
+        self.allow_simple_key = True
+
+        # Reset possible simple key on the current level.
+        self.remove_possible_simple_key()
+
+        # Add FLOW-ENTRY.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(FlowEntryToken(start_mark, end_mark))
+
+    def fetch_block_entry(self):
+
+        # Block context needs additional checks.
+        if not self.flow_level:
+
+            # Are we allowed to start a new entry?
+            if not self.allow_simple_key:
+                raise ScannerError(None, None,
+                        "sequence entries are not allowed here",
+                        self.get_mark())
+
+            # We may need to add BLOCK-SEQUENCE-START.
+            if self.add_indent(self.column):
+                mark = self.get_mark()
+                self.tokens.append(BlockSequenceStartToken(mark, mark))
+
+        # It's an error for the block entry to occur in the flow context,
+        # but we let the parser detect this.
+        else:
+            pass
+
+        # Simple keys are allowed after '-'.
+        self.allow_simple_key = True
+
+        # Reset possible simple key on the current level.
+        self.remove_possible_simple_key()
+
+        # Add BLOCK-ENTRY.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(BlockEntryToken(start_mark, end_mark))
+
+    def fetch_key(self):
+        
+        # Block context needs additional checks.
+        if not self.flow_level:
+
+            # Are we allowed to start a key (not nessesary a simple)?
+            if not self.allow_simple_key:
+                raise ScannerError(None, None,
+                        "mapping keys are not allowed here",
+                        self.get_mark())
+
+            # We may need to add BLOCK-MAPPING-START.
+            if self.add_indent(self.column):
+                mark = self.get_mark()
+                self.tokens.append(BlockMappingStartToken(mark, mark))
+
+        # Simple keys are allowed after '?' in the block context.
+        self.allow_simple_key = not self.flow_level
+
+        # Reset possible simple key on the current level.
+        self.remove_possible_simple_key()
+
+        # Add KEY.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(KeyToken(start_mark, end_mark))
+
+    def fetch_value(self):
+
+        # Do we determine a simple key?
+        if self.flow_level in self.possible_simple_keys:
+
+            # Add KEY.
+            key = self.possible_simple_keys[self.flow_level]
+            del self.possible_simple_keys[self.flow_level]
+            self.tokens.insert(key.token_number-self.tokens_taken,
+                    KeyToken(key.mark, key.mark))
+
+            # If this key starts a new block mapping, we need to add
+            # BLOCK-MAPPING-START.
+            if not self.flow_level:
+                if self.add_indent(key.column):
+                    self.tokens.insert(key.token_number-self.tokens_taken,
+                            BlockMappingStartToken(key.mark, key.mark))
+
+            # There cannot be two simple keys one after another.
+            self.allow_simple_key = False
+
+        # It must be a part of a complex key.
+        else:
+            
+            # Block context needs additional checks.
+            # (Do we really need them? They will be catched by the parser
+            # anyway.)
+            if not self.flow_level:
+
+                # We are allowed to start a complex value if and only if
+                # we can start a simple key.
+                if not self.allow_simple_key:
+                    raise ScannerError(None, None,
+                            "mapping values are not allowed here",
+                            self.get_mark())
+
+            # If this value starts a new block mapping, we need to add
+            # BLOCK-MAPPING-START.  It will be detected as an error later by
+            # the parser.
+            if not self.flow_level:
+                if self.add_indent(self.column):
+                    mark = self.get_mark()
+                    self.tokens.append(BlockMappingStartToken(mark, mark))
+
+            # Simple keys are allowed after ':' in the block context.
+            self.allow_simple_key = not self.flow_level
+
+            # Reset possible simple key on the current level.
+            self.remove_possible_simple_key()
+
+        # Add VALUE.
+        start_mark = self.get_mark()
+        self.forward()
+        end_mark = self.get_mark()
+        self.tokens.append(ValueToken(start_mark, end_mark))
+
+    def fetch_alias(self):
+
+        # ALIAS could be a simple key.
+        self.save_possible_simple_key()
+
+        # No simple keys after ALIAS.
+        self.allow_simple_key = False
+
+        # Scan and add ALIAS.
+        self.tokens.append(self.scan_anchor(AliasToken))
+
+    def fetch_anchor(self):
+
+        # ANCHOR could start a simple key.
+        self.save_possible_simple_key()
+
+        # No simple keys after ANCHOR.
+        self.allow_simple_key = False
+
+        # Scan and add ANCHOR.
+        self.tokens.append(self.scan_anchor(AnchorToken))
+
+    def fetch_tag(self):
+
+        # TAG could start a simple key.
+        self.save_possible_simple_key()
+
+        # No simple keys after TAG.
+        self.allow_simple_key = False
+
+        # Scan and add TAG.
+        self.tokens.append(self.scan_tag())
+
+    def fetch_literal(self):
+        self.fetch_block_scalar(style='|')
+
+    def fetch_folded(self):
+        self.fetch_block_scalar(style='>')
+
+    def fetch_block_scalar(self, style):
+
+        # A simple key may follow a block scalar.
+        self.allow_simple_key = True
+
+        # Reset possible simple key on the current level.
+        self.remove_possible_simple_key()
+
+        # Scan and add SCALAR.
+        self.tokens.append(self.scan_block_scalar(style))
+
+    def fetch_single(self):
+        self.fetch_flow_scalar(style='\'')
+
+    def fetch_double(self):
+        self.fetch_flow_scalar(style='"')
+
+    def fetch_flow_scalar(self, style):
+
+        # A flow scalar could be a simple key.
+        self.save_possible_simple_key()
+
+        # No simple keys after flow scalars.
+        self.allow_simple_key = False
+
+        # Scan and add SCALAR.
+        self.tokens.append(self.scan_flow_scalar(style))
+
+    def fetch_plain(self):
+
+        # A plain scalar could be a simple key.
+        self.save_possible_simple_key()
+
+        # No simple keys after plain scalars. But note that `scan_plain` will
+        # change this flag if the scan is finished at the beginning of the
+        # line.
+        self.allow_simple_key = False
+
+        # Scan and add SCALAR. May change `allow_simple_key`.
+        self.tokens.append(self.scan_plain())
+
+    # Checkers.
+
+    def check_directive(self):
+
+        # DIRECTIVE:        ^ '%' ...
+        # The '%' indicator is already checked.
+        if self.column == 0:
+            return True
+
+    def check_document_start(self):
+
+        # DOCUMENT-START:   ^ '---' (' '|'\n')
+        if self.column == 0:
+            if self.prefix(3) == u'---'  \
+                    and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+                return True
+
+    def check_document_end(self):
+
+        # DOCUMENT-END:     ^ '...' (' '|'\n')
+        if self.column == 0:
+            if self.prefix(3) == u'...'  \
+                    and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+                return True
+
+    def check_block_entry(self):
+
+        # BLOCK-ENTRY:      '-' (' '|'\n')
+        return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+    def check_key(self):
+
+        # KEY(flow context):    '?'
+        if self.flow_level:
+            return True
+
+        # KEY(block context):   '?' (' '|'\n')
+        else:
+            return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+    def check_value(self):
+
+        # VALUE(flow context):  ':'
+        if self.flow_level:
+            return True
+
+        # VALUE(block context): ':' (' '|'\n')
+        else:
+            return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+    def check_plain(self):
+
+        # A plain scalar may start with any non-space character except:
+        #   '-', '?', ':', ',', '[', ']', '{', '}',
+        #   '#', '&', '*', '!', '|', '>', '\'', '\"',
+        #   '%', '@', '`'.
+        #
+        # It may also start with
+        #   '-', '?', ':'
+        # if it is followed by a non-space character.
+        #
+        # Note that we limit the last rule to the block context (except the
+        # '-' character) because we want the flow context to be space
+        # independent.
+        ch = self.peek()
+        return ch not in u'\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`'  \
+                or (self.peek(1) not in u'\0 \t\r\n\x85\u2028\u2029'
+                        and (ch == u'-' or (not self.flow_level and ch in u'?:')))
+
+    # Scanners.
+
+    def scan_to_next_token(self):
+        # We ignore spaces, line breaks and comments.
+        # If we find a line break in the block context, we set the flag
+        # `allow_simple_key` on.
+        # The byte order mark is stripped if it's the first character in the
+        # stream. We do not yet support BOM inside the stream as the
+        # specification requires. Any such mark will be considered as a part
+        # of the document.
+        #
+        # TODO: We need to make tab handling rules more sane. A good rule is
+        #   Tabs cannot precede tokens
+        #   BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END,
+        #   KEY(block), VALUE(block), BLOCK-ENTRY
+        # So the checking code is
+        #   if <TAB>:
+        #       self.allow_simple_keys = False
+        # We also need to add the check for `allow_simple_keys == True` to
+        # `unwind_indent` before issuing BLOCK-END.
+        # Scanners for block, flow, and plain scalars need to be modified.
+
+        if self.index == 0 and self.peek() == u'\uFEFF':
+            self.forward()
+        found = False
+        while not found:
+            while self.peek() == u' ':
+                self.forward()
+            if self.peek() == u'#':
+                while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+                    self.forward()
+            if self.scan_line_break():
+                if not self.flow_level:
+                    self.allow_simple_key = True
+            else:
+                found = True
+
+    def scan_directive(self):
+        # See the specification for details.
+        start_mark = self.get_mark()
+        self.forward()
+        name = self.scan_directive_name(start_mark)
+        value = None
+        if name == u'YAML':
+            value = self.scan_yaml_directive_value(start_mark)
+            end_mark = self.get_mark()
+        elif name == u'TAG':
+            value = self.scan_tag_directive_value(start_mark)
+            end_mark = self.get_mark()
+        else:
+            end_mark = self.get_mark()
+            while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+                self.forward()
+        self.scan_directive_ignored_line(start_mark)
+        return DirectiveToken(name, value, start_mark, end_mark)
+
+    def scan_directive_name(self, start_mark):
+        # See the specification for details.
+        length = 0
+        ch = self.peek(length)
+        while u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                or ch in u'-_':
+            length += 1
+            ch = self.peek(length)
+        if not length:
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected alphabetic or numeric character, but found %r"
+                    % ch.encode('utf-8'), self.get_mark())
+        value = self.prefix(length)
+        self.forward(length)
+        ch = self.peek()
+        if ch not in u'\0 \r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected alphabetic or numeric character, but found %r"
+                    % ch.encode('utf-8'), self.get_mark())
+        return value
+
+    def scan_yaml_directive_value(self, start_mark):
+        # See the specification for details.
+        while self.peek() == u' ':
+            self.forward()
+        major = self.scan_yaml_directive_number(start_mark)
+        if self.peek() != '.':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected a digit or '.', but found %r"
+                    % self.peek().encode('utf-8'),
+                    self.get_mark())
+        self.forward()
+        minor = self.scan_yaml_directive_number(start_mark)
+        if self.peek() not in u'\0 \r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected a digit or ' ', but found %r"
+                    % self.peek().encode('utf-8'),
+                    self.get_mark())
+        return (major, minor)
+
+    def scan_yaml_directive_number(self, start_mark):
+        # See the specification for details.
+        ch = self.peek()
+        if not (u'0' <= ch <= '9'):
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected a digit, but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        length = 0
+        while u'0' <= self.peek(length) <= u'9':
+            length += 1
+        value = int(self.prefix(length))
+        self.forward(length)
+        return value
+
+    def scan_tag_directive_value(self, start_mark):
+        # See the specification for details.
+        while self.peek() == u' ':
+            self.forward()
+        handle = self.scan_tag_directive_handle(start_mark)
+        while self.peek() == u' ':
+            self.forward()
+        prefix = self.scan_tag_directive_prefix(start_mark)
+        return (handle, prefix)
+
+    def scan_tag_directive_handle(self, start_mark):
+        # See the specification for details.
+        value = self.scan_tag_handle('directive', start_mark)
+        ch = self.peek()
+        if ch != u' ':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected ' ', but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        return value
+
+    def scan_tag_directive_prefix(self, start_mark):
+        # See the specification for details.
+        value = self.scan_tag_uri('directive', start_mark)
+        ch = self.peek()
+        if ch not in u'\0 \r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected ' ', but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        return value
+
+    def scan_directive_ignored_line(self, start_mark):
+        # See the specification for details.
+        while self.peek() == u' ':
+            self.forward()
+        if self.peek() == u'#':
+            while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+                self.forward()
+        ch = self.peek()
+        if ch not in u'\0\r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a directive", start_mark,
+                    "expected a comment or a line break, but found %r"
+                        % ch.encode('utf-8'), self.get_mark())
+        self.scan_line_break()
+
+    def scan_anchor(self, TokenClass):
+        # The specification does not restrict characters for anchors and
+        # aliases. This may lead to problems, for instance, the document:
+        #   [ *alias, value ]
+        # can be interpteted in two ways, as
+        #   [ "value" ]
+        # and
+        #   [ *alias , "value" ]
+        # Therefore we restrict aliases to numbers and ASCII letters.
+        start_mark = self.get_mark()
+        indicator = self.peek()
+        if indicator == '*':
+            name = 'alias'
+        else:
+            name = 'anchor'
+        self.forward()
+        length = 0
+        ch = self.peek(length)
+        while u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                or ch in u'-_':
+            length += 1
+            ch = self.peek(length)
+        if not length:
+            raise ScannerError("while scanning an %s" % name, start_mark,
+                    "expected alphabetic or numeric character, but found %r"
+                    % ch.encode('utf-8'), self.get_mark())
+        value = self.prefix(length)
+        self.forward(length)
+        ch = self.peek()
+        if ch not in u'\0 \t\r\n\x85\u2028\u2029?:,]}%@`':
+            raise ScannerError("while scanning an %s" % name, start_mark,
+                    "expected alphabetic or numeric character, but found %r"
+                    % ch.encode('utf-8'), self.get_mark())
+        end_mark = self.get_mark()
+        return TokenClass(value, start_mark, end_mark)
+
+    def scan_tag(self):
+        # See the specification for details.
+        start_mark = self.get_mark()
+        ch = self.peek(1)
+        if ch == u'<':
+            handle = None
+            self.forward(2)
+            suffix = self.scan_tag_uri('tag', start_mark)
+            if self.peek() != u'>':
+                raise ScannerError("while parsing a tag", start_mark,
+                        "expected '>', but found %r" % self.peek().encode('utf-8'),
+                        self.get_mark())
+            self.forward()
+        elif ch in u'\0 \t\r\n\x85\u2028\u2029':
+            handle = None
+            suffix = u'!'
+            self.forward()
+        else:
+            length = 1
+            use_handle = False
+            while ch not in u'\0 \r\n\x85\u2028\u2029':
+                if ch == u'!':
+                    use_handle = True
+                    break
+                length += 1
+                ch = self.peek(length)
+            handle = u'!'
+            if use_handle:
+                handle = self.scan_tag_handle('tag', start_mark)
+            else:
+                handle = u'!'
+                self.forward()
+            suffix = self.scan_tag_uri('tag', start_mark)
+        ch = self.peek()
+        if ch not in u'\0 \r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a tag", start_mark,
+                    "expected ' ', but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        value = (handle, suffix)
+        end_mark = self.get_mark()
+        return TagToken(value, start_mark, end_mark)
+
+    def scan_block_scalar(self, style):
+        # See the specification for details.
+
+        if style == '>':
+            folded = True
+        else:
+            folded = False
+
+        chunks = []
+        start_mark = self.get_mark()
+
+        # Scan the header.
+        self.forward()
+        chomping, increment = self.scan_block_scalar_indicators(start_mark)
+        self.scan_block_scalar_ignored_line(start_mark)
+
+        # Determine the indentation level and go to the first non-empty line.
+        min_indent = self.indent+1
+        if min_indent < 1:
+            min_indent = 1
+        if increment is None:
+            breaks, max_indent, end_mark = self.scan_block_scalar_indentation()
+            indent = max(min_indent, max_indent)
+        else:
+            indent = min_indent+increment-1
+            breaks, end_mark = self.scan_block_scalar_breaks(indent)
+        line_break = u''
+
+        # Scan the inner part of the block scalar.
+        while self.column == indent and self.peek() != u'\0':
+            chunks.extend(breaks)
+            leading_non_space = self.peek() not in u' \t'
+            length = 0
+            while self.peek(length) not in u'\0\r\n\x85\u2028\u2029':
+                length += 1
+            chunks.append(self.prefix(length))
+            self.forward(length)
+            line_break = self.scan_line_break()
+            breaks, end_mark = self.scan_block_scalar_breaks(indent)
+            if self.column == indent and self.peek() != u'\0':
+
+                # Unfortunately, folding rules are ambiguous.
+                #
+                # This is the folding according to the specification:
+                
+                if folded and line_break == u'\n'   \
+                        and leading_non_space and self.peek() not in u' \t':
+                    if not breaks:
+                        chunks.append(u' ')
+                else:
+                    chunks.append(line_break)
+                
+                # This is Clark Evans's interpretation (also in the spec
+                # examples):
+                #
+                #if folded and line_break == u'\n':
+                #    if not breaks:
+                #        if self.peek() not in ' \t':
+                #            chunks.append(u' ')
+                #        else:
+                #            chunks.append(line_break)
+                #else:
+                #    chunks.append(line_break)
+            else:
+                break
+
+        # Chomp the tail.
+        if chomping is not False:
+            chunks.append(line_break)
+        if chomping is True:
+            chunks.extend(breaks)
+
+        # We are done.
+        return ScalarToken(u''.join(chunks), False, start_mark, end_mark,
+                style)
+
+    def scan_block_scalar_indicators(self, start_mark):
+        # See the specification for details.
+        chomping = None
+        increment = None
+        ch = self.peek()
+        if ch in u'+-':
+            if ch == '+':
+                chomping = True
+            else:
+                chomping = False
+            self.forward()
+            ch = self.peek()
+            if ch in u'0123456789':
+                increment = int(ch)
+                if increment == 0:
+                    raise ScannerError("while scanning a block scalar", start_mark,
+                            "expected indentation indicator in the range 1-9, but found 0",
+                            self.get_mark())
+                self.forward()
+        elif ch in u'0123456789':
+            increment = int(ch)
+            if increment == 0:
+                raise ScannerError("while scanning a block scalar", start_mark,
+                        "expected indentation indicator in the range 1-9, but found 0",
+                        self.get_mark())
+            self.forward()
+            ch = self.peek()
+            if ch in u'+-':
+                if ch == '+':
+                    chomping = True
+                else:
+                    chomping = False
+                self.forward()
+        ch = self.peek()
+        if ch not in u'\0 \r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a block scalar", start_mark,
+                    "expected chomping or indentation indicators, but found %r"
+                        % ch.encode('utf-8'), self.get_mark())
+        return chomping, increment
+
+    def scan_block_scalar_ignored_line(self, start_mark):
+        # See the specification for details.
+        while self.peek() == u' ':
+            self.forward()
+        if self.peek() == u'#':
+            while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+                self.forward()
+        ch = self.peek()
+        if ch not in u'\0\r\n\x85\u2028\u2029':
+            raise ScannerError("while scanning a block scalar", start_mark,
+                    "expected a comment or a line break, but found %r"
+                        % ch.encode('utf-8'), self.get_mark())
+        self.scan_line_break()
+
+    def scan_block_scalar_indentation(self):
+        # See the specification for details.
+        chunks = []
+        max_indent = 0
+        end_mark = self.get_mark()
+        while self.peek() in u' \r\n\x85\u2028\u2029':
+            if self.peek() != u' ':
+                chunks.append(self.scan_line_break())
+                end_mark = self.get_mark()
+            else:
+                self.forward()
+                if self.column > max_indent:
+                    max_indent = self.column
+        return chunks, max_indent, end_mark
+
+    def scan_block_scalar_breaks(self, indent):
+        # See the specification for details.
+        chunks = []
+        end_mark = self.get_mark()
+        while self.column < indent and self.peek() == u' ':
+            self.forward()
+        while self.peek() in u'\r\n\x85\u2028\u2029':
+            chunks.append(self.scan_line_break())
+            end_mark = self.get_mark()
+            while self.column < indent and self.peek() == u' ':
+                self.forward()
+        return chunks, end_mark
+
+    def scan_flow_scalar(self, style):
+        # See the specification for details.
+        # Note that we loose indentation rules for quoted scalars. Quoted
+        # scalars don't need to adhere indentation because " and ' clearly
+        # mark the beginning and the end of them. Therefore we are less
+        # restrictive then the specification requires. We only need to check
+        # that document separators are not included in scalars.
+        if style == '"':
+            double = True
+        else:
+            double = False
+        chunks = []
+        start_mark = self.get_mark()
+        quote = self.peek()
+        self.forward()
+        chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+        while self.peek() != quote:
+            chunks.extend(self.scan_flow_scalar_spaces(double, start_mark))
+            chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+        self.forward()
+        end_mark = self.get_mark()
+        return ScalarToken(u''.join(chunks), False, start_mark, end_mark,
+                style)
+
+    ESCAPE_REPLACEMENTS = {
+        u'0':   u'\0',
+        u'a':   u'\x07',
+        u'b':   u'\x08',
+        u't':   u'\x09',
+        u'\t':  u'\x09',
+        u'n':   u'\x0A',
+        u'v':   u'\x0B',
+        u'f':   u'\x0C',
+        u'r':   u'\x0D',
+        u'e':   u'\x1B',
+        u' ':   u'\x20',
+        u'\"':  u'\"',
+        u'\\':  u'\\',
+        u'N':   u'\x85',
+        u'_':   u'\xA0',
+        u'L':   u'\u2028',
+        u'P':   u'\u2029',
+    }
+
+    ESCAPE_CODES = {
+        u'x':   2,
+        u'u':   4,
+        u'U':   8,
+    }
+
+    def scan_flow_scalar_non_spaces(self, double, start_mark):
+        # See the specification for details.
+        chunks = []
+        while True:
+            length = 0
+            while self.peek(length) not in u'\'\"\\\0 \t\r\n\x85\u2028\u2029':
+                length += 1
+            if length:
+                chunks.append(self.prefix(length))
+                self.forward(length)
+            ch = self.peek()
+            if not double and ch == u'\'' and self.peek(1) == u'\'':
+                chunks.append(u'\'')
+                self.forward(2)
+            elif (double and ch == u'\'') or (not double and ch in u'\"\\'):
+                chunks.append(ch)
+                self.forward()
+            elif double and ch == u'\\':
+                self.forward()
+                ch = self.peek()
+                if ch in self.ESCAPE_REPLACEMENTS:
+                    chunks.append(self.ESCAPE_REPLACEMENTS[ch])
+                    self.forward()
+                elif ch in self.ESCAPE_CODES:
+                    length = self.ESCAPE_CODES[ch]
+                    self.forward()
+                    for k in range(length):
+                        if self.peek(k) not in u'0123456789ABCDEFabcdef':
+                            raise ScannerError("while scanning a double-quoted scalar", start_mark,
+                                    "expected escape sequence of %d hexdecimal numbers, but found %r" %
+                                        (length, self.peek(k).encode('utf-8')), self.get_mark())
+                    code = int(self.prefix(length), 16)
+                    chunks.append(unichr(code))
+                    self.forward(length)
+                elif ch in u'\r\n\x85\u2028\u2029':
+                    self.scan_line_break()
+                    chunks.extend(self.scan_flow_scalar_breaks(double, start_mark))
+                else:
+                    raise ScannerError("while scanning a double-quoted scalar", start_mark,
+                            "found unknown escape character %r" % ch.encode('utf-8'), self.get_mark())
+            else:
+                return chunks
+
+    def scan_flow_scalar_spaces(self, double, start_mark):
+        # See the specification for details.
+        chunks = []
+        length = 0
+        while self.peek(length) in u' \t':
+            length += 1
+        whitespaces = self.prefix(length)
+        self.forward(length)
+        ch = self.peek()
+        if ch == u'\0':
+            raise ScannerError("while scanning a quoted scalar", start_mark,
+                    "found unexpected end of stream", self.get_mark())
+        elif ch in u'\r\n\x85\u2028\u2029':
+            line_break = self.scan_line_break()
+            breaks = self.scan_flow_scalar_breaks(double, start_mark)
+            if line_break != u'\n':
+                chunks.append(line_break)
+            elif not breaks:
+                chunks.append(u' ')
+            chunks.extend(breaks)
+        else:
+            chunks.append(whitespaces)
+        return chunks
+
+    def scan_flow_scalar_breaks(self, double, start_mark):
+        # See the specification for details.
+        chunks = []
+        while True:
+            # Instead of checking indentation, we check for document
+            # separators.
+            prefix = self.prefix(3)
+            if (prefix == u'---' or prefix == u'...')   \
+                    and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+                raise ScannerError("while scanning a quoted scalar", start_mark,
+                        "found unexpected document separator", self.get_mark())
+            while self.peek() in u' \t':
+                self.forward()
+            if self.peek() in u'\r\n\x85\u2028\u2029':
+                chunks.append(self.scan_line_break())
+            else:
+                return chunks
+
+    def scan_plain(self):
+        # See the specification for details.
+        # We add an additional restriction for the flow context:
+        #   plain scalars in the flow context cannot contain ',', ':' and '?'.
+        # We also keep track of the `allow_simple_key` flag here.
+        # Indentation rules are loosed for the flow context.
+        chunks = []
+        start_mark = self.get_mark()
+        end_mark = start_mark
+        indent = self.indent+1
+        # We allow zero indentation for scalars, but then we need to check for
+        # document separators at the beginning of the line.
+        #if indent == 0:
+        #    indent = 1
+        spaces = []
+        while True:
+            length = 0
+            if self.peek() == u'#':
+                break
+            while True:
+                ch = self.peek(length)
+                if ch in u'\0 \t\r\n\x85\u2028\u2029'   \
+                        or (not self.flow_level and ch == u':' and
+                                self.peek(length+1) in u'\0 \t\r\n\x85\u2028\u2029') \
+                        or (self.flow_level and ch in u',:?[]{}'):
+                    break
+                length += 1
+            # It's not clear what we should do with ':' in the flow context.
+            if (self.flow_level and ch == u':'
+                    and self.peek(length+1) not in u'\0 \t\r\n\x85\u2028\u2029,[]{}'):
+                self.forward(length)
+                raise ScannerError("while scanning a plain scalar", start_mark,
+                    "found unexpected ':'", self.get_mark(),
+                    "Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.")
+            if length == 0:
+                break
+            self.allow_simple_key = False
+            chunks.extend(spaces)
+            chunks.append(self.prefix(length))
+            self.forward(length)
+            end_mark = self.get_mark()
+            spaces = self.scan_plain_spaces(indent, start_mark)
+            if not spaces or self.peek() == u'#' \
+                    or (not self.flow_level and self.column < indent):
+                break
+        return ScalarToken(u''.join(chunks), True, start_mark, end_mark)
+
+    def scan_plain_spaces(self, indent, start_mark):
+        # See the specification for details.
+        # The specification is really confusing about tabs in plain scalars.
+        # We just forbid them completely. Do not use tabs in YAML!
+        chunks = []
+        length = 0
+        while self.peek(length) in u' ':
+            length += 1
+        whitespaces = self.prefix(length)
+        self.forward(length)
+        ch = self.peek()
+        if ch in u'\r\n\x85\u2028\u2029':
+            line_break = self.scan_line_break()
+            self.allow_simple_key = True
+            prefix = self.prefix(3)
+            if (prefix == u'---' or prefix == u'...')   \
+                    and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+                return
+            breaks = []
+            while self.peek() in u' \r\n\x85\u2028\u2029':
+                if self.peek() == ' ':
+                    self.forward()
+                else:
+                    breaks.append(self.scan_line_break())
+                    prefix = self.prefix(3)
+                    if (prefix == u'---' or prefix == u'...')   \
+                            and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+                        return
+            if line_break != u'\n':
+                chunks.append(line_break)
+            elif not breaks:
+                chunks.append(u' ')
+            chunks.extend(breaks)
+        elif whitespaces:
+            chunks.append(whitespaces)
+        return chunks
+
+    def scan_tag_handle(self, name, start_mark):
+        # See the specification for details.
+        # For some strange reasons, the specification does not allow '_' in
+        # tag handles. I have allowed it anyway.
+        ch = self.peek()
+        if ch != u'!':
+            raise ScannerError("while scanning a %s" % name, start_mark,
+                    "expected '!', but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        length = 1
+        ch = self.peek(length)
+        if ch != u' ':
+            while u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                    or ch in u'-_':
+                length += 1
+                ch = self.peek(length)
+            if ch != u'!':
+                self.forward(length)
+                raise ScannerError("while scanning a %s" % name, start_mark,
+                        "expected '!', but found %r" % ch.encode('utf-8'),
+                        self.get_mark())
+            length += 1
+        value = self.prefix(length)
+        self.forward(length)
+        return value
+
+    def scan_tag_uri(self, name, start_mark):
+        # See the specification for details.
+        # Note: we do not check if URI is well-formed.
+        chunks = []
+        length = 0
+        ch = self.peek(length)
+        while u'0' <= ch <= u'9' or u'A' <= ch <= 'Z' or u'a' <= ch <= 'z'  \
+                or ch in u'-;/?:@&=+$,_.!~*\'()[]%':
+            if ch == u'%':
+                chunks.append(self.prefix(length))
+                self.forward(length)
+                length = 0
+                chunks.append(self.scan_uri_escapes(name, start_mark))
+            else:
+                length += 1
+            ch = self.peek(length)
+        if length:
+            chunks.append(self.prefix(length))
+            self.forward(length)
+            length = 0
+        if not chunks:
+            raise ScannerError("while parsing a %s" % name, start_mark,
+                    "expected URI, but found %r" % ch.encode('utf-8'),
+                    self.get_mark())
+        return u''.join(chunks)
+
+    def scan_uri_escapes(self, name, start_mark):
+        # See the specification for details.
+        bytes = []
+        mark = self.get_mark()
+        while self.peek() == u'%':
+            self.forward()
+            for k in range(2):
+                if self.peek(k) not in u'0123456789ABCDEFabcdef':
+                    raise ScannerError("while scanning a %s" % name, start_mark,
+                            "expected URI escape sequence of 2 hexdecimal numbers, but found %r" %
+                                (self.peek(k).encode('utf-8')), self.get_mark())
+            bytes.append(chr(int(self.prefix(2), 16)))
+            self.forward(2)
+        try:
+            value = unicode(''.join(bytes), 'utf-8')
+        except UnicodeDecodeError, exc:
+            raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark)
+        return value
+
+    def scan_line_break(self):
+        # Transforms:
+        #   '\r\n'      :   '\n'
+        #   '\r'        :   '\n'
+        #   '\n'        :   '\n'
+        #   '\x85'      :   '\n'
+        #   '\u2028'    :   '\u2028'
+        #   '\u2029     :   '\u2029'
+        #   default     :   ''
+        ch = self.peek()
+        if ch in u'\r\n\x85':
+            if self.prefix(2) == u'\r\n':
+                self.forward(2)
+            else:
+                self.forward()
+            return u'\n'
+        elif ch in u'\u2028\u2029':
+            self.forward()
+            return ch
+        return u''
+
+#try:
+#    import psyco
+#    psyco.bind(Scanner)
+#except ImportError:
+#    pass
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/scanner.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/scanner.pyc b/tools/bin/ext/yaml/scanner.pyc
new file mode 100644
index 0000000..3ae15e8
Binary files /dev/null and b/tools/bin/ext/yaml/scanner.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/serializer.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/serializer.py b/tools/bin/ext/yaml/serializer.py
new file mode 100644
index 0000000..2101f95
--- /dev/null
+++ b/tools/bin/ext/yaml/serializer.py
@@ -0,0 +1,111 @@
+
+__all__ = ['Serializer', 'SerializerError']
+
+from error import YAMLError
+from events import *
+from nodes import *
+
+class SerializerError(YAMLError):
+    pass
+
+class Serializer(object):
+
+    ANCHOR_TEMPLATE = u'id%03d'
+
+    def __init__(self, encoding=None,
+            explicit_start=None, explicit_end=None, version=None, tags=None):
+        self.use_encoding = encoding
+        self.use_explicit_start = explicit_start
+        self.use_explicit_end = explicit_end
+        self.use_version = version
+        self.use_tags = tags
+        self.serialized_nodes = {}
+        self.anchors = {}
+        self.last_anchor_id = 0
+        self.closed = None
+
+    def open(self):
+        if self.closed is None:
+            self.emit(StreamStartEvent(encoding=self.use_encoding))
+            self.closed = False
+        elif self.closed:
+            raise SerializerError("serializer is closed")
+        else:
+            raise SerializerError("serializer is already opened")
+
+    def close(self):
+        if self.closed is None:
+            raise SerializerError("serializer is not opened")
+        elif not self.closed:
+            self.emit(StreamEndEvent())
+            self.closed = True
+
+    #def __del__(self):
+    #    self.close()
+
+    def serialize(self, node):
+        if self.closed is None:
+            raise SerializerError("serializer is not opened")
+        elif self.closed:
+            raise SerializerError("serializer is closed")
+        self.emit(DocumentStartEvent(explicit=self.use_explicit_start,
+            version=self.use_version, tags=self.use_tags))
+        self.anchor_node(node)
+        self.serialize_node(node, None, None)
+        self.emit(DocumentEndEvent(explicit=self.use_explicit_end))
+        self.serialized_nodes = {}
+        self.anchors = {}
+        self.last_alias_id = 0
+
+    def anchor_node(self, node):
+        if node in self.anchors:
+            if self.anchors[node] is None:
+                self.anchors[node] = self.generate_anchor(node)
+        else:
+            self.anchors[node] = None
+            if isinstance(node, SequenceNode):
+                for item in node.value:
+                    self.anchor_node(item)
+            elif isinstance(node, MappingNode):
+                for key, value in node.value:
+                    self.anchor_node(key)
+                    self.anchor_node(value)
+
+    def generate_anchor(self, node):
+        self.last_anchor_id += 1
+        return self.ANCHOR_TEMPLATE % self.last_anchor_id
+
+    def serialize_node(self, node, parent, index):
+        alias = self.anchors[node]
+        if node in self.serialized_nodes:
+            self.emit(AliasEvent(alias))
+        else:
+            self.serialized_nodes[node] = True
+            self.descend_resolver(parent, index)
+            if isinstance(node, ScalarNode):
+                detected_tag = self.resolve(ScalarNode, node.value, (True, False))
+                default_tag = self.resolve(ScalarNode, node.value, (False, True))
+                implicit = (node.tag == detected_tag), (node.tag == default_tag)
+                self.emit(ScalarEvent(alias, node.tag, implicit, node.value,
+                    style=node.style))
+            elif isinstance(node, SequenceNode):
+                implicit = (node.tag
+                            == self.resolve(SequenceNode, node.value, True))
+                self.emit(SequenceStartEvent(alias, node.tag, implicit,
+                    flow_style=node.flow_style))
+                index = 0
+                for item in node.value:
+                    self.serialize_node(item, node, index)
+                    index += 1
+                self.emit(SequenceEndEvent())
+            elif isinstance(node, MappingNode):
+                implicit = (node.tag
+                            == self.resolve(MappingNode, node.value, True))
+                self.emit(MappingStartEvent(alias, node.tag, implicit,
+                    flow_style=node.flow_style))
+                for key, value in node.value:
+                    self.serialize_node(key, node, None)
+                    self.serialize_node(value, node, key)
+                self.emit(MappingEndEvent())
+            self.ascend_resolver()
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/serializer.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/serializer.pyc b/tools/bin/ext/yaml/serializer.pyc
new file mode 100644
index 0000000..24fce03
Binary files /dev/null and b/tools/bin/ext/yaml/serializer.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/tokens.py
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/tokens.py b/tools/bin/ext/yaml/tokens.py
new file mode 100644
index 0000000..4d0b48a
--- /dev/null
+++ b/tools/bin/ext/yaml/tokens.py
@@ -0,0 +1,104 @@
+
+class Token(object):
+    def __init__(self, start_mark, end_mark):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+    def __repr__(self):
+        attributes = [key for key in self.__dict__
+                if not key.endswith('_mark')]
+        attributes.sort()
+        arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+                for key in attributes])
+        return '%s(%s)' % (self.__class__.__name__, arguments)
+
+#class BOMToken(Token):
+#    id = '<byte order mark>'
+
+class DirectiveToken(Token):
+    id = '<directive>'
+    def __init__(self, name, value, start_mark, end_mark):
+        self.name = name
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+
+class DocumentStartToken(Token):
+    id = '<document start>'
+
+class DocumentEndToken(Token):
+    id = '<document end>'
+
+class StreamStartToken(Token):
+    id = '<stream start>'
+    def __init__(self, start_mark=None, end_mark=None,
+            encoding=None):
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.encoding = encoding
+
+class StreamEndToken(Token):
+    id = '<stream end>'
+
+class BlockSequenceStartToken(Token):
+    id = '<block sequence start>'
+
+class BlockMappingStartToken(Token):
+    id = '<block mapping start>'
+
+class BlockEndToken(Token):
+    id = '<block end>'
+
+class FlowSequenceStartToken(Token):
+    id = '['
+
+class FlowMappingStartToken(Token):
+    id = '{'
+
+class FlowSequenceEndToken(Token):
+    id = ']'
+
+class FlowMappingEndToken(Token):
+    id = '}'
+
+class KeyToken(Token):
+    id = '?'
+
+class ValueToken(Token):
+    id = ':'
+
+class BlockEntryToken(Token):
+    id = '-'
+
+class FlowEntryToken(Token):
+    id = ','
+
+class AliasToken(Token):
+    id = '<alias>'
+    def __init__(self, value, start_mark, end_mark):
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+
+class AnchorToken(Token):
+    id = '<anchor>'
+    def __init__(self, value, start_mark, end_mark):
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+
+class TagToken(Token):
+    id = '<tag>'
+    def __init__(self, value, start_mark, end_mark):
+        self.value = value
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+
+class ScalarToken(Token):
+    id = '<scalar>'
+    def __init__(self, value, plain, start_mark, end_mark, style=None):
+        self.value = value
+        self.plain = plain
+        self.start_mark = start_mark
+        self.end_mark = end_mark
+        self.style = style
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/ext/yaml/tokens.pyc
----------------------------------------------------------------------
diff --git a/tools/bin/ext/yaml/tokens.pyc b/tools/bin/ext/yaml/tokens.pyc
new file mode 100644
index 0000000..47b5986
Binary files /dev/null and b/tools/bin/ext/yaml/tokens.pyc differ

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.html
new file mode 100644
index 0000000..2683a15
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL Announcements</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-announcements">
+<h1 class="title">PyGreSQL Announcements</h1>
+<h2 class="subtitle" id="release-of-pygresql-version-4-0">Release of PyGreSQL version 4.0</h2>
+<p>PyGreSQL v4.0 has been released.</p>
+<p>It is available at: <a class="reference" href="ftp://ftp.PyGreSQL.org/pub/distrib/PyGreSQL-4.0.tgz">ftp://ftp.PyGreSQL.org/pub/distrib/PyGreSQL-4.0.tgz</a>.</p>
+<p>If you are running NetBSD, look in the packages directory under databases.
+There is also a package in the FreeBSD ports collection.</p>
+<p>Please refer to <a class="reference" href="changelog.html">changelog.txt</a>
+for things that have changed in this version.</p>
+<p>Please refer to <a class="reference" href="readme.html">readme.txt</a>
+for general information.</p>
+<div class="line-block">
+<div class="line">D'Arcy J.M. Cain</div>
+<div class="line"><a class="reference" href="mailto:darcy&#64;PyGreSQL.org">darcy&#64;PyGreSQL.org</a></div>
+</div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.txt
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.txt b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.txt
new file mode 100644
index 0000000..fa08458
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/announce.txt
@@ -0,0 +1,23 @@
+======================
+PyGreSQL Announcements
+======================
+
+-------------------------------
+Release of PyGreSQL version 4.0
+-------------------------------
+
+PyGreSQL v4.0 has been released.
+
+It is available at: ftp://ftp.PyGreSQL.org/pub/distrib/PyGreSQL-4.0.tgz.
+
+If you are running NetBSD, look in the packages directory under databases.
+There is also a package in the FreeBSD ports collection.
+
+Please refer to `changelog.txt <changelog.html>`_
+for things that have changed in this version.
+
+Please refer to `readme.txt <readme.html>`_
+for general information.
+
+| D'Arcy J.M. Cain
+| darcy@PyGreSQL.org

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.html
----------------------------------------------------------------------
diff --git a/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.html b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.html
new file mode 100644
index 0000000..24c38e9
--- /dev/null
+++ b/tools/bin/pythonSrc/PyGreSQL-4.0/docs/changelog.html
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>PyGreSQL ChangeLog</title>
+<link rel="stylesheet" href="docs.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="pygresql-changelog">
+<h1 class="title">PyGreSQL ChangeLog</h1>
+<div class="section">
+<h1><a id="version-4-0-2009-01-01" name="version-4-0-2009-01-01">Version 4.0 (2009-01-01)</a></h1>
+<ul class="simple">
+<li>Dropped support for Python below 2.3 and PostgreSQL below 7.4.</li>
+<li>Improved performance of fetchall() for large result sets
+by speeding up the type casts (as suggested by Peter Schuller).</li>
+<li>Exposed exceptions as attributes of the connection object.</li>
+<li>Exposed connection as attribute of the cursor object.</li>
+<li>Cursors now support the iteration protocol.</li>
+<li>Added new method to get parameter settings.</li>
+<li>Added customizable row_factory as suggested by Simon Pamies.</li>
+<li>Separated between mandatory and additional type objects.</li>
+<li>Added keyword args to insert, update and delete methods.</li>
+<li>Added exception handling for direct copy.</li>
+<li>Release the GIL while making a connection
+(as suggested by Peter Schuller).</li>
+<li>If available, use decimal.Decimal for numeric types.</li>
+<li>Allow DB wrapper to be used with DB-API 2 connections
+(as suggested by Chris Hilton).</li>
+<li>Made private attributes of DB wrapper accessible.</li>
+<li>Dropped dependence on mx.DateTime module.</li>
+<li>Support for PQescapeStringConn() and PQescapeByteaConn();
+these are now also used by the internal _quote() functions.</li>
+<li>Added 'int8' to INTEGER types. New SMALLINT type.</li>
+<li>Added a way to find the number of rows affected by a query()
+with the classic pg module by returning it as a string.
+For single inserts, query() still returns the oid as an integer.
+The pgdb module already provides the &quot;rowcount&quot; cursor attribute
+for the same purpose.</li>
+<li>Improved getnotify() by calling PQconsumeInput() instead of
+submitting an empty command.</li>
+<li>Removed compatibility code for old OID munging style.</li>
+<li>The insert() and update() methods now use the &quot;returning&quot; clause
+if possible to get all changed values, and they also check in advance
+whether a subsequent select is possible, so that ongoing transactions
+won't break if there is no select privilege.</li>
+<li>Added &quot;protocol_version&quot; and &quot;server_version&quot; attributes.</li>
+<li>Revived the &quot;user&quot; attribute.</li>
+<li>The pg module now works correctly with composite primary keys;
+these are represented as frozensets.</li>
+<li>Removed the undocumented and actually unnecessary &quot;view&quot; parameter
+from the get() method.</li>
+<li>get() raises a nicer ProgrammingError instead of a KeyError
+if no primary key was found.</li>
+<li>delete() now also works based on the primary key if no oid available
+and returns whether the row existed or not.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-8-1-2006-06-05" name="version-3-8-1-2006-06-05">Version 3.8.1 (2006-06-05)</a></h1>
+<ul class="simple">
+<li>Use string methods instead of deprecated string functions.</li>
+<li>Only use SQL-standard way of escaping quotes.</li>
+<li>Added the functions escape_string() and escape/unescape_bytea()
+(as suggested by Charlie Dyson and Kavous Bojnourdi a long time ago).</li>
+<li>Reverted code in clear() method that set date to current.</li>
+<li>Added code for backwards compatibility in OID munging code.</li>
+<li>Reorder attnames tests so that &quot;interval&quot; is checked for before &quot;int.&quot;</li>
+<li>If caller supplies key dictionary, make sure that all has a namespace.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-8-2006-02-17" name="version-3-8-2006-02-17">Version 3.8 (2006-02-17)</a></h1>
+<ul class="simple">
+<li>Installed new favicon.ico from Matthew Sporleder &lt;<a class="reference" href="mailto:mspo&#64;mspo.com">mspo&#64;mspo.com</a>&gt;</li>
+<li>Replaced snprintf by PyOS_snprintf.</li>
+<li>Removed NO_SNPRINTF switch which is not needed any longer</li>
+<li>Clean up some variable names and namespace</li>
+<li>Add get_relations() method to get any type of relation</li>
+<li>Rewrite get_tables() to use get_relations()</li>
+<li>Use new method in get_attnames method to get attributes of views as well</li>
+<li>Add Binary type</li>
+<li>Number of rows is now -1 after executing no-result statements</li>
+<li>Fix some number handling</li>
+<li>Non-simple types do not raise an error any more</li>
+<li>Improvements to documentation framework</li>
+<li>Take into account that nowadays not every table must have an oid column</li>
+<li>Simplification and improvement of the inserttable() function</li>
+<li>Fix up unit tests</li>
+<li>The usual assortment of minor fixes and enhancements</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-7-2005-09-07" name="version-3-7-2005-09-07">Version 3.7 (2005-09-07)</a></h1>
+<p>Improvement of pgdb module:</p>
+<ul class="simple">
+<li>Use Python standard <cite>datetime</cite> if <cite>mxDateTime</cite> is not available</li>
+</ul>
+<p>Major improvements and clean-up in classic pg module:</p>
+<ul class="simple">
+<li>All members of the underlying connection directly available in <cite>DB</cite></li>
+<li>Fixes to quoting function</li>
+<li>Add checks for valid database connection to methods</li>
+<li>Improved namespace support, handle <cite>search_path</cite> correctly</li>
+<li>Removed old dust and unnessesary imports, added docstrings</li>
+<li>Internal sql statements as one-liners, smoothed out ugly code</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-6-2-2005-02-23" name="version-3-6-2-2005-02-23">Version 3.6.2 (2005-02-23)</a></h1>
+<ul class="simple">
+<li>Further fixes to namespace handling</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-6-1-2005-01-11" name="version-3-6-1-2005-01-11">Version 3.6.1 (2005-01-11)</a></h1>
+<ul class="simple">
+<li>Fixes to namespace handling</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-6-2004-12-17" name="version-3-6-2004-12-17">Version 3.6 (2004-12-17)</a></h1>
+<ul class="simple">
+<li>Better DB-API 2.0 compliance</li>
+<li>Exception hierarchy moved into C module and made available to both APIs</li>
+<li>Fix error in update method that caused false exceptions</li>
+<li>Moved to standard exception hierarchy in classic API</li>
+<li>Added new method to get transaction state</li>
+<li>Use proper Python constants where appropriate</li>
+<li>Use Python versions of strtol, etc. Allows Win32 build.</li>
+<li>Bug fixes and cleanups</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-5-2004-08-29" name="version-3-5-2004-08-29">Version 3.5 (2004-08-29)</a></h1>
+<p>Fixes and enhancements:</p>
+<ul class="simple">
+<li>Add interval to list of data types</li>
+<li>fix up method wrapping especially close()</li>
+<li>retry pkeys once if table missing in case it was just added</li>
+<li>wrap query method separately to handle debug better</li>
+<li>use isinstance instead of type</li>
+<li>fix free/PQfreemem issue - finally</li>
+<li>miscellaneous cleanups and formatting</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-4-2004-06-02" name="version-3-4-2004-06-02">Version 3.4 (2004-06-02)</a></h1>
+<p>Some cleanups and fixes.
+This is the first version where PyGreSQL is moved back out of the
+PostgreSQL tree. A lot of the changes mentioned below were actually
+made while in the PostgreSQL tree since their last release.</p>
+<ul class="simple">
+<li>Allow for larger integer returns</li>
+<li>Return proper strings for true and false</li>
+<li>Cleanup convenience method creation</li>
+<li>Enhance debugging method</li>
+<li>Add reopen method</li>
+<li>Allow programs to preload field names for speedup</li>
+<li>Move OID handling so that it returns long instead of int</li>
+<li>Miscellaneous cleanups and formatting</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-3-2001-12-03" name="version-3-3-2001-12-03">Version 3.3 (2001-12-03)</a></h1>
+<p>A few cleanups.  Mostly there was some confusion about the latest version
+and so I am bumping the number to keep it straight.</p>
+<ul class="simple">
+<li>Added NUMERICOID to list of returned types. This fixes a bug when
+returning aggregates in the latest version of PostgreSQL.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-2-2001-06-20" name="version-3-2-2001-06-20">Version 3.2 (2001-06-20)</a></h1>
+<p>Note that there are very few changes to PyGreSQL between 3.1 and 3.2.
+The main reason for the release is the move into the PostgreSQL
+development tree.  Even the WIN32 changes are pretty minor.</p>
+<ul class="simple">
+<li>Add Win32 support (<a class="reference" href="mailto:gerhard&#64;bigfoot.de">gerhard&#64;bigfoot.de</a>)</li>
+<li>Fix some DB-API quoting problems (<a class="reference" href="mailto:niall.smart&#64;ebeon.com">niall.smart&#64;ebeon.com</a>)</li>
+<li>Moved development into PostgreSQL development tree.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-1-2000-11-06" name="version-3-1-2000-11-06">Version 3.1 (2000-11-06)</a></h1>
+<ul class="simple">
+<li>Fix some quoting functions.  In particular handle NULLs better.</li>
+<li>Use a method to add primary key information rather than direct
+manipulation of the class structures</li>
+<li>Break decimal out in <cite>_quote</cite> (in pg.py) and treat it as float</li>
+<li>Treat timestamp like date for quoting purposes</li>
+<li>Remove a redundant SELECT from the <cite>get</cite> method speeding it,
+and <cite>insert</cite> (since it calls <cite>get</cite>) up a little.</li>
+<li>Add test for BOOL type in typecast method to <cite>pgdbTypeCache</cite> class
+(<a class="reference" href="mailto:tv&#64;beamnet.de">tv&#64;beamnet.de</a>)</li>
+<li>Fix pgdb.py to send port as integer to lower level function
+(<a class="reference" href="mailto:dildog&#64;l0pht.com">dildog&#64;l0pht.com</a>)</li>
+<li>Change pg.py to speed up some operations</li>
+<li>Allow updates on tables with no primary keys</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-3-0-2000-05-30" name="version-3-0-2000-05-30">Version 3.0 (2000-05-30)</a></h1>
+<ul class="simple">
+<li>Remove strlen() call from pglarge_write() and get size from object
+(<a class="reference" href="mailto:Richard&#64;Bouska.cz">Richard&#64;Bouska.cz</a>)</li>
+<li>Add a little more error checking to the quote function in the wrapper</li>
+<li>Add extra checking in <cite>_quote</cite> function</li>
+<li>Wrap query in pg.py for debugging</li>
+<li>Add DB-API 2.0 support to pgmodule.c (<a class="reference" href="mailto:andre&#64;via.ecp.fr">andre&#64;via.ecp.fr</a>)</li>
+<li>Add DB-API 2.0 wrapper pgdb.py (<a class="reference" href="mailto:andre&#64;via.ecp.fr">andre&#64;via.ecp.fr</a>)</li>
+<li>Correct keyword clash (temp) in tutorial</li>
+<li>Clean up layout of tutorial</li>
+<li>Return NULL values as None (<a class="reference" href="mailto:rlawrence&#64;lastfoot.com">rlawrence&#64;lastfoot.com</a>)
+(WARNING: This will cause backwards compatibility issues)</li>
+<li>Change None to NULL in insert and update</li>
+<li>Change hash-bang lines to use /usr/bin/env</li>
+<li>Clearing date should be blank (NULL) not TODAY</li>
+<li>Quote backslashes in strings in <cite>_quote</cite> (<a class="reference" href="mailto:brian&#64;CSUA.Berkeley.EDU">brian&#64;CSUA.Berkeley.EDU</a>)</li>
+<li>Expanded and clarified build instructions (<a class="reference" href="mailto:tbryan&#64;starship.python.net">tbryan&#64;starship.python.net</a>)</li>
+<li>Make code thread safe (<a class="reference" href="mailto:Jerome.Alet&#64;unice.fr">Jerome.Alet&#64;unice.fr</a>)</li>
+<li>Add README.distutils (<a class="reference" href="mailto:mwa&#64;gate.net">mwa&#64;gate.net</a> &amp; <a class="reference" href="mailto:jeremy&#64;cnri.reston.va.us">jeremy&#64;cnri.reston.va.us</a>)</li>
+<li>Many fixes and increased DB-API compliance by <a class="reference" href="mailto:chifungfan&#64;yahoo.com">chifungfan&#64;yahoo.com</a>,
+<a class="reference" href="mailto:tony&#64;printra.net">tony&#64;printra.net</a>, <a class="reference" href="mailto:jeremy&#64;alum.mit.edu">jeremy&#64;alum.mit.edu</a> and others to get the final
+version ready to release.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-2-4-1999-06-15" name="version-2-4-1999-06-15">Version 2.4 (1999-06-15)</a></h1>
+<ul class="simple">
+<li>Insert returns None if the user doesn't have select permissions
+on the table.  It can (and does) happen that one has insert but
+not select permissions on a table.</li>
+<li>Added ntuples() method to query object (<a class="reference" href="mailto:brit&#64;druid.net">brit&#64;druid.net</a>)</li>
+<li>Corrected a bug related to getresult() and the money type</li>
+<li>Corrected a bug related to negative money amounts</li>
+<li>Allow update based on primary key if munged oid not available and
+table has a primary key</li>
+<li>Add many __doc__ strings (<a class="reference" href="mailto:andre&#64;via.ecp.fr">andre&#64;via.ecp.fr</a>)</li>
+<li>Get method works with views if key specified</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-2-3-1999-04-17" name="version-2-3-1999-04-17">Version 2.3 (1999-04-17)</a></h1>
+<ul class="simple">
+<li>connect.host returns &quot;localhost&quot; when connected to Unix socket
+(<a class="reference" href="mailto:torppa&#64;tuhnu.cutery.fi">torppa&#64;tuhnu.cutery.fi</a>)</li>
+<li>Use <cite>PyArg_ParseTupleAndKeywords</cite> in connect() (<a class="reference" href="mailto:torppa&#64;tuhnu.cutery.fi">torppa&#64;tuhnu.cutery.fi</a>)</li>
+<li>fixes and cleanups (<a class="reference" href="mailto:torppa&#64;tuhnu.cutery.fi">torppa&#64;tuhnu.cutery.fi</a>)</li>
+<li>Fixed memory leak in dictresult() (<a class="reference" href="mailto:terekhov&#64;emc.com">terekhov&#64;emc.com</a>)</li>
+<li>Deprecated pgext.py - functionality now in pg.py</li>
+<li>More cleanups to the tutorial</li>
+<li>Added fileno() method - <a class="reference" href="mailto:terekhov&#64;emc.com">terekhov&#64;emc.com</a> (Mikhail Terekhov)</li>
+<li>added money type to quoting function</li>
+<li>Compiles cleanly with more warnings turned on</li>
+<li>Returns PostgreSQL error message on error</li>
+<li>Init accepts keywords (Jarkko Torppa)</li>
+<li>Convenience functions can be overridden (Jarkko Torppa)</li>
+<li>added close() method</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-2-2-1998-12-21" name="version-2-2-1998-12-21">Version 2.2 (1998-12-21)</a></h1>
+<ul class="simple">
+<li>Added user and password support thanks to Ng Pheng Siong (<a class="reference" href="mailto:ngps&#64;post1.com">ngps&#64;post1.com</a>)</li>
+<li>Insert queries return the inserted oid</li>
+<li>Add new <cite>pg</cite> wrapper (C module renamed to _pg)</li>
+<li>Wrapped database connection in a class</li>
+<li>Cleaned up some of the tutorial.  (More work needed.)</li>
+<li>Added <cite>version</cite> and <cite>__version__</cite>.
+Thanks to <a class="reference" href="mailto:thilo&#64;eevolute.com">thilo&#64;eevolute.com</a> for the suggestion.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-2-1-1998-03-07" name="version-2-1-1998-03-07">Version 2.1 (1998-03-07)</a></h1>
+<ul class="simple">
+<li>return fields as proper Python objects for field type</li>
+<li>Cleaned up pgext.py</li>
+<li>Added dictresult method</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-2-0-1997-12-23" name="version-2-0-1997-12-23">Version 2.0  (1997-12-23)</a></h1>
+<ul class="simple">
+<li>Updated code for PostgreSQL 6.2.1 and Python 1.5</li>
+<li>Reformatted code and converted to use full ANSI style prototypes</li>
+<li>Changed name to PyGreSQL (from PyGres95)</li>
+<li>Changed order of arguments to connect function</li>
+<li>Created new type <cite>pgqueryobject</cite> and moved certain methods to it</li>
+<li>Added a print function for pgqueryobject</li>
+<li>Various code changes - mostly stylistic</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-1-0b-1995-11-04" name="version-1-0b-1995-11-04">Version 1.0b (1995-11-04)</a></h1>
+<ul class="simple">
+<li>Keyword support for connect function moved from library file to C code
+and taken away from library</li>
+<li>Rewrote documentation</li>
+<li>Bug fix in connect function</li>
+<li>Enhancements in large objects interface methods</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-1-0a-1995-10-30" name="version-1-0a-1995-10-30">Version 1.0a (1995-10-30)</a></h1>
+<p>A limited release.</p>
+<ul class="simple">
+<li>Module adapted to standard Python syntax</li>
+<li>Keyword support for connect function in library file</li>
+<li>Rewrote default parameters interface (internal use of strings)</li>
+<li>Fixed minor bugs in module interface</li>
+<li>Redefinition of error messages</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-0-9b-1995-10-10" name="version-0-9b-1995-10-10">Version 0.9b (1995-10-10)</a></h1>
+<p>The first public release.</p>
+<ul class="simple">
+<li>Large objects implementation</li>
+<li>Many bug fixes, enhancements, ...</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="version-0-1a-1995-10-07" name="version-0-1a-1995-10-07">Version 0.1a (1995-10-07)</a></h1>
+<ul class="simple">
+<li>Basic libpq functions (SQL access)</li>
+</ul>
+</div>
+</div>
+</body>
+</html>